390 likes | 562 Views
Verschlüsselung und Digitale Signaturen. Stephan Hiller TC TrustCenter for Security in Data Networks GmbH hiller@trustcenter.de. Verschlüsselungsverfahren:. - Symmetrische Verschlüsselung - Asymmetrische Verschlüsselung. Symmetrische Verschlüsselung. Vorteil:
E N D
Verschlüsselung und Digitale Signaturen Stephan Hiller TC TrustCenter for Security in Data Networks GmbH hiller@trustcenter.de
Verschlüsselungsverfahren: - Symmetrische Verschlüsselung - Asymmetrische Verschlüsselung
Symmetrische Verschlüsselung Vorteil: • Verschlüsselung ist sehr schnell Nachteil: • Schlüsselverteilungsproblem: Wie bekomme ich einen symmetrischen Schlüssel über einen unsicheren Kanal? Algorithmen: DES, 3DES, IDEA, RC2, RC4 A B
Public Key A Public Key B Asymmetrische Verschlüsselung Vorteil: • Schlüsselverteilungsproblem ist gelöst, da der Transport der Public Key über unsicheren Kanal unkritisch ist. • Private und Public Key sind komplementär zueinander Nachteil: • Asymmetrische Verschlüsselung ist zeitintensiv Algorithmen: RSA, DSA A B Private Key A Private Key B
Hybridverfahren • Kombination beider Verschlüsselungsverfahren • Daten werden mit symm. Schlüssel verschlüsselt • Symm. Schlüssel wird mit Public Key des Empfängers verschlüsselt Vorteil: • Schlüsselverteilungsproblem ist gelöst und die Verschlüsselung kann trotzdem sehr schnell durchgeführt werden
RSA-Verschlüsselung Öffentlicher Schlüssel: n Produkt zweier Primzahlen p und q (diese müssen geheim bleiben) e relativ prim zu (p-1)(q-1), d.h. sie sind keine Faktoren von e Privater Schlüssel d (e^-1) mod ((p-1)(q-1)) Verschlüsselung c = (m^e) mod n Entschlüsselung m = (c^d) mod n Wir wählen p = 47; q = 71 n = pq = 3337 Der Chiffrierschlüssel e darf keine gemeinsamen Faktoren mit (p-1)(q-1) = 46 * 70 = 3220 haben. Wir wählen als Wert für e (zufällig) e = 79
RSA-Verschlüsselung Mittels des erweiterten Euklidischen Algorithmus wird daraufhin d (privater Schlüssel) berechnet d = (79^-1) mod 3220 = 1019 ((79*1019) mod 3220 = 1) e und n werden veröffentlicht (bilden den öffentlichen Schlüssel), d bleibt geheim. p und q werden vernichtet. Zur Verschlüsselung der Nachricht 688232687 wird diese zuerst in kleine Blöcke zerlegt. m1 = 688 m2 = 232 m3 = 687 Der erste Block wird folgendermaßen verschlüsselt (688^79) mod 3337 = 1570 Führt man diese Operation auch für die anderen Blöcke durch, so erhält man den Ciphertext c = 1570 2756 2091 Zur Entschlüsselung der Nachricht wird eine ähnliche Potenzierung mit dem Dechiffrierschlüssel (privater Schlüssel), also 1019, durchgeführt. (1570^1019) mod 3337 = 688 = m1
Digitale Signaturen • Verschlüsselung sichert die Vertraulichkeit • Aber: • Wer ist der Absender ? • Wurden die Daten von Dritten verändert ? • Lösung: • Eindeutige Abbildung der Daten auf einen Bitstring (Hashwert) • Hashwert wird mit privatem Schlüssel des Absenders verschlüsselt und bildet die Signatur
Digitales Signieren und Verifizieren A Daten B Daten Hashbildung z.B. MD5 Hashbildung z.B. MD5 Signatur Hash Public Key A Private Key A Hash entschlüsseln verschlüsseln Daten Hash Daten Signatur Sind die beiden Hashwerte identisch, ist die Nachricht authentisch und integer Signatur
Kombinationen • Verschlüsseln (Vertraulichkeit) • Signieren (Integrität, Authentizität) • Verschlüsseln und Signieren • Aber: • Ein Dritter könnte sich für Kommunikationspartner ausgeben und öffentlichen Schlüssel unter falschen Namen publizieren
Zertifikate • „Ein Zertifikat [...] ist eine mit einer digitalen Signatur versehene digitale Bescheinigung über die Zuordnung eines öffentlichen Signaturschlüssels zu einer natürlichen Person (Signaturschlüssel-Zertifikat) [...].“ (SigG § 2 Abs. 3) • Zertifikate werden von Trustcentern bzw. Certficate Authorities (CA) ausgestellt
Aufgaben eines Trustcenters • Antragstellung und Registrierung • Identifizierung • Zertifikatsausstellung • Verzeichnis- und Zeitstempeldienst • Sperrmanagement • Schlüsselgenerierung
Zertifikate - für wen? • Personen • Organisationen • Webserver • Software
Zertifikatstypen • PGP-Zertifikate • Email • Dateiverschlüsselung • X.509-Zertifikate • Email (S/MIME) • SSL-Verbindungen / „Sicheres Browsen“ • Dateiverschlüsselung
X.509: Angaben zur Person (Name, Firma, Abteilung, Land, Bundesland, Ort, Email, etc.) Seriennummer Aussteller Gültigkeitsdauer Öffentlichen Schlüssel Signatur eines Trustcenters Extensions PGP V. 5.X Angabe zur Person (Name, Email) Gültigkeitsdauer (optional) Öffentlicher Schlüssel Signaturen Dritter Was enthält ein Zertifikat
X.509 - Certificate chain PGP - Web of Trust Zertifikatshierarchie Root-CA Alice CA 1 Bob Dave CA n Carol Dave
X509-Zertifikat Certificate: Data: Version: 3 (0x2) Serial Number: 126636 (0x1eeac) Signature Algorithm: md5WithRSAEncryption Issuer: C=DE, ST=Hamburg, L=Hamburg, O=TC TrustCenter for Security in Data Networks GmbH, OU=TC TrustCenter Class 3 CA/Email=certificate@trustcenter.de Validity Not Before: Nov 18 15:22:37 1998 GMT Not After : Nov 18 15:22:37 1999 GMT Subject: C=DE, ST=Bremen, L=Bremen, O=, OU=, CN=Stephan Hiller/Email=hiller@trustcenter.de Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:bf:37:be:d2:f8:33:cd:1c:60:b8:a5:bf:51:04: 71:8c:b4:29:c4:39:93:24:da:b5:f4:55:34:fc:bf: 07:0b:fc:77:bd:fa:86:b9:b5:98:2f:5b:fe:9b:8e: 99:b9:65:2b:8a:5e:30:e1:7c:16:8a:28:fe:5a:6c: b2:47:56:83:73:ba:73:86:c2:01:d5:ad:69:25:54: 81:b9:45:c7:78:6c:3a:12:2b:f8:43:a8:d1:8a:81: 57:d1:92:e3:51:43:f0:22:87:4c:e5:96:23:de:5e: 41:5e:c8:82:6d:d7:6e:f9:c1:9d:06:03:34:42:61: bc:5c:39:9a:2f:11:80:a5:0b Exponent: 65537 (0x10001) X509v3 extensions: Netscape Revocation Url: https://www.trustcenter.de/cgi-bin/check-rev.cgi/01EEAC? Netscape Renewal Url: https://www.trustcenter.de/cgi-bin/Renew.cgi? Netscape CA Policy Url: http://www.trustcenter.de/guidelines/index.html Netscape Comment: TC TrustCenter Class 3 Netscape Cert Type: .... Signature Algorithm: md5WithRSAEncryption 7d:80:98:2d:56:35:b5:d7:d9:c2:a6:a8:db:d5:80:2d:f7:89: 55:99:2d:34:04:7a:fb:c1:ec:30:64:0e:2f:43:a5:45:e0:70: 81:15:a0:5a:f0:c6:a3:cd:c1:d2:9b:87:fb:46:a3:a1:2d:8b: ba:d7:12:25:1f:53:30:13:03:75:9d:97:59:b7:31:3b:fb:29: 77:d5:08:46:80:d0:1d:7b:c5:be:81:5c:ba:b1:d9:86:44:09: d9:73:fe:59:3f:df:c7:24:bf:45:84:48:f2:08:0e:00:d9:87: 1f:ef:60:6e:c1:62:f4:1c:00:08:e3:43:b9:98:f5:2d:da:0a: ff:3e
CRL (Certificate Revocation List) • Sperrliste mit kompromittierten Zertifikaten • Enthält Seriennummer des Zertifikates mit Signatur der CA • Wird in regelmäßigen Intervallen veröffentlicht Aber: • Ist nicht immer aktuell
Online-Abfrage über OCSP oder LDAP • Zertifikatsstatus ist immer aktuell Aber: • Erfordert große Bandbreite beim OCSP-Responder bzw. LDAP-Server der CA
Anwendungen • Telearbeit • Online-Shopping • Elektronische Bankgeschäfte • E-Mail • Intranet Anwendungen • Online-Reisebuchung • Verbindliche Verträge • Online-Behördengänge • Sicheres „Surfen“ etc.
SSL-Protokoll • Entwicklung von Netscape (1994) • Bietet die Möglichkeit der End-zu-End-Verschlüsselung, Authentifizierung und Integritätsüberprüfung • Basiert auf X.509-Zertifikaten • Unabhängig von Protokollen der Applikationsschicht (HTTP, Telnet, FTP)
SSL-Handshake Client Client Hello Server Festlegung der Protokoll-Version (SSL2, SSL3), Server Hello Session ID, Cipher-Suite und Austausch von Zufallswerten, Kompressionsmethode Certificate Optional Versenden des Server-Zertifikats und Nachfrage nach dem Client-Zertifikat Server Key Exchange Certificate Request Server Hello Done Certificate Senden des Client-Zertifikats Client Key Exchange RSA encrypted premaster secret Senden des 48 Byte Premaster secrets Finished Finished
Cipher-Suiten Name VersionSchlüsselvert. AuthentifikationVerschlüselung Hash EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 IDEA-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=IDEA(128) Mac=SHA1 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1 DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5 IDEA-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=IDEA(128) Mac=MD5 RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5 RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC4-64-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(64) Mac=MD5 DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5 EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export EXP-DES-CBC-SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
Vertragsanwendung Client Anbieter Security-Proxy SSL-We b s e r v e r 1. Zusammenstellung des Warenkorbes Web-Browser Ecommerce System 2. Bestelleingang 4. Senden des Vertrages 3. Übergabe des Vertragstextes 5. Vertragessignierung 9. Übergabe der Signatur 6. Senden der Unterschrift (Signatur und Zertifikat) Vertragsclient Vertragsserver 10. Übergabe der Anbietersignatur 7. Überprüfung des Zertifikatsstatus 8. Antwort Public Key Server Trustcenter
Security Proxy Client Server Computer A Computer B Browser z.B. MSIE, Netscape 128 Bit SSL-Server 128 Bit Verbindung 40 Bit Verbindung Proxy Apache mit mod_ssl Stronghold, Roxen Challenger
Secure Electronic Transaction (SET) • Entwickelt von VISA und MasterCard (V 1.0 - Juni 1997) • Protokoll für sichere Kreditkartenzahlungen • Basierend auf X.509-Zertifikaten • Zertifikatshierarchie
Signaturgesetz / Signaturverordnung • SigG (22. Juli 1997), SigV (8. Oktober 1997) • SigG regelt Genehmigung von Zertifizierungsstellen, Inhalt, Vergabe und Sperrung von Zertifikaten, Zeitstempeldienste etc. • SigG schafft die Rahmenbedingungen für die rechts-verbindliche digitale Signatur • SigV regelt die Anforderungen für den Betrieb einer Zertifizierungsinstanz / Trustcenter
Signaturgesetz:Anforderungen an das Trustcenter • Zuverlässige Mitarbeiter • Begrenzte Anzahl von Mitarbeitern darf zertifizieren • Bauliche Maßnahmen • Vier-Augen Prinzip • Lückenlose und manipulationsfreie Protokollierung • Signaturschlüssel sind nicht kopierbar • Hohe Verfügbarkeit von Public Key Servern
Signaturgesetz:Anforderungen auf der Benutzerseite • Smartcard und Smartcard-Reader • Sicherheitssoftware (z.B. Anzeigekomponente) • Sorgfaltspflicht
Signaturgesetzkonforme Zertifikate Vorteile: • Hohe Sicherheit / Vertrauen • Unterschriftensurrogat / Rechtsverbindlichkeit Nachteile: • Z.Z. keine Unterstützung durch Standardsoftware • Hohe Kosten für SigG-konforme Komponenten
Softwarezertifikate (nicht-SigG-konform) Vorteile: • Unterstützung durch Standardsoftware • Unterschiedliche Identifizierungsverfahren / Trustlevel Nachteile: • Keine Mindestanforderungen an Trustcenter • Schlechte Einschätzung der Vertrauenswürdigkeit • Häufig nur geringe Schlüssellängen
Diffie-Hellman-Schlüsselaustausch A und B einigen sich auf eine große Primzahl n und eine Zahl g. Diese beiden Zahlen müssen nicht geheim bleiben. A wählt eine große zufällige Zahl x und sendet B X = (g^x) mod n B wählt eine große zufällige Zahl y und sendet A Y = (g^y) mod n A berechnet k = (Y^x) mod n B berechnet k‘ = (X^y) mod n Sowohl k als auch k‘ sind gleich (g^(xy)) mod n Beispiel: n = 7 g = 3 x = 9 y = 11 A berechnet: X = (3^9) mod 7 == 19683 mod 7 = 6 B berechnet: Y = (3^11) mod 7 == 177147 mod 7 = 5 k = (5^9) mod 7 = 1953125 mod 7 = 6 k‘ = (6^11) mod 7 = 362797056 mod 7 = 6