|Title||Side channel attack on ECDSA|
|Date||14th of April, 2020|
|Affects||All versions of Mbed TLS and Mbed Crypto|
|Impact||A local attacker can extract the private key|
|Credit||Alejandro Cabrera Aldaya, Billy Brumley and Cesar Pereida Garcia|
The modular inverse operation as implemented in Mbed TLS is vulnerable to a single-trace side channel attack discovered by Alejandro Cabrera Aldaya and Billy Brumley which may allow a local adversary to recover the full value of the operand. (Some consequences of this attack on RSA and ECDSA were fixed in previous releases.)
Mbed TLS, like most libraries implementing ECC, uses projective coordinates to represent points internally. It is known that leaking the coordinates allows an attacker to recover a few bits of the private value. The conversion back from projective coordinates involves a modular inverse operation and is therefore vulnerable to the above new attack. An attacker who is able to obtain the coordinates from several ECDSA signature operations with the same key can eventually recover the private key through a lattice attack.
A complete description of the attack is available in this paper.
An attacker with access to precise enough timing and memory access information (typically an untrusted operating system attacking a secure enclave such as SGX or the TrustZone secure world) can fully recover an ECDSA private key after observing a number of signature operations.
Affected users will want to upgrade to Mbed TLS 2.22.0, 2.16.6 or 2.7.15 depending on the branch they're currently using.
There is no known work-around. Affected users need to upgrade.