On 12/09/2014 08:07 AM, Daniel P. Berrange wrote: > On Tue, Dec 09, 2014 at 08:03:13AM -0700, Eric Blake wrote: >> Now that Linux has a syscall for getting secure random bytes, should we >> use that when available in our src/util/virrandom.c implementation? > > Yes, we should. I remember reading a few weeks back that someone found > our current random seed is rather predictable when the libvirt host is > booted from a cut-down image running systemd. Since there is no longer > 1000000000 lines of shell in the init process the initial PIDs are very > stable across each boot attempt. > > The question is how should we make use of it ? Should we use it as the > seed for initstate_r, or just use it for virRandomBits directly ? I think using it just to set the seed is sufficient - I don't know if using ALL our random bits from the syscall would drain resources that might starve other processes, and we are leaving the crypto code to libraries that probably have their own rules on how they get their random values secure enough for their needs. So minimizing our use to just the seeding process will play nicer with other processes, give us less predictability at startup, and still be something that we can easily override during debugging to get a fixed random sequence if it is ever needed (we have some #if code that is normally off, but can be turned on to generated a repeatable sequence from a fixed seed; using the syscall all the time would defeat that if we ever hit a situation of needing fixed-sequence debugging). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list