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