Dark ITSec
SSL
SSL
(Secure Socket Layer)-Protocol.Verfahren zur sicheren Übertragung
verschlüsselter Daten im Internet, das sowohl im Web als auch bei FTP, Telnet,
E-Mail- und anderen Kommunikationsformen einsetzbar ist. Die wichtigsten
Web-Browser (Netscape Communicator, MS Internet-Explorer) unterstützen den
SSL-Standard. Er ermöglicht eine abhörsichere Verbindung zwischen Web-Server und
Web-Browser und bietet auch die Identifizierung des Servers, also des Empfängers
der Daten, mittels digitaler Zertifikate (digitale Unterschrift).
Eine mit SSL geschützte und verschlüsselte Verbindung im Internet
ist sicher durch:
-
Authentifizierung: Die Verbindung wird mit dem richtigen
Server hergestellt. Wenn Sie eine Verbindung zu einem gesicherten Webserver
herstellen, identifiziert sich der Server mit einem Zertifikat, das von einer
Zertifizierungsstelle (CA) ausgestellt wurde. Das Zertifikat wird von Ihrem
Browser überprüft, um sicherzustellen, daß Sie tatsächlich mit dem richtigen
Server verbunden sind.
-
Vertraulichkeit: Das Ausspionieren der Daten wird durch
die Verschlüsselung unmöglich gemacht. Dies ist um so wichtiger, je weiter die
zwei Kommunikationspartner voneinander entfernt sind.
-
Datenintegrität: Das Fälschen der Daten ist nicht
möglich. Die verschlüsselten Daten enthalten eine Prüfsumme, mit der
fehlerhaft oder verfälscht übertragene Daten erkannt und abgewiesen werden.
SSL (X.509v3) Server Zertifikate
Ein
digitales Zertifikat ist eine Bescheinigung über die Identität, welche von einer
unabhängigen und vertrauenswürdigen dritten Partei, der "Certification Authority
(CA)", unterzeichnet wird. Also eine Art elektronische Urkunde oder die digitale
Variante eines Ausweises. Normalerweise folgt ein solches Zertifikat den Regeln
des X.509 Standards. Die "CA" verbürgt sich mit ihrer Unterschrift für die
Richtigkeit der im Zertifikat enthaltenen Daten.
Das Protokoll ist
zwischen der Anwendungsschicht (bspw. Telnet, FTP, ...) und der Transportschicht
(TCP/IP, NetBios, ...) angesiedelt und lässt sich somit leicht in bereits
bestehende Infrastrukturen integrieren. Entwickelt wurde SSL ursprüglich von
Netscape und so ist die gesicherte Kommunikation im WWW wohl immer noch der
Hauptanwendungszweck von SSL.
Handshake-Protocol: für den Verbindungsaufbau
Change CipherSpec Protocol: Austausch/Einigung über die Auswahl des
Größten Gemeinsamen Algorithmen
Aliert Protocol: Für die Fehlermeldungen
Application Data Protocol: Regelt den DatenStrom zwischen Anwendungen und
dem Record Protocol
SSL Record Protocol: Verschlüsselt und Entschlüsselt die Daten von und
für die Anwendungen
SSL bietet dem Client immer eine Authentifizierung des Servers. Dies spielt
sich in der SSL-Ebene ab. Die Anwendung bekommt also davon nichts mit. Die
Authentifizierung des Clients ist optional.
Beim Aufbau einer TCP/IP-Verbindung von einem SSL-Client zu einem SSL-Server
macht SSL eine Art Verhandlung zwischen diesen beiden. Es wird sich geeinigt,
welchen Grad der Sicherheit erreicht werden soll.
SSL- Verbindungsaufbau (SSL-Handshake):

Nach diesem Verbindungsaufbau, kümmert sich SSL nur noch darum den Datenfluss
der Applikation zu kodieren bzw. zu dekodieren.
Ein Verbindungsaufbau bei SSL läuft wie folgt ab:
- In der sogenannten Hello-Phase, baut der Client eine Verbindung zum
Server auf und teilt diesem mit, welche Kryptographischen-Algorithmen er
unterstützt. Der Server wählt von diesen ein Public-Key-Verfahren,
Private-Key-Verfahren und ein Hashverfahren aus und teilt diese dem Client
mit.
- Der Server sendet nun ein Zertifikat, das neben der Identität des Servers
auch den öffentlichen Schlüssel des Servers enthält. Mit diesem Zertifikat
kann der Client überprüfen, ob die Antwort wirklich vom gewünschten Server
stammte.
- Der Client generiert nun einen Sitzungsschlüssel (Session-Key) für den
Datenaustausch mit dem gewählten Private-Key-Verfahren. Diesen kodiert der
Client mit dem erhaltenden öffentlichen Schlüssel des Servers und schickt
diesen an den Server.
- Der Client authentifiziert den Server, indem der Client jetzt einige mit
dem Sitzungsschlüssel kodierten Testnachrichten an den Server sendet. Der
Server kann diese nur korrekt entschlüsseln, wenn es sich um den echten Server
handelt. (Damit hat sich der Server also gegenüber dem Client authentifiziert)
- Jetzt kommt ein optionaler Schritt, wo der Client sich dem Server
gegenüber authentifizieren kann. Dieser Schritt ist nur möglich, wenn der
Client über ein registriertes Zertifikat verfügt
- Beide Seiten schließen den Verbindungsaufbau ab und kodieren alle weiteren
Datenpakete mit dem Sitzungsschlüssel.
Wiederherstellung einer alten Verbindung:

Eine Auswahl der wichtigsten Dienste mit SSL
Dienst / Protokoll |
Port |
SSL Port |
Beschreibung |
HTTP (HTTPS)
FTP/ FTP-DATA
TELNET
POP3
SMTP
IMAP4
NNTP
IRC
UUCP
LDAP (LDAPS) |
80
21/20
23
110
25
143
119
194
540
389 |
443
990/ 989
992
995
465
993
563
994
4031
636 |
HyperText
Transfer Protokoll
File Transfer Protokoll
-
Post Office Protokoll
Simple Mail Transfer Protokoll
Internet Message Access Protocol
Network News Transfer Protokoll
Internet Relay Chat Protocol
Unix-To-Unix-Copy
Lightweight Directory Access Protocol |