Verschlüsselung und Digitale Signaturen
Stephan Hiller
TC TrustCenter for Security in Data Networks GmbH
Verschlüsselungsverfahren:
- Symmetrische Verschlüsselung
- Asymmetrische Verschlüsselung
Symmetrische VerschlüsselungVorteil:– 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
Asymmetrische VerschlüsselungVorteil:
– 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
Public Key B Public Key A BA
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üsseld (e^-1) mod ((p-1)(q-1))
Verschlüsselungc = (m^e) mod n Entschlüsselungm = (c^d) mod n
Wir wählenp = 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üsselungMittels 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
Sicherheit der Schlüssellängen (Stand 08/97)
Symmetrisch Asymmetrisch Priv. Angreifer Kleine Gruppe Uni-Rechenzentrum Große Firma Militär
40 274 Wochen Tage Stunden Millisekunden Mikrosekunden
56 384 Jahrhunderte Jahrzehnte Jahre Stunden Sekunden
64 512 Jahrtausende Jahrhunderte Jahrzehnte Tage Minuten
80 768 Unendlich Unendlich Unendlich Jahrhunderte Jahrhunderte
96 1024 Unendlich Unendlich Unendlich Jahrtausende Jahrhunderte
112 1792 Unendlich Unendlich Unendlich Jahrtausende Jahrhunderte
120 2048 Unendlich Unendlich Unendlich Unendlich Jahrtausende
128 2304 Unendlich Unendlich Unendlich Unendlich Jahrtausende
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
Daten
Signatur
Hashbildungz.B. MD5
verschlüsseln
Daten
Hash
A
Signatur
Daten
Hash
Hashbildungz.B. MD5
Hash
entschlüsseln
Public Key A
Private Key A
B
Sind die beiden Hashwerte identisch,ist die Nachricht authentisch und integer
Signatur
Daten
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
Was enthält ein Zertifikat
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
Zertifikatshierarchie
X.509 - Certificate chain PGP - Web of Trust
Alice
Bob
Carol
Dave
Root-CA
CA 1
CA n
Dave
X509-ZertifikatCertificate: 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 protected] 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 protected] 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-HandshakeClient 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 Version Schlüsselvert. Authentifikation Verschlü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
Web-Browser
Vertragsclient
Security-Proxy
Client
Ecommerce System
Vertragsserver
SSL-Webserver
Anbieter
Public Key Server
1. Zusammenstellung des Warenkorbes
2. Bestelleingang
9. Übergabeder Signatur
3. Übergabe des Vertragstextes4. Senden des Vertrages
6. Senden der Unterschrift (Signatur und Zertifikat)
10. Übergabe der Anbietersignatur
Trustcenter
5. Vertragessignierung
7. Überprüfung des Zertifikatsstatus 8. Antwort
Security Proxy
Browserz.B. MSIE,Netscape
128 BitSSL-Server
Proxy
Client Server
Computer A Computer B
40 Bit Verbindung
128 Bit Verbindung
Apache mit mod_sslStronghold, 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
SET-Struktur
SET-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
Vielen Dank für Ihre Aufmerksamkeit
Diffie-Hellman-SchlüsselaustauschA 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