VPN auf der Basis von Transport Layer Security (TLS) sollen in dieser Folge behandelt werden. Das Secure Sockets Layer (SSL)-Protokoll und sein Nachfolger Transport Layer Security (TLS) (definiert in RFC 4346) wurden ja bereits in About Security #73 sowie #81 und #82 vorgestellt. Im Rahmen eines VPN kommt SSL/TLS in zwei Varianten zum Einsatz: Entweder im Rahmen eines sog. 'clientless TLS-VPN' oder beim Aufbau eines Tunnels zur transparenten Übertragung von (IP-)Paketen.
Das TLS-Protokoll
TLS besteht aus zwei Schichten, dem TLS Record Protocol und den darauf
aufbauenden Protokollen TLS Alert, TLS Change Chipher Spec, TLS Handshake
und Application Data. Das TLS Record Protocol ist die untere der Schichten
und sichert die Verbindung. Es setzt auf die Transportschicht auf (TCP,
siehe About Security #29) und stellt eine Ende-zu-Ende-Verschlüsselung
durch Anwendung symmetrischer Verschlüsselungsalgorithmen und die
Sicherung von Integrität und Authentizität durch Hinzufügen
eines Message Authentication Code (MAC, siehe About Security #77) zur
Verfügung. Das TLS Handshake Protocol ist für die Prüfung
der Identität der Kommunikationspartner sowie die Aushandlung und den
Austausch des Schlüssels für die symmetrische
Verschlüsselung durch das TLS Record Protocol zuständig. Das TLS
Change Chipher Spec Protocol startet die geschützte Kommunikation im
ausgehandelten Kontext. Das TLS Alert Protocol wird für den Austausch
von Alarmmeldungen verwendet. Das TLS Application Data Protocol dient der
transparenten Übertragung der Daten über das TLS Record Protocol.
Über dem TLS-Protokoll befindet sich die Anwendungsschicht mit
Protokollen wie z.B. HTTPS (siehe About Security #29).
N E U ! Security aktuell
Täglich aktuelle Security-Infos!
Der TLS-Verbindungsaufbau wurde bereits in About Security #81/#82 beschrieben. Beim Einsatz von TLS im Rahmen eins VPN weist sich auch der Client mit seinem Zertifikat aus, sodass im Gegensatz zum (in About Security #82 beschriebenen) Handshake der Client nicht mit dem Pre-Master-Secret, sondern seinem Zertifikat antwortet.
Nach dem Aufbau des TLS-Tunnels reicht das TLS Application Data Protocol die Daten der Anwendungsschicht an das TLS Record Protocol weiter. Dieses komprimiert und verschlüsselt sie und überträgt sie über die Transportschicht zur Gegenstelle. Dort werden sie vom TLS Record Protocol entschlüsselt und dekomprimiert und über das TLS Application Data Protocol an die Anwendungsschicht weitergeleitet.
Clientless TLS-VPN
Von einem clientless TLS-VPN spricht man, wenn von einem Webbrowser
über eine mit TLS gesicherte Verbindung auf einen Server
zugegriffen wird, der bestimmte Anwendungen, z.B. eine Datenbank, zur
Verfügung stellt. Das 'clientless' bezieht sich dabei auf das Fehlen
eines speziellen VPN-Clients. Streng genommen ist natürlich der
Webbrowser ein Client. Der Vorteil dieses Ansatzes ist, dass jeder aktuelle
Webbrowser das https://-Protokoll unterstützt und so auch z.B. der
Zugriff aus einem Internetcafe möglich ist. Der Nachteil ist die
Webbrowserbezogenheit: Für nicht browserbasierte Anwendungen
müssen auf Client- und/oder Serverseite Hilfsprogramme
zwischengeschaltet werden, die die Daten für die Übertragung
über die Browserverbindung entsprechend umwandeln.
TLS-Tunnel
Beim Einsatz eines TSL-Tunnels bauen zwei Kommunikationspartner, z.B. zwei
Gateways, untereinander eine TLS-Verbindung auf und übertragen
darüber dann IP-Pakete. Eine Implementierung dieses Verfahrens ist
z.B. OpenVPN,
das im Folgenden vorgestellt wird.
OpenVPN verwendet zwar TLS für den Datentransport, kann aber im Gegensatz zu dessen normaler Nutzung nicht nur Daten der Anwendungsschicht, sondern komplette IP-Pakete übertragen. Außerdem kann statt TCP auch UDP für den Transport genutzt werden. Dazu wird für TLS eine bestehende TCP-Verbindung simuliert, während OpenVPN die Daten tatsächlich über UDP transportiert.
Betriebsarten
OpenVPN verwendet zwei Betriebsarten: Routing und Bridging. Beim Routing
wird ein TLS-Tunnel zwischen zwei Endpunkten aufgebaut und jedem Endpunkt
eine virtuelle IP-Adresse zugewiesen. Über den Tunnel werden dann
ausschließlich IP-Pakete zwischen den Kommunikationspartnern
ausgetauscht (Layer 3). Um auf die ggf. hinter den Endpunkten liegenden
lokalen Netzwerke zugreifen zu können, müssen die Endpunkte die
IP-Pakete aktiv weiterleiten. Beim Bridging wird ebenfalls ein Tunnel
zwischen zwei Kommunikationspartnern aufgebaut, über den dann aber
Ethernet-Pakete übertragen werden (Layer 2). Dadurch wird der Client
transparent in das lokale Netz des Servers integriert, was auch den Einsatz
anderer Protokolle als IP erlaubt.
In der nächsten Folge gibt es einen Bericht über Neuigkeiten von der CeBIT. In der Folge darauf wird die Beschreibung von OpenVPN mit einem Beispiel fortgesetzt.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!
















