1 / 44

“Defeating SSL” Impact of Hash collisions on cyber security

“Defeating SSL” Impact of Hash collisions on cyber security . By vaibhav. Secure Sockets Layer. Objective. Background Information of SSL , MD5 & “Certificate””Public Key” Infrastructure Attack scenario on core assumption of SSL i.e. collision resistance of hash function

unity
Download Presentation

“Defeating SSL” Impact of Hash collisions on cyber security

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. “Defeating SSL” Impact of Hash collisions on cyber security By vaibhav

  2. Secure Sockets Layer

  3. Objective • Background Information of SSL , MD5 & “Certificate”\”Public Key” Infrastructure • Attack scenario on core assumption of SSL i.e. collision resistance of hash function • Attack scenarios on the specification\ implementation of SSL

  4. when in doubt , ask

  5. Cryptographic Hash • Serves an essential role within a wide range of security applications. • Like (a) digital signature generation and verification (b) session key establishment (c) management of password schemes (d) commitment schemes in cryptographic protocols

  6. Hash Functions • Compress an arbitrary finite length m-bit input message into a fixed n-bit output value called hash. hash if h = H(m) then, • h is called the "hash" of m, • m is called a "preimage" of h Data Message Digest

  7. Properties of (good)Hash Function • (practicality) computation of hash can be done efficiently • (preimage resistance) given h, it is hard to compute a preimage of h • (second preimage resistance) given m, it is hard to compute a second preimage of m • (collision resistance) it is hard to compute a collision for H

  8. Lets talk about SSL first • Ensures secrecy ,authenticity, and integrity. • Safeguarding communication from both the passive and active adversaries. • SSL rely heavily on the x509* certificate structure. • For SSL protocols , it is the “common name” field in the subject of an x509 certificate that is used to identify entities presenting certificates.

  9. X509 ? Digital certificates ? What ? • ITU-T standard for the public key infrastructure. • X.509 specifies standard formats for public key certificates • Public key certificates are structured according to version3 of X.509 specification. • A public key certificate uses a digital signature to bind a public key with an identity.

  10. Certification Authorities & Hierarchy • Browsers ship with a list of trusted CA certificate. • Firefox 3 includes 135 trusted CA certs. • CAs’ responsibilities: • verify the identity of the requestor • verify domain ownership for SSL certs • revoke bad certificates

  11. Check Signature Signin CA in trust store Check Expiry CN Site Name

  12. What if … Root CA Hack.org is a valid certificate issued by intermediate II CA What if hack.org issues a certificate for richest-bank.com ? Intermediate I CA Intermediate II CA Chain verification algorithm as described before would validate this certificate too. Hack.org Richest-bank.com

  13. Something must be wrong, but... • All the signatures are valid. • Nothing has expired. • The chain is intact. • The root CA is embedded in the browser and trusted. But we just created a valid certificate for Richest-bank, and we're not Richest-bank?

  14. X509v3 extensions provide a extension to tackle with this. Basic Constraints: critical CA:FALSE But … • Most CAs didn't explicitly set basicConstraints: CA=False • Whether the field was there or not, most SSL implementations didn't bother to check it. Hacker moxie marlinspike a tool, sslsniff, to attack this vulnerability. Eventually Microsoft released a patch to address this issue.

  15. Obtaining certificates User User installs private key and certificate on a web server Create and signs certificate Public Private Key pair generation Validates user identity and domain ownership User Identity CSR generated Domain name CSR sent to CA Public Key

  16. Certificate request format

  17. Certificate structure • the "to-be-signed" part, consisting of: • serial number • validity period • issuer name • subject • subject public key • "basic constraints" field, containing • a bit indicating whether this is a CA certificate or a user certificate • a path length field • the "signature" part, containing a digital signature, produced by CA`s private key, over the "to-be-signed“ part

  18. Secure websites and certificates

  19. Attack Scenario using Rogue CA certificate

  20. Revisiting MD5 and MD5 Collision

  21. Overview of MD5 Hash function MD5 designed in 1991 • Iterative design using compression function. • Collision  different messages , same hash

  22. MD5 Collisions in 2004 2004: First MD5 collision attack • Only difference between messages in random looking 128 collision bytes • Currently < 1 second on commodity PC MD5( ) = MD5( )

  23. MD5 Collisions in 2007 2007: Stronger collision attack • Chosen-Prefix Collisions • Messages can differ freely up to the random looking 716 collision bytes • Currently approx. 1 day on PS3+PC MD5( ) = MD5( )

  24. Generating Colliding Certificates

  25. History of colliding certificates Certificates with colliding to-be-signed parts • generate a pair of certificates • sign the legitimate certificate • copy the signature into the rogue cert Previous work • Different RSA public keys in 2005 • using 2004 collision attack • Different identities in 2006 • using chosen-prefix collisions • the theory is well known since 2007

  26. Colliding certificates in 2006

  27. Rogue CA certificate CA bit

  28. Action Items for generating hash colliding certificates • Find CA which issues MD5 signed certificate • Predict the Validity and Serial Number • Construct structure and content rogue Certificate such that real certificate( constructed by CA) and rouge CA cert(Constructed by Hackers) are perfectly aligned. • Compute the collision blocks • Create RSA key pair such that it includes collision block in it. • Construct CSR and send it to CA for signing Detailed view

  29. Why RapidSSL? • Out of 9000 MD5 certificates collected 97% of those were issued by RapidSSL. • RapidSSL issues exactly 6 seconds after “accept” button is clicked and expires in one year. • RapidSSL uses sequential serial numbers and on weekend approximately 1000 certificates are issued.

  30. Predicting the serial number • Get the serial number S on Friday • Predict the value for time T on Sunday to be S+1000 • Generate the collision bits • Shortly before time T buy enough certs to increment the counter to S+999 • Send colliding request at time T and get serial number S+1000

  31. Collision generation and RSA keys • Based on the 2007 chosen-prefix collisions paper with new improvements • 1-2 days on a cluster of 200 PlayStation 3’s • Equivalent to 8000 desktop CPU cores or $20,000 on Amazon EC2 • takes couple of minutes to calculate RSA key pair such as it contains collision blocks

  32. Another Attack on SSL

  33. Background • As mentioned earlier SSL handshake uses “common name” of certificate and compares with site name. • Before year 2000 actual people were involved while dealing with certificate request. • Entities are validated based on proof of ownership of the domain listed in the “common name” field. • Now a days a simple lookup in WHOIS database for the root domain listed and sending a confirmation mail would complete the verification part.

  34. ASN1.0 and Certificates • Certificates are formatted using ASN1.0 notation. • Supports different type of strings, all represented as PASCAL strings. • Represented in memory by the length of the string followed by the string data. • NULL character has no special meaning, like C strings Example :

  35. Malformed Request • One can create a certificate request with common name as www.richest-bank.com\0www.hack.com • CA for verification would do WHOIS • issues the certificate with embedded NULL to the owner of hack.com. • Spoof www.richest-bank.com and use NULL embedded certificate

  36. Defeating SSL • This is how comparison function would be implemented for CN verification. char *destination = getDomainWeAreConnectingTo(); char *commonName = getCommonNameFromCertificate(); BooleverythingIsOk = (strcmp(destination, commonName) == 0); char *commonName char *destination string match

  37. Question ?

  38. References • http://www.win.tue.nl/hashclash/rogue-ca/ • http://conf.isi.qut.edu.au/auscert/proceedings/2006/gauravaram06collision.pdf • https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf

More Related