Keep Track of the Latest Vulnerabilities
with SecurityTracker!
    Home    |    View Topics    |    Search    |    Contact Us    |   


Sign Up
Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
Instant Alerts
Buy our Premium Vulnerability Notification Service to receive customized, instant alerts
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
Become a Partner and License Our Database or Notification Service
Report a Bug
Report a vulnerability that you have found to SecurityTracker

Category:   Application (Security)  >   OpenSSH Vendors:
(OpenSSH Issues Update) Re: OpenSSL Timing Characteristics Let Remote Users Determine Private Keys in Certain Cases
SecurityTracker Alert ID:  1006469
SecurityTracker URL:
CVE Reference:   CAN-2003-0147   (Links to External Site)
Date:  Apr 4 2003
Impact:   Disclosure of authentication information

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:

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:   The vendor states that there is no evidence that the SSH protocol is vulnerable to flaw described in this alert. However, OpenSSH has releaed a new version (3.6 and later) that adds RSA blinding to ssh(1), sshd(8), and ssh-agent(1). The code is available at:

Vendor URL: (Links to External Site)
Cause:   Randomization error, State error
Underlying OS:  Linux (Any), UNIX (Any), error

Message History:   This archive entry is a follow-up to the message listed below.
Mar 14 2003 OpenSSL Timing Characteristics Let Remote Users Determine Private Keys in Certain Cases

 Source Message Contents

Date:  Tue, 1 Apr 2003 22:21:41 +0200
Subject:  OpenSSH 3.6.1 released

OpenSSH 3.6.1 has just been released. It will be available from the
mirrors listed at shortly.

OpenSSH is a 100% complete SSH protocol version 1.3, 1.5 and 2.0
implementation and includes sftp client and server support.

We would like to thank the OpenSSH community for their continued
support to the project, especially those who contributed source and
bought T-shirts or posters.

We have a new design of T-shirt available, more info on

For international orders use
and for European orders, use

Changes since OpenSSH 3.6:

* The 'kex guesses' bugfix from OpenSSH 3.6 triggers a bug
  in a few other SSH v2 implementations and causes connections to
  stall.  OpenSSH 3.6.1 disables this bugfix when interoperating
  with these implementations.

Changes between OpenSSH 3.5 and OpenSSH 3.6:

* RSA blinding is now used by ssh(1), sshd(8) and ssh-agent(1).
  in order to avoid potential timing attacks against the RSA keys.
  Older versions of OpenSSH have been using RSA blinding in
  ssh-keysign(1) only.

  Please note that there is no evidence that the SSH protocol is
  vulnerable to the OpenSSL/TLS timing attack described in

* ssh-agent(1) optionally requires user confirmation if a key gets
  used, see '-c' in ssh-add(1).

* sshd(8) now handles PermitRootLogin correctly when UsePrivilegeSeparation
  is enabled.

* sshd(8) now removes X11 cookies when a session gets closed.

* ssh-keysign(8) is disabled by default and only enabled if the
  new EnableSSHKeysign option is set in the global ssh_config(5)

* ssh(1) and sshd(8) now handle 'kex guesses' correctly (key exchange

* ssh(1) no longer overwrites SIG_IGN.  This matches behaviour from
  rsh(1) and is used by backup tools.

* setting ProxyCommand to 'none' disables the proxy feature, see

* scp(1) supports add -1 and -2.

* scp(1) supports bandwidth limiting.

* sftp(1) displays a progressmeter.

* sftp(1) has improved error handling for scripting.


- MD5 (openssh-3.6.1p1.tar.gz) = d4c2c88b883f097fe88e327cbb4b2e2a
- MD5 (openssh-3.6.1.tgz) = aa2acd2be17dc3fd514a1e09336aab51

Reporting Bugs:

- please read

OpenSSH is brought to you by Markus Friedl, Niels Provos, Theo de Raadt,
Kevin Steves, Damien Miller and Ben Lindstrom.


Go to the Top of This SecurityTracker Archive Page

Home   |    View Topics   |    Search   |    Contact Us

Copyright 2017, LLC