On Sat, Dec 08, 2007 at 05:20:38PM -0600, Matt Mackall wrote:OK, a backtracking attack assumes a fairly catastrophic case where the attacker has managed to compromise the internal pool state. In Linux, if an attacker has this much access, in most scenarios the attacker probably has the ability to gain write access to kernel memory as well, at which point you have far worse problems. The definition of a backtracking attack is when the attacker uses the current pool state to try to recover the last entropy extraction. As you point out, at each extraction, 96 bits are changed in the pool. But at each extraction, only 80 bits are extracted. If you are trying to find the value of the 80 bits that were extracted, and you know the current state of the pool, yes, you can take the 96 bits that were changed after the last extraction, and try all possible 2**96 combinations of the bits; but you probably won't rule anything out, since after you iterate over all of the 2**96 combinations, you'll probably be able to generate all of the 2**80 possible output bits. So you won't gain anything by trying to do a backtracking attack. So I don't think there's anything to worry about here. What you describe in your comments: .... sounds like not a backtracking attack, but an Iterative guessing attack, where "knowledge of internal state at some point and the intervening PRNG outputs, to learn internal state at a later point when the inputs collected during this span of time are guessable by the attacker." (Definition taken from: http://www.ee.oulu.fi/research/ouspg/frontier/sota/whitepaper-prng/) But note first of all, all this lets you do is unwind to an earlier state just before the known PRNG outputs. In order to use this to guess PRNG output, you still have to solve the above mentioned backtracking attack --- where you have 96 bits that changed, and 80 possible extraction bits. Secondly, the fact that we use catastrophic reseeding means that even if the state was compromised, at some point in time, every so often when we do a "catastrophic reseed", this acts as a firewall to limit the damage caused by a internal state exposure, both in the past and the future. - Ted --
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Faik Uygur | Re: Linux 2.6.21-rc1 |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Trent Piepho | [PATCH] [POWERPC] Improve (in|out)_beXX() asm code |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jens Axboe | Re: [BUG] New Kernel Bugs |
