Cryptografie Theorie in de Praktijk Luuk Danes dinsdag 10 februari 2015 PvIB - Hilversum
Wat ga ik vandaag niet vertellen?
Wat ga ik vandaag niet vertellen? • Spartaanse Skytale • Ceasar cipher • Playfair cipher • Vigenère cipher • CAST • SAFER • RC5
Wat ga ik vandaag wel vertellen? • Iets over mijzelf
• Symmetrische encryptie • Hashfuncties • Message Authentication Codes • Sleuteluitwisseling • Digitale handtekeningen • … aan de hand van Transport Layer Security (TLS)
Luuk Danes • Wiskundige, gespecialiseerd in cryptologie • Ervaring opgedaan bij de OV-chipkaart en een security evaluation lab • Security-architect en consultant bij MakeSecure
• Bestuurslid voor de Secure Software Foundation
Transport Layer Security (TLS fka SSL) Hallo www.pvib.nl Hallo, ik ben www.pvib.nl
crypto & sleutel afspreken Request
Response Request
Transport Layer Security
Certificaat
Authenticatie Sleuteluitwisseling
Vertrouwelijkheid
Authenticiteit
Crypto-keuzes • TLS 317 cipher suites om uit te kiezen, waaronder: TLS_RSA_PSK_WITH_NULL_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_DH_DSS_WITH_AES_128_CBC_SHA TLS_DH_RSA_WITH_AES_128_CBC_SHA TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
• Certificaat • Hash-functie • Ondertekenings-algoritme • Sleutellengte
Uitgangspunten en bronnen • Onvoldoende, Voldoende, Goed volgens de NCSC richtlijn • Er wordt een certificaat gebruikt voor authenticatie
NCSC
ENISA
Qualys
Symmetrische encryptie
Hallo!
d0f2be8cc291d4 0e0dcdf4a82027 8d4341004f0937 25bcbe312df4c3
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Hallo!
Symmetrische encryptie TLS-opties
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Algoritme
Sleutelgrootte
Type
Optie
AES
128 / 192 / 256
Block
AES_128 / AES_256
CAMELLIA
128 / 192 / 256
Block
CAMELLIA_128 / CAMELLIA_256
3DES
112 / 168
Block
3DES_EDE
ARIA
128 / 192 / 256
Block
ARIA_128 / ARIA_256
SEED
128
Block
SEED
DES
56
Block
DES
DES40
40
Block
DES40
IDEA
128
Block
IDEA
RC2
8 – 1024 TLS: 40
Block
RC2
RC4
40 – 2048
Stream
RC4_40 / RC4_128
NULL
0
-
NULL
Electronic Code Book
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Cipher Block Chaining
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Counter Mode
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Operatiemodus TLS-opties
Operatiemodus Galois Counter Mode Counter with CBC-MAC Cipher Block Chaining
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Optie GCM CCM CBC
Hash-functies
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec velit ac ex malesuada aliquam. Nunc tempus facilisis tellus, ac pellentesque nibh tincidunt in. Suspendisse potenti. Sed porttitor molestie quam, ut scelerisque urna tempus nec. Quisque non dui tortor. Nulla turpis dui, fringilla at metus eget, sollicitudin vestibulum risus. Nunc molestie nibh sit amet ex lobortis bibendum. Nulla vitae fringilla odio, sit amet tristique felis. Donec lacus metus, pharetra vel faucibus quis, ultrices non turpis. Sed nec urna eget nisi sodales feugiat.
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
5687e2a9e95b7fb604 c3198a6f28f50c5e58 b73d8d2d4c35e6d7a aa72b257b16
Hash-based Message Authentication Code (H-MAC)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec velit ac ex malesuada aliquam. Nunc tempus facilisis tellus, ac pellentesque nibh tincidunt in. Suspendisse potenti. Sed porttitor molestie quam, ut scelerisque urna tempus nec. Quisque non dui tortor. Nulla turpis dui, fringilla at metus eget, sollicitudin vestibulum risus. Nunc molestie nibh sit amet ex lobortis bibendum. Nulla vitae fringilla odio, sit amet tristique felis. Donec lacus metus, pharetra vel faucibus quis, ultrices non turpis. Sed nec urna eget nisi sodales feugiat.
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
3747d9db5f4ff2704d 468cc197261213d3e 75cd564db0df5377e 99fb243ede05
Hash-functies TLS-opties
Algoritme SHA2 SHA MD5 NULL
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Uitvoerlengte (bit) 224 / 256 / 384 / 512 160 128 0
Optie SHA256 / SHA384 SHA MD5 NULL
Opmerking: CCM heeft geen hash-functie nodig
Asymmetrische cryptografie • Twee sleutels: één privé, één publiek • Gebaseerd op trapdoor-functies: eenvoudig te berekenen in één richting, maar moeilijk om te berekenen in de omgekeerde richting.
Asymmetrische encryptie
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
8f70a61fb21bc284a 045e279da184def9 49b8c3c3cca601d1 a8ea4e88bf3
“Dit is een geheime boodschap”
publiek
“Dit is een geheime boodschap”
privé
Sleuteluitwisseling TLS-opties
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Algoritme
Optie
Elliptic Curve Diffie-Hellman Ephemeral Elliptic Curve Diffie-Hellman RSA (Rivest, Shamir, Adleman) Diffie-Hellman Ephemeral Diffie-Hellman Kerberos Pre-Shared Key Secure Remote Password Geen
ECDHE ECDH
RSA DHE DH KRB5 PSK SRP NULL
Digitale handtekening (creatie) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec velit ac ex malesuada aliquam. Nunc tempus facilisis tellus, ac pellentesque nibh tincidunt in. Suspendisse potenti. Sed porttitor molestie quam, ut scelerisque urna tempus nec. Quisque non dui tortor. Nulla turpis dui, fringilla at metus eget, sollicitudin vestibulum risus. Nunc molestie nibh sit amet ex lobortis bibendum. Nulla vitae fringilla odio, sit amet tristique felis. Donec lacus metus, pharetra vel faucibus quis, ultrices non turpis. Sed nec urna eget nisi sodales feugiat.
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
5687e2a9e95b7fb604 c3198a6f28f50c5e58 b73d8d2d4c35e6d7a aa72b257b16
934d9ae42bec207a4 9441edaa07e6a2858 e37ba57da9dee0b38 59f39d24e9aea
privé
Digitale handtekening (verificatie) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec velit ac ex malesuada aliquam. Nunc tempus facilisis tellus, ac pellentesque nibh tincidunt in. Suspendisse potenti. Sed porttitor molestie quam, ut scelerisque urna tempus nec. Quisque non dui tortor. Nulla turpis dui, fringilla at metus eget, sollicitudin vestibulum risus. Nunc molestie nibh sit amet ex lobortis bibendum. Nulla vitae fringilla odio, sit amet tristique felis. Donec lacus metus, pharetra vel faucibus quis, ultrices non turpis. Sed nec urna eget nisi sodales feugiat.
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
5687e2a9e95b7fb604 c3198a6f28f50c5e58 b73d8d2d4c35e6d7a aa72b257b16
934d9ae42bec207a4 9441edaa07e6a2858 e37ba57da9dee0b38 59f39d24e9aea
publiek
Authenticatie Certificaat-ondertekening
Certificaat Authenticatie Sleuteluitwisseling Vertrouwelijkheid Authenticiteit
Algoritme
Optie
Elliptic Curve Digital Signature Algorithm RSA Digital Signature Standard ‘voor export toegestane algoritmes’ Kerberos Pre-Shared Key Secure Remote Password Anoniem Geen
ECDSA RSA
DSS *_EXPORT KRB5 PSK SRP anon NULL
Crypto-keuzes • TLS Kies de juiste ciphersuites, bijvoorbeeld: TLS_RSA_PSK_WITH_NULL_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_DH_DSS_WITH_AES_128_CBC_SHA TLS_DH_RSA_WITH_AES_128_CBC_SHA TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
Crypto-keuzes • Certificaat • De juiste hash-functie (alleen SHA256)
• Een voldoende / goed ondertekenings-algoritme • Met een voldoende / goede sleutellengte bit)
(bijv. RSA minstens 2048
Advies • Volg de richtlijn van het NCSC, wijk alleen af met een degelijke onderbouwing • Kies bij implementatie voor de standaard libraries en oplossingen • Schakel een expert in, op zijn minst voor een review
Verder lezen: • Cryptografie: “Ik begrijp het niet, dus het is veilig”? • De kracht van kaders • Zijn uw SSL-configuratie en certificaten up-to-date? • Correct toepassen van cryptografie
op www.makesecure.nl
[email protected]