TLS/SSL Protocol Design 201006

Nate Lawson
Nate LawsonEngineer at Root Labs
TLS/SSL protocol design


        Nate Lawson
      nate@rootlabs.com

      Presented at Cal Poly
          June 3, 2010
Overview

• Introduction to SSL/TLS
   – Focus on HTTP+SSL
• Design goals and result
• Cryptography primer
   – Desired properties
   – Primitives for implementing them
• Protocol walkthrough in detail
• Attacks and mitigation
My background

• Root Labs founder
   – Design and analyze security systems
   – Emphasis on embedded, kernel, and crypto
• Previously, Cryptography Research
   – Paul Kocher’s company (author of SSL 3.0)
   – Co-designed Blu-ray disc security layer, aka BD+
• Crypto engineer at Infogard Labs
Security is hard but rewarding

• Protocols and crypto are susceptible to very minor
  mistakes
• Example: SSL timing attacks over the Internet

• Hard = fun and $
   – Breaking and building things is exciting
   – Security is a desired skill for any resumé
SSL history

• SSL (Secure Sockets Layer) v2.0 (1994)
   – Serious security problems including incomplete MAC
     coverage of padding
   – Designed by Netscape
• SSL v3.0 (1996)
   – Major revision to address security problems
   – Paul Kocher + Netscape
• TLS (Transport Layer Security) 1.0 (1999)
   – Added new crypto algorithm support
   – IETF takes over
• TLS 1.1 (2006)
   – Address Vaudenay’s CBC attacks on record layer
   – Provide implementation guidance
Layered model

• SSL provides security at the transport layer (OSI
  model L4)
   – Stream of bytes in, private/untampered stream of bytes
     out
   – Application logic is unmodified
   – Can be adapted to datagram service also (DTLS)
• Compare to IPSEC
   – Mostly used as an L3 protocol
SMTP over SSL

• HTTP, SMTP, POP, IMAP, etc. all have SSL variants
• Two design choices to add SSL
   – Use alternate port since SSL session establishment differs
     from original protocol
      – SMTPS (TCP port 465 and 587)
   – Add protocol-specific message to toggle SSL mode
      – STARTTLS over port 25 (RFC 3207)
• SMTP session over SSL is unchanged
Security goals

• Privacy
   – Data within SSL session should not be recoverable by
     anyone except the endpoints
• Integrity
   – Data in transit should not be modified without detection
     except by the endpoints
• Authentication
   – No endpoint should be able to masquerade as another
Attacker capabilities

• Sorted by increasing power
• Normal participant
   – Can talk to server that is also talking to other parties
• Passive eavesdropping
   – Observe any or all messages sent by other parties
• Active (Man in the Middle)
   – Insert or replay old messages
   – Modify
   – Delete or reorder
• Secure protocols must address all these threats
Crypto property: privacy

• No one other than the intended recipient of a
  message can determine its contents
• Caveats
   – Adversary could have powers of knowing or choosing
     plaintext
   – Traffic analysis
      – Length, latency, unencrypted data like IP or Ethernet
        addresses
      – Side channel attacks: power consumption, EM, timing of
        operations
Crypto property: integrity

• Any change made to a message after it has been
  sent will be detected by the recipient
   – Corollary: reordering, replay, insertion, or deletion of
     messages will also be detected
• Caveats
   – Privacy is not integrity protection
   – Error recovery
       – You can’t always terminate the session
   – Root of trust (shared system?)
Crypto property: authentication

• Messages can be associated with a given identity with
  high level of confidence
• Caveats
   – Managing identification
      – Lost keys, forgotten passwords, laptop walks away
      – Revocation of old keys and refreshing to new ones
   – Bootstrapping: what is your root of trust?
Security goal implementation

• Privacy
   – Data is encrypted with block cipher (e.g., AES)
   – Cipher key is exchanged via public key crypto (e.g., RSA)
• Integrity
   – Data is protected by a MAC (e.g., SHA1-HMAC)
• Authentication
   – Server and/or client identity is verified via certificates
Primitive: symmetric crypto

• Block ciphers turn plaintext block into ciphertext
  using a secret key
   – Recipient inverts (decrypts) block using same key
• Examples: AES, 3DES, RC5
Primitive: symmetric crypto

• Often requires “chaining” to encrypt messages longer
  than a single block
• This does not provide integrity protection
Primitive: public key crypto

• Data transformed with one key can only be inverted
  with the other key (asymmetric)
• Examples: RSA, Diffie-Hellman, DSA
   – And elliptic curve variants
• Can encrypt data to a recipient without also being
  able to decrypt it afterward
• Can sign data by encrypting it with one key and
  publishing the other
Primitive: public key crypto
Primitive: certificates

• Associate a name with a public key
   – Trusted party uses private key to sign the message
     “joe.com = 0x09f9…”
   – Public key of trusted party came with your web browser
• Key management still a problem
   – Expire certs and explicitly revoke them if a private key is
     compromised (CRL)
   – Or, check with the trusted party each time you want to
     use one (OCSP)
Primitive: message authentication code

• A MAC combines a hash function and secret key with
  the data to protect
   – Resulting MAC is transmitted with message
   – Recipient performs same process and verifies result
     matches
• Attacker cannot…
   – Modify message without changing its hash
   – Forge a new MAC value without knowing the key
• Examples: SHA1-HMAC, AES CMAC
Primitive: secure PRNG

• Outputs a cryptographically-strong, pseudo-random
  stream of data based on initial seed
   – Initial seed needs to have enough entropy
   – PRNGs used many places (key generation, IVs, nonces)
• Examples: /dev/random, Yarrow
   – Often based on a hash function like SHA-1
Overview of typical session

       Client          Server

      ClientHello
                      ServerHello
                      Certificate
                      ServerHelloDone

ClientKeyExchange
ChangeCipherSpec
Finished
                      ChangeCipherSpec
                      Finished

ApplicationData       ApplicationData
Decoding with WireShark
Message: Client/ServerHello

• Initiates connection and specifies parameters
   – Initiator sends list (i.e., CipherSuites) and responder
     selects one item from list
   – SessionID is used for resuming (explained later)




                      Client/ServerHello
                     Version
                     RandomData
                     SessionID
                     CipherSuites
                     CompressionMethods
Message: Certificate

• Provides a signed public key value to the other party
   – Almost always the server although clients can also
     authenticate with a cert
   – Other side must verify information in cert (i.e., the CN
     field is myhost.com = IP address in my TCP connection)




                          Certificate
                     ASN.1Cert
Message: ServerHelloDone

• Signifies end of server auth process
   – Allows multi-pass authentication handshake
   – Otherwise unimportant
• Cert-based auth is single-pass
Message: ClientKeyExchange

• Client sends encrypted premaster secret to server
   – Assumes RSA public key crypto (most common)
   – Server checks ClientVersion matches highest advertised
     version




                    ClientKeyExchange
                   RSA-PubKey-Encrypt(
                       ClientVersion
                       PreMasterSecret[48]
                   )
Message: ChangeCipherSpec

• Indicates following datagrams will be encrypted
   – Disambiguates case where next message may be error or
     encrypted data
• Each side now calculates data encryption key (K)




                 MasterSecret computation
                   Hash(
                       PreMasterSecret
                       ClientRandom
                       ServerRandom
                   )
Message: Finished

• Indicates all protocol negotiation is complete and
  data may be exchanged
   – First encrypted message of each party
   – Includes hashes of all handshake messages seen by each
     side
      – Also, magic integers 0x434C4E54 or 0x53525652 (why?)




                         Finished
               AES-K-Encrypt(
                    Magic
                    MD5(handshake_messages)
                    SHA1(handshake_messages)
               )
Message: ApplicationData

• Encapsulates encrypted data
   – Includes MAC for integrity protection
   – Can span multiple TCP packets




                       ApplicationData
                     AES-CBC-K-Encrypt(
                          Type
                          Version
                          Length
                          Data
                          MAC
                          Padding
                          PaddingLength
                     )
Session resumption

       Client            Server



      ClientHello

                        ServerHello
                        ChangeCipherSpec
                        Finished

ChangeCipherSpec
Finished


ApplicationData         ApplicationData
Formal verification of protocol security

• Goal: formal system for finding any security
  problems in design
   – BAN logic (BAN89)
      – Formalized authentication with primitives like “X said” and “Y
        believes”
   – Model checking (MMS98)
      – Build a FSM model of the system and enumerate states
• Difficult and time consuming but worth it if your
  protocol is important
Attack: similarly-named certs

• What if server has valid certificate but a similar name
  to another server?
   – Example: Microsoft vs. Micr0soft
• Outside the scope of SSL but relevant
• Used all the time with phishing emails
   – But few bother with SSL currently
   – Yellow lock JPEG on page sufficient

   – Now, please enter your PIN
Attack: side channel

• Side effects of handling secure data can be indirectly
  observed
• Example: timing attack on server’s private key
  [BB03]
   – Observe how long the server takes to return an error
     when sending invalid ClientKeyExchange
   – Bits of the key can slowly be discovered
     … over the Internet
• Tricky problem to be sure you’ve solved adequately
Conclusions

• SSL provides a well-tested secure transport layer
• Security protocols require careful interdependence of
  primitives
   – Privacy
   – Integrity protection
   – Authentication
• Easy to make mistakes designing security and crypto
  in particular

• This stuff is a lot of fun!
Attack: 0-byte in CN field

• Certs are ASN.1 encoded
   – Length-counted strings vs. nul-terminated
   – Allows for i18n hostname in CommonName
• sslsniff (Marlinspike, 2009/7)
   – Browser may use C string routines while CA used length-
     counted routines
   – Attacker gets a cert for:
      – www.paypal.com0.example.org
      – Worse: *0.example.org
Attack: data injection via renegotiation

• Session can be renegotiated by client or server
   – Often used to go from anonymous to client-cert
     authenticated session (IIS)
   – Different from session resume
• MITM can insert bad data into authenticated session
  (Ray/Dispensa, 2009/11)
   – Client connects to server, blocked by MITM
   – MITM starts anon SSL session to server and sends
     malicious POST request over it
   – MITM forwards original ClientHello and all subsequent
     (re)negotiation messages
• Attacker has now run command as user, but can’t
  decrypt any of the output
Fixing v2.0: downgrade attacks

• Backwards compatibility with insecure protocol is
  difficult
   – Active attacker could change ServerHello to advertise v2-
     only
• Clever solution: put 64 bits of 0x3 in the RSA
  padding
   – Attacker cannot substitute their own key without breaking
     the server cert
   – Luckily, SSL v2 only supported RSA key exchange
Recommended reading
•   [TLS06] The Transport Layer Security (TLS) Protocol, Version 1.1. http://tools.ietf.org/html/rfc4346
•   [Resc02] Rescarola, E. Introduction to OpenSSL programming. http://www.rtfm.com/openssl-examples/
•   [WS96] David Wagner and Bruce Schneier. Analysis of the SSL 3.0 Protocol. 1996.
    http://citeseer.ist.psu.edu/wagner96analysis.html
•   [MMS98] John C. Mitchell, Vitaly Shmatikov, and Ulrich Stern. Finite-state analysis of SSL 3.0. In Seventh
    USENIX Security Symposium, pages 201 - 216, 1998. http://citeseer.ist.psu.edu/mitchell98finitestate.html
•   [BAN90] Burrows, M., Abadi, M., and Needham, R. M. "A Logic of Authentication", ACM Transactions on
    Computer Systems, Vol. 8, No. 1, Feb 1990, pp. 18 - 36. A Formal Semantics for Evaluating Cryptographic
    Protocols p 14. http://citeseer.ist.psu.edu/burrows90logic.htm
•   [BB03] D. Boneh and D. Brumley. Remote Timing Attacks are Practical. Proceedings of the 12th USENIX
    Security Symposium, August 2003. http://citeseer.ist.psu.edu/article/boneh03remote.html
•   M. Marlinspike, Null Prefix Attacks Against SSL/TLS Certificates. July 29, 2009.
    http://www.thoughtcrime.org/software/sslsniff/
•   M. Ray and S. Dispensa, Renegotiating TLS. November 4, 2009. http://extendedsubset.com/?p=10
1 of 38

Recommended

SSL/TLSSSL/TLS
SSL/TLSDr Anjan Krishnamurthy
5.9K views27 slides
TLS OptimizationTLS Optimization
TLS OptimizationNate Lawson
7.7K views45 slides
SSL And TLS SSL And TLS
SSL And TLS Ghanshyam Patel
2.5K views54 slides

More Related Content

What's hot(20)

Secure socket layerSecure socket layer
Secure socket layer
Nishant Pahad898 views
Transport Layer SecurityTransport Layer Security
Transport Layer Security
Chhatra Thapa12.4K views
Secure Socket LayerSecure Socket Layer
Secure Socket Layer
Abhishek Gupta536 views
SSL/TLS HandshakeSSL/TLS Handshake
SSL/TLS Handshake
Arpit Agarwal1.2K views
PPT ON WEB SECURITY BY MONODIP SINGHA ROYPPT ON WEB SECURITY BY MONODIP SINGHA ROY
PPT ON WEB SECURITY BY MONODIP SINGHA ROY
Monodip Singha Roy446 views
Transport Layer SecurityTransport Layer Security
Transport Layer Security
Huda Seyam336 views
Transport Layer Security Transport Layer Security
Transport Layer Security
Ibrahiem Mohammed623 views
Transport layer securityTransport layer security
Transport layer security
Hrudya Balachandran3.4K views
Ssl and tlsSsl and tls
Ssl and tls
Rana assad ali10.1K views
Basics of sslBasics of ssl
Basics of ssl
n|u - The Open Security Community2.6K views
secure socket layersecure socket layer
secure socket layer
Amar Shah1.2K views
SSL Secure socket layerSSL Secure socket layer
SSL Secure socket layer
Ahmed Elnaggar8.6K views
Introduction to Secure Sockets LayerIntroduction to Secure Sockets Layer
Introduction to Secure Sockets Layer
Nascenia IT29.6K views
SSL/TLS 101SSL/TLS 101
SSL/TLS 101
Chul-Woong Yang1.1K views
Transport layer securityTransport layer security
Transport layer security
Hrudya Balachandran1.9K views
Secure Socket Layer (SSL)Secure Socket Layer (SSL)
Secure Socket Layer (SSL)
Samip jain6.5K views

Viewers also liked(18)

ACPI and FreeBSD (Part 1)ACPI and FreeBSD (Part 1)
ACPI and FreeBSD (Part 1)
Nate Lawson1.6K views
Crypto Strikes Back! (Google 2009)Crypto Strikes Back! (Google 2009)
Crypto Strikes Back! (Google 2009)
Nate Lawson3.7K views
When Crypto Attacks! (Yahoo 2009)When Crypto Attacks! (Yahoo 2009)
When Crypto Attacks! (Yahoo 2009)
Nate Lawson3K views
Foundations of Platform SecurityFoundations of Platform Security
Foundations of Platform Security
Nate Lawson830 views
ACPI and FreeBSD (Part 2)ACPI and FreeBSD (Part 2)
ACPI and FreeBSD (Part 2)
Nate Lawson3.5K views
TLS/SSL MAC security flawTLS/SSL MAC security flaw
TLS/SSL MAC security flaw
Nate Lawson1.5K views
Giao thức bảo mật SSLGiao thức bảo mật SSL
Giao thức bảo mật SSL
conglongit9016.5K views
Transport layer security (tls)Transport layer security (tls)
Transport layer security (tls)
Kalpesh Kalekar5.3K views
Secure electronic transaction (set)Secure electronic transaction (set)
Secure electronic transaction (set)
Agnė Chomentauskaitė26.3K views
SSL/TLSSSL/TLS
SSL/TLS
pavansmiles7K views
Network securityNetwork security
Network security
Gichelle Amon215.2K views

Similar to TLS/SSL Protocol Design 201006

Ip sec and  sslIp sec and  ssl
Ip sec and sslMohd Arif
2.3K views35 slides
TransportsecTransportsec
TransportsecBogdan Korniyenko
75 views49 slides
ch22.pptch22.ppt
ch22.pptImXaib
9 views36 slides
Ip sec talkIp sec talk
Ip sec talkanoean
605 views47 slides
03-SSL (1).ppt03-SSL (1).ppt
03-SSL (1).pptZAKARIAABED1
7 views59 slides

Similar to TLS/SSL Protocol Design 201006(20)

Ip sec and  sslIp sec and  ssl
Ip sec and ssl
Mohd Arif2.3K views
ssl-tls-ipsec-vpn.pptxssl-tls-ipsec-vpn.pptx
ssl-tls-ipsec-vpn.pptx
jithu263275 views
TransportsecTransportsec
Transportsec
Bogdan Korniyenko75 views
ch22.pptch22.ppt
ch22.ppt
ImXaib9 views
Ip sec talkIp sec talk
Ip sec talk
anoean605 views
03-SSL (1).ppt03-SSL (1).ppt
03-SSL (1).ppt
ZAKARIAABED17 views
03-SSL (2).ppt03-SSL (2).ppt
03-SSL (2).ppt
ShounakDas168 views
Computer network (4)Computer network (4)
Computer network (4)
NYversity512 views
18CS2005 Cryptography and Network Security18CS2005 Cryptography and Network Security
18CS2005 Cryptography and Network Security
Kathirvel Ayyaswamy122 views
Lecture 6 web securityLecture 6 web security
Lecture 6 web security
rajakhurram9.2K views
Unit08Unit08
Unit08
Nurul Nadirah564 views
CS6004 CYBER FORENSICS CS6004 CYBER FORENSICS
CS6004 CYBER FORENSICS
Kathirvel Ayyaswamy4.3K views
CS6701 CRYPTOGRAPHY AND NETWORK SECURITYCS6701 CRYPTOGRAPHY AND NETWORK SECURITY
CS6701 CRYPTOGRAPHY AND NETWORK SECURITY
Kathirvel Ayyaswamy7K views
Unit -- 5.pptUnit -- 5.ppt
Unit -- 5.ppt
DHANABALSUBRAMANIAN3 views
8.SSL encryption.ppt8.SSL encryption.ppt
8.SSL encryption.ppt
NoName2611773 views
CRYPTOGRAPHY AND NETWORK SECURITY- Transport-level SecurityCRYPTOGRAPHY AND NETWORK SECURITY- Transport-level Security
CRYPTOGRAPHY AND NETWORK SECURITY- Transport-level Security
Jyothishmathi Institute of Technology and Science Karimnagar249 views
key distribution in network securitykey distribution in network security
key distribution in network security
babak danyal36.4K views

Recently uploaded(20)

Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet49 views
ThroughputThroughput
Throughput
Moisés Armani Ramírez31 views
Tunable Laser (1).pptxTunable Laser (1).pptx
Tunable Laser (1).pptx
Hajira Mahmood21 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation24 views

TLS/SSL Protocol Design 201006

  • 1. TLS/SSL protocol design Nate Lawson nate@rootlabs.com Presented at Cal Poly June 3, 2010
  • 2. Overview • Introduction to SSL/TLS – Focus on HTTP+SSL • Design goals and result • Cryptography primer – Desired properties – Primitives for implementing them • Protocol walkthrough in detail • Attacks and mitigation
  • 3. My background • Root Labs founder – Design and analyze security systems – Emphasis on embedded, kernel, and crypto • Previously, Cryptography Research – Paul Kocher’s company (author of SSL 3.0) – Co-designed Blu-ray disc security layer, aka BD+ • Crypto engineer at Infogard Labs
  • 4. Security is hard but rewarding • Protocols and crypto are susceptible to very minor mistakes • Example: SSL timing attacks over the Internet • Hard = fun and $ – Breaking and building things is exciting – Security is a desired skill for any resumé
  • 5. SSL history • SSL (Secure Sockets Layer) v2.0 (1994) – Serious security problems including incomplete MAC coverage of padding – Designed by Netscape • SSL v3.0 (1996) – Major revision to address security problems – Paul Kocher + Netscape • TLS (Transport Layer Security) 1.0 (1999) – Added new crypto algorithm support – IETF takes over • TLS 1.1 (2006) – Address Vaudenay’s CBC attacks on record layer – Provide implementation guidance
  • 6. Layered model • SSL provides security at the transport layer (OSI model L4) – Stream of bytes in, private/untampered stream of bytes out – Application logic is unmodified – Can be adapted to datagram service also (DTLS) • Compare to IPSEC – Mostly used as an L3 protocol
  • 7. SMTP over SSL • HTTP, SMTP, POP, IMAP, etc. all have SSL variants • Two design choices to add SSL – Use alternate port since SSL session establishment differs from original protocol – SMTPS (TCP port 465 and 587) – Add protocol-specific message to toggle SSL mode – STARTTLS over port 25 (RFC 3207) • SMTP session over SSL is unchanged
  • 8. Security goals • Privacy – Data within SSL session should not be recoverable by anyone except the endpoints • Integrity – Data in transit should not be modified without detection except by the endpoints • Authentication – No endpoint should be able to masquerade as another
  • 9. Attacker capabilities • Sorted by increasing power • Normal participant – Can talk to server that is also talking to other parties • Passive eavesdropping – Observe any or all messages sent by other parties • Active (Man in the Middle) – Insert or replay old messages – Modify – Delete or reorder • Secure protocols must address all these threats
  • 10. Crypto property: privacy • No one other than the intended recipient of a message can determine its contents • Caveats – Adversary could have powers of knowing or choosing plaintext – Traffic analysis – Length, latency, unencrypted data like IP or Ethernet addresses – Side channel attacks: power consumption, EM, timing of operations
  • 11. Crypto property: integrity • Any change made to a message after it has been sent will be detected by the recipient – Corollary: reordering, replay, insertion, or deletion of messages will also be detected • Caveats – Privacy is not integrity protection – Error recovery – You can’t always terminate the session – Root of trust (shared system?)
  • 12. Crypto property: authentication • Messages can be associated with a given identity with high level of confidence • Caveats – Managing identification – Lost keys, forgotten passwords, laptop walks away – Revocation of old keys and refreshing to new ones – Bootstrapping: what is your root of trust?
  • 13. Security goal implementation • Privacy – Data is encrypted with block cipher (e.g., AES) – Cipher key is exchanged via public key crypto (e.g., RSA) • Integrity – Data is protected by a MAC (e.g., SHA1-HMAC) • Authentication – Server and/or client identity is verified via certificates
  • 14. Primitive: symmetric crypto • Block ciphers turn plaintext block into ciphertext using a secret key – Recipient inverts (decrypts) block using same key • Examples: AES, 3DES, RC5
  • 15. Primitive: symmetric crypto • Often requires “chaining” to encrypt messages longer than a single block • This does not provide integrity protection
  • 16. Primitive: public key crypto • Data transformed with one key can only be inverted with the other key (asymmetric) • Examples: RSA, Diffie-Hellman, DSA – And elliptic curve variants • Can encrypt data to a recipient without also being able to decrypt it afterward • Can sign data by encrypting it with one key and publishing the other
  • 18. Primitive: certificates • Associate a name with a public key – Trusted party uses private key to sign the message “joe.com = 0x09f9…” – Public key of trusted party came with your web browser • Key management still a problem – Expire certs and explicitly revoke them if a private key is compromised (CRL) – Or, check with the trusted party each time you want to use one (OCSP)
  • 19. Primitive: message authentication code • A MAC combines a hash function and secret key with the data to protect – Resulting MAC is transmitted with message – Recipient performs same process and verifies result matches • Attacker cannot… – Modify message without changing its hash – Forge a new MAC value without knowing the key • Examples: SHA1-HMAC, AES CMAC
  • 20. Primitive: secure PRNG • Outputs a cryptographically-strong, pseudo-random stream of data based on initial seed – Initial seed needs to have enough entropy – PRNGs used many places (key generation, IVs, nonces) • Examples: /dev/random, Yarrow – Often based on a hash function like SHA-1
  • 21. Overview of typical session Client Server ClientHello ServerHello Certificate ServerHelloDone ClientKeyExchange ChangeCipherSpec Finished ChangeCipherSpec Finished ApplicationData ApplicationData
  • 23. Message: Client/ServerHello • Initiates connection and specifies parameters – Initiator sends list (i.e., CipherSuites) and responder selects one item from list – SessionID is used for resuming (explained later) Client/ServerHello Version RandomData SessionID CipherSuites CompressionMethods
  • 24. Message: Certificate • Provides a signed public key value to the other party – Almost always the server although clients can also authenticate with a cert – Other side must verify information in cert (i.e., the CN field is myhost.com = IP address in my TCP connection) Certificate ASN.1Cert
  • 25. Message: ServerHelloDone • Signifies end of server auth process – Allows multi-pass authentication handshake – Otherwise unimportant • Cert-based auth is single-pass
  • 26. Message: ClientKeyExchange • Client sends encrypted premaster secret to server – Assumes RSA public key crypto (most common) – Server checks ClientVersion matches highest advertised version ClientKeyExchange RSA-PubKey-Encrypt( ClientVersion PreMasterSecret[48] )
  • 27. Message: ChangeCipherSpec • Indicates following datagrams will be encrypted – Disambiguates case where next message may be error or encrypted data • Each side now calculates data encryption key (K) MasterSecret computation Hash( PreMasterSecret ClientRandom ServerRandom )
  • 28. Message: Finished • Indicates all protocol negotiation is complete and data may be exchanged – First encrypted message of each party – Includes hashes of all handshake messages seen by each side – Also, magic integers 0x434C4E54 or 0x53525652 (why?) Finished AES-K-Encrypt( Magic MD5(handshake_messages) SHA1(handshake_messages) )
  • 29. Message: ApplicationData • Encapsulates encrypted data – Includes MAC for integrity protection – Can span multiple TCP packets ApplicationData AES-CBC-K-Encrypt( Type Version Length Data MAC Padding PaddingLength )
  • 30. Session resumption Client Server ClientHello ServerHello ChangeCipherSpec Finished ChangeCipherSpec Finished ApplicationData ApplicationData
  • 31. Formal verification of protocol security • Goal: formal system for finding any security problems in design – BAN logic (BAN89) – Formalized authentication with primitives like “X said” and “Y believes” – Model checking (MMS98) – Build a FSM model of the system and enumerate states • Difficult and time consuming but worth it if your protocol is important
  • 32. Attack: similarly-named certs • What if server has valid certificate but a similar name to another server? – Example: Microsoft vs. Micr0soft • Outside the scope of SSL but relevant • Used all the time with phishing emails – But few bother with SSL currently – Yellow lock JPEG on page sufficient – Now, please enter your PIN
  • 33. Attack: side channel • Side effects of handling secure data can be indirectly observed • Example: timing attack on server’s private key [BB03] – Observe how long the server takes to return an error when sending invalid ClientKeyExchange – Bits of the key can slowly be discovered … over the Internet • Tricky problem to be sure you’ve solved adequately
  • 34. Conclusions • SSL provides a well-tested secure transport layer • Security protocols require careful interdependence of primitives – Privacy – Integrity protection – Authentication • Easy to make mistakes designing security and crypto in particular • This stuff is a lot of fun!
  • 35. Attack: 0-byte in CN field • Certs are ASN.1 encoded – Length-counted strings vs. nul-terminated – Allows for i18n hostname in CommonName • sslsniff (Marlinspike, 2009/7) – Browser may use C string routines while CA used length- counted routines – Attacker gets a cert for: – www.paypal.com0.example.org – Worse: *0.example.org
  • 36. Attack: data injection via renegotiation • Session can be renegotiated by client or server – Often used to go from anonymous to client-cert authenticated session (IIS) – Different from session resume • MITM can insert bad data into authenticated session (Ray/Dispensa, 2009/11) – Client connects to server, blocked by MITM – MITM starts anon SSL session to server and sends malicious POST request over it – MITM forwards original ClientHello and all subsequent (re)negotiation messages • Attacker has now run command as user, but can’t decrypt any of the output
  • 37. Fixing v2.0: downgrade attacks • Backwards compatibility with insecure protocol is difficult – Active attacker could change ServerHello to advertise v2- only • Clever solution: put 64 bits of 0x3 in the RSA padding – Attacker cannot substitute their own key without breaking the server cert – Luckily, SSL v2 only supported RSA key exchange
  • 38. Recommended reading • [TLS06] The Transport Layer Security (TLS) Protocol, Version 1.1. http://tools.ietf.org/html/rfc4346 • [Resc02] Rescarola, E. Introduction to OpenSSL programming. http://www.rtfm.com/openssl-examples/ • [WS96] David Wagner and Bruce Schneier. Analysis of the SSL 3.0 Protocol. 1996. http://citeseer.ist.psu.edu/wagner96analysis.html • [MMS98] John C. Mitchell, Vitaly Shmatikov, and Ulrich Stern. Finite-state analysis of SSL 3.0. In Seventh USENIX Security Symposium, pages 201 - 216, 1998. http://citeseer.ist.psu.edu/mitchell98finitestate.html • [BAN90] Burrows, M., Abadi, M., and Needham, R. M. "A Logic of Authentication", ACM Transactions on Computer Systems, Vol. 8, No. 1, Feb 1990, pp. 18 - 36. A Formal Semantics for Evaluating Cryptographic Protocols p 14. http://citeseer.ist.psu.edu/burrows90logic.htm • [BB03] D. Boneh and D. Brumley. Remote Timing Attacks are Practical. Proceedings of the 12th USENIX Security Symposium, August 2003. http://citeseer.ist.psu.edu/article/boneh03remote.html • M. Marlinspike, Null Prefix Attacks Against SSL/TLS Certificates. July 29, 2009. http://www.thoughtcrime.org/software/sslsniff/ • M. Ray and S. Dispensa, Renegotiating TLS. November 4, 2009. http://extendedsubset.com/?p=10