Transport Layer Security Presentatie Security Tom Rijnbeek
World Wide Web Eerste webpagina: 30 april 1993 Tegenwoordig: E-mail Internetbankieren Overheidszaken (DigiD)
World Wide Web Probleem: World Wide Web maakt gebruik van onbeveiligde kanalen.
Inhoud Lagenmodel TLS Handshake protocol Record protocol Security analyse HTTPS
Inhoud Lagenmodel TLS Handshake protocol Record protocol Security analyse HTTPS
OSI Lagenmodel Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer
OSI Lagenmodel Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer
OSI Lagenmodel Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer? Beveiliging
TCP Lagenmodel Application Layer Transport Layer Beveiliging Internet Layer Link Layer
TLS Lagenmodel TLS Record Protocol gebouwd op betrouwbare transport layer (TCP). Record Protocol encapsuleert andere protocollen (o.a. Handshake).
TLS Lagenmodel Handshake Alert ChangeCipherSpec Application Data TLS Record Protocol Transport Layer (TCP)
TLS Lagenmodel Handshake protocol: Assymmetrische cryptografie RSA, Diffie-Hellman Record protocol Symmetrische cryptografie 3DES, AES
Inhoud Lagenmodel TLS Handshake protocol Record protocol Security analyse HTTPS
TLS Handshake Hello messages Premaster secret bepalen Authenticatie (certificaten) Master secret bepalen Verstuur parameters naar record layer Verifieer parameters
TLS Handshake Client ClientHello Server ServerHello Session identifier Random waarde Cipher Suite
TLS Handshake Client ClientHello Server ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone Optioneel: Server authenticatie Tijdelijke key Authenticatie request client Sluit af met HelloDone
TLS Handshake Client ClientHello ClientKeyExchange Server ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone Key Exchange
TLS Handshake Client ClientHello Certificate ClientKeyExchange CertificateVerify Server ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone Client Authenticatie Verifieer certificaat door handtekening key exchange bericht
TLS Handshake Client ClientHello Certificate ClientKeyExchange CertificateVerify [ChangeCipherSpec] Finished Server ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone Verstuur gegevens naar record laag ChangeCipherSpec is een losstaand protocol Finished Bevat verificatie van alle parameters
TLS Handshake Client ClientHello Certificate ClientKeyExchange CertificateVerify [ChangeCipherSpec] Finished Server ServerHello Certificate ServerKeyExchange CertificateRequest ServerHelloDone [ChangeSipherSpec] Finished Herhaal voor server
Session Resume Client ClientHello Server Gebruik dezelfde session identifier
Session Resume Client ClientHello Server ServerHello [ChangeSipherSpec] Finished Server kiest of sessie voortgezet wordt Bij weigering: genereer nieuwe identifier en doorloop volledige handshake Bij acceptatie: meteen parameters naar record laag sturen
Session Resume Client ClientHello [ChangeCipherSpec] Finished Server ServerHello [ChangeSipherSpec] Finished Client verifieert parameters
Inhoud Lagenmodel TLS Handshake protocol Record protocol Security analyse HTTPS
Overige protocollen Change Cipher Spec Alert Application Data Eigen protocol Versleuteling met symmetrisch algoritme
Change Cipher Spec Gebruikt voor wijziging parameters Verstuur bericht onder huidige parameters Andere partij verandert parameters meteen Verifieer wijziging met hetzelfde bericht
Change Cipher Spec Client ChangeCipherSpec Server ChangeCipherSpec
Alert Protocol Alert message: Ernst (fatal of warning) Type (enumerator) Bij fatal: termineer sessie
Alert Protocol Afronden sessie: speciaal alert type close_notify Niet nodig om bericht andere partij af te wachten
Application Data Versleutelde applicatie-data Record Protocol zorgt voor fragmentatie, compressie en encryptie Inhoud afhankelijk van applicatie
Application Data Extra veiligheid: MAC handtekening Hash met sleutel (salt) Afhankelijk van: MAC sleutel (geheim) Sequence nummer (uniek) Berichtlengte Inhoud bericht Twee vaste strings Type bericht
Application Data MAC handtekening garandeert integriteit Zelfs als encryptie-sleutel is gekraakt Daarom MAC-sleutel soms langer
Inhoud Lagenmodel TLS Handshake protocol Record protocol Security analyse HTTPS
Security analyse Internet kanalen zijn onbeveiligd Aanvaller heeft toegang tot alle verzonden data
Security analyse Mogelijke aanvallen: Aanval op key exchange Version rollback Denial of Service
Key Exchange Berust op RSA of Diffie-Hellman Man-in-the-middle: Detectie via Finished bericht Authenticatie
Key Exchange Handshake kent drie modi: Volledige authenticatie Anonieme client Volledige anonimiteit Key Exchange algoritmen bevatten ondersteuning voor authenticatie
Version Rollback TLS bevatte backwards compatibility Aanvaller vraagt om SSL 2.0 Moeilijk te detecteren SSL 2.0 support in maart 2011 verwijderd
Denial of Service Methode 1: Groot aantal requests Server CPU overbelast door RSA signatures Bijna uitsluitend TCP requests: bron makkelijk te achterhalen
Denial of Service Methode 2: Verstuur foutieve of incomplete berichten Sessies worden getermineerd of lopen vast in afwachting van de rest van het bericht Geen beveiliging in TLS
Inhoud Lagenmodel TLS Handshake protocol Record protocol Security analyse HTTPS
HTTPS HTTP: plain text Idee: verstuur HTTP via TLS HTTP server treedt ook op als TLS server Hou verder regels HTTP aan
HTTPS GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi TLS Record Layer U2FsdGVkX185AfKKBMGaG2h66a0BP30kXQuzpyyIJDJSDFnglNvtLPgz+r+Z/r2u sbrfpsuqt+1vzn4bcrw8y4wbcioqhdoxuxzn6cefpiuphe7ladu6o3vpfnhvt/nx 1ZXXsRzRZBKiTv6jb2cJlx/OnOm3mMUb3fBm/v0uo0AI+SL7fpjpWCVWZuS4u+9h Yq4QfqshLmLG2qKkuYKyBg==
HTTPS Verschil TLS: authenticatie server verplicht Certificaat gebaseerd op hostnaam Beveiligt niet tegen aanvallen waarbij URI is veranderd
HTTPS Certificaten Certificate Authority (trusted) Certificaat *.google.com Certificaat *.uu.nl Certificaat *.mywebsite.nl Certificaat mail.google.com Certificaat cs.uu.nl
HTTPS Certificaten Genereer private key Maak Certificate Signing Request Stuur naar CA (of sign zelf)
HTTPS Certificaten CSR www.mywebsite.com MyWebsite Inc. Utrecht Utrecht The Netherlands admin@mywebsite.com Certificate Authority (trusted) Signature Certificaat Private key
HTTPS Certificaten Alternatieven: Wees je eigen CA CACert: peer-to-peer
HTTPS Certificaten Certificate revocation Controleer status certificaat Speciaal protocol: OCSP
DigiNotar DigiNotar: Certificate Authority Juni 2011: inbraak Juli 2011: nep-certificaten, waaronder google.com, Skype en Microsoft Updates
Conclusies Veiligheid TLS geheel afhankelijk van gebruikte parameters Algoritmen Sleutels Authenticatie Voor authenticatie vaak afhankelijk van vertrouwen in derde partijen
Vragen?