[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-security] openssl timing attacks



Topic
=====
timing attack against openssl can lead to discovery of private key

Problem Description
===================
Researchers discovered a timing attack on RSA keys.  Applications making
use of OpenSSL are generally vulnerable to such an attack, unless RSA
blinding has been turned on.  OpenSSL does not use RSA blinding by default
and most applications do not enable RSA blinding.

A local or remote attacker could use this attack to obtain the server's
private key by determining factors using timing differences on (1) the
number of extra reductions during Montgomery reduction, and (2) the use of
different integer multiplication algorithms ("Karatsuba" and normal).

In order for an attack to be sucessful, an attacker must have good
network conditions that allow small changes in timing to be reliably
observed.

Additionally, the SSL and TLS components for OpenSSL allow remote attackers
to perform an unauthorized RSA private key operation via a modified
Bleichenbacher attack. This attack uses a large number of SSL or TLS
connections, using PKCS #1 v1.5 padding, and causes OpenSSL to leak
information regarding the relationship between ciphertext and the
associated plaintext, aka the "Klima-Pokorny-Rosa attack."

Affected Versions
=================
OpenSSL versions upto and including 0.9.6i and 0.9.7a

Solution
========
apply the patches from http://www.openssl.org/news/secadv_20030317.txt
and http://www.openssl.org/news/secadv_20030319.txt
or upgrade to a patched version for your distribution.

RedHat 6.x
----------
rpm -Fvh openssl-0.9.5a-33.i386.rpm \
         openssl-devel-0.9.5a-33.i386.rpm \
         openssl-perl-0.9.5a-33.i386.rpm \
         openssl-python-0.9.5a-33.i386.rpm

RedHat 7.0, 7.1
---------------
rpm -Fvh openssl095a-0.9.5a-20.7.i386.rpm \
         openssl-0.9.6-16.i386.rpm \
         openssl-devel-0.9.6-16.i386.rpm \
         openssl-perl-0.9.6-16.i386.rpm \
         openssl-python-0.9.6-16.i386.rpm

RedHat 7.2, 7.3
---------------
rpm -Fvh openssl095a-0.9.5a-20.7.i386.rpm \
         openssl096-0.9.6-16.7.i386.rpm \
         openssl-0.9.6b-32.7.i386.rpm \
         openssl-devel-0.9.6b-32.7.i386.rpm \
         openssl-perl-0.9.6b-32.7.i386.rpm

RedHat 8.0
----------
rpm -Fvh openssl095a-0.9.5a-21.i386.rpm \
         openssl096-0.9.6-16.8.i386.rpm \
         openssl-0.9.6b-33.i386.rpm \
         openssl-devel-0.9.6b-33.i386.rpm \
         openssl-perl-0.9.6b-33.i386.rpm

RedHat 9
--------
rpm -Fvh openssl096-0.9.6-17.i386.rpm \
         openssl096b-0.9.6b-6.i386.rpm \
         openssl-0.9.7a-5.i386.rpm \
         openssl-devel-0.9.7a-5.i386.rpm \
         openssl-perl-0.9.7a-5.i386.rpm

Mandrake 7.2
------------
rpm -Fvh openssl-0.9.5a-9.5mdk.i586.rpm \
         openssl-devel-0.9.5a-9.5mdk.i586.rpm

Mandrake 8.0
------------
rpm -Fvh openssl-0.9.6i-1.3mdk.i586.rpm \
         openssl-devel-0.9.6i-1.3mdk.i586.rpm

Mandrake 8.1, 8.2, 9.0
----------------------
rpm -Fvh openssl-0.9.6i-1.4mdk.i586.rpm \
         libopenssl0-0.9.6i-1.4mdk.i586.rpm \
         libopenssl0-devel-0.9.6i-1.4mdk.i586.rpm \
         libopenssl0-static-devel-0.9.6i-1.4mdk.i586.rpm

Mandrake 9.1
------------
rpm -Fvh openssl-0.9.7a-1.1mdk.i586.rpm \
         libopenssl0-0.9.6i-1.1mdk.i586.rpm \
         libopenssl0.9.7-0.9.7a-1.1mdk.i586.rpm \
         libopenssl0.9.7-devel-0.9.7a-1.1mdk.i586.rpm \
         libopenssl0.9.7-static-devel-0.9.7a-1.1mdk.i586.rpm