SSL - Secure Socket Layer   

SSL - Secure Socket Layer - ist ein Sicherungsprotokoll, das 1994 durch die Firma Netscape entwickelt wurde. Ursprünglich wurde dieses Protokoll vor allem für den Austausch von Daten zwischen WWW-Servern und WWW-Clients konzipiert. Inzwischen wurden allerdings auch Anpassungen für andere Anwendungen wie Telnet, FTP und NNTP entwickelt.

Im ISO/OSI-Schichtenmodell ist SSL als Schicht zwischen der Transportschicht und der Anwendungsschicht anzusiedeln. Es werden alle gängigen Verschlüsselungsverfahren wie DES, RSA, DSS, MD5 unterstützt und die Einbindung weiterer Verfahren ermöglicht. Grundsätzlich gibt es zwei verschiedene Verfahren zur Verschlüsselung von Daten:

symmetrische Verschlüsselung

Hierbei wird der gleiche Schlüssel zur Ver- und Entschlüsselung benutzt. Dieses Verfahren ist sehr schnell und daher in der Lage große Datenmengen innerhalb kürzester Zeit zu verschlüsseln. Allerdings muß der Schlüssel beiden Seiten der Kommunikation bekannt und gegenüber allen anderen geheim sein.

asymmetrische Verschlüsselung

Die asymmetrische Verschlüsselung benutzt zwei verschiedene Schlüssel zur Ver- und Entschlüsselung. Das hat den Vorteil, daß einer der Schlüssel veröffentlicht werden kann. Man spricht dabei vom sogenannten Public Key. Diese Form der Verschlüsselung ist aufwendiger und daher auch langsamer und für große Daten- mengen eher nicht geeignet.

Bei der SSL-Verschlüsselung werden sowohl symmetrische als auch asymmetrische Verschlüsselung genutzt. Man spricht daher auch von einem hybriden Verfahren. Es folgt dabei der Austausch eines Schlüssels per asymmetrischem Verfahren. Anschließend wird dieser Schlüssel dann zur symmetrischen Verschlüsselung genutzt. Das verbindet die Vorteile beider Verfahren. SSL benutzt darüber hinaus ein Prüfsummenverfahren, das die Integrität der übertragenen Daten sicherstellt.

Außerdem arbeitet SSL mit sogenannten Zertifikaten. Diese Zertifikate werden von bestimmten Vergabestellen ausgestellt. Dabei wird ein Zertifikat immer für einen bestimmten Server erstellt. Dieses enthält dann die ID des Servers und seinen öffentlichen Schlüssel. Dieses Zertifikat wird dann mit dem privaten Schlüssel der Zertifizierungsstelle unterschrieben und ist somit fälschungssicher. Fordert nun ein Client Daten von diesem Server per SSL an, so überträgt der Server sein Zertifikat. Der Client kann das Zertifikat mit dem Schlüssel der Zertifizierungsstelle, der öffentlich ist, entschlüsseln und somit die Echtheit des Zertifikates und die Identität des Servers verifizieren. Diese Vorgänge sind natürlich in modernen Browsern automatisiert und für den Benutzer transparent. Die meisten Browser teilen dem Nutzer lediglich die erfolgreiche Prüfung und den Aufbau einer sicheren Verbindung mit. Die zur Prüfung von Zertifikaten nötigen public keys der Zertifizierungsstellen sind also bereits im Browser gespeichert.

Der Aufbau einer sicheren Verbindung mit SSL erfolgt im sogenannten Handshake-Verfahren, also einer wechselseitigen Kommunikation. Man spricht auch davon, daß die Kommunikation ausgehandelt wird. Eine einfache sichere Kommunikation, bei der nur eine Zertifizierung seitens des Servers notwendig ist, erfolgt in 6 Schritten:

1. Schritt

CLIENT HELLO
Der Client überträgt eine erste Nachricht zum Server, in der z.B. die benutzte Versionsnummer, eine Sitzungsnummer und das gewünschte Verschlüsselungsverfahren enthalten sind.

2.Schritt

SERVER HELLO
Der Server übermittelt seinerseits eine Nachricht, die die Versionsnummer und das zu verwendende Verschlüsselungs- und Kompressionsverfahren enthält.

3.Schritt

SERVER CERTIFICATE
Der Server sendet sein Zertifikat, welches im Normalfall ein X.509 Zertifikat ist.

4.Schritt

SERVER KEY EXCHANGE
Der Server übermittelt nun die Parameter für das zu verwendende Verschlüsselungsverfahren.

5.Schritt

SERVER HELLO DONE
Damit signalisiert der Server das Ende seiner Übermittlung.

6.Schritt

FINISHED
Mit dieser letzten Nachricht des Clients wird noch einmal ein digitaler Finger- abdruck des gesamten Protokolls übermittelt. Mit dessen Hilfe kann der Server dessen Integrität prüfen.

Nach diesen Schritten kann die sichere Kommunikation auf der Anwendungsebene erfolgen. Es gibt auch eine Kommunikationsvariante, bei der zusätzlich vom Client ein Zertifikat gefordert wird. Dieses ist dann um die entsprechenden Schritte für den Client erweitert.


 
     
ANZEIGEN