PKI Fundamentals Een introductie van de toepassing en werking van cryptografische functies in X.509 certificaten Lex Zwetsloot Juni 2005
Agenda Doel van cryptografie in IT Cryptografische functies Algoritmen en keys Symmetrische Encryptie Asymmetrische Encryptie Hash-functies Certificaten Toepassing Certificaten Suite B Protocols Meer weten…
1. Doel van cryptografie in IT Crypto-functies worden toegepast bij: - Bescherming van vertrouwelijke gegevens (Confidentiality), tijdens transport of opslag - Identificatie / Authenticatie / Signing - Integriteit / Anti-replay - Bewijslast over verrichte transacties (Non-repudiation)
Vertrouwelijk Transport (Confidential) Alice Bob Kom vrijdag om 14:00u naar Café Hendrik Kom vrijdag om 14:00u naar Café Hendrik AHA!! Eve
2. Algoritmen en Keys Algoritme: - Wijze waarop versleuteling/ontsleuteling plaatsvindt - Openbaar en gestandaardiseerd Key: - Variabele die samen met de cleartext en het algoritme, de ciphertext oplevert - De geheime component, bijvoorbeeld: * Session- of Secret Key bij symmetrische algoritmen * De private key bij asymmetrische algoritmen
Cryptografische functies Symmetrische algoritmen Secret Key functies Asymmetrische algoritmen Public Key of One-way functies Hashing algoritmen Digest functies
4. Symmetrische algoritmen 4.1 Schema symmetrische encryptie 4.1 Blokvercijfering / -ontcijfering 4.2 Schema symmetrische encryptie 4.3 Symmetrische algoritmen 4.4 Voor- en nadelen symmetrische encryptie 4.5 Oplossing sleuteldistributieprobleem: Diffie-Hellman key exchange
4.1 Schema symmetrische encryptie Informatie over het gebruikte algoritme wordt … …bij e-mail in S/MIME header vermeld …bij IPSec gedurende IKE fase (Main mode) tussen partijen afgestemd in een SA (Security Association) Symmetrisch Algoritme, bijv. DES INTERNET Encryptie
4.1 Schema symmetrische encryptie INTERNET Décryptie
4.1 Symmetrische Encryptie Voorbeeld blokvercijfering … met 48-bits blokcijfer … K O M O M 4 U U R B I J G E H E I M G 48-bits symmetrische key E H E I M G E H E R T U E X Z G 9 H Z 3 4 G H P O Vercijferd blok
4.1 Symmetrische Encryptie Voorbeeld blokontcijfering … met dezelfde symmetrische sleutel … R T U E X Z G 9 H Z 3 4 G H P O G E H E I M G E H E I M G E H E K O M O M 4 U U R B I J
4.2 Schema symmetrische encryptie
4.3 Symmetrische Algoritmen Block Ciphers: DES DESX 3DES CAST BlowFish FEAL IDEA Stream Ciphers: RC4 A5/1, A5/2 Phelix Scream Rabbit SNOW PANAMA
4.4 Eigenschappen Symmetrische Encryptie Voordelen: - Snel algoritme; Beperkte CPU load; geschikt voor grote hoeveelheden data en Real-time (streaming) encryptie Nadelen: - Sleuteldistributie !!! - Alleen bij grote sleutellengtes voldoende bescherming tegen “exhaustive search” attacks
4.5 Oplossing voor het sleuteldistributieprobleem: Diffie-Hellman Key-Exchange Whitfield Diffie Martin Hellman
4.5b Diffie-Hellman Group
4.5c Zwakte in Diffie-Hellman Key-Exchange Geen “Proof of Identity” Geen bescherming tegen “(Wo)man in the middle” - attacks
5. Asymmetrische Encryptie Complexe rekenkunde; hoge CPU-load, daardoor alleen geschikt voor korte berichten (passwords, Credit Cardnummers, Symmetrische sleutels etc.) Gebruikt sleutellengtes van 512, 1024 of 2048 bits. (ECC gebruikt kleinere keys) Verschillende (bekende) algoritmen: - RSA, DSA/DSS(NSA), ElGamal, ECC
5. Asymmetrische Encryptie Voorbeeld RSA* met complementaire sleutels (basis van PKI)
5.1 Principe Asymmetrische Encryptie Directory Service Alice’s Public Key #@*! Bob’s Public Key Kom vrijdag om 14:00u naar Café Hendrik C42$l1*h&f33 v*^%xpT;”]6s G!lyefHaUry+ 32Cfh01bvKs
5.1 Principe Asymmetrische Encryptie Directory Service Alice’s Public Key Bob’s Public Key Kom vrijdag om 14:00u naar Café Hendrik Kom vrijdag om 14:00u naar Café Hendrik Encryptie met Bob’s Public Key Decryptie met Bob’s Private Key C42$l1*h&f33 v*^%xpT;”]6s G!lyefHaUry+ 32Cfh01bvKs
Schema Asymmetrische Encryptie
Principe RSA Random symmetrische sleutel, Bulk Encryption Key of BEK Directory Service CSP Alice’s Public Key Bob’s Public Key Kom vrijdag om 14:00u naar Café Hendrik Symmetrisch algoritme, Bijv. DES Asymmetrisch algoritme, Bijv. RSA Met BEK symmetrisch vercijferde message content C42$l1*h&f33 v*^%xpT;”]6s G!lyefHaUry+ 32Cfh01bvKs Met Bob’s Public key asymmetrisch vercijferde BEK 3e7c2b00f439001fdc0345
Principe RSA CSP Directory Service Alice’s Public Key Bob’s Public Key Kom vrijdag om 14:00u naar Café Hendrik Kom vrijdag om 14:00u naar Café Hendrik C42$l1*h&f33 v*^%xpT;”]6s G!lyefHaUry+ 32Cfh01bvKs 3e7c2b00f439001fdc0345
Asymm.Encryptie: Schema Sealing
6. Hash-functies Hashing algoritme produceert een fixed-length message-digest (hash) van een bericht Hash bevat geen gegevens uit het bericht (… hash is geen encrypted message, het oorspronkelijke bericht kan er niet uit worden herleid en wordt er ook niet door aangetast) Vergelijkbaar met een “checksum” van de brondata Drie gangbare algoritmen: - MD4 ; levert 128 bits hash - MD5 ; levert 128 bits hash - SHA-1 ; levert 160 bits hash
6.1 Toepassing Hashfuncties Digitale Handtekeningen (Signing) Authenticatie: NTLM, Challenge/Response HMAC (RFC 2202) CHAP, MS-CHAP, MS-CHAPv2, EAP-MD5
6.2 Eigenschappen van Hashfuncties Lengte van bronbericht heeft geen invloed op lengte van de resulterende hashwaarde … On early models remove the wheel, turn up the lock- plates and remove the nut from the lower fixing and the bolt from the upper one. On later models, remove the wheel and the outer tie rod ball joint as instructed in chap- ter 9. Removal of the ball joint will ensure that the tie rod is not bent. … Kort bericht … Langer bericht … Hallo iedereen! 128-bits hash resultaat MD5 MD5 BB7A057E76D8C797BC7A542DF4270326 25A95600D391751847B59A24917CE264
6.2 Eigenschappen van Hashfuncties Lengte van bronbericht heeft geen invloed op lengte van de resulterende hashwaarde … Minimale wijziging in bronbericht heeft grote veran- dering in hashwaarde tot gevolg … Beste leverancier, Stuur mij per omgaande graag het volgende: 10 kantinetafels 60 kantinestoelen 2 koffiezetapparaten 5 dozen koffieservies Beste leverancier, Stuur mij per omgaande graag het volgende: 10 kantinetafels 60 kantinestoelen 20 koffiezetapparaten 5 dozen koffieservies MD5 MD5 D41D8CD98F00B204E9800998ECF8427E CE3D723909CBFBEB0DDB0D746B6FDEB0
6.2 Eigenschappen van Hashfuncties Lengte van bronbericht heeft geen invloed op lengte van de resulterende hashwaarde … Minimale wijziging in bronbericht heeft grote veran- dering in hashwaarde tot gevolg … Algoritme met langere resultaatcode geeft kleinere kans op collisions … Document 1 Document 2 MD5 MD5 D41D8CD98F00B204E9800998ECF8427E D41D8CD98F00B204E9800998ECF8427E
6.3 Principe Digital Signing Directory Service Alice’s Public Key Kom vrijdag om 14:00u naar Café Hendrik Cleartext message Kom vrijdag om 14:00u naar Café Hendrik Kom vrijdag om 14:00u naar Café Hendrik 25A95600D 3 … SHA-1 hash Oorspronkelijke hash van Alice BB7A057E76 … BB7A057E76 … RSA-encrypted hash “Thumbprint” BB7A057E76 … Door Bob (opnieuw) berekende SHA-1 hash 25A95600D 3 … 25A95600D 3 …
6.4 Schema Digital Signing
7. Public Key Infrastructure 7.1 Certificaten 7.2 Organisatie van de PKI 7.3 Beveiliging van de Root CA 7.4 Installatie van de Root CA 7.5 Distributie van het Root Certificate 7.6 Aanvraag van een SSL-Webserver certificaat 7.7 Client-sessie met SSL Website 7.8 SSL-Client sessie: Key Exchange 7.9 Confidential Data Exchange
7.1 Certificaten Wat is een certificaat?: Electronisch document met cryptografisch verifieerbare eigenschappen Doel: Authenticatie: Bewijzen van identiteit van een persoon, computer of service Encryptie: Aanbieden van Public Key van certificaathouder voor encryptie van sessiesleutels of decryptie van digitale handtekening Benodigdheden: Een trusted (third) party, de Certificate Authority (CA) PKI - Aware toepassingen
7.2 Organisatie van de PKI Top van PKI-organisatie is de Root CA - Publieke CA’s, bijv.: Verisign, Thawte - Privé- of Enterprise CA’s Root CA maakt z’n eigen Master Keypair en (Self-Signed) Root Certificate Installatie van Root Certificate op client PC maakt CA trusted voor client Subordinate CA’s voor meerdere locaties CA publiceert ook CRL1 en CDP2 via extensions in certificate 1 Certificate Revocation List 2 CRL Distribution Point
7.3 PKI: Beveiliging Root CA Root CA meestal Stand-Alone (Off-Line) Subordinates meestal Enterprise (AD) 3-Tier PKI’s: Niveau-1: Eén (Off-line) Root-CA Niveau-2: Enkele Policy-CA’s Niveau-3: Meerdere Issuing CA’s
Public Key Infrastructure 7.4 Installatie van de Root Certification Authority (Root-CA)
PKI: Installatie CA CSP MD5 Voorbeeld van de omvang van een 1024-bits Public Key Attributen worden aan de Public Key toegevoegd Version: X.509 V3 Issued to: Acme-Root CA Issued by: Acme-Root CA Valid from: 01-01-2006 Valid until: 01-01-2031 Key Usage: Authentication Serial No: 32 88 8e 9a d2 .. Subject: Acme-Root CA Public Key: RSA (1024 bits) Hash algorithm: MD5 CSP De Cryptographic Service Provider (CSP) van Windows genereert een keypair (Private- en Public Key) MD5-hash van data in pseudo-certificaat met Public Key MD5 Bf 9c 0d 32 bd 5c 88 20 1a 08 Met Private Key versleutelde hash; De “Thumbprint” 01 07 bc 59 90 1c 2b 3e 77 ..
PKI: Installatie CA MD5 Version: X.509 V3 Issued to: Acme-Root CA Issued by: Acme-Root CA Valid from: 01-01-2006 Valid until: 01-01-2031 Key Usage: Authentication Serial No: 32 88 8e 9a d2 .. Subject: Acme-Root CA Public Key: RSA (1024 bits) Hash algorithm: MD5 MD5 Bf 9c 0d 32 bd 5c 88 20 1a 08 01 07 bc 59 90 1c 2b 3e 77 ..
PKI: Installatie CA Version: X.509 V3 Issued to: Acme-Root CA Issued by: Acme Root CA Valid from: 01-01-2006 Valid until: 01-01-2031 Key Usage: Authentication Serial No: 32 88 8e 9a d2 .. Subject: Acme-Root CA Public Key: RSA (1024 bits) Hash algorithm: MD5 01 07 bc 59 90 1c 2b 3e 77 ..
PKI: Installatie CA CA Root Certificate Version: X.509 V3 Issued to: Acme-Root CA Issued by: Acme Root CA Valid from: 01-01-2006 Valid until: 01-01-2031 Key Usage: Authentication Serial No: 32 88 8e 9a d2 .. Subject: Acme-Root CA Public Key: RSA (1024 bits) Hash algorithm: MD5 01 07 bc 59 90 1c 2b 3e 77 .. CA Root Certificate Version: X.509 V3 Issued to: Acme-Root CA Issued by: Acme Root CA Valid from: 01-01-2006 Valid until: 01-01-2031 Key Usage: Authentication Serial No: 32 88 8e 9a d2 .. Subject: Acme-Root CA Public Key: RSA (1024 bits) Hash algorithm: MD5 01 07 bc 59 90 1c 2b 3e 77 ..
PKI: Installatie CA
7.5 Distributie van het Root Certificate Export en distributie van root-certificaat in de vorm van *.cer bestand. (formaat: pkcs#7) Acme Root CA
7.5 Distributie van het Root Certificate Acme Root CA Alle computers waarop een kopie van het Root-certificate van de CA is geïnstalleerd zien deze CA nu als een vertrouwde instantie
Public Key Infrastructure 7.6 Aanvraag van een SSL Webserver-Certificaat
7.6 Aanvraag SSL Certificaat Acme Root CA CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) CSP http://www.abc.com
7.6 Aanvraag SSL Certificaat CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) MD5 ac 2e 9d 01 ec 79 88 20 1a 08 2b 12 0f 28 ec 4c 2f 39 d7 .. http://www.abc.com
7.6 Aanvraag SSL Certificaat CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 d7 .. http://www.abc.com
7.6 Aanvraag SSL Certificaat CERTIFICATE Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 d7 .. CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 d7 .. http://www.abc.com
7.6 Aanvraag SSL Certificaat CERTIFICATE Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 d7 .. CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 http://www.abc.com
7.6 Aanvraag SSL Certificaat CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 CERTIFICATE REQUEST Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 http://www.abc.com
7.6 Aanvraag SSL Certificaat https://www.abc.com http://www.abc.com
7.7 Client-sessie met SSL-Website
7.7 Client-sessie met SSL-Website Client in bezit van kopie CA-Root Certificate Get https://www.abc.com Send certificate https://www.abc.com
7.7 Client-sessie met SSL-Website CERTIFICATE Issued to: ABC.com Issued by: Acme Root CA Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 2b 12 0f 28 ec 4c 2f 39 d7 .. https://www.abc.com
7.7 Client-sessie met SSL-Website https://www.abc.com Er is een ‘match’ tussen de meegezonden, -encrypted- hash (de thumbprint) en de hérberekende hash; De webserver kan het certificaat dus alleen van Acme Root CA hebben verkregen!!! Public Key van Acme Root CA CERTIFICATE Issued to: ABC.com Issued by: Acme Root CA Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 3b 9c 01 bf 77 d3 21 fc .. 3b 9c 01 bf 77 d3 21 fc .. 2b 12 0f 28 ec 4c 2f 39 d7 .. https://www.abc.com
7.7 Client-sessie met SSL-Website Er is een ‘match’ tussen de meegezonden, -encrypted- hash (de thumbprint) en de hérberekende hash; De webserver kan het certificaat dus alleen van Acme Root CA hebben verkregen!!! CERTIFICATE Issued to: ABC.com Issued by: Acme Root CA Key Usage: SSL - Auth. Company: ABC Corp. Department: IT-Services State: MA City: Boston Common Name: www.abc.com Public Key: RSA (1024 bits) 3b 9c 01 bf 77 d3 21 fc .. 3b 9c 01 bf 77 d3 21 fc .. 2b 12 0f 28 ec 4c 2f 39 d7 .. https://www.abc.com
7.8 SSL-Client sessie: Key-Exchange
7.8 SSL-Client sessie: Key-Exchange Public Key van www.abc.com CSP 128-bits Symmetrische (DES) Key, aangemaakt door CSP van client PC https://www.abc.com
7.8 SSL-Client sessie: Key-Exchange https://www.abc.com
7.8 SSL-Client sessie: Key-Exchange Beide partijen beschikken nu over dezelfde symmetrische Sessiesleutel https://www.abc.com
7.9 Confidential Data Exchange (Zeer snel!!)
7.9 Confidential Data Exchange (SSL) Enter Credit Card No https://www.abc.com (SSL) Enter Credit Card No Credit card No: 1124 4523 2514 7896 Credit card No: 1124 4523 2514 7896
8. Toepassing Certificaten 8.1 Certificaatversies 8.2 Samenstelling X.509 V1 Certificaat 8.3 Samenstelling X.509 V2 Certificaat 8.4 Samenstelling X.509 V3 Certificaat 8.5 Policies 8.6 Certificaat-toepassingen
8.1 Certificaatversies X.509 Version 1 (1988): -Windows 2000/2003/XP -Vaste layout (template) X.509 Version 2 (1993): -Alleen Windows 2003/XP -Vaste- en “Custom” templates -Geschikt voor Auto-enrollment X.509 Version 3 (1996): - Windows 2008 en Vista (2003 SP2) - Alternative Names - Ondersteuning voor Suite-B protocollen (AES, ECDH)
8.2 Samenstelling X.509 V1 Certificaat Velden in een X.509 Version 1 Certificaat Version Serial Number CA Signature Alg. Ondertekend door CA V1 Issuer Name Validity Period Subject Name Subject Public Key Signature Value
8.3 Samenstelling X.509 V2 Certificaat Version Serial Number CA Signature Alg. V1 Issuer Name Ondertekend door CA V2 Validity Period Subject Name Subject Public Key Issuer Unique ID Subject Unique ID Signature Value Velden in een X.509 Version 2 Certificaat
8.4 Samenstelling X.509 V3 Certificaat X.509 v3 Extensions: Authority Key Identifier Version Subject Key Identifier Serial Number Key Usage CA Signature Alg. Private KeyUsagePeriod Certificate Policies Issuer Name Policy Mappings Validity Period V3 Ondertekend door CA SubjectAlternativeName Subject Name IssuerAlternativeName Subject Public Key SubjectDirAttribute Basic Constraints Issuer Unique ID Name Constraints Subject Unique ID Policy Constraints Extensions … Extended Key Usage Application Policies Signature Value AIA CDP Velden in een X.509 Version 3 Certificaat
8.5 Policies Security policy - Algemeen securitybeleid van een organisatie Certificate policy - Methode van identificatie Subject - Gebruikstoepassing(en) verstrekte certificaten Certification practice statement - Publiek document - Beschrijft CA management en procedures SP Security Policy (SP) CP Certificate Policy (CP) Certification Practice Statement (CPS)
8.6 Certificaat-toepassingen E-mail: - S/MIME (Sealing/Signing) - POP3 + SSL - IMAP4 + SSL - SMTP + TLS Authenticatie met SmartCard: - Kerberos v.3/X.509 Beveiligde Webpagina’s: - HTTPS (SSL/TLS) Beveiligd transport: - IPSec (AH en ESP) Beveiligde opslag: - EFS VPN’s: - L2TP/IPSec - SSTP
9. Cryptography Next Generation (CNG) 9.1 Suite B Algoritmen 9.2 AES 9.3 Elliptic Curve Cryptography
9.1 Suite B Algoritmen Nieuwe generatie algoritmen voor meer efficiëntie en betere beveiliging Suite-B algoritmen voor signing en encryptie afkomstig van NSA Als aanbeveling opgenomen in FIPS 201 (NIST) Onderdeel van Windows Server 2008 en Vista
9.2 AES (Advanced Encryption Standard) Symmetrisch encryptie, opvolger van DES, 3DES en DESX 128-bit, 192-bit en 256-bit Keys Rijndael algoritme
9.3 Elliptic Curve Cryptography (ECC) Asymmetrisch algoritme, opvolger van RSA Met kleinere keys betere beveiliging: 256 bits ECC vs 1024 bits RSA 284 bits ECC vs 2048 bits RSA 521 bits ECC vs 4096 bits RSA Toepassing voor Key-Exchange: ECDH_P256 ECDH_P384 ECDH_P521 Toepassingen voor Digital Signatures: ECDSA_P256 ECDSA_P384 ECDSA_P521
9.3 Elliptic Curve Cryptography (ECC) Gebaseerd op vergelijking: y2=x3+ax+b Zie ook: http://www.certicom.com/index.php/ecc-tutorial
10. Meer Weten ? … RSA-Security: www.rsasecurity.com/faq CODE-book: www.simonsingh.net KU-Brussel: www.kubrussel.ac.be/Wsetew http://www.certicom.com/index.php/ecc-tutorial
RFC’s
Vragen???