RDRAND used directly when default engines loaded in openssl-1.0.1-beta1 through openssl-1.0.1e
coderman
coderman@gmail.com
Sat Dec 14 04:33:31 PST 2013
as per the FreeBSD announcement[0] and others[1][2] direct use of
RDRAND as sole entropy source is not recommended.
from Westmere onward you could use AES-NI to make crypto fast in
OpenSSL. a common theme is to initialize OpenSSL via
ENGINE_load_builtin_engines() which lets OpenSSL take advantage of
this acceleration.
with Sandy Bridge you also got RDRAND. now load_builtin_engines
results in the application using RDRAND directly for all entropy, in
addition to accelerating AES.
if you are using an application linked with openssl-1.0.1-beta1
through openssl-1.0.1e you should do one of the following:
a.) rebuild your OpenSSL with OPENSSL_NO_RDRAND defined.
b.) call RAND_set_rand_engine(NULL) after ENGINE_load_builtin_engines().
c.) git pull latest openssl with commit: "Don't use rdrand engine as
default unless explicitly requested." - Dr. Stephen Henson
the OPENSSL_NO_RDRAND option is recommended; an inadvertent call to
load engines elsewhere could re-enable this bad rng behavior.
best regards,
0. "FreeBSD Developer Summit: Security Working Group, /dev/random"
https://wiki.freebsd.org/201309DevSummit/Security
1. "Surreptitiously Tampering with Computer Chips"
https://www.schneier.com/blog/archives/2013/09/surreptitiously.html
2. "How does the NSA break SSL? ... Weak random number generators"
http://blog.cryptographyengineering.com/2013/12/how-does-nsa-break-ssl.html
More information about the cypherpunks
mailing list