|Title||Timing Attack against protected RSA-CRT implementation used in PolarSSL|
|Date||1st of October 2013|
|Affects||PolarSSL versions prior to 1.2.9 and 1.3.0|
|Not affected||PolarSSL 1.3.0 and above|
|Impact||Recovery of the private RSA key|
|Solution||Upgrade to PolarSSL 1.3.0 or 1.2.9|
|Credits||Cyril Arnaud and Pierre-Alain Fouque|
The researchers Cyril Arnaud and Pierre-Alain Fouque investigated the PolarSSL RSA implementation and discovered a bias in the implementation of the Montgomery multiplication that we used. For which they then show that it can be used to mount an attack on the RSA key. Although their test attack is done on a local system, there seems to be enough indication that this can properly be performed from a remote system as well.
The attack has been added to the known attacks in our Security Center.
All versions prior to PolarSSL 1.2.9 and 1.3.0 are affected if a third party can send arbitrary handshake messages to your server.
If correctly executed, this attack reveals the entire private RSA key after a large number of attack messages (> 600.000 on a local machine) are sent to show the timing differences.
Disable CRT (
#define POLARSSL_RSA_NO_CRT) in config.h. Your code will be much slower, but unaffected by this attack.
Upgrade to PolarSSL version 1.3.0 of 1.2.9.
We strongly advise you to consider upgrading to the 1.3 branch if outside parties are present or can connect to your network.