Secure Sockets Layer
SSL im TCP/IP-Protokollstapel
Anwendung | HTTP | IMAP | ... | |
Transport | SSL | |||
TCP | ||||
Netzwerk | IP | |||
Netzzugang | Ethernet | Token Ring |
FDDI | ... |
SSL (Secure Sockets Layer) bezeichnet ein von der Firma Netscape entwickeltes Übertragungsprotokoll, mit dem verschlüsselte Kommunikation mittels Tunneling möglich ist.
Geschichte
- November 1993: ersten Release von Mosaic 1.0 von National Center for Supercomputing Applications (NCSA). Mosaic war der erste verbreitete Webbrowser.
- Nur 9 Monate später veröffentlichte Netscape Communications die erste Version von SSL (1.0).
- Fünf Monate später wurde schon der nächste Release SSL 2.0 veröffentlicht, dieser deckte sich auch gerade mit der neuen Version des Netscape Navigator.
- Ende 1995 kam Microsoft mit der ersten Version seines Browsers (Internet Explorer). Kurz darauf wurde auch die erste Version ihres SSL Pendants bekannt, PCT 1.0 (Private Communication Technology). PCT hatte einige Vorteile gegenüber SSL 2.0, und diese wurden dann auch in SSL 3.0 aufgenommen. Als SSL als Standard festgelegt wurde (IETF), benannte man es im Januar 1999 um zu Transport Layer Security (TLS). Die Unterschiede zwischen SSL 3.0 und TLS 1.0 sind sehr klein. Doch dadurch entstanden Versions-Verwirrungen. So meldet sich TLS 1.0 im Header als Version SSL 3.1.
Funktionsweise
Das SSL-Protokoll besteht aus zwei Schichten (layers): Zu Grunde liegt in der untersten Ebene das SSL Record Protocol, das zur Kapselung verschiedener höherer Protokolle (higher level protocols) dient. Ein Beispiel dafür ist das SSL Handshake Protocol zur Authentifizierung von Client und Server und der Vereinbarung des verwendeten Verschlüsselungsverfahrens, oder das HTTP Protokoll zur Übertragung von Webseiten.
Vorgehensweise bei Client und Server:
1. Der Client sendet eine Verbindungsanfrage an den Server.
2. Der Server antwortet mit derselben Nachricht und sendet eventuell ein Zertifikat.
3. Der Client versucht, das Zertifikat zu authentifizieren (bei Misserfolg wird die Verbindung abgebrochen). Dieses Zertifikat ist der öffentliche Schlüssel des Servers.
4. Nach erfolgter Authentifizierung erstellt der Client das "pre-master secret", verschlüsselt dieses mit dem öffentlichen Schlüssels des Servers und sendet es an den Server. Ebenfalls erzeugt der Client daraus das "master secret".
5. Der Server entschlüsselt das "pre-master-secret" mit seinem privaten Schlüssel und erstellt das "master secret".
6. Client und Server erstellen aus dem "master secret" den "session-key". Das ist ein einmalig benutzter symmetrischer Schlüssel, der während der Verbindung zum Ver- und Entschlüsseln der Daten genutzt wird. SSL unterstützt für die symmetrische Verschlüsselung mit diesem "session-key" u.a. DES und Triple DES.
7. Client und Server tauschen mit diesem "session-key" verschlüsselte Nachrichten aus und signalisieren damit ihre Kommunikationsbereitschaft.
8. Die SSL-Verbindung ist aufgebaut.
Der Vorteil des SSL-Protokolls ist die Möglichkeit, jedes höhere Protokoll auf Basis des SSL Protokolls zu implementieren. Damit ist eine Unabhängigkeit von Applikationen und Systemen gewährleistet.
SSL in der Praxis
SSL-Verschlüsselung wird heute vor allem mit HTTPS eingesetzt. Die meisten Webserver unterstützen sowohl SSL 2.0 als auch SSL 3.0 über TLS mit einer Vielzahl von Verschlüsselungsmethoden, fast alle Browser und Server setzen jedoch bevorzugt SSL 3.0/TLS mit RSA oder AES-Verschlüsselung ein.
Weiterführende Angaben
Siehe auch
Kryptographie, Netzwerkprotokoll, Elektronische Unterschrift
Weblinks
- OpenSSL (Open Source Implementierung von SSL)
- OpenSSL-Handbuch
- SSL 3.0 Specifications
- RFC 2246 - TLS 1.0
- [1] Webinterface, das anzeigt, welche SSL-Optionen und Verschlüsselungsmethoden anbietet