3 ms·
> due to a non constant-time modular inversion. That isn't exactly some subtle side channel involving tiny emissions of radio waves... The time depending on
by londons_explore 2y ago
> due to a non constant-time modular inversion.
That isn't exactly some subtle side channel involving tiny emissions of radio waves... The time depending on the secret data is pretty much the first thing that any side channel audit ought to check.
It's super simple too - simply verify that all operations always take the same number of clock cycles, no matter the data. Errors too - they should always be thrown after a fixed number of clock cycles, independent of the data.
How did auditors miss this?
- SV_BubbleTime 2y agoAgreed. I was hoping to see something really high end. But it’s a standard timing attack with a fancy probe. The probe is cool though.
- some_furry 2y agoIt's one of the first things I check for in my reviews of ECDSA code. It's embarrassing for Infineon.
- lxgr 2y ago> That isn't exactly some subtle side channel involving tiny emissions of radio waves... No, it seems to be exaclty that. What's non-constant-time is not the execution of the algorithm (as that would probably be exploitable even via USB, worst case), but rather the duty cycle of the externally-observeable RF side channel, if I understand the paper correctly. Infineon's implementation doesn't seem to be vulnerable to a pure timing attack, as otherwise that RF side channel wouldn't be needed. They also do implement nonce blinding, but unfortunately with a multiplicative mask significantly smaller than the size of the elliptic curve, so it's brute-forceable.
- kayson 2y ago> What's non-constant-time is not the execution of the algorithm (as that would probably be exploitable even via USB, worst case), but rather the duty cycle of the externally-observeable RF side channel, if I understand the paper correctly. Are you sure? Section 4.3 (pg 52) starts with "The leaked sensitive information relates to the execution time of Algorithms 1 and 4."
- lxgr 2y agoMaybe my terminology is off here, but a "pure time leak" to me would be something like a given operation varying in return time (i.e. execution time/latency being a function of some secret data), whereas this seems more like all operations take constant time, but in that constant time, RF emissions vary in their timing (e.g. on/off, strong/weak etc.) as a function of some secret data.