On the Practical Exploitability of Dual EC in TLS Implementations

On the Practical Exploitability of Dual EC in TLS Implementations

On the Practical Exploitability of Dual EC in TLS Implementations 1 2 3 2 Stephen Checkoway , Matt Fredrikson , Ruben Niederhagen , Adam Everspaugh 1 3 2 3,4 5 Matt Green , Tanja Lange , Tom Ristenpart , Dan Bernstein , Jake Maskiewicz , ! 5 Hovav Schacham Johns Hopkins1, University of Wisconsin2, TU Eindhoven3, University of Illinois — Chicago4, UCSD5 “…[Dual EC] contains a weakness that can only be seen as a backdoor.” — Bruce Schneier, 2007 Randomness and Bits • Dual EC DRBG is a deterministic random bit generator included in NIST SP 800-90 until April 2014! ! • A DRBG turns a small random string (a seed) into a large (approximately) random one keyboard timings mouse events seed0 seed1 seed2 Internal State disk interrupts } Generate Generate Generate … block0 block1 block2 Output Dual EC — A Provably Secure DRBG* *Not actually true • Dual Elliptic Curve DRBG relies on two points on an elliptic curve (P and Q) • Based on “elliptic curve discrete logarithm problem”: given P and Q, find a such that Q = aP DualEC ↦ ( Random Data Seed for next time • But if I can choose P, Q, then I can design F: F(block) ↦ seed Shumow & Ferguson, 2007 Runs in ~215 Dual EC — A Provably Secure DRBG* *Not actually true • Dual Elliptic Curve DRBG relies on two points on an elliptic curve (P and Q) • ReliesThe questionon “elliptic curve driving discrete the logarithm controversy problem”: given is: P didand someone Q, find a such choosethat Q = aP P and Q so that they F could↦ design[( F? Random Data Seed for next time • But if I can choose P, Q, then I can design G: G(P, Q, block) ↦ seed Runs in ~215 Why is this a problem? Client Server Generate client random client random Generate session ID, aP ,sigserver random, server random, session ID, cert(pk), a, signature nonce Generate b bP ,Finished Finished Master Secret = PRF(x(abP ), “master secret”, client server random) k DualEC ↦ [server random F(server random) ↦ seed Attacker and Server DualEC ↦ [ do the same thing Maybe not? • In reality, the server might… Client Server • Not release enough Dual EC Generate client random client random Generate output (we need 30 bytes) session ID, aP ,sigserver random, server random, session ID, cert(pk), a, signature nonce • Mix other entropy into Dual EC Generate b bP ,Finished • Re-seed often Finished This is only 28 Master Secret = PRF(x(abP ), “master secret”, client serverbytes! random) • Share state with other k sessions • Implement the spec wrong Testing Practical Exploitability • We tested RSA’s BSAFE, Microsoft’s SChannel, OpenSSL-FIPS • Focused on server, ECDHE cipher suites • We assume the attacker has F, sees network traffic • Modified each implementation to use P, Q such that we know F • Significant amount of reverse-engineering on SChannel and BSAFE Results: OpenSSL • We found: OpenSSL is impossible to exploit! Results: OpenSSL • Uses Dual EC to generate a 32-byte session ID • …but it also uses 20—45 bits of other entropy per call • time secs‖time μsecs‖counter‖PID • Complexity depends on guessability of counter, PID • If we know (time secs, counter, PID), attack runs in 1.2 seconds Results: SChannel • Only sends 28 bytes of Dual EC output • Does not use additional lsass.exe entropy or re-seed Dual EC Dual EC Each of these has a different • Also has an implementation Dual EC Dual EC state flaw • …that happens to make the attack slightly faster IIS IIS IIS • Leveraging attack on future sessions more difficult • Attack possible in ~63 minutes Results: BSAFE • Dual EC is the default RNG! Good enough for massive • Does not use additional surveillance entropy or re-seed often • BSAFE-C caches unused BSAFE-C 2.4 seconds outputs • Releases variable amounts of BSAFE-Java 64 minutes output: • 31-60 bytes for BSAFE-C Fine for targeted sessions • 28 bytes for BSAFE-Java Conclusions • Dual EC might contain a backdoor • Need concrete evidence that someone knows F! • If it does, they should hire better hackers • Fragile to low-level implementation choices • Only works for certain types of protocols • Design was suspicious from the start • Read the full paper at dualec.org.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    13 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us