OpenSSL Timing Characteristics Let Remote Users Determine Private Keys in Certain Cases
|
|
SecurityTracker Alert ID: 1006283 |
|
SecurityTracker URL: http://securitytracker.com/id/1006283
|
|
CVE Reference:
CAN-2003-0147
(Links to External Site)
|
Date: Mar 14 2003
|
Impact:
Disclosure of authentication information
|
Exploit Included: 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:
No solution was available at the time of this entry.
|
Vendor URL: www.openssl.org/ (Links to External Site)
|
Cause:
Randomization error, State error
|
Underlying OS:
Linux (Any), UNIX (Any)
|
|
Message History:
This archive entry has one or more follow-up message(s) listed below.
|
Source Message Contents
|
Date: Fri, 14 Mar 2003 05:05:37 +0000 (GMT)
Subject: [VulnWatch] OpenSSL Private Key Disclosure
|
Remote timing attacks are practical
Authors: D. Boneh and D. Brumley
Abstract:
Timing attacks are usually used to attack weak computing devices such as
smartcards. We show that timing attacks apply to general software systems.
Specifically, we devise a timing attack against OpenSSL. Our experiments
show that we can extract private keys from an OpenSSL-based web server
running on a machine in the local network. Our results demonstrate that
timing attacks against network servers are practical and therefore all
security systems should defend against them.
Reference:
Submitted to Usenix Security.
Full paper:
http://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf
|
|