Verschlüsselung und Digitale Signaturen Stephan Hiller TC TrustCenter for Security in Data Networks...

Post on 05-Apr-2015

108 views 1 download

Transcript of Verschlüsselung und Digitale Signaturen Stephan Hiller TC TrustCenter for Security in Data Networks...

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ü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=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-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