Handout

Transcrição

Handout
SSL und Zertifikate
INHALTSVERZEICHNIS
INHALTSVERZEICHNIS
Inhaltsverzeichnis
1 Was ist SSL?
1.1 SSL im OSI-Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Der SSL-Verbindungsaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
3
2 Was sind Zertifikate?
2.1 Welche Software unterstützt SSL bzw. Zertifikate? . . . . . . . . . . . . . . . . . .
2.2 Der Distinguished Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
6
7
3 Was ist S/MIME?
3.1 Wie verschicke ich eine durch S/MIME gesicherte E-Mail? . . . . . . . . . . . . . .
3.2 Empfangen von S/MIME-Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Wie erhalte ich die Zertifikate meiner Kommunikationspartner? . . . . . . . . . . .
8
8
8
9
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
1
Secure Socket
Layer
Was ist SSL?
SSL ist eine Abkürzung für Secure Socket Layer und beschreibt ein ursprünglich von der Firma
Netscape entwickeltes Sicherheitsprotokoll, das die Datensicherheit einer Kommunikationsverbindung garantiert. Ganz allgemein kann man durch SSL eine Verbindung nicht nur verschlüsseln,
um die übertragenen Informationen gegen unerwünschtes Abhören zu schützen, sondern auch eine Authentisierung des Kommunikationspartners vornehmen, um sicher zu gehen, dass man auch
mit der richtigen Person (oder dem richtigen Rechner) kommuniziert. SSL wird zur Zeit stark mit
dem WorldWideWeb in Verbindung gebracht, um den Datenaustausch von Browser und Server
sicherer zu machen. Dies ist auch durch den stetigen Ausbau des Internets aus Sicherheitsgünden
unabdingbar.
1.1
OSI-Modell
Seite: 3
SSL im OSI-Modell
Um die Funktionsweise von SSL zu verstehen, muss man einen Blick auf das OSI-Modell werfen.
OSI bedeutet Open Systems Interconnection und beschreibt den Datenaustausch von offenen (verschiedenen) Systemen durch ein siebenschichtiges Modell. SSL ordnet sich dort – wie folgt – in
dieses (hier vereinfachte) Modell ein:
OSI-Modell
Anwendung
Datendarstellung
Kommunikationssteuerung
Transport
Vermittlung
Sicherung
Bitübertragung
Protokolle
HTTP, FTP
Telnet...
SSL
———–
TCP
IP
Netzwerk
SSL liegt zwischen TCP/IP und der Anwendungsschicht und kann daher vielfältig eingesetzt werden. Die Verschlüsselung wird unterhalb der Anwendung und somit unabhängig davon durchgeführt. Andererseits liegt es über der Transportschicht und ist vom Netzwerk-Protokoll abgekoppelt.
Daher kann z.B. eine Telnet-Verbindung genauso durch SSL gesichert werden wie die Übertragung
von HTML-Seiten.
1.2
https
Der SSL-Verbindungsaufbau
Wir wollen uns einmal den Aufbau einer sicheren Verbindung zwischen Browser und Server im
Internet genauer ansehen. Eine sichere Verbindung wird immer durch den Protokolldesignator
https angezeigt, z.B.:
https://www.fernuni-hagen.de
HandshakeProtokoll
SSL führt vor dem Aufbau einer Verbindung eine Initialisierung durch das sogenannte HandshakeProtokoll vor. Dieses legt die Sicherheitsstufe fest, auf die sich der Client und der Server einigen,
übernimmt die notwendigen Echtheitsbestätigungen für die Verbindung und handelt einen Sitzungsschlüssel für die Verschlüsselung aus. Dies geschieht wie folgt:
B Zu Beginn stellt der Client eine Anfrage an den Server und schickt ihm die Verschlüsselungsverfahren, die er unterstützt.
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
Seite: 4
B Der Server wählt ein Verfahren aus und übermittelt dem Client sein Zertifikat mit dem
öffentlichen Schlüssel des Servers.
B Anschließend generiert der Client den sogenannten Sitzungsschlüssel (session key) für ein
symmetrisches Verschlüsselungsverfahren. Dieser Schlüssel wird nun mit dem öffentlichen
Schlüssel des Servers verschlüsselt und zum Server übertragen. Nur dieser kann ihn mit dem
privaten Schlüssel wieder entschlüsselt.
B Optional kann nun eine Clientidentifizierung erfolgen, die ähnlich der Serveridentifikation
abläuft. Der Client muss jedoch über ein gültiges Zertifikat verfügen.
Da der Sitzungsschlüssel nun ausgetauscht ist, kann die Verschlüsselung beginnen. Während die
Verbindung besteht, übernimmt SSL lediglich die symmetrische Ver- und Entschlüsselung des Datenstroms mithilfe des Sitzungsschlüssels.
Da symmetrische Verschlüsselungsverfahren wesentlich schneller als asymmetrische Verfahren sind,
können die Daten schnell übertragen werden. Die asymmetrischen Verfahren werden nur zum Austausch des Sitzungsschlüssels und zur Authentisierung benutzt.
Sämtliche Informationen, sowohl die der Client-Anfrage als auch die der Server-Antwort, werden
nun vollständig verschlüsselt. Dazu gehört auch der Pfad der angeforderten WWW-Seite (URL),
in Formularen übermittelte Informationen (wie etwa die Nummer einer Kreditkarte), die Informationen zur Echtheitsbestätigung des Zugriffs (Benutzernamen und Kennwörter) sowie alle weiteren
Daten, die sich Server und Client schicken.
2
Was sind Zertifikate?
Will man eine sichere Verbindung mit einem Kommunikationspartner aufbauen, so stellt sich das
Problem der Identifizierung. Wie kann ich sicherstellen, dass mein Partner auch tatsächlich derjenige ist, der er vorgibt zu sein? Und wie kann ich eine solche Identitätsprüfung automatisieren?
digitale Zertifikate
certificate authority
Man kann diese Probleme auf mathematische Weise lösen, indem man sog. digitale Zertifikate
verwendet. Jeder Kommunikationspartner besitzt ein solches Zertifikat. Es enthält neben allgemeinen Informationen zur Person bzw. Organisation (wie Vor- und Zuname, E-Mail-Adresse usw...)
auch den öffentlichen Schlüssel (public key) des Zertifikatinhabers. Diese Daten sind mit einer Prüfsumme versehen und von einer vertrauenswürdigen Instanz (trusted third party) unterschrieben.
Diese Instanz (auch certificate authority oder kurz CA genannt) bildet das Bindeglied zwischen
den Kommunikationspartnern, denn beide Partner vertrauen dieser Instanz und besitzen dessen
Zertifikat. Das bedeutet auch, dass die CA ihren eigenen Schlüssel sorgsam schützt, die Identität der zertifikatbeantragenden Nutzer eingehend prüft und das eigene CA-Zertifikat an mehreren
Stellen publiziert, so dass jeder die Korrektheit des Zertifikats überprüfen kann.
Um nun SSL im Internet verwenden zu können, benötigen man das bereits erwähnte digitale Zertifikat einer Zertifizierungsstelle. Ein Web-Browser zeigt ein Zertifikat immer in folgender Form an:
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
Seite: 5
Dahinter verbirgt sich folgender Inhalt:
Certificate:
Data:
Version: v3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption
Issuer: CN=FernUni-CA (Certificate Authority), OU=Universitaetsrechenzentrum,
O=FernUniversitaet-Gesamthochschule Hagen, C=DE
Validity:
Not Before: Fri Feb 13 08:44:23 1998
Not After: Sun Feb 13 08:44:23 2000
Subject: CN=FernUni-CA (Certificate Authority), OU=Universitaetsrechenzentrum,
O=FernUniversitaet-Gesamthochschule Hagen, C=DE
Subject Public Key Info:
Algorithm: PKCS #1 RSA Encryption
Public Key:
Modulus:
00:aa:0a:51:e9:3c:d9:2c:82:71:c3:ca:71:84:4d:5a:93:6d:e8:
93:18:0a:61:be:1d:7b:2e:97:93:c4:77:28:6a:42:16:b5:ee:56:
ca:45:57:ec:7e:09:c0:54:33:17:90:64:a1:b7:55:8f:e6:28:71:
34:3e:01:79:14:ec:29:f7:51:12:ab:10:c8:a4:9f:0e:98:77:22:
09:c3:06:9c:98:9c:46:08:21:56:20:63:ff:9c:a4:a9:05:cd:7a:
c7:d2:20:8d:36:86:30:97:53:43:af:0a:b9:fc:84:d4:c6:6a:68:
b6:cc:48:ef:66:68:3d:83:1a:e5:56:69:94:7d:19
Public Exponent: 65537 (0x10001)
Extensions:
Identifier: Subject Key Identifier
Critical: no
Value:
d1:a9:24:7c:b4:be:8f:fb:18:97:a1:60:38:9d:93:75:38:07:39:
4d
Identifier: Authority Key Identifier
Critical: no
Key Identifier:
d1:a9:24:7c:b4:be:8f:fb:18:97:a1:60:38:9d:93:75:38:07:39:
4d
Signature:
Algorithm: PKCS #1 SHA-1 With RSA Encryption
Signature:
17:aa:21:ac:89:d6:c2:99:4f:0c:fb:8f:b8:59:b2:16:42:b3:5f:2e:80:7c:
94:2d:8e:ad:24:4a:c1:df:1d:2d:e3:2a:8f:f9:f6:ad:81:bb:de:18:74:bf:
99:a1:e8:75:6c:b6:f9:d6:c1:46:80:d3:89:aa:b9:73:eb:2d:a6:ca:d2:7a:
bc:ae:db:3e:aa:68:87:e9:20:69:ec:4f:b4:cd:2e:a5:89:d2:48:91:6a:ed:
b8:e4:f5:c4:99:91:e9:f7:ea:8f:65:eb:66:de:9b:1f:e1:39:9b:98:6d:77:
94:7c:81:0a:c2:65:e5:77:c4:ad:68:18:4c:e6:ba:22:91:3a
Data-Block
Der mit Data: gekennzeichnete Block enthält folgende Attribute:
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
Seite: 6
B Version: Gibt die Versionsnummer des Zertifikats an (hier X.509v3).
B Serial Number:
B Signature Algorithm:
B Issuer:
B Validity:
B Subject:
B Subject Public Key Info:
B Extensions:
SignatureBlock
Der mit Signature: gekennzeichnete Block enthält die digitale Signatur der des Zertifikats:
B Algorithm:
B Signature:
Findet nun ein Verbindungsaufbau statt, so verifizieren beide Seiten die übermittelten Zertifikate mithilfe des CA-Zertifikats. Verifizieren bedeutet hier zu prüfen, ob die digitale Signatur der
CA unter dem Zertifikat des Kommunikationspartners korrekt ist. Man kann Zertifikate somit als
elektronische Ausweise bezeichnen, die die Identität einer Person oder Organisation bescheinigen.
Beispielsweise werden zu Beginn einer SSL-Verbindung Zertifikate zwischen Server und Client ausgetauscht, um auf elektronischem Wege die Kommunikationspartner zu identifizieren.
Um eine Verbindung mit SSL zu verschlüsseln genügt es bereits, wenn der Server sein Zertifikat an
den Client schickt. Dieser kann nun feststellen, ob das Zertifikat auch von dem Server stammt, zu
dem er eine Verbindung wünscht. Beide handeln dann die entsprechenden Bedingungen zur Verschlüsselung aus. Im Gegenzug kann jedoch auch der Server ein Zertifikat vom Client verlangen,
um diesen zu Authentisieren. D.h. es kann nur ein Client mit einem gültigen Zertifikat einer CA
eine Verbindung zum Server aufbauen.
distinguished
name
Die Informationen zum Inhaber des Zertifikats werden als distinguished name (oder kurz DN )
bezeichnet. Hierbei werden in vorgegebene Felder die Merkmale des Inhabers eingetragen.
Diese Zertifikate sind nach dem Standard X.509 standardisiert. Daher werden die Bezeichnungen
X.509 Zertifikat, SSL-Zertifikat oder einfach nur Zertifikat oft synonym verwendet.
2.1
Welche Software unterstützt SSL bzw. Zertifikate?
SSL wurde in die Browser Internet-Explorer und Netscape Navigator (ab Version 3) sowie Opera
(ab Version 5) integriert. Zahlreiche weitere Produkte unterstützen SSL (GroupWise, StarOffice,
Eudora, ...), jedoch teilweise mit Plug-in. Doch ein SSL-Browser auf der einen Seite nützt nichts,
wenn nicht auch ein SSL-fähiger Server auf der anderen Seite vorhanden ist. Neben der Familie
der Netscape Suitespot Server – die in der FernUniversität eingesetzt werden – gibt es auch einen
Freeware Web-Server mit SSL-Funktionalität: Der weit verbreitete Server von Apache kann mit dem
ebenfalls als Freeware zur Verfügung stehenden openSSL Kryptographie-Packet gepatcht werden
und man erhält einen sicheren“ Web-Server mit SSL-Funktionen.
”
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
2.2
Seite: 7
Der Distinguished Name
Der Distinguished Name (im weiteren DN genannt) setzt sich aus Zeichenketten zusammen, die
eine Person, ein System (Server) oder eine Organisation (Firma, öffentliche Einrichtung...) identifizieren. DN ’s werden im allgemeinen in Directories verwendet, wie z.B. im Netscape Directory
Server. Im Certificate Server identifiziert der DN den Inhaber eines Zertifikats oder auch die CA,
die die Zertifikate ausstellt.
Wichtig: Kommunizieren Directory- und Certificate-Server miteinander, d.h. werden
die ausgestellten Zertifikate vom Certificate Server im Directory-Server veröffentlicht,
so müssen die DN ’s der beiden Server übereinstimmen! Der DN eines Zertifikats muss
also zur DN -Struktur des Directories passen.
Die Komponenten des DN
Der DN identifiziert einen Eintrag im Directory eindeutig. Das Directory ist hierarchisch strukturiert, so dass der DN die Position (Pfad) innerhalb der Hierarchie angibt. Der DN beginnt mit
dem Common Name (CN) und endet mit dem Eintrag Country (C):
CN=common name, [E=email-address, OU=organizational unit, O=organization, L=locality,
ST=state or province], C=country name
Die einzelnen Komponenten sind:
Komponente
CN
Name
Common Name
E
OU
E-Mail-Address
Organizational Unit
O
Organization
L
Locality
ST
State/Province Name
C
Country
Beispiele
CN=Karl Mustermann
CN=www.fernuni-hagen.de
[email protected]
OU=Rechenzentrum
OU=Verkauf
O=FernUniversitaet Hagen
O=Mustermann AG
L=Region West
L=Bezirk Hagen
ST=Nordrhein Westfalen
ST=Iowa
C=DE
C=US
Der Certificate Server akzeptiert nur die oben genannten Einträge.
DN in Zertifikaten
Bestimmte Zertifikate enthalten spezielle DN ’s:
B Das persönliche Zertifikat einer Person enthält meist
CN = voller Name
OU = Abteilung oder Fachbereich in dem er arbeitet
O = Firma oder Einrichtung bei der er beschäftigt ist
C = Land
B Das Zertifikat eines Servers enthält meist
CN = Hostname
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
Seite: 8
OU = Abteilung oder Fachbereich in dem der Server betrieben wird
O = Firma oder Einrichtung
C = Land
Wichtig: Baut ein Browser eine Verbindung zu einem SSL-Server auf, so vergleicht der
Browser den Hostnamen im Zertifikat mit dem Hostnamen des Servers im URL. Stimmen sie
nicht überein, so lässt der Browser im Dialog den User entscheiden, ob er eine Verbindung
wünscht oder nicht.
B Das Zertifikat der CA, die die obigen Zertifikate ausstellt, enthält meist
CN = Name der CA
OU = CA-Name (Variante oder nähere Beschreibung)
O = Firma oder Einrichtung, die die CA betreibt
C = Land
3
Was ist S/MIME?
S/MIME ist eine auf dem MIME-Standard aufbauende Erweiterung zur Übertragung von verschlüsselter und/oder signierter E-Mail. Dabei wird keine eigene Public Key Infrastruktur aufgebaut, sondern man bedient sich der X.509 Zertifikate.
3.1
Wie verschicke ich eine durch S/MIME gesicherte E-Mail?
Als Beispiel dient hier das Mail-Programm des Netscape Communicators 4.7. Zuerst benötigt man
ein eigenes Zertifikat. Damit ist man in der Lage, eine digital unterschriebene E-Mail zu versenden.
Führen Sie folgende Schritte durch:
1. Tragen Sie unter Bearbeiten – Einstellungen – Mail & Diskussionsforen – Identität Ihren
Name und E-Mail-Adresse ein. Wichtig ist, dass die E-Mail-Adresse mit der E-Mail-Adresse
Ihres Zertifikats übereinstimmt (Achten Sie dabei auch auf Groß-/Kleinschreibung).
2. Generieren Sie eine neue E-Mail.
3. Bevor Sie die E-Mail abschicken, klicken Sie den Button SSicherheitı̈n der Menüleiste. Sie
können folgende Einstellungen vornehmen:
Security Info: Hier kann eingestellt werden, ob die E-Mail verschlüsselt und/oder signiert
werden soll. Verschlüsseln ist nur möglich, wenn Sie die Empfängeradresse eingetragen haben
und das entsprechende Zertifikat besitzen. Es wird nämlich automatisch geprüft, ob das
benötigte Zertifikat des Empfängers vorliegt. Lassen Sie die Mail signieren, so wird neben der
Signatur auch Ihr Zertifikat mitgeschickt.
Messenger: Hier kann die Voreinstellung gesetzt werden, ob die E-Mail (wenn möglich)
immer signiert und/oder verschlüsselt werden soll. Außerdem kann das Zertifikat ausgewählt
werden, mit dem die E-Mail standardmäßig signiert wird.
4. Schicken Sie die E-Mail ab.
3.2
Empfangen von S/MIME-Mail
Beim Empfang einer S/MIME-Mail erscheint beim Navigator-Messenger oben rechts eines der
folgenden Zeichen, je nachdem ob die E-Mail nur signiert, nur verschlüsselt oder signiert und
verschlüsselt übertragen wurde (Abblidung 1):
c
2001
FernUniversität Hagen PASS-Projekt
SSL und Zertifikate
Seite: 9
Abbildung 1: Verschlüsselungs- / Signaturstatus der E-Mail
Mit einem Klick auf das Symbol werden weitere Informationen angezeigt, wie z.B. das Zertifikat
des Absenders oder der verwendete Verschlüsselungsalgorithmus. Die E-Mail wird übrigens bei
verschlüsselter Übertragung automatisch beim Empfang entschlüsselt.
3.3
Wie erhalte ich die Zertifikate meiner Kommunikationspartner?
Sie können das Zertifikat auf zwei Arten bekommen:
1. Ihr Kommunikationspartner sendet Ihnen eine signierte E-Mail zu. Diese enthält dann auch
sein Zertifikat. Beim Öffnen der E-Mail durch den Communicator wird das Zertifikat automatisch gespeichert. Unter Communicator – Extras – Sicherheitsinformationen – Zertifikate
– Andere kann man sich die gespeicherten Zertifikate ansehen und auch wieder löschen.
2. Sie können unter Communicator – Extras – Sicherheitsinformationen – Zertifikate – Andere
– Verzeichnis durchsuchen ein Directory nach dem gewünschten Zertifikat durchsuchen. Nach
Auswahl des Directory und Eingabe der E-Mail-Adresse des zu suchenden Zertifikats wird
die Suche gestartet.
c
2001
FernUniversität Hagen PASS-Projekt

Documentos relacionados