Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Úvod do PKI (Public Key Infrastructure)

Podobné prezentace


Prezentace na téma: "Úvod do PKI (Public Key Infrastructure)"— Transkript prezentace:

1 Úvod do PKI (Public Key Infrastructure)
Ing., BcA. Ivan Doležal Centrum výpočetní techniky VŠB-TUO Ostravské linuxové semináře, říjen 2001 Public Key Infrastructure - infrastruktura veřejných klíčů

2 literatura : 1 Ivan Doležal: Experimentální certifikační autorita VŠB-TUO Centrum výpočetní techniky VŠB-TUO, 2000 Libor Dostálek a kolektiv: Velký průvodce protokoly TCP/IP: Bezpečnost Computer Press, 2001

3 pojmy eavesdropping - informace je přenesena nedotčena, ale je při přenosu odposlechnuta eaves - okraj klobouku; eavesdropping - nepozorovaný odposlech tampering - informace je při přenosu změněna tamper - vmísit se; změnit; zfalšovat; střelmistr na dole spoofing - odesílatel předstírá cizí identitu spoof - parodovat; napálit, ušít boudu, dělat si legrácky, vodit za nos

4 Problém identity na Internetu
On the Internet, nobody knows you’re a dog. - Na Internetu nikdo neví, že jsi pes.

5 šifrování: vojenství, autorská práva, obchodní zájmy, ...
Digital Millenium Copyright Act Dešifrování je trestné. deCSS, Adobe eBook Security Systems Standards and Certification Act V USA bude trestné sestrojit nebo prodávat cokoliv, co nevyužívá bezpečnostní technologie certifikované americkou vládou. Asociace nahrávacího průmyslu: když kradete MP3ky, stahujete si komunismus! zdroj: modernhumorist.com

6 pojmy autentifikace - je uživatel tím, za koho se vydává?
autorizace - má uživatel přidělena práva k této akci? authentication - ověření, důkaz pravosti / authorization - zplnomocnění

7 Byl klíč přenesen, aniž by byl odposlechnut?
symetrické šifrování Alice Bob Ed klíč Byl klíč přenesen, aniž by byl odposlechnut? key - klíč, tónina, klávesa, závěrník, první tah v šachu, kilo drogy, ...

8 symetrické šifrování Ed klíč klíč zpráva zašifrování šifr. zpráva
dešifrování zpráva Alice Bob 1-2-3 přičti klíč! odečti klíč! 1-2-3 8 8 message - zpráva / encryption - zašifrování

9 symetrické šifrování Ed klíč klíč zpráva zašifrování šifr. zpráva
dešifrování zpráva Alice Bob 1-2-3 přičti klíč! odečti klíč! 1-2-3 8 velmi staré (Caesar, “Cimrman”) velmi výpočetně rychlé 8 decryption - dešifrování / Zimmermann - pruský ministr zahraničí (WW1)

10 symetrické šifrování DES - Data Encryption Standard (1976, IBM, NSA)
bloková šifra - slovo má pevnou délku (pro DES 64 bitů, z nich využito jen 56) GOST 28147 RC4 3DES IDEA CAST-128 BLOWFISH (1994, standard v OpenBSD) Rijndael => AES RC4 40bitové je snadno rozlomitelné, 128bitové je dnešní standard. blowfish - “puffer” - jedovatá ryba z rodu Tetraodontidae

11 pojmy šifra s veřejným / tajným algoritmem
rozlomení klíče - zjištění klíče rozlomení hrubou silou - nalezení klíče vyzkoušením všech možností breaking - rozlomení / cipher - šifra

12 symetrické šifrování : rychlost rozlomení (leden 2001)
DES - 56bit klíč - hrubou silou několik hodin (distributed.net; “DES Cracker”) Německý soud označil již v září 1998 jako nedostatečný pro ochranu finančních aplikací. AES - 128bit klíč - hrubou silou 149 biliónů let při rychlosti 1 DES/s brutal force - hrubá síla; trillion - bilión

13 asymetrické šifrování
UK: Coxova rovnice (1960’s) USA: Diffie, Hellman (1976) RSA (1977) * Ronald Rivest, Adi Shamir, Leonard Adleman; dnes majetkem Security Dynamics, Inc. El Gamal (diskrétní logaritmus) Lucent DSA (“Digital Signature Algorithm”) nástroj pro původní DSS Federal Information Processing Standard 186-1 ECC ECDSA Jim Bidzos (45) vnutil RSA alg. do Netscape; dnes řídí spendcash.com

14 asymetrické šifrování : algoritmus RSA : vytvoření klíče
p, q ... prvočísla, součin vyšší než nejvyšší zašifrovatelné číslo p = 3, q = 7 n - modulus (“část” veřejného klíče) n = p · q n = 3 · 7 = 21  = (p - 1) · (q - 1)  = 2 · 6 = 12 e - enkrypční exponent (veřejný klíč): zvolme e … e<, e je nesoudělné s  e = 5 d - dekrypční exponent (soukromý klíč): zbytek po dělení e · d / je 1 5 · d / 12 = x, zbytek 1 tj. (e · d) mod  = 1 např. d = 17 při x = 7 Veřejný klíč: e = 5, modulus n = 21 / Soukromý klíč: d = 17 .

15 asymetrické šifrování : algoritmus RSA : zašifrování / dešifrování
zpráva … 0 < M < (n - 1) zašifrovaná zpráva … C Nechť zpráva M = 2. C = Me mod n C = 25 mod 21 = = 32 mod 21 = 11 M = Cd mod n M = 1117 mod 21 = = mod 21 = 2 Veřejný klíč: e = 5, modulus n = 21 / Soukromý klíč: d = 17 .

16 asymetrické šifrování : distribuce veřejného klíče
Ed Bobův veřejný klíč Alice Bob Bobův soukromý klíč public key - veřejný klíč / private key - soukromý klíč

17 asymetrické šifrování : přenos zprávy
Ed zpráva zašifrování šifr. zpráva dešifrování zpráva Alice Bob Bobův veřejný klíč Bobův soukromý klíč public key - veřejný klíč / private key - soukromý klíč

18 jednosměrná funkce - hash
jednosměrnost - z výsledku funkce nelze rekonstruovat vstup bezkoliznost - nelze najít dvě různé hodnoty, pro které funkce dává stejný výsledek hash - sekaná, patlanina, páté přes deváté, hašiš; zpackat, rozsekat

19 jednosměrná funkce - hash
MD5 (Message Digest) výstup 128 bitů SHA-1 (Secure Hash Algorithm) výstup 160 bitů digest - zhuštěný výtah; natrávená potrava

20 elektronický podpis Ed hash dešifrování zašifrování výpočet hashe
shoda? výpočet hashe zpráva Bob Alice Bobův veřejný klíč Bobův soukromý klíč ano Dokument je pravý. public key - veřejný klíč / private key - soukromý klíč

21 Je klíč, který mám, skutečně klíčem osoby, které chci poslat zprávu?
podvržení veřejného klíče při distribuci “Jsem Bobův veřejný klíč!” Edův veřejný klíč Bobův veřejný klíč Ed Bob Alice Edův soukromý klíč Bobův soukromý klíč Je klíč, který mám, skutečně klíčem osoby, které chci poslat zprávu? toto je tampering…? counterfeit - podvrhnout

22 Je klíč, který mám, skutečně klíčem osoby, které chci poslat zprávu?
podvržení veřejného klíče při distribuci “Jsem Bobův veřejný klíč!” Edův soukromý klíč Bobův soukromý klíč Edův veřejný klíč Ed Bob Alice Bobův veřejný klíč Je klíč, který mám, skutečně klíčem osoby, které chci poslat zprávu? counterfeit - podvrhnout

23 Jak zabránit tamperingu?
X.509 certifikát doporučení ITU X.509 ( ), nyní verze 3 RFC 2459 EDI certifikát PGP - podepsání veřejného klíče ___________________ Snake Oil - “hadí olej” - něco, co dodává pocit řešení problému, bezpečí sign - podepsat / request - žádost, prosba, přání, zdvořilý požadavek; poptávka

24 X.509 certifikát : žádost o certifikát (žádost o podepsání certifikátu)
CSR Bobův veřejný klíč Cecilia „Bob“ Bob certificate - certifikát, osvědčení, vysvědčení, dobrozdání, průkaz, potvrzení, …

25 X.509 certifikát : certifikační autorita
authority - autorita; úřední moc, úřady; oprávnění, pravomoc; vrcholná úroveň

26 X.509 certifikát : certifikační autorita
Thawte CA Thawte notáři koncový uživatel jsem se v Glivicích (Polsko) stal notářem Thawte CA pro “Web Of Trust” s právem přidělit 10 bodů.

27 certifikační autorita
X.509 certifikát : registrační autorita CMP - Certificate Management Protocol pro vydávání a správu certifikátů RFC 2510 poštou, http (Content-Type: application/pkixcmp) nebo 829/tcp CMC - Certificate Management Messages over CMS Cisco, Microsoft certifikační autorita registrační autorita koncový uživatel CMS je nástupce PKCS#7 Oba protokoly mají stejný smysl, ale ten druhý asi zvítězí. registration authority - registrační autorita

28 X.509 certifikát : vystavení certifikátu (podepsání certifikátu)
Bobův veřejný klíč Cecilia „Bob“ ručí „Cecilia“ DN Bobův veřejný klíč „Bob“ DN Bob S/MIME software Ceciliin veřejný klíč certificate - certifikát, osvědčení, vysvědčení, dobrozdání, průkaz, potvrzení, …

29 X.509 certifikát : vystavení certifikátu (podepsání certifikátu)
Alicin veřejný klíč Daria „Alice“ ručí „Daria“ DN Alicin veřejný klíč „Alice“ DN Alice S/MIME Dariin veřejný klíč certificate - certifikát, osvědčení, vysvědčení, dobrozdání, průkaz, potvrzení, …

30 X.509 certifikát : distribuce certifikátu
soubor přes HTTP, FTP, HTTPS, , S/MIME LDAP inetOrgPerson ldif -b “userCertificate;binary” < cert.der > newcert.ldif CMP CMC DVCSP - Data Validation and Certification Server Protocols RFC-3029 provede i všechna ověření platnosti (CRL, OCSP) LDAP - toto jsem si odzkoušel přes Netscape

31 X.509 certifikát : cert. autority jsou podepsány jinými autoritami
Kořenové certifikační autority Řetězce certifikačních autorit Cecilia Daria root - kořen

32 X.509 certifikát : kořenové autority podepíšou samy sebe...
Jsem to já… ...a potvrdím si to sám!

33 X.509 certifikát : …a nechají své certifikáty vestavět do software
Výrobci software Marc Andreesen (Netscape) bez znalosti jmen se obejdete Bill Gates (Microsoft)

34 X.509 certifikát : …a nechají své certifikáty vestavět do software

35 X.509 certifikát : odvolání certifikátu
Certificate Revocation List - pravidelně (např. jednou měsíčně) byste si měli ve vašem kryptosoftware obnovovat seznam vydávaný certifikační autoritou úplný seznam delta seznam, pořadová čísla Online Certificate Status Protocol HTTP přenos podpora je ve fázi vývoje Certificate of health - anti-CRL revocation - odvolání, zrušení, stornování

36 elektronický podpis : časové razítko
dodaný hash “Je 2. února 2000, 11:43:20.” Ceciliin elektronický podpis Cecilia zašifrování výpočet hashe zpráva Bob Bobův soukromý klíč stamp - razidlo, frankotyp, štempl, známka, kolek, etiketa, punc, tiskařský lis

37 X.509 certifikát : struktura : jak se zapisuje
ASN.1 - Abstract Syntax Notation 1 aka ITU X.208 jazyk pro popis dat OID - object identifier, součást ASN.1 číselný kód pro identifikaci objektu v certifikátu viz např. PEM, DER - “skupenství” certifikátu (DER je podmnožina BER) PEM - Privacy Enhaned Mail / DER - Distinguished Encoding Rules

38 cert.der - binární data / cert.pem - DER v BASE64 s hlavičkou
X.509 certifikát : struktura : jak se zapisuje : příklad OID SEQUENCE { OBJECT IDENTIFIER sha1withRSAEncryption ( ) NULL } BIT STRING 0 unused bits 78 B3 5F 74 E C2 FA E2 38 7F DE 08 F6 B2 59 E9 3F BE B9 8F F FA DB C1 32 BC 1E 9B AD 2D 92 8C B3 B1 D FF 5E F5 C4 5B 6F D D8 C0 popis v ASN.1 cert.der - binární data / cert.pem - DER v BASE64 s hlavičkou If you can’t be a good example, then you’ll just have to be a horrible warning. Catherine Aird

39 X.509 certifikát : formát DER souboru
0‚ˇ0‚  0  *†H†÷  0Ť1 0 UCZ10UNorthern Moravia10UOstrava1 0UVSB10U Computer Center10 UCA VSB10 *†H†÷   Z Z0Ť1 0 UCZ10UNorthern Moravia10UOstrava1 0UVSB10U Computer Center10    Ť 0‰ ĽXxaođeŹ\«Ă1TŃP2áôîdm<ÉXÉţ&/Öšű„t2đ~wçkJYö˘ÁRsQ TuMŻĽŻGX¤„gŔvş±ń¸($-eYĽµ;·yCá‹Î/¨ —%Í™vü͆ÓđDîŐýů¸ěţbXąśÓ‚s÷»f·  Ł‚ 0‚ DER - Distinguished Encoding Rules

40 X.509 certifikát : formát PEM souboru
-----BEGIN CERTIFICATE----- (REQUEST, PRIVATE KEY, CRL) MIIEoTCCBAqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBjTELMAA1UEBhMCQ1ox GTAXBgNVBAgTEE5vcnRoZXJuIE1vcmF2aWExEDAOBgNVBAcTB0dHJhdmExDDAK BgNVBAoTA1ZTQjEYMBYGA1UECxMPQ29tcHV0ZXIgQ2VudGVyMQDQYDVQQDEwZD QSBWU0IxGDAWBgkqhkiG9w0BCQEWCWNhQHZzYi5jejAeFw0wMDMTYxMDIzMzJa Fw0wMzA1MTMxMDIzMzJaMIGNMQswCQYDVQQGEwJDWjEZMBcGA1CBMQTm9ydGhl cm4gTW9yYXZpYTEQMA4GA1UEBxMHT3N0cmF2YTEMMAoGA1UEChVlNCMRgwFgYD VQQLEw9Db21wdXRlciBDZW50ZXIxDzANBgNVBAMTBkNBIFZTQjMBYGCSqGSIb3 DQEJARYJY2FAdnNiLmN6MIGfMA0GCSqGSIb3DQEBAQUAA4GNADiQKBgQC8WA54 YW/wFWWPXKvDMVTRUDLh9O5kbTzJWMn+Ji/WmvuEdDLwfnfna09qLBUghzUSBU AnVNrwa8r0dYpIRnwHa6sfG4KAYkLRtlWby1gTu3eUPhi84vqHGZclzZl2/M2G 0/BE7tX9Afm47P5iWLkBnBrTgggXGHP3u2a3CQIDAQABo4ICDTAgkwHQYDVR0O BBYEFGSvSMAHPM2g0diLe1yxhKxNhgyxMIG6BgNVHSMEgbIwga+AFGSvSMAHPM jzRkitf0tRJ0fu6MT5jmELHsePq5AK60LtXa4xlhg8zgVj9wmA1+K+bKiJ5lrD ZNYhHM6AhWCDSGIx37ahKL/fvy8fdR2rWeIRf26NkbkeJHkg== -----END CERTIFICATE----- PEM byl předchůdcem S/MIME

41 X.509 certifikát : formát PEM souboru
Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5WithRSAEncryption Issuer: C=CZ, ST=Northern Moravia, L=Ostrava, O=VSB, OU=Computer Center, CN=CA Validity Not Before: Aug 16 13:15: GMT Not After : May 13 10:23: GMT Subject: C=CZ, ST=Northern Moravia, L=Ostrava, O=VSB, OU=Computer Center, CN=Ivan Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:bd:da:7e:76:e5:e6:60:fb:b4:f7:e5:b0:38:48: 8b:a7:75:d0:4a:a2:2e:b1:02:fd:1b:5b:ec:e6:04: e9:fc:22:0e:ce:e0:d8:f4:6a:41:bc:cb:f0:e4:ed: 4e:8b:e7:f9:b9:6c:62:7d:0e:3a:86:3e:89:38:73: 28:b4:10:2f:d4:3a:06:af:fc:2a:59:2c:7f:b0:3a: a0:1f:be:d8:9f:12:85:04:c5:fd:10:59:7e:d5:b1: ad:db:05:6a:36:78:e3:f7:2c:69:c6:10:8c:72:73: f6:89:85:aa:70:da:7e:3c:f1:2c:e4:7a:cd:7e:de: 24:94:1a:28:ce:5d:e4:c6:75 Exponent: (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Cert Type: SSL Client, S/MIME, Object Signing X509v3 Key Usage: Digital Signature, Non Repudiation, Key Encipherment Netscape Comment: OpenSSL and ICA Generated User Certificate X509v3 Subject Key Identifier: F8:43:4C:1C:45:D1:40:89:48:11:49:98:8E:D1:F6:43:67:5D:5F:F6 X509v3 Authority Key Identifier: keyid:64:AF:48:C0:07:3C:CD:A0:D1:D8:8B:7B:5C:B1:84:AC:4D:86:0C:B1 DirName:/C=CZ/ST=Northern Moravia/L=Ostrava/O=VSB/OU=Computer Center/CN=CA serial:00 07:55:a8:5b:ea:9c:ac:e9:6d:c8:01:e0:9e:ea:6c:37:e6:ed: 14:3a:4e:cb:ed:2a:37:1c:89:5d:5c:07:9f:f9:50:8a:5c:ea: 7d:9a:69:0d:e5:9c:f2:b7:c3:c1:87:ec:d5:3d:3d:c8:00:d2: fd:c7:ba:23:71:20:0d:69:b9:b7:6f:7b:86:b2:6e:5c:a8:d0: f4:a5:66:00:0c:10:13:e4:f5:2b:8c:01:54:6c:03:1c:a6:a4: 73:cf:95:5f:3a:3f:6a:6d:2b:6e:20:d1:ce:ec:15:21:20:3c: 0a:e0:02:29:a7:9d:e2:ef:c3:35:b0:16:9a:0b:a2:09:5e:28: 98:3b -----BEGIN CERTIFICATE----- MIID6jCCA1OgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBjTELMAkGA1UEBhMCQ1ox GTAXBgNVBAgTEE5vcnRoZXJuIE1vcmF2aWExEDAOBgNVBAcTB09zdHJhdmExDDAK BgNVBAoTA1ZTQjEYMBYGA1UECxMPQ29tcHV0ZXIgQ2VudGVyMQ8wDQYDVQQDEwZD QSBWU0IxGDAWBgkqhkiG9w0BCQEWCWNhQHZzYi5jejAeFw0wMDA4MTYxMzE1Mjla dHJhdmExDDAKBgNVBAoTA1ZTQjEYMBYGA1UECxMPQ29tcHV0ZXIgQ2VudGVyMQ8w DQYDVQQDEwZDQSBWU0IxGDAWBgkqhkiG9w0BCQEWCWNhQHZzYi5jeoIBADANBgkq hkiG9w0BAQQFAAOBgQAHVahb6pys6W3IAeCe6mw35u0UOk7L7So3HIldXAef+VCK XOp9mmkN5Zzyt8PBh+zVPT3IANL9x7ojcSANabm3b3uGsm5cqND0pWYADBAT5PUr jAFUbAMcpqRzz5VfOj9qbStuINHO7BUhIDwK4AIpp53i78M1sBaaC6IJXiiYOw== -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: 1 (0x1) Signature Algorithm: md5WithRSAEncryption Issuer: C=CZ, ST=Northern Moravia, L=Ostrava, O=VSB, OU=Computer Center, CN=CA Validity Not Before: Aug 16 13:15: GMT Not After : May 13 10:23: GMT Subject: C=CZ, ST=Northern Moravia, L=Ostrava, O=VSB, OU=Computer Center, CN=Ivan Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:bd:da:7e:76:e5:e6:60:fb:b4:f7:e5:b0:38:48: 8b:a7:75:d0:4a:a2:2e:b1:02:fd:1b:5b:ec:e6:04: e9:fc:22:0e:ce:e0:d8:f4:6a:41:bc:cb:f0:e4:ed: 4e:8b:e7:f9:b9:6c:62:7d:0e:3a:86:3e:89:38:73: 28:b4:10:2f:d4:3a:06:af:fc:2a:59:2c:7f:b0:3a: a0:1f:be:d8:9f:12:85:04:c5:fd:10:59:7e:d5:b1: ad:db:05:6a:36:78:e3:f7:2c:69:c6:10:8c:72:73: f6:89:85:aa:70:da:7e:3c:f1:2c:e4:7a:cd:7e:de: 24:94:1a:28:ce:5d:e4:c6:75 Exponent: (0x10001) atd...

42 X.509 certifikát : struktura : Distinguished Name a další
Common Name{ }=Ivan Doležal Country { }=Czech Republic Organization { }=Vysoká škola báňská Organizational Unit { }=Centrum výpočetní techniky Nikdy se nepodařilo zaručit jednoznačnost, dokonce ani ujednotit názvosloví SubjectAltName= … Serial Number= OBJECT IDENTIFIER subjectAltName ( ) OCTET STRING, encapsulates { SEQUENCE { { OBJECT IDENTIFIER mpeg-1 ( ) OCTET STRING B AE 60 A B8 E4 C EA EF E 49 1B DF 67 28 … a dalších bajtů … } distinguish - rozeznat, odlišit, odlišovat, charakterizovat

43 X.509 certifikát : Distinguished Name a distribuce certifikátu
LDAP - toto jsem si odzkoušel přes Netscape

44 X.509 certifikát : struktura : serverový certifikát
Common Name=decsys.vsb.cz Country=Czech Republic Organization=Vysoká škola báňská Organizational Unit=CVT

45 X.509 certifikát : struktura : profily
Instituce či státy se rozhodují, co bude/nebude přesně součástí certifikátu a k čemu bude takto vydaný certifikát sloužit. Třídy certifikátů - číselné ohodnocení důvěryhodnosti certifikovaného jedince/organizace podle míry ověření. distinguish - rozeznat, odlišit, odlišovat, charakterizovat

46 PKCS - [RSA] Public-Key Cryptography Standards
PKCS#1 RSA Cryptography Standard PKCS#3 Diffie-Hellman Key Agreement Standard PKCS#5 Password-Based Cryptography Standard PKCS#6 Extended-Certificate Syntax Standard PKCS#7 Cryptographic Message Syntax Standard S/MIME , platba SET…, Netscape CRL, MSIE však používá PKIX IETF: CMS - Cryptographic Message Standard (RFC-2630) PKCS#8 Private-Key Information Syntax Standard PKCS#9 Selected Attribute Types PKCS#10 Certification Request Syntax Standard MSIE dodržuje, Netscape používá vlastní formát SPKAC, IETF: CRMF PKCS#11 Cryptographic Token Interface Standard PKCS#12 Personal Information Exchange Syntax Standard formát pro přenos osobních informací (klíč, certifikát) ještě Netscape 4.0x však používal vlastní formát PFX PKCS#13 Elliptic Curve Cryptography Standard PKCS#15 Cryptographic Token Information Format Standard CRMF = Certificate Request Message Format

47 X.509 certifikát : extensions
Přesný účel certifikátu - podpis dokumentů, podpis software, elektronická platba SET, certifikace serveru pro SSL/TLS (https://…), s tímto certifikátem lze podepisovat jiné certifikáty Další informace o uživateli - (viz dříve) kritické rozšíření: X.509: jde o doporučující položku IETF PKIX: certifikační autority by je měly “podporovat” IETF S/MIME: implementace by s nimi měly “správně zacházet” MailTrusT: ta nekritická jsou jenom informativní a smějí být ignorována Microsoft je dodržuje, Netscape nikoliv extension - rozšíření

48 X.509 certifikát : distribuce 2
Přenos certifikátu CA přes HTTP Content-Type: application/x-x509-ca-cert Netscape 4: PEM, Microsoft 4,5: DER Přenos uživatelského certifikátu Content-Type: application/x-x509- -cert PEM RFC 2585 (květen 1999): typ .cer, application/pkix-cert Přenos Cert. Revocation Listu Netscape: Content-Type: application/x-pkcs7-crl , MSIE: Content-Type: application/pkix-crl MSIE, Netscape: PEM Instalace certifikátu do webserveru Apache: PEM, snáší dobře i komentáře kolem certifikátu MS Personal, Netscape Enterprise: PEM, nesnášejí

49 X.509 technologie : postavení v modelu OSI
7 (Application) DNSsec PGP S-HTTP HTTPS, POP3S, ... PEM, S/MIME 6 (Presentation) Authenticode, SUN, ... SSH 5 (Session) PGP SSL, TLS 4 (Transport) IPsec 3 (Network) 2 (Data Link) 1 (Physical)

50 X.509 a elektronická pošta - S/MIME

51 X.509 a elektronická pošta - S/MIME
From: To: Subject: Katastrofalni ztraty ve tretim kvartale Date: Tue, 23 Oct :52: MIME-Version: 1.0 Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7m" MIAGCSqGSIb3DQEHA6CAMIACAQAxggJlMIIBKwIBADCBkzCBjTELMAkGA1UE BAgTEE5vcnRoZXJuIE1vcmF2aWExEDAOBgNVBAcTB09zdHJhdmExDDAKBgNV ... FnNbIKlteb5iTszq3oCnwhue8AQf4pOEi8I/UVGJicIyrN2nriyyGo546zp3 xm9ZQWOkFPrzceiIuvXTG9WJgSF+LEPyIMGSYWmGNBQHAAAAAAAAAAAAAA==

52 X.509 a přenosy SSL - Netscape: Secure Socket Layer v2, v3
PCT - Microsoft: Private Communications Technology nepoužívá se TLS - IETF RFC-2246: Transport Layer Security odvozeno z SSL vzájemně nekompatibilní nepodporuje šifrovací standard Fortezza, více Alertů v AP (revokace), jiný algoritmus výpočtu hashe PCT se nesnaží zvlášť prosazovat ani firma Microsoft SSL v1 - bylo zlomeno publikem během první předváděčky firmy Netscape

53 X.509 a přenosy - SSL/TLS : protokoly
RLP - Record Layer Protocol šifruje a počítá kontrolní součty HP - Handshake protocol vyjednává typ šifrování a hash připravuje data pro výpočet master secret -> symetrické klíče, MAC secret CCSP - Change Cipher Specification Protocol změna šifrovacího algoritmu AP - Alert Protocol signalizace závady Red Alert - písnička skupiny Basement Jaxx, používá se v upoutávkách MTV

54 X.509 a přenosy - SSL/TLS : Handshake Protocol 1
klient ClientHello: verze SSL/TLS informace o možnostech klientova šifrování náhodná data “client-nonce” server SeverHello: verze SSL/TLS informace o volbě šifrovací metody náhodná data “server-nonce” certifikát serveru Handshake protocol: Zpráva ClientHello obsahuje nevyplněné identifikační číslo relace. To přidělí server ve zprávě ServerHello. Zprávy obsahují náhodná čísla Client nonce a Servernonce, vstupující do procesu výpočtu sdíleného tajemství. Dále klient nabídne podporované kryptografické algoritmy a server si z nich vybere. Server pošle svůj certifikát, případně řetězec certifikátů až ke kořenu. Server také může poslat požadavek na klientův certifikát . nonce - projednou, protentokrát, pro teď, příležitostně

55 ClientHello, ServerHello
X.509 a přenosy - SSL/TLS : Handshake Protocol 2 klient ClientHello, ServerHello server ClientCertificate (optional) ClientKeyExchange Náhodná data “Předběžné tajemství (PreMasterSecret)” šifrovaná veřejným klíčem z certifikátu serveru. MasterSecret=hash(client nonce + master nonce + PremasterSecret) přepnutí na symetrické šifrování MasterSecret=hash(client nonce + master nonce + PremasterSecret) přepnutí na symetrické šifrování Pokud byl vznesen požadavek na certifikát, klient odpoví. Klient pak odešle další náhodná data, tentokrát zašifrovaná veřejným klíčem certifikátu. Pokud by byla činnost serveru counterfait, nemohl by podvodník získat další kus dat. Oba - server i klient - pak vypočítají hash ze všech tří dat a zahají symetricky šifrovaný přenos.

56 X.509 a přenosy - SSL/TLS : Record Layer Protocol

57 X.509 a přenosy - obecné protokoly a SSL
IANA porty POP3 (110) -> POP3S (995) IMAP (143) -> IMAPS (993) běžný démon (např. imapd) nad ním SSL wrapper (sslwrap) pop3s stream tcp nowait nobody /.../sslwrap sslwrap -cert /.../cert.pem -key /.../key.pem -port 110 imaps stream tcp nowait nobody /.../sslwrap sslwrap -cert /.../cert.pem -key /.../key.pem -port 143 wrap - obalit, zabalit, obtočit, zahalit

58 X.509 a šifrovaný autentifikovaný přenos - SSL a Apache
#!/usr/bin/bash echo "Content-Type: text/plain" echo "" echo "APACHE + MODSSL ==================================================" echo "Prave sifrujeme na $SSL_CIPHER_USEKEYSIZE bitu algoritmem $SSL_CIPHER." echo "Overeni autenticity: $SSL_CLIENT_VERIFY" [ $SSL_CLIENT_VERIFY = "NONE" ] && echo "Nepovolil(a) jste overeni certifikatem nebo jej vubec nemate." echo "Vase jmeno: $SSL_CLIENT_S_DN_CN" echo "Vase ova adresa: $SSL_CLIENT_S_DN_ " echo "Vase cela identita: $SSL_CLIENT_S_DN" echo "Podepsala vas autorita: $SSL_CLIENT_I_DN" echo "APACHE-SSL ======================================================" echo "Prave sifrujeme na $HTTPS_KEYSIZE bitu algoritmem $SSL_CIPHER." echo "Vase jmeno: $SSL_CLIENT_CN" echo "Vase ova adresa: $SSL_CLIENT_ " echo "Vase cela identita: $SSL_CLIENT_DN" ukázka… Listen 443 SSLEngine on SSLCertificateFile /cesta/cert.pem SSLCertificateKeyFile /cesta/key.pem SSLCertificateChainFile /cesta/ca.pem SSLCACertificatePath /cesta/cacert.pem SSLVerifyClient optional (0-3 v Apache-SSL) SSLVerifyDepth 10 <Directory " /cesta/cgi-bin"> SSLOptions +StdEnvVars </Directory>

59 X.509 a šifrovaný autentifikovaný přenos - SSL a Apache

60 X.509 a šifrovaný autentifikovaný přenos - SSL a Apache

61 X.509 a podepisování - XML dokumenty
W3C Proposed Recommendation XML-Signature Syntax and Processing z 20. srpna 2001, na XML Security Suite For Java (XSS4J) - IBM Alphaworks XML Encryption Implementation XML Signature Implementation XML Access Control ASN.1/XML Translator DOMHASH Calculation Library XML Canonicalizer zkoumáno v půlce října 2001

62 X.509 a podepisování - Microsoft Authenticode

63 X.509 a podepisování Java Netscape Object Signing
utilita javakey pro podepisování JARů, vytváření, zobrazování certifikátů podepsaný applet smí vykročit z Java sandboxu, pokud mu to uživatel/administrátor dovolí Netscape Object Signing utilita Netscape Signing Tool pro podepisování JARů a HTML stránky s JavaScriptem

64 X.509 a podepisování - Netscape Form Signing (nefunguje v MSIE)
<script LANGUAGE="javascript1.2"> function signForm(theForm, theWindow, validation) { var formSize = theForm.elements.length; var signedText = theWindow.crypto.signText (theForm.prohlaseni.value, "ask"); validation.value = signedText; return true; } </SCRIPT> <form ACTION="signform2.php" METHOD="get" ONSUBMIT="return signForm(this, window, this.validation);"> <textarea NAME="prohlaseni"> </textarea> <input TYPE="hidden" NAME="validation"> <input TYPE="submit"> </form> data

http://decsys.vsb.cz/~dol72/signform2.php?prohlaseni=ZABIL+JSEM+SEKALA.&validation=%0AhTgu…PKCS#7 data.", "width": "800" }

65 X.509 a IP protokol - IPsec IP security - bezpečnost vestavěná do IP
šifrování a autentifikace mezi hostiteli (firewally) Cisco Encryption Technology možnost v IPv4, součást IPv6 Sestává ze dvou částí: IPSEC funkčnost (autentifikace a šifrování) IPSEC správa klíčů mezi počítači, směrovači

66 X.509 a IP protokol - IPsec Režimy: Protokoly:
Transportní bezpečnostní hlavička je vklíněna mezi IP hlavičku a TCP hlavičku (resp. hlavičku vyšší vrstvy) používá se mezi počítači Tunel celý IP paket je vložen jako data do nového IP paketu používá se mezi směrovači Protokoly: AH - IP Authentication Header ESP - IP Encapsulation Security Payload ISAKMP - Security Association And Key Management Protocol (500/udp) Nejen X.509, ale i PGP, Kerberos, klíče DNSsec

67 X.509 a bankovní operace - SET
Vynález IBM. V ČR pouze Komerční banka. Celosvětově patrně nedojde rozšíření pro přílišnou rafinovanost, která produkuje vysoké náklady.

68 X.509v3 Pokud vše funguje hladce, máte téměř zaručeno, že víte, s kým komunikujete.

69 X.509v3 Nedopracované normy, plné nejednoznačností (kódování řetězců, použití kritických omezení). Variace na Y2K: problém nastane při ověřování starých podpisů hned ve dvou letech: 2049 a 2050. Existence několika silných skupin (IETF: PKIX, IETF S/MIME, RSA, provozovatelé CA). Každý výrobce software používá svá OID, která se obtížně zjišťují. Některé profesionální certifikační autority vydávají certifikáty se špatnou syntaxí. Nemáte jednoznačně zaručeno, že víte, s kým komunikujete. Rozhodnutí o důvěře přenášíte na certifikační autoritu. Expirovaný certifikát je neplatný certifikát. Bud, if dynamite was dangerous, do you think they’d sell it to an idiot like me? Al Bundy, “Married With Children”

70 X.509v3 VERISIGN MAKES NO REPRESENTATION OR WARRANTY THAT ANY CA OR USER TO WHICH IT HAS ISSUED A DIGITAL ID IN THE VERISIGN SECURE SERVER HIERARCHY IS IN FACT THE PERSON OR ORGANIZATION IT CLAIMS TO BE WITH RESPECT TO THE INFORMATION SUPPLIED TO VERISIGN. VERISIGN MAKES NO ASSURANCES OF THE ACCURACY, AUTHENTICITY, INTEGRITY, OR RELIABILITY OF INFORMATION CONTAINED IN DIGITAL IDS OR IN CRLs COMPILED, PUBLISHED OR DISSEMINATED BY VERISIGN, OR OF THE RESULTS OF CRYPTOGRAPHIC METHODS IMPLEMENTED. 29. a 30. ledna 2001 vydala kořenová certifikační autorita Verisign dva certifikáty Class 3 pro elektronický podpis programů osobě, která o sobě nepravdivě uvedla, že je zamestnancem firmy Microsoft. "Common Name” (položka v certifikátu, která se ihned zobrazuje při pokusu o spuštění programu) je "Microsoft Corporation". V r vydal Verisign certifikát pro adresu (DigiCrime) Bud, if dynamite was dangerous, do you think they’d sell it to an idiot like me? Al Bundy, “Married With Children”

71 X.509 versus PGP U PGP - tak jak je dnes využíváno (“web of trust”) - nemáte většinou už vůbec žádnou představu o tom, kdo jsou ti lidé, kteří se zaručují za něčí veřejný klíč - pokud je vůbec klíč zaručený. Větší zranitelnost takového ověření: na jednom špatném členu řetězce je závislý nejasný počet ověřovatelů. Problematické odvolávání. Postačí pro kontakt dvou přátel nebu teroristů, nedostačující pro skutečnou autentifikaci, spoofing.

72 A Pretty Good Privacy Sale
By Joanna Glasner 4:10 p.m. Oct. 12, 2001 PDT Privacy protection -- although sought after by Internet users -- seems to be proving itself a difficult business for computer security firms. This week, the latest indication of trouble in privacy-land came when the company that distributes a popular encryption software package for businesses said it is getting out of the business. On Thursday, Network Associates, the Santa Clara, California, developer of computer and network security tools, said it is seeking a buyer for its PGP, or Pretty Good Privacy, file and desktop encryption products and Gauntlet Firewall. Network Associates said that part of its line of PGP security products will be folded into McAfee and its Sniffer network security division. But the transfer won't include its core PGP offering, the file and desktop application, which the company bought from its creator, cryptologist Philip Zimmermann, nearly four years ago.

73 Vytvoření požadavku na certifikát - Netscape
<FORM NAME="CertReqForm" ACTION="zadost2.php3"> <INPUT NAME="CommonName"> …a další DN položky... <KEYGEN NAME="SPKAC" CHALLENGE="challengePassword"> <INPUT TYPE="submit" NAME="SUBMIT" value="Send The Request"> </FORM>

74 Vytvoření požadavku na certifikát - MSIE
CryptoAPI Objekt „Certificate Enrollment Control” <OBJECT CLASSID="clsid:43F8F289-7A20-11D0-8F06-00C04FC295E1" CODEBASE="xenroll.dll" ID="Enroll"> VBScript szName = "C=" & TheForm.countryName.value ... Enroll.KeySpec = 1 Enroll.GenKeyFlags = 3 sz10 = Enroll.CreatePKCS10(szName," ")

75 Nevydává testovací, ale platné certifikáty (tj. s ověřením). Žádost o certifikát pomocí Netscape/Mozilly či MSIE, přijmout lze i žádosti vytvořené OpenSSL apod. po dohodě. Způsob, jak získat certifikát pro podpis u, objektů, serverů s minimálními náklady (pouze kolik utratíte za dopravu autentifikačních dat). Dosud neexistuje dostatečný konsensus pro akceptaci ca.czweb.org jako kořenové CA. Fingerprint kořenového certifikátu u Ing. Ivana Doležala, tel. (069)

76 software Mozilla Open Source PKI Services (GNU licence) stejní autoři jako OpenSSL i v produktech iPlanet (Sun-Netscape Alliance) Network Security Services, Java Security Services, Personal Security Manager PSM i jako jar plug-in pro Netscape 4.7x OpenSSL (Apache licence) vznikl z SSLeay zvládne, na co si vzpomenete široce využívané GNU komunitou (Dr. Stephen Henson)

77 software Oscar/uPKI/JCSI http://oscar.dstc.qut.edu.au/ Ostatní
původně studentský GNU projekt přešel na tvrdou komerci uPKI - ANSI C, pro přenosná zařízení / JCSI - Java služby Ostatní RSA Java integrální součástí,dříve jako options: JCE, JSSE Microsoft CryptoAPI (součást Windows NT, MSIE) SSLref Java Cyptography Extension, Java Secure Socket Extension

78 literatura : 2 Menezes, Oorschot, Vanstone: Handbook Of Applied Cryptography, 1996 Bruce Schneier’s “Counterpane” Peter Gutmann Frederick Hirsch National Institute of Standards and Technology

79 literatura : 2 Netscape - iPlanet DevEdge http://devedge.netscape.com/
Mozilla.org Microsoft Developer Network Sun RSA Laboratories

80 literatura : 2 Free On-Line Dictionary Of Computing OpenCA XML Signature Working Group National Security Agency Electronic Frontier Foundation

81 Dobrou noc! Ed


Stáhnout ppt "Úvod do PKI (Public Key Infrastructure)"

Podobné prezentace


Reklamy Google