Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH] x86/entry/64: randomize kernel stack offset upon syscall | Date | Tue, 16 Apr 2019 12:45:17 +0000 |
| |
From: Peter Zijlstra > Sent: 16 April 2019 13:08 ... > So the argument against using TSC directly was that it might be easy to > guess most of the TSC bits in timing attack. But IIRC there is fairly > solid evidence that the lowest TSC bits are very hard to guess and might > in fact be a very good random source. > > So what one could do, is for each invocation mix in the low (2?) bits of > the TSC into a per-cpu/task PRNG state. By always adding some fresh > entropy it would become very hard indeed to predict the outcome, even > for otherwise 'trivial' PRNGs.
You could just feed 8 bits of TSC into a CRC. Or even xor the entire TSC over a CRC state and then cycle it at least 6 bits. Probably doesn't matter which CRC - but you may want one that is cheap in software. Even a 16bit CRC might be enough.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |