Cryptografie Theorie in de Praktijk Luuk Danes dinsdag 10 februari 2015 PvIB - Hilversum
CryptografieTheorie in de Praktijk
Luuk Danes
dinsdag 10 februari 2015PvIB - 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)
• Wiskundige, gespecialiseerd in cryptologie
• Ervaring opgedaan bij de OV-chipkaart en een security evaluation lab
• Security-architect en consultantbij MakeSecure
• Bestuurslid voor deSecure Software Foundation
Luuk Danes
Transport Layer Security (TLS fka SSL)
Request
Hallo www.pvib.nl
crypto & sleutel afspreken
Hallo, ik ben www.pvib.nl
Response
Request
Transport Layer Security
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid Authenticiteit
Crypto-keuzes
• TLS317 cipher suites om uit te kiezen, waaronder:TLS_RSA_PSK_WITH_NULL_SHATLS_RSA_WITH_AES_128_CBC_SHATLS_DH_DSS_WITH_AES_128_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_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
<html><h1>Hallo!</h1>
</html>
d0f2be8cc291d40e0dcdf4a820278d4341004f093725bcbe312df4c3
<html><h1>Hallo!</h1>
</html>
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
Symmetrische encryptieTLS-opties
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
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
Electronic Code Book Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
Cipher Block Chaining Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
Counter Mode Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
OperatiemodusTLS-opties
Operatiemodus Optie
Galois Counter Mode GCM
Counter with CBC-MAC
CCM
Cipher Block Chaining
CBC
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
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.
5687e2a9e95b7fb604c3198a6f28f50c5e58b73d8d2d4c35e6d7aaa72b257b16
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
Hash-based Message Authentication Code (H-MAC)
3747d9db5f4ff2704d468cc197261213d3e75cd564db0df5377e99fb243ede05
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
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.
Hash-functiesTLS-opties
Opmerking: CCM heeft geen hash-functie nodig
Algoritme Uitvoerlengte (bit) Optie
SHA2 224 / 256 / 384 / 512 SHA256 / SHA384
SHA 160 SHA
MD5 128 MD5
NULL 0 NULL
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
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
“Dit is een geheime
boodschap”
8f70a61fb21bc284a045e279da184def949b8c3c3cca601d1a8ea4e88bf3
“Dit is een geheime
boodschap”
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
publiek privé
SleuteluitwisselingTLS-opties
Algoritme Optie
Elliptic Curve Diffie-Hellman Ephemeral
ECDHE
Elliptic Curve Diffie-Hellman ECDH
RSA (Rivest, Shamir, Adleman) RSA
Diffie-Hellman Ephemeral DHE
Diffie-Hellman DH
Kerberos KRB5
Pre-Shared Key PSK
Secure Remote Password SRP
Geen NULL
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
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.
5687e2a9e95b7fb604c3198a6f28f50c5e58b73d8d2d4c35e6d7aaa72b257b16
934d9ae42bec207a49441edaa07e6a2858e37ba57da9dee0b3859f39d24e9aea
privé
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
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.
5687e2a9e95b7fb604c3198a6f28f50c5e58b73d8d2d4c35e6d7aaa72b257b16
934d9ae42bec207a49441edaa07e6a2858e37ba57da9dee0b3859f39d24e9aea
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
publiek
Algoritme Optie
Elliptic Curve Digital Signature Algorithm
ECDSA
RSA RSA
Digital Signature Standard DSS
‘voor export toegestane algoritmes’
*_EXPORT
Kerberos KRB5
Pre-Shared Key PSK
Secure Remote Password SRP
Anoniem anon
Geen NULL
AuthenticatieCertificaat-ondertekening
Sleuteluitwisseling
Certificaat Authenticatie
Vertrouwelijkheid
Authenticiteit
Crypto-keuzes
• TLS• We weten nu welke ciphersuites voldoende of goed zijn.
• Bijvoorbeeld:
TLS_RSA_PSK_WITH_NULL_SHATLS_RSA_WITH_AES_128_CBC_SHATLS_DH_DSS_WITH_AES_128_CBC_SHATLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
Crypto-keuzes
• Certificaat• De juiste hash-functie
(alleen SHA256)
• Een voldoende / goed ondertekenings-algoritme (DSS / RSA / ECDSA)
• Met een voldoende / goede sleutellengte (bijv. RSA minstens 2048 bit)
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
www.makesecure.nl [email protected]
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