On Fri, Jan 04, 2008 at 10:48:48AM +0100, Andreas Metzler wrote: > When acting as a server gnutls pulls that much data from /dev/urandom > that entropy available for /dev/random is down to its minimum > safeguard. ((it is not possible to completely deplete /dev/random by > reading from /dev/urandom in current kernels) > > [EMAIL PROTECTED]:~$ cat /proc/sys/kernel/random/entropy_avail && gnutls-serv > --x > 509keyfile /tmp/CERT/exim.key --x509certfile /tmp/CERT/exim.crt & sleep 1 && > ca > t /proc/sys/kernel/random/entropy_avail > [1] 5356 > 3591 > Echo Server ready. Listening to port '5556'. > 139 > > > [EMAIL PROTECTED]:~$ cat /proc/sys/kernel/random/entropy_avail && openssl > s_serve > r -cert /tmp/CERT/exim.crt -key /tmp/CERT/exim.key -accept 5556 & sleep 1 && > cat /proc/sys/kernel/random/entropy_avail > [1] 7139 > 3596 > [...] > 3361
Just FYI: I used strace on openssl s_server -nocert and gnutls-serv, and I noticed the following: "openssl s_server" reads 32 bytes from /dev/urandom "gnutls-serv" reads 3000 times 120 bytes from /dev/urandom, yes, 360 kilobytes! It is no wonder that when strong random data is required later on, the entropy pool is completely empty with gnutls-serv. For example, if I just start "gnutls-serv -g", it will always block while trying to read 300 bytes from an empty /dev/random in order to generate temporary RSA parameters. I also noticed that on my machine, /proc/sys/kernel/random/entropy_avail never exceeds 3600, so by reading 300 bytes, you're using 2/3 of a full pool. -- Met vriendelijke groet / with kind regards, Guus Sliepen <[EMAIL PROTECTED]>
signature.asc
Description: Digital signature