From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:44261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TT3gC-0000Qf-Bc for qemu-devel@nongnu.org; Tue, 30 Oct 2012 00:43:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TT3gB-000380-9s for qemu-devel@nongnu.org; Tue, 30 Oct 2012 00:43:56 -0400 Received: from terminus.zytor.com ([198.137.202.10]:57454 helo=mail.zytor.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TT3gB-00037v-0A for qemu-devel@nongnu.org; Tue, 30 Oct 2012 00:43:55 -0400 Message-ID: <508F5B07.8070008@zytor.com> Date: Mon, 29 Oct 2012 21:43:51 -0700 From: "H. Peter Anvin" MIME-Version: 1.0 References: <604401631.2277495.1351264128301.JavaMail.root@redhat.com> <871ugl44v5.fsf@codemonkey.ws> <508AB5C0.2000304@zytor.com> <508ADD66.5040909@redhat.com> <5ea4bbfb-b761-42ef-93f8-7c91fee0bb30@email.android.com> <508AE9A6.4060304@redhat.com> <508AF2C0.30404@zytor.com> <508E4215.6050803@redhat.com> In-Reply-To: <508E4215.6050803@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/6] add paravirtualization hwrng support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Amit Shah , Anthony Liguori , Andreas Faerber , qemu-devel@nongnu.org On 10/29/2012 01:45 AM, Paolo Bonzini wrote: > Il 26/10/2012 22:29, H. Peter Anvin ha scritto: >>>> This is surreal. Output from /dev/hwrng turns into output for /dev/random... it us guaranteed worse; period, end of story. >>>> >>>> Isn't that exactly what happens in bare-metal? hwrng -> rngd -> random. Instead here >>>> we'd have, host hwrng -> virtio-rng-pci -> guest hwrng -> guest rngd -> guest random. >>>> >>>> The only difference is that you paravirtualize access to the host hwrng to a) distribute >>>> entropy to multiple guests; b) support migration across hosts with different CPUs and >>>> hardware. >> First, hwrng is only one of the sources used by rngd. It can also >> (currently) use RDRAND or TPM; additional sources are likely to be added >> in the future. >> >> Second, the harvesting of environmental noise -- timings -- is not as >> good in a VM as on plain hardware, so for the no-hwrng case it is better >> for this to be done in the host than in the VM. > > Neither of these make /dev/random with virtio-rng-pci worse than without > (as would be the case if you fed /dev/urandom). And migration works. > This, and avoiding denial of service for the host's /dev/random, is all > I care about at this time. > > There is always time to change defaults to something better. > Let me be more specific. First of all, feeding /dev/urandom to the guest is dangerous -- you are feeding it PRNG contents but telling it that it is real entropy. This is a security hole. Second of all, you're doing something pointless: you are still exhausting the entropy pool on the host at the same rate, and all you end up with is something that isn't what you want. You still have the same DoS on the host /dev/random that you're worried about. Third, you're doing something inefficient: you're running a PRNG in the host which could be run more efficiently in guest space. From an Intel perspective I guess I should be happy, as it functionally would mean that unless you have RDRAND in the host you're insecure, but I'd much rather see the Right Thing done. -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.