We are working on some tooling. It has a networking kernel. We would like to think that jitter built into the kernel would help with timing attacks?
Is this true?
We are working on some tooling. It has a networking kernel. We would like to think that jitter built into the kernel would help with timing attacks?
Is this true?
Yes, and no.
Adding random jitter makes things harder, but since you cannot force the device to go faster then the minimum number of instructions it would take to perform the computation without interrupts, it would still be possible to perform a timing attack using a large number of traces and statistical tools such as low percentile filters, in a similar way as in this paper by Crosby et al.
In the end, the only reliable way to fight timing attacks is really to have constant time code. You can read more about constant time crypto on BearSSL's website.
But you can encrypt all the data you're sending over the network, using constant time crypto and that's it. No need to have the whole network stack constant time, if it's only sending encrypted data!
Crosby et al appear to confirm this for me. """s a consequence, we recom mend that the algorithms used inside web and other Internet servers that p rocess important secrets be carefully audited and, where necessary, be modifi ed to limit observ- able differences in execution times to at most a few microsec onds."""
But they talk about nano-second resolution attacks being possible...
– cryptoJim Aug 12 '18 at 21:42I dont know how to code lower than micro-second resolution. The round trips are definately > microseconds...
There are several operations in the kernel that we could make 'constant-time', but the round-trips within we can't.
– cryptoJim Aug 12 '18 at 21:55We'll still use the jitter code to help align the ops to distinct time bounderies.
If the boundary is high enough, it can also cater for the networking LAN/WAN round-trips.
We are thinking that will then get us closer to 'constant-time' across the stack?
Does that make any sense and does it sound plausible ?
– cryptoJim Aug 12 '18 at 22:12