In a recent Q&A with Bruce Schneier and James Ball (a journalist)[1],
Ball said, "Because the NSA and GCHQ have been influencing standards,
and working to covertly modify code, almost anything could potentially
have been compromised. Something as simple as – hypothetically –
modifying a basic random-number-generator could weaken numerous
implementations of open-source code."

In 2007, there was a fair amount of discussion about some elliptic
curve algorithms -- and specifically random-number generators
introduced by NIST in special publication 800-90 (now split off in to
800-90A)[2]. Here's a list of highlights from Bruce's article back
then[3]:


"... one of those generators -- the one based on elliptic curves -- is
not like the others. Called Dual_EC_DRBG, not only is it a mouthful to
say, it's also three orders of magnitude slower than its peers. It's
in the standard only because it's been championed by the NSA, which
first proposed it years ago in a related standardization project at
the American National Standards Institute. ... Problems with
Dual_EC_DRBG were first described in early 2006. The math is
complicated, but the general point is that the random numbers it
produces have a small bias. The problem isn't large enough to make the
algorithm unusable ... [but] at the CRYPTO 2007 conference in August,
Dan Shumow and Niels Ferguson showed that the algorithm contains a
weakness that can only be described a backdoor. ...

What Shumow and Ferguson showed is that these numbers have a
relationship with a second, secret set of numbers that can act as a
kind of skeleton key. If you know the secret numbers, you can predict
the output of the random-number generator after collecting just 32
bytes of its output. To put that in real terms, you only need to
monitor one TLS internet encryption connection in order to crack the
security of that protocol. If you know the secret numbers, you can
completely break any instantiation of Dual_EC_DRBG.

The researchers don't know what the secret numbers are. But because of
the way the algorithm works, the person who produced the constants
might know; he had the mathematical opportunity to produce the
constants and the secret numbers in tandem. ... We don't know where
the constants came from in the first place. We only know that whoever
came up with them could have the key to this backdoor. And we know
there's no way for NIST -- or anyone else -- to prove otherwise. ...

Even if no one knows the secret numbers, the fact that the backdoor is
present makes Dual_EC_DRBG very fragile. If someone were to solve just
one instance of the algorithm's elliptic-curve problem, he would
effectively have the keys to the kingdom. ...

I don't understand why the NSA was so insistent about including
Dual_EC_DRBG in the standard. It makes no sense as a trap door: It's
public, and rather obvious. It makes no sense from an engineering
perspective: It's too slow for anyone to willingly use it. And it
makes no sense from a backwards-compatibility perspective: Swapping
one random-number generator for another is easy.

My recommendation, if you're in need of a random-number generator, is
not to use Dual_EC_DRBG under any circumstances. If you have to use
something in SP 800-90, use CTR_DRBG or Hash_DRBG."


So from Ball's recent comments one might suppose that software to keep
an eye on are those that use or could potentially be using
Dual_EC_DRBG from NIST special publication 800-90A. It so happens that
there is a list of implementations using the DRBG validation suite[4].
Some of them could be repeats but I count about 65 hits on
Dual_EC_DRBG -- including the OpenSSL FIPS module. What I find
interesting is that Bruce has been helping the Guardian vet all the
documents they're publishing and aside from talking about his own
methods for remaining secure[5], he's not gone on record about his
speculation as to what technical methods the NSA have used to
compromise so much at once. However, I have seen much call for
industry insiders to come forward if they've taken part in any known
compromise of products. This is the closest I've come to tracking down
anything useful -- and my hand was heavily tipped by a friend that did
some sleuthing of his own to suggest Dual_EC_DRBG in the first place.
But I am surprised to find just how many have implemented Dual_EC_DRBG
despite all the warnings against it in light of how crucial random
number generation is to the integrity of PKI.

-Gary


1. 
http://www.theguardian.com/commentisfree/2013/sep/06/nsa-surveillance-revelations-encryption-expert-chat
2. http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf
3. 
http://www.wired.com/politics/security/commentary/securitymatters/2007/11/securitymatters_1115
4. http://csrc.nist.gov/groups/STM/cavp/documents/drbg/drbgval.html
5. 
http://www.theguardian.com/world/2013/sep/05/nsa-how-to-remain-secure-surveillance
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to