Re: Proposed F19 Feature: Virtio RNG

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/01/2013 04:39 PM, Bill Nottingham wrote:
> Jaroslav Reznik (jreznik@xxxxxxxxxx) said: 
>> Feature owner(s): Cole Robinson <crobinso@xxxxxxxxxx>, Amit Shah 
>> <amit.shah@xxxxxxxxxx>
>>
>> Provide a paravirtual random number generator to virtual machines, to prevent 
>> entropy starvation in guests.  
>>
>> == Detailed description ==
>> The linux kernel collects entropy from various non-deterministic hardware 
>> events, like mouse and keyboard input, and network traffic. This entropy is then 
>> exposed through /dev/random, commonly used by cryptographic applications that 
>> need true randomness to maintain security. However if more entropy is being 
>> consumed than is being produced, we have entropy starvation: reading from 
>> /dev/random will block, which can cause a denial of service. A common example 
>> here is use of /dev/random by SSL in various services.
>>
>> VirtIO RNG (random number generator) is a paravirtualized device that is 
>> exposed as a hardware RNG device to the guest. Virtio RNG just appears as a 
>> regular hardware RNG to the guest, which the kernel reads from to fill its 
>> entropy pool. This effectively allows a host to inject entropy into a guest via 
>> several means: The default mode uses the host's /dev/random, but a physical HW 
>> RNG device or EGD (Entropy Gathering Daemon) source can also be used. 
> 

Amit can give more authoritative answers, but here's my understanding:

> What exactly feeds /dev/random in the guest in the cases where this doesn't
> exist, 

Same things that feed entropy on a physical machine: VM keyboard + mouse
movement, VM hardware events, etc. The entropy starvation risk isn't much
different for a headless server VM than for a headless server physical
machine, AIUI.

> and how do we cope with this obviously making /dev/random exhaustion
> in the host much more likely? (Other than assume that a HW RNG is in the
> host.)
> 

The default mode of pulling from host /dev/random certainly does not scale
unless there's something feeding your host's entropy pool. And this won't be
enabled by default, just new opt in functionality. I think anyone with a
non-trivial setup and need for more entropy in their guests will use this to
share a single hwrng or a more involved setup with EGD.

Peter Krempa, who is implementing the libvirt side of things, had some ideas
about a virt entropy daemon that could do more advanced rate limiting to stave
off entropy exhaustion across hosts/guests:

https://www.redhat.com/archives/libvir-list/2012-December/msg00937.html

> Given FIPS paranoia about RNG sources, does this have knock-on effects in
> the FIPS compliance of guests depending on how it's fed in the host?

No clue about that, I've added that to the comments section of the feature page.

Thanks,
cole

-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux