# SSL-VPN

Als SSL-VPN (englische Schreibweise: SSL VPN ohne durchkoppelnden Bindestrich) bezeichnet man Systeme, die den Transport privater Daten über öffentliche Netzwerke ermöglichen (siehe VPN) und als Verschlüsselungsprotokoll TLS (alte Bezeichnung: SSL) verwenden.

## Anwendungen

Prinzipiell ist SSL als Verschlüsselungsprotokoll für VPN sowohl für Site-to-Site- als auch End-to-Site-VPNs geeignet. In den 1990er-Jahren gab es Systeme, die SSL als Sicherungsschicht für Site-to-Site-VPNs einsetzten. Mit der Entwicklung von IPsec und der zunehmenden Vernetzung über Organisationsgrenzen hinaus hat das standardisierte, interoperable IPsec sich als Alternative etabliert.
Der entscheidende Vorteil von SSL-VPN gegenüber IPsec ist die Bereitstellung des Netzwerk- und Applikationszugriffs für mobile Anwender, da die Konfiguration der Clients einfacher möglich ist als mit einer Lösung durch IPsec.

## Typen

Alle heute üblichen SSL-VPN-Systeme verwenden den TCP-Port 443 (HTTPS) für die Datenübertragung. Dies hat gegenüber IPSec und anderen VPN-Technologien den Vorteil, mit Network Address Translation ohne weiteres kompatibel zu sein und oft auch durch Proxys und Firewalls von Unternehmen hindurch den Zugriff zu ermöglichen. Neben der daraus folgenden Benutzbarkeit auch in fremden Organisationen (bei IPsec-VPN aufgrund der üblichen Firewallkonfigurationen in der Regel ausgeschlossen) ist bei einer Reihe von SSL-VPNs die Benutzung vieler Funktionen auch ohne vorangehende Installation einer Client-Software möglich.
Im Wesentlichen gibt es heute drei unterschiedliche Typen von SSL-VPNs:
* SSL-VPN-Systeme, die nur den Zugriff auf Webanwendungen mit einem Webbrowser ermöglichen, aber keine Anwendungen bereitstellen können, die die Übertragung von Netzwerkprotokollen erfordern. Diese SSL-VPNs erfordern keine Client-Installation. Der Namensbestandteil „VPN“ für diese Systeme ist umstritten, aber im Markt üblich.
* SSL-VPN-Systeme, die ähnlich wie andere VPN-Technologien (IPsec, L2TP, PPTP) arbeiten, aber SSL zur Datenübertragung bieten. Bei dieser Variante werden komplette IP-Pakete eingekapselt, wodurch sich die Verbindung mit dem SSL-VPN-Client aus Benutzersicht genauso verhält, wie dies bei einem IPsec-Tunnel der Fall wäre. Der Benutzer kann also lokale Anwendungen auf seinem PC verwenden, und durch den SSL-Tunnel auf Firmen-Server zugreifen (z. B. zur Software-Verteilung, DFS).
* SSL-VPN-Systeme, die sowohl den Zugriff auf Webanwendungen als auch einen Netzwerkzugriff auf das private Netzwerk ermöglichen. Bei diesen Systemen sind oft Komponenten vorhanden, die das Tunneln einzelner Kommunikationsbeziehungen ermöglichen (z. B. Outlook-Zugriff auf Exchange-Server), ohne dabei einen IP-Tunnel herstellen zu müssen (Beispiel: "Socket Forwarder" in Microsoft IAG 2007).
Mischformen sind üblich. Eine einheitliche Nomenklatur für die Trennung der unterschiedlichen Typen hat sich im Markt bisher nicht durchgesetzt. Üblich ist die Bezeichnung allerdings für alle VPN-Systeme, die SSL/TLS als Verschlüsselungsprotokoll einsetzen und TCP-Port 443 (HTTPS) zur Datenübertragung verwenden.
Für die meisten SSL-VPNs gilt, dass eine Sitzung über eine Anmeldung auf eine Webseite gestartet wird. Auch das Starten von Nicht-Web-Applikationen geschieht in der Regel über diese Webseite (Portal). Dies gilt jedoch nicht für SSL-VPNs, die sich von klassischen VPNs nur durch das Übertragungsprotokoll unterscheiden; diese verwenden in der Regel einen Client, der installiert werden muss und über dessen Aufruf auch die Anmeldung am VPN erfolgt.

## Technik

Zur Bereitstellung von Web-Applikationen in solchen SSL-VPN-Systemen, die einen clientlosen Zugriff ermöglichen, wird eine Übersetzung der URL-Namensräume der bereitgestellten Applikationen und Server in einen einzigen URL-Namensraum durchgeführt, so dass der Zugriff auf diese Web-Applikationen über einen einzigen Hostnamen erfolgt. Insbesondere kann auf diese Weise eine zentrale Authentisierung, Autorisierung und Content Inspection für den Zugriff realisiert werden.
Für die Bereitstellung von netzwerkbasierten Client-Server-Systemen verwenden SSL-VPNs unterschiedliche Techniken:
* die Bereitstellung der Anwendung unter ihrer tatsächlichen Netzwerkadresse (wie IPSec), zum Beispiel durch einen virtuellen Netzwerkadapter oder Layered Service Provider (Windows)
* die Bereitstellung der Anwendung unter einer Loopback-Netzwerkadresse des Clients. Häufig wird zur Umlenkung von Client-Applikationen der DNS-Name durch eine temporäre Anpassung der Hosts-Tabelle des Client-Systems auf diese Adresse umgelenkt oder ein Name Service Provider (Windows) registriert.
* die Bereitstellung eines lokalen SOCKS-Servers (auf einer Loopback-Netzwerkadresse) und Übertragung der Netzwerkinformationen innerhalb des SSL-Tunnels
Die client-seitigen Komponenten sind in der Regel als ActiveX- oder Java-Komponenten ausgeführt.

## Sicherheit

Wie für andere VPN-Technologien existieren auch bei SSL-VPNs typische Sicherheitsrisiken. Der Hauptvorteil von SSL-VPN gegenüber anderen VPN-Lösungen ist bei vielen Systemen die Möglichkeit, einen beliebigen Webbrowser in einem beliebigen Netzwerk als Client einzusetzen.

### Authentifizierung

Zur Authentifizierung werden bei SSL-VPNs in der Regel bestehende Benutzerverzeichnisse verwendet. Typische von SSL-VPNs unterstützte Authentisierungsdienste sind LDAP-Verzeichnisdienste, RADIUS, TACACS+, Zwei-Faktor-Authentisierungssysteme wie SecurID sowie die Verwendung von Zertifikaten. Einzelne SSL-VPN-Lösungen sind in der Lage, während der Anmeldung mehrere Authentisierungsdienste gleichzeitig zu nutzen. Dies kann insbesondere im Zusammenhang mit Single Sign-on für die bereitgestellten Applikationen von Interesse oder für Zwei-Faktor-Authentifizierung (2FA), wenn ein Faktor das Netzwerkkennwort des Anwenders und der zweite Faktor ein Tokencode ist. Nicht alle SSL-VPN-Lösungen verfügen über eine eigene Benutzerverwaltung.

### Autorisierung

Zur Autorisierung ist bei SSL-VPNs die Nutzung von Gruppenzuordnungen des Benutzers in einem LDAP-Verzeichnisdienst, einem 2FA-Dienst oder RADIUS üblich. Nicht alle SSL-VPN-Lösungen verfügen über eine eigene Gruppenverwaltung.

### Client-Sicherheit

Die Nutzung eines beliebigen Webbrowsers (und damit eines beliebigen, insbesondere nicht unternehmenseigenen Computers) als Client begründet jedoch auch besondere Sicherheitsrisiken, etwa
* das Hinterlassen von vertraulichen Informationen im Cache des Webbrowsers (Zugangsdaten, Dokumente, …)
* das Heraufladen von Malware in bereitgestellte Webapplikationen (z. B. Webmail)
* das Ausspähen von Zugangsdaten (z. B. Passwörter)
* die unberechtigte Nutzung nicht geschlossener Sitzungen (etwa über den „Zurück“-Button des Browsers)
* die Übertragung von Angriffen auf die bereitgestellten Applikationen (etwa bei Zugriff von einem wurm-infizierten PC)
* die Ausführung von XSS-Angriffen gegen bereitgestellte Webapplikationen auf dem Client unter der Voraussetzung, dass es dem Angreifer gelingt, speziell präparierte Inhalte in einer bereitgestellten Webapplikation zu veröffentlichen (z. B. durch den Versand und das Öffnen einer entsprechenden E-Mail-Nachricht über Webmail) durch die Verwässerung des DNS-Namen-basierten Scripting-Sicherheitsmodells in Browsern (bei SSL-VPNs, die eine Übersetzung der URL-Namensräume der Anwendungsserver in einen einzigen externen Hostnamen vornehmen)
Manche SSL-VPN-Systeme adressieren diese Probleme durch
* clientseitige Komponenten, die etwa das Vorhandensein eines Virenscanners oder einer Personal Firewall überprüfen.
* clientseitige Komponenten, die eine virtualisierte, eingeschränkte und vertrauenswürdige Desktopumgebung zur Arbeit mit dem per SSL-VPN verbundenen Netzwerk bereitstellen sollen
* die Integration eines Intrusion Prevention Systems
* Vorkehrungen, um XSS-Angriffe zu erschweren, etwa in Form einer eigenen Content Inspection-Engine, einer Verschlüsselung der URL-Übersetzung, Pfadbeschränkungen bei übersetzten Cookies, oder der Auswertung des Referrer-Headers.

### Server-Sicherheit

Neben den clientseitigen Sicherheitsrisiken können innerhalb des VPNs auch Angriffe, etwa durch Malware übertragen werden. Einige SSL-VPN-Systeme integrieren auf dem SSL-VPN-Gateway Content-Inspection-Fähigkeiten zur Untersuchung der übertragenen Anfragen und Inhalte.
In SSL-VPN-Systemen, die auch den Zugriff auf netzwerkbasierte (Nicht-Web-)Anwendungen bereitstellen, ist außerdem die Integration von Paketfiltern innerhalb des VPNs üblich. In der Regel wird im Gegensatz zu typischen anderen VPN-Implementierungen aber das Paketfilter-Regelwerk auch auf dem Client durchgesetzt.