public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Seeding /dev/random not working
@ 2007-05-29 11:53 M Macnair
  2007-05-29 13:15 ` Theodore Tso
  2007-05-29 16:58 ` Andi Kleen
  0 siblings, 2 replies; 17+ messages in thread
From: M Macnair @ 2007-05-29 11:53 UTC (permalink / raw)
  To: linux-kernel

In brief: Adding entropy by writing to /dev/[u]random doesn't appear
to be working.  I am aware that the reported available entropy (via
/proc/sys/kernel/random/entropy_avail) will not increase; the symptom
is /dev/random keeps spitting out the same numbers.

I have two embedded boards (one ARM, one PowerPC), running two
different versions of 2.6.  They have no hard drives, keyboards or
mice.  They each have a NIC, but I understand these make no
contribution to the entropy pool.

Many distros ship with an init script that saves and restores the
entropy pool on startup and shutdown.  The bit that interests me that
is called on startup is (my comments):
	if [ -f $random_seed ]; then
		cat $random_seed >/dev/urandom  # should seed the pool
	fi
	dd if=/dev/urandom of=$random_seed count=1 2>/dev/null # save some
data from urandom for next boot
I have rebooted my boards many times, and after each boot I read the
contents of $random_seed.  Whilst it does not happen every time, the
contents of $random_seed are /often the same/.  To give you a feel:
rebooted 11 times, got a total of 3 different outputs.

This suggests that cat'ing the contents of the random_seed file into
/dev/urandom is not actually increasing the available entropy at all;
indeed it is having no effect whatsoever.

This is obviously a serious issue on these boards, as writing to
/dev/random is the only source of entropy.

In place of these startup scripts I have tried my own script that
explicitly cats in a load of data, and then reads out several K from
/dev/urandom - the data that is read out is normally the same, no
matter what data is written.

I put the fact that this is not 100% reproducible down to timing
variations, which is also the reason why all the experimentation has
been done at startup - the reading and writing occurs at very nearly
exactly the same kernel time, every time it boots.

Is this a bug?  Am I doing something stupid?

Thanks,
Michael Macnair

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2007-05-29 21:47 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-29 11:53 Seeding /dev/random not working M Macnair
2007-05-29 13:15 ` Theodore Tso
2007-05-29 13:38   ` M Macnair
2007-05-29 14:14   ` Pavel Machek
2007-05-29 15:17     ` M Macnair
2007-05-29 15:31       ` Jesper Juhl
2007-05-29 16:30     ` Theodore Tso
2007-05-29 20:06     ` Folkert van Heusden
2007-05-29 17:46   ` Matt Mackall
2007-05-29 18:00     ` Matt Mackall
2007-05-29 19:23     ` Eric Dumazet
2007-05-29 19:35       ` Matt Mackall
2007-05-29 16:58 ` Andi Kleen
2007-05-29 16:44   ` M Macnair
2007-05-29 20:23     ` Matt Mackall
2007-05-29 22:08       ` Andi Kleen
2007-05-29 21:44         ` Matt Mackall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox