Cryptografie, theorie in de praktijk - PvIB - 10 februari 2015

Post on 31-Jul-2015

132 views 1 download

Transcript of Cryptografie, theorie in de praktijk - PvIB - 10 februari 2015

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 luuk.danes@makesecure.nl

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