SSL – Sicherheit im Internet

Einleitung

Secure Sockets Layer (SSL) stellt eine Entwicklung dar, die privacy auf dem Internet sicherstellt. Es erlaubt einer Client-Server Verbindung sicher zu kommunizieren.
Es wurde entwickelt, um
privacy zwischen 2 kommunizierenden Partnern (client-server) sicherzustellen den Server und eventuell den Client zu authentifizieren

Das SSL-Protokoll ist unabhängig von der Applikation, was eine Flexibilität und gute Akzeptanz sicherstellt. Sogenannte higher level -Protokolle (HTTP, FTP, TELNET) können über dem SSL-Protokoll stehen, SSL fungiert dann als Interface zwischen Applikation und Übertragung, das die Daten verschlüsselt. Einerseits erlaubt SSL das Aushandeln eines Verschlüsselungsalgorithmus, andererseits kann das Protokoll einen Server authentifizieren bevor die Daten gesendet oder empfangen werden können. SSL bietet eine sogenannte channel security an, die 3 wesentliche Möglichkeiten haben:
<UL><LI>Der Übertragungskanal ist private: Mittels Handshake wird ein secret key ausgehandelt, der dann für die Übertragung aller Nachrichten verwendet wird.</LI><LI>Der Übertragungskanal ist authentifiztiert: Während der Server immer authentifiziert ist, ist dies beim Client nicht immer der Fall </LI><LI>Der Übertragungskanal ist Verlässlich: Die Übertragung beinhaltet eine Überprüfung</LI></UL>

Handshake

Hier geschieht das Aushandeln der Kommunikation und der Verschlüsselung. Dies geschieht in 2 Phasen

Phase 1

Hier wird die Kommunikation zwischen dem Client und dem Server ausgehandelt. Dies geschieht über das Senden und Empfangen von sogenannten Hello-Nachrichten. Der Client initiert den Verbindungsaufbau mittels Senden von CLIENT-HELLO. Der Server empfängt diese Nachricht und sendet seinerseits ein SERVER-HELLO. Aus dieser Information wissen die Partner nun, ob ein neuer Master Key für die Verschlüsselung gebraucht wird oder ob für die beiden Partner schon einer besteht.
Ist der Master Key schon vorhanden, so kann mit der 2. Phase begonnen werden, andernfalls wird dieser Key vom Server generiert (nur dieser kennt zusammen mit dem Public Key den Master Key) und der Client mittels SERVER-VERIFY davon verständigt.

Phase 2

Hier geschieht die Authentification des Clients (Der Server wurde ja schon in der ersten Phase vom Client authentifiziert).
Möchte der Server etwas von einem Client, so sendet er ein request. Hat der Client die benötigte Information, so sendet er diese an den Server; andernfalls kommt es zu einem Fehler, den an den Server gesendet wird. Für die Authentifikation eines Partners durch einen anderen wird eine spezielle Nachricht (finished) gesendet. Nun muss der sendende Partner seinerseits auf eine finished Nachricht warten, bevor das Handshake Protokoll fertig ist. Die Daten der Applikationen können jetzt übertragen werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.