Mbed TLS -- Side-channel attack on ECC key import and validation

ID C685EDD9-C045-11EA-8898-001CC0382B2F
Type freebsd
Reporter FreeBSD
Modified 2020-07-01T00:00:00


Manuel Pégourié-Gonnard reports:

The scalar multiplication function in Mbed TLS accepts a random number generator (RNG) as an optional argument and, if provided, uses it to protect against some attacks. It is the caller's responsibility to provide a RNG if protection against side-channel attacks is desired; however two groups of functions in Mbed TLS itself fail to pass a RNG:

mbedtls_pk_parse_key() and mbedtls_pk_parse_keyfile() mbedtls_ecp_check_pub_priv() and mbedtls_pk_check_pair()

When those functions are called, scalar multiplication is computed without randomisation, a number of old and new attacks apply, allowing a powerful local attacker to fully recover the private key.