UML - "Hardware" random number generator
PATCH 3/9 UML - "Hardware" random number generator
This implements a hardware random number generator for UML which attaches itself to the host's /dev/random.
arch/um/Kconfig_char +14 -0
@@ -190,5 +190,19 @@ tristate default UML_SOUND +config UML_RANDOM + tristate "Hardware random number generator" + help + This option enables UML's "hardware" random number generator. It + attaches itself to the host's /dev/random, supplying as much entropy + as the host has, rather than the small amount the UML gets from its + own drivers. It registers itself as a standard hardware random number + generator, major 10, minor 183, and the canonical device name is + /dev/hwrng. + The way to make use of this is to install the rng-tools package + (check your distro, or download from + http://sourceforge.net/projects/gkernel/). rngd periodically reads + /dev/hwrng and injects the entropy into /dev/random. + endmenu
arch/um/defconfig +1 -0
@@ -111,6 +111,7 @@ CONFIG_UML_SOUND=m CONFIG_SOUND=m CONFIG_HOSTAUDIO=m +CONFIG_UML_RANDOM=y # # Block devices
arch/um/drivers/Makefile +2 -2
@@ -3,7 +3,7 @@ # Licensed under the GPL # -CHAN_OBJS := chan_kern.o chan_user.o line.o +CHAN_OBJS := chan_kern.o chan_user.o line.o # pcap is broken in 2.5 because kbuild doesn't allow pcap.a to be linked # in to pcap.o
@@ -41,7 +41,7 @@ obj-$(CONFIG_XTERM_CHAN) += xterm.o xterm_kern.o obj-$(CONFIG_UML_WATCHDOG) += harddog.o obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o - +obj-$(CONFIG_UML_RANDOM) += random.o USER_SINGLE_OBJS = $(foreach f,$(patsubst %.o,%,$(obj-y) $(obj-m)),$($(f)-objs))
arch/um/drivers/random.c +122 -0
122 lines not on this page · raw message
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
Quoted 2 lines · Jeff Dike
This implements a hardware random number generator for UML which attaches itself to the host's
/dev/random.
Direct use of /dev/random always makes me nervous. I've had a recurring problem with /dev/random blocking, and generally configure as much as possible to use /dev/urandom instead. It's really easy for a normal user to drain the /dev/random entropy pool on a server (at least one that doesn't have a sound card you can tell it to read white noise from). cat /dev/random
Quoted 1 line
/dev/null
I like /dev/urandom because it'll feed you as much entropy as it's got, but won't block, and will presumably round-robin insert real entropy in the streams that multiple users get from /dev/urandom. (I realize this may not be the best place to get gpg keys from.)
I'm just thinking about those UML hosting farms, with several UML instances per machine, on machines which haven't got a keyboard attached constantly feeding entropy into the pool. If just ONE of them is serving ssl connections from its own /dev/urandom, that would drain the /dev/random entropy pool on the host machine almost immediately...
Admittedly if UML used /dev/urandom instead of /dev/random, it wouldn't know how much "real" randomness it was getting and how much synthetic randomness, but this makes predicting the numbers it's producing easier how?
Rob
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
Quoted 6 lines · [email protected] said:
I'm just thinking about those UML hosting farms, with several UML instances per machine, on machines which haven't got a keyboard attached constantly feeding entropy into the pool. If just ONE of them is serving ssl connections from its own
/dev/urandom, that would drain the/dev/randomentropy pool on the host machine almost immediately...
All true (except for that last reference to urandom), but also irrelevant to whether UML's hwrng should be hooked up to the host's /dev/random or not.
As far as I can see, the only thing that matters is that hwrng should produce real randomness, and that can only be had by reading /dev/random (or maybe the host's /dev/hwrng, but that's supposed to be fed into /dev/random anyway).
So, hooking up the UML /dev/hwrng to the host's /dev/urandom would be lying.
If the host's entropy pool gets drained as a result, I would say that's an application bug, and not a reason for UML to get its randomness from the host's /dev/urandom.
Jeff
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
Quoted 5 lines · Jeff Dike
Quoted 3 lines · [email protected] said:
I'm just thinking about those UML hosting farms, with several UML instances per machine, on machines which haven't got a keyboard attached constantly feeding entropy into the pool.
That's when you set the network links to feed entropy. It may not be very good entropy, but it's probably better than nothing (especially in a UML virtual-system instance, where the real NIC is handling traffic for all hosted systems).
Chris
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
Quoted 6 lines · Rob Landley
Quoted 2 lines · Jeff Dike
This implements a hardware random number generator for UML which attaches itself to the host's
/dev/random.Direct use of
/dev/randomalways makes me nervous. I've had a recurring problem with/dev/randomblocking,
The fd is set in non-blocking mode on opening, so when there is no data UML will not block but get -EAGAIN (which is then handled by waiting and retrying).
Quoted 8 lines
and generally configure as much as
possible to use/dev/urandominstead. It's really easy for a normal user to drain the/dev/randomentropy pool on a server (at least one that doesn't have a sound card you can tell it to read white noise from).cat
/dev/random>/dev/nullI like
/dev/urandombecause it'll feed you as much entropy as it's got,
Yes, and entropy will gradually degrade...
Quoted 10 lines
but
won't block, and will presumably round-robin insert real entropy in the streams that multiple users get from/dev/urandom. (I realize this may not be the best place to get gpg keys from.)Admittedly if UML used
/dev/urandominstead of/dev/random, it wouldn't know how much "real" randomness it was getting and how much synthetic randomness, but this makes predicting the numbers it's producing easierhow?
Don't ask us..., we just recycle the others knowledge... however in short when you say that "randomness" (or entropy) is not the maximum, you mean that there is some redundancy, i.e. some law to ease predicting subsequent numbers. For instance some character is more frequent than another... And this is also the same kind of things that is exploited during compression... the more compressed are your data, the less entropy they have before compression (I'm not an expert of Shannon information entropy theories, however, but this is what I grasped).
Signature · 16 lines
Paolo Giarrusso, aka Blaisorblade Linux registered user n. 292729 http://www.user-mode-linux.org/~blaisorblade ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ User-mode-linux-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
Quoted 8 lines · Rob Landley
Quoted 2 lines · Jeff Dike
This implements a hardware random number generator for UML which attaches itself to the host's
/dev/random.Direct use of
/dev/randomalways makes me nervous. I've had a recurring problem with/dev/randomblocking, and generally configure as much as possible to use/dev/urandominstead. It's really easy for a normal user to drain the/dev/randomentropy pool on a server (at least one that doesn't have a sound card you can tell it to read white noise from). cat/dev/random
Quoted 8 lines
Quoted 1 line
/dev/nullI like
/dev/urandombecause it'll feed you as much entropy as it's got, but won't block, and will presumably round-robin insert real entropy in the streams that multiple users get from/dev/urandom. (I realize this may not be the best place to get gpg keys from.)I'm just thinking about those UML hosting farms, with several UML instances per machine, on machines which haven't got a keyboard attached constantly feeding entropy into the pool. If just ONE of them is serving ssl connections from its own
/dev/urandom, that would drain the/dev/randomentropy pool on the host machine almost immediately...Admittedly if UML used
/dev/urandominstead of/dev/random, it wouldn't know how much "real" randomness it was getting and how much synthetic randomness, but this makes predicting the numbers it's producing easier how?
Use of a "hardware" RNG patch without a real hardware RNG could do all that. I would add a caution to the help warning of this problem if you lack real hardware RNG capability. The really paranoid could insist that at least one hardware driver be configured, but how much do you need to protect people from themselves?
Signature · 14 lines
-bill davidsen ([email protected]) "The secret to procrastination is to put things off until the last possible moment - but no longer" -me ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ User-mode-linux-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel