<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 20, 2016 at 1:05 PM, Theodore Ts'o <span dir="ltr"><<a href="mailto:tytso@mit.edu" target="_blank">tytso@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Jan 20, 2016 at 08:09:03AM -0800, Bill Cox wrote:<br>
><br>
</span><span class="">> I may be wrong about this, but the threat-case where I think this matters<br>
> is when an attacker gets access to the machine, learns the state of the<br>
> entropy pool, and then loses access.  Can the machine recover?<br>
><br>
> If only 1 random bit per second is fed into /dev/random, but keys and IVs<br>
> are extracted from /dev/urandom at a bit-rate far higher than this, and if<br>
> the attacker remains as an eavesdropper on the network and can see the<br>
> results of every read to /dev/urandom, then the attacker needs only to make<br>
> a few guesses per second to keep the attacker's copy of the entropy pool<br>
> synced to the server's.  Is this right?<br>
<br>
</span>Sure, but note the caveat that the attack has to see the results of<br>
"every read to /dev/urandom".  This might be true for IV's, but it<br>
would not be true for session keys, unless you have much, much larger<br>
problems.  The moment something unknown to the attacker is pulled ---<br>
say, a 128 bit session key the number of possible entropy pool states<br>
that the attacker would have to validate explodes, and it becomes<br>
roughly equivalent to a brute force attack of said 128-bit session<br>
key.  (Worse, actually, since we throw away half of the bits so the<br>
trying to maintain knowledge of the entropy pool sate after extracting<br>
128-bits not known to the attacker becomes equivalent to a 256 bit<br>
brute force attack.)<br>
<br>
                                   - Ted<br>
</blockquote></div><br></div><div class="gmail_extra">I guess if this were a significant attack vector, someone would patch it.  It is simply a well known minor flaw  that makes my list, and for which I code around by writing a bunch of random bits all at once rather than trickling them in.  Rngd gets this detail right, and other entropy gatherers should be aware of it.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Bill</div></div>