Output of the Dual Elliptic Curve Deterministic Random Bit Generator (DUAL_EC_DRBG) algorithm may be predictable by an attacker who has chosen elliptic curve parameters in advance.
NIST SP 800-90A defines three elliptic curves for use in Dual_EC_DBRG but does not describe the provenance of the parameters used to define the curves. Noted cryptographers and cryptographic vendors have expressed concern that an attacker who has carefully chosen parameters used to define the curves could predict the output of Dual_EC_DBRG. Due to these concerns, and since Dual_EC_DRBG is an approved Federal Information Processing Standard (FIPS), NIST has reopened Special Publication 800-90 for comment. The CERT/CC has contacted vendors that are identified by NIST as being FIPS-certified Dual_EC_DRBG implentors. We have included their responses below and in the Vendor Information section.
This issue is an instance of CWE-327: Use of a Broken or Risky Cryptographic Algorithm.
The following vendors do use DUAL_EC_DRBG in their products, but it is not enabled by default:
The following vendors do use DUAL_EC_DRBG in their products, and it is enabled by default:
Further details for each vendor are available in the Vendor Information section below.
A remote, unauthenticated attacker with minimal knowledge of the vulnerable system and the ability to conduct a brute force attack against an affected application may be able to guess secret key material. Secondary impacts include authenticated access to the system through the affected service or the ability to perform man-in-the-middle attacks.
Apply an Update
Discontinue use of Dual_EC_DRBG
The NIST bulletin recommends organizations discontinue use of the algorithm until its security concerns are mitigated:
NIST strongly recommends that, pending the resolution of the security concerns and the re-issuance of SP 800-90A, the Dual_EC_DRBG, as specified in the January 2012 version of SP 800-90A,no longer be used.
There are several other DRBG algorithms available for generating random numbers, including those based on hash functions and block ciphers. Utilizing one of those algorithms will mitigate the risk of this vulnerability.
Generate elliptic curves with known provenance
While not compatible with FIPS specifications, generating your own elliptic curves will provide assurance that random numbers cannot be predicted. See section A.2 of Appendix A in NIST SP 800-90A for more information.
Regenerate key material
Due to the nature of the flaw, any key material generated using Dual_EC_DRBG should be considered insecure. After changing algorithms or generating new curves, the key material must be regenerated. Vendor-specific instructions for doing this can also be found in the Vendor Information section of this document.
Dan Shumow, Niels Ferguson (2007) and Daniel Brown (2006) published information related to this issue.
This document was written by Chris King.
|Date First Published:||2013-11-07|
|Date Last Updated:||2014-03-25 14:43 UTC|