No edit summary |
(Bunch of updates) |
||
Line 1: | Line 1: | ||
= VirtIORNG = | = VirtIORNG = | ||
== Summary == | == Summary == | ||
Provide a paravirtual random number generator to virtual machines, to prevent entropy starvation in guests. | |||
Provide | |||
== Owner == | == Owner == | ||
* Name: [[User:crobinso| Cole Robinson]] | * Name: [[User:crobinso|Cole Robinson]] | ||
* Email: crobinso@redhat.com | * Email: crobinso@redhat.com | ||
* Name: Amit Shah | * Name: [[User:Amitshah|Amit Shah]] | ||
* Email: amit.shah@redhat.com | * Email: amit.shah@redhat.com | ||
Line 18: | Line 13: | ||
* Targeted release: [[Releases/19 | Fedora 19]] | * Targeted release: [[Releases/19 | Fedora 19]] | ||
* Last updated: | * Last updated: | ||
* Percentage of completion: | * Percentage of completion: 50% | ||
== Detailed Description == | == 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 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) can also be used. | |||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Guests will have access to better and faster entropy. | |||
== Scope == | == Scope == | ||
* | * Virtio RNG driver in kernel (DONE, since 2.6.26) | ||
* QEMU Device (DONE, since qemu 1.3) | |||
* Libvirt support (patch posted, not commited yet) | |||
* Apps (all optional but would be nice if they are done) | * Apps (all optional but would be nice if they are done) | ||
** | ** virt-install (Not done) | ||
** virt-manager (Not done) | |||
== How To Test == | == How To Test == | ||
See http://wiki.qemu.org/Features/VirtIORNG#Testing | See http://wiki.qemu.org/Features/VirtIORNG#Testing | ||
XXX: copy bits here, proposed libvirt bits | |||
== User Experience == | == User Experience == | ||
Guests will have access to better and faster entropy. | |||
Guests will have access to better and faster entropy. | |||
== Dependencies == | == Dependencies == | ||
None | None | ||
== Contingency Plan == | == Contingency Plan == | ||
Since this is brand new functionality, if it isn't ready in time, nothing has changed. We just drop this feature page. | |||
== Documentation == | == Documentation == | ||
<!-- Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved. --> | <!-- Is there upstream documentation on this feature, or notes you have written yourself? Link to that material here so other interested developers can get involved. --> | ||
* http://wiki.qemu-project.org/Features/VirtIORNG | * [http://wiki.qemu-project.org/Features/VirtIORNG QEMU VirtIO RNG feature page] | ||
* [https://lists.gnu.org/archive/html/qemu-devel/2012-05/msg02235.html QEMU patch email from May 2012] | |||
* [https://www.redhat.com/archives/libvir-list/2013-January/msg00775.html Latest libvirt patch posting] | |||
* [https://www.redhat.com/archives/libvir-list/2012-December/msg00937.html Libvirt RFC detailing potential future RNG daemon] | |||
* [http://egd.sourceforge.net/ Entropy gathering daemon (EGD)] | |||
== Release Notes == | == Release Notes == | ||
KVM and libvirt now support a paravirtual random number generator device. This can be used to prevent entropy starvation in virtual machines. | |||
== Comments and Discussion == | == Comments and Discussion == | ||
None yet. | |||
[[Category:FeaturePageIncomplete]] | [[Category:FeaturePageIncomplete]] |
Revision as of 22:52, 26 January 2013
VirtIORNG
Summary
Provide a paravirtual random number generator to virtual machines, to prevent entropy starvation in guests.
Owner
- Name: Cole Robinson
- Email: crobinso@redhat.com
- Name: Amit Shah
- Email: amit.shah@redhat.com
Current status
- Targeted release: Fedora 19
- Last updated:
- Percentage of completion: 50%
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 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) can also be used.
Benefit to Fedora
Guests will have access to better and faster entropy.
Scope
- Virtio RNG driver in kernel (DONE, since 2.6.26)
- QEMU Device (DONE, since qemu 1.3)
- Libvirt support (patch posted, not commited yet)
- Apps (all optional but would be nice if they are done)
- virt-install (Not done)
- virt-manager (Not done)
How To Test
See http://wiki.qemu.org/Features/VirtIORNG#Testing
XXX: copy bits here, proposed libvirt bits
User Experience
Guests will have access to better and faster entropy.
Dependencies
None
Contingency Plan
Since this is brand new functionality, if it isn't ready in time, nothing has changed. We just drop this feature page.
Documentation
- QEMU VirtIO RNG feature page
- QEMU patch email from May 2012
- Latest libvirt patch posting
- Libvirt RFC detailing potential future RNG daemon
- Entropy gathering daemon (EGD)
Release Notes
KVM and libvirt now support a paravirtual random number generator device. This can be used to prevent entropy starvation in virtual machines.
Comments and Discussion
None yet.