(Conectiva Issues Fix) OpenSSL Timing Characteristics Let Remote Users Determine Private Keys in Certain Cases
|
|
SecurityTracker Alert ID: 1006543 |
|
SecurityTracker URL: http://securitytracker.com/id/1006543
|
|
CVE Reference:
CAN-2003-0147
(Links to External Site)
|
Date: Apr 10 2003
|
Impact:
Disclosure of authentication information
|
Fix Available: Yes Vendor Confirmed: Yes
|
Version(s): 0.9.7 and prior versions
|
Description:
A vulnerability was reported in OpenSSL (in the configuration used in many common applications, such as Apache SSL and mod_ssl). A remote user can conduct timing attacks to determine a network-based server's private key in certain situations where there is minimal network transmission time variance.
David Brumley and Dan Boneh submitted a paper entitled "Remote Timing Attacks are Practial" to USENIX. The paper describes a timing-based weakness in the OpenSSL library (and possibly other cryptographic implementations) that could allow a remote user to determine the private key of a network-based server application that uses the OpenSSL library. Attacks were successful when conducted over a local area network separated by an Ethernet switch, between two processes on the same host, and between two virtual machines (VMs) running on the same host. The report states that networks with less than 1 msec of transmission variance are vulnerable.
The authors note that OpenSSL implements a defense against timing-based attacks as an optional feature, but that some common applications that use OpenSSL, such as Apache SSL and mod_ssl, do not invoke the option. Therefore, the report indicates that those specific applications are vulnerable.
The paper indicates that libgcrypt (reportedly used in GNUTLS and GPG) and cryptlib do not implement protection against timing attacks, but that Mozilla's NSS crypto library does properly protect against timing attacks.
In some laboratory experiments, the authors were able to extract a 1024-bit RSA private key from an OpenSSL server (based on 0.9.7) using approximately one million queries over a period of approximately two hours.
The report says that the N factoring employed in RSA's modular exponentiation (m = c^d mod N, with N = pq) can be determined via a timing attack. Knowing the factorization of N, the decryption key "d" can be easily determined, according to the report. The demonstrated attack involves starting with a guessed value for ciphertext sent to the target server as an invalid client-key-exchange SSL message and then monitoring the time until the target server responds (which will include the time required to decrypt the guessed value). According to the report, the timing varies depending on the relationship between the guessed value and the factor 'q'. Observations about the measured timing can reportedly yield the value of 'q'.
The paper is available at:
http://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf
|
Impact:
A remote user can conduct timing attacks to determine the target server's private key. [Specific conditions necessary for a successful attack are described in the Description section.]
|
Solution:
Conectiva has released a fix.
ftp://atualizacoes.conectiva.com.br/6.0/SRPMS/openssl-0.9.6-4U60_6cl.src.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssl-0.9.6-4U60_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssl-devel-0.9.6-4U60_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/SRPMS/openssl-0.9.6a-3U70_6cl.src.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-devel-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-devel-static-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-doc-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-progs-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/SRPMS/openssl-0.9.6c-2U80_5cl.src.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-devel-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-devel-static-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-doc-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-progs-0.9.6c-2U80_5cl.i386.rpm
|
Vendor URL: www.openssl.org/ (Links to External Site)
|
Cause:
Randomization error, State error
|
Underlying OS:
Linux (Conectiva)
|
|
Message History:
This archive entry is a follow-up to the message listed below.
|
Source Message Contents
|
Date: Thu, 10 Apr 2003 17:07:08 -0300
Subject: [conectiva-updates] [CLA-2003:625] Conectiva Security Announcement - openssl
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
- --------------------------------------------------------------------------
CONECTIVA LINUX SECURITY ANNOUNCEMENT
- --------------------------------------------------------------------------
PACKAGE : openssl
SUMMARY : OpenSSL library vulnerabilities
DATE : 2003-04-10 17:06:00
ID : CLA-2003:625
RELEVANT
RELEASES : 6.0, 7.0, 8
- -------------------------------------------------------------------------
DESCRIPTION
OpenSSL[1] implements the Secure Sockets Layer (SSL v2/v3) and
Transport Layer Security (TLS v1) protocols as well as full-strength
general purpose cryptography functions. It is used (as a library) by
several projects, like Apache, OpenSSH, Bind, OpenLDAP and many
others clients and servers programs.
This OpenSSL update addresses the issues outlined below:
1) Klima-Pokorny-Rosa attack (CAN-2003-0131)[2][3]
Vlastimil Klima, Ondrej Pokorny and Tomas Rosa published[6] a paper
where they present an extension to the Bleichenbacher attack
on RSA with PKCS #1 v1.5 padding as used in SSL 3.0 and TLS 1.0. This
vulnerability would allow a remote attacker to perform a single RSA
private key operation on a ciphertext of his/her choice using the
server's RSA key after analysing the server's behaviour with a large
number of specially crafted connections.
2) Timing attack (CAN 2003-147)[4][5]
D. Boneh and D. Brumley published[7] a paper in which they
demonstrate that remote timing attacks are possible and practical
against OpenSSL and derived libraries. They successfully extracted
private keys from a webserver in a local network. In order to prevent
such attacks, a technique known as RSA blinding has been turned on by
default in OpenSSL.
Additionally, some smaller fixes from newer versions of OpenSSL have
been included in the packages provided via this update.
SOLUTION
It is recommended that all users upgrade their openssl packages.
Please note that it is necessary to restart services which use the
library (such as the apache web server with SSL enabled) so that the
new, fixed, version is used. A list of such applications can be
obtained after the upgrade with the following command:
lsof | grep libssl
The first column will contain the name of the application that needs
to be restarted. If there is any doubt about which application has to
be restarted or how to do it, we recommend that the system be
rebooted.
REFERENCES
1. http://www.openssl.org
2. http://www.openssl.org/news/secadv_20030319.txt
3. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0131
4. http://www.openssl.org/news/secadv_20030317.txt
5. http://cve.mitre.org/cgi-bin/cvename.cgi?name=2003-147
6. http://eprint.iacr.org/2003/052/
7. http://crypto.stanford.edu/~dabo/abstracts/ssl-timing.html
UPDATED PACKAGES
ftp://atualizacoes.conectiva.com.br/6.0/SRPMS/openssl-0.9.6-4U60_6cl.src.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssl-0.9.6-4U60_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/6.0/RPMS/openssl-devel-0.9.6-4U60_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/SRPMS/openssl-0.9.6a-3U70_6cl.src.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-devel-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-devel-static-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-doc-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/7.0/RPMS/openssl-progs-0.9.6a-3U70_6cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/SRPMS/openssl-0.9.6c-2U80_5cl.src.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-devel-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-devel-static-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-doc-0.9.6c-2U80_5cl.i386.rpm
ftp://atualizacoes.conectiva.com.br/8/RPMS/openssl-progs-0.9.6c-2U80_5cl.i386.rpm
ADDITIONAL INSTRUCTIONS
The apt tool can be used to perform RPM packages upgrades:
- run: apt-get update
- after that, execute: apt-get upgrade
Detailed instructions reagarding the use of apt and upgrade examples
can be found at http://distro.conectiva.com.br/atualizacoes/#apt?idioma=en
- -------------------------------------------------------------------------
All packages are signed with Conectiva's GPG key. The key and instructions
on how to import it can be found at
http://distro.conectiva.com.br/seguranca/chave/?idioma=en
Instructions on how to check the signatures of the RPM packages can be
found at http://distro.conectiva.com.br/seguranca/politica/?idioma=en
- -------------------------------------------------------------------------
All our advisories and generic update instructions can be viewed at
http://distro.conectiva.com.br/atualizacoes/?idioma=en
- -------------------------------------------------------------------------
Copyright (c) 2003 Conectiva Inc.
http://www.conectiva.com
- -------------------------------------------------------------------------
subscribe: conectiva-updates-subscribe@papaleguas.conectiva.com.br
unsubscribe: conectiva-updates-unsubscribe@papaleguas.conectiva.com.br
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE+lc7r42jd0JmAcZARAip0AJoDvvm1RVsAEu8qZfBfwkXsQ4cdtwCfdQpD
SeYHxfmGDOUKpgMHY/nlU7g=
=YOzn
-----END PGP SIGNATURE-----
|
|