Fachbeitrag «VPN - Virtual Private Network»

Virtual Private Networking: End-to-End, End-to-Site, Site-to-Site

1. Einführung

Das Internetprotokoll IPv4 stammt aus dem Jahre 1974. Damals ahnte noch niemand den durschschlagenden und weltweiten Erfolg von TCP/IP und dass dieser auch unlautere Akteure anziehen werde. Darum weist das IPv4-Protokoll bis heute gravierende Sicherheitsmängel auf wie:

  • fehlende Verschlüsselung um Daten vor neugierigen Blicken zu schützen (Nutzdaten werden transparent bzw. im Klartext übermittelt und sind damit für Network-Sniffern wie Wireshark einsehbar)
  • die Möglichkeit von «Man-in-the-Middle» Angriffen (um z.B. Passwörter auszuhorchen)
  • mit Spoofing etwas «vorgaukeln» (IP/Port-Adressen verfälschen und Daten des Angreifers somit verschleiern)
  • keine Garantie über die Identität des Kommunikationspartners
  • keine Garantie über die Echtheit der Pakete

Was möchte man gerne:

  • Vertraulichkeit (Verschlüsselung)
  • Datenintegrität (Digitale Signierung)
  • Authentifizierung (Server und Client sind verifiziert)
  • Implementierung in der Netzwerkschicht, damit die Kommunikationsendpunkte nichts davon merken (z.B. IPsec arbeitet auf Layer3 und betrifft höhere Layer nicht. Aber: Netzwerkendpunkte müssen IPsec auch unterstützen)

2. VPN - Virtual Private Network

VPN bedeutet ein virtuelles privates (in sich geschlossenes) Kommunikationsnetz, das ein bestehendes Kommunikationsnetz als Transportmedium verwendet.

2.1 Die Verbindungsarten

3. Das VPN-Protokoll IPsec

Das derzeit am häufigsten eingesetzte VPN-Protokoll ist IPSec (IP Security). IPsec ist eine Protokoll-Suite, die eine gesicherte Kommunikation über potentiell unsichere IP-Netze wie das Internet ermöglichen soll. IPsec arbeitet direkt auf der Internetschicht (Internet Layer) des Protokollstapels und ist damit für die Anwendung transparent.
Mittlerweile findet man es so gut wie in jedem Firewall-Produkt, einige Heim-Router im oberen Preissegment haben es eingebaut und seit Windows 2000 ist es Bestandteil von Microsofts Betriebssystem.

3.1 Transportmodus versus Tunnelmodus / AH und ESP

IPSec bietet zwei Sicherungsarten:

  • AH (Authentication Header)
    (Mit AH kann der Anwender nur die Integrität und Echtheit der Daten sicherstellen. Das heisst: AH stellt sicher, dass keine Datenveränderung zwischen Absender und Empfänger erfolgen kann. AH wird allerdings nur selten eingesetzt, da es kaum Anwendungen gibt, in denen nur die Integrität zählt.)

  • ESP (Encapsulation Security Payload)
    (ESP stellt Mechanismen zur Sicherstellung der Authentizität, Integrität und Vertraulichkeit der übertragenen IP-Pakete bereit. Die Nutzdaten werden verschlüsselt übertragen.)

jeweils in Kombination mit einem der beiden Betriebsmodis

  • Tunnelmodus: Im Tunnelmodus wird das ursprüngliche Paket gekapselt und die Sicherheitsdienste von IPsec auf das gesamte Paket angewandt. Der neue (äussere) IP-Header dient dazu, die Tunnelenden zu adressieren, während die Adressen der eigentlichen Kommunikationsendpunkte im inneren IP-Header stehen. Der ursprüngliche (innere) IP-Header stellt für Router usw. auf dem Weg zwischen den Tunnelenden nur Nutzlast dar und wird erst wieder verwendet, wenn das empfangende Security-Gateway (das Tunnelende auf der Empfangsseite) die IP-Kapselung entfernt hat und das Paket dem eigentlichen Empfänger zustellt.
    Im Tunnelmodus sind Site-to-Site Verbindungen (Gateway-Gateway) oder auch End-to-Site Verbindungen (Peer-Gateway) möglich. Wenn an jeweils einer Seite Tunnelende und Kommunikationsendpunkt auf demselben Rechner zusammenfallen, sind auch im Tunnelmodus End-to-End Verbindungen (Peer-Peer) möglich. Ein Vorteil des Tunnelmodus ist, dass bei Site-to-Site Verbindung nur in die Gateways (Tunnelenden) IPsec implementiert und konfiguriert werden muss. Angreifer können dadurch nur die Tunnelendpunkte des IPsec-Tunnels feststellen, nicht aber den gesamten Weg der Verbindung.
    Tunnelmodus bedeutet also, dass ein IP-Paket in einem weiteren IP-Paket «gekapselt» wird.
    Üblicherweise kommt die Kombination ESP und Tunnelmode auf VPN-Gateways zum Einsatz, wenn entfernte Subnetze miteinander über ein unsicheres Netz gekoppelt werden.

  • Transportmodus: Im Transportmodus wird der IPsec-Header zwischen dem IP-Header und den Nutzdaten eingefügt. Der IP-Header bleibt unverändert und dient weiterhin zum Routing des Pakets vom Sender zum Empfänger. Der Transportmodus wird verwendet, wenn die «kryptographischen Endpunkte» auch die «Kommunikations-Endpunkte» sind. Nach dem Empfang des IPsec-Paketes werden die ursprünglichen Nutzdaten (TCP-/UDP-Pakete) ausgepackt und an die höherliegende Schicht weitergegeben. Der Transportmodus wird vor allem für End-to-End Verbindungen (Host-Host) oder End-zu-Router-Verbindungen zwecks Netzwerkverwaltung verwendet.
    Üblicherweise kommt die Kombination ESP und Transportmode zum Einsatz, wenn zwei Rechner miteinander über IPSec im LAN kommunizieren sollen.

3.2 Der Verbindungsaufbau - Kryptographische Funktionen von IPsec

Die kryptographischen Funktionen von AH und ESP beruhen auf symmetrischen Schlüsseln. Um diese nicht vorab austauschen zu müssen, handelt das IKE-Protokoll (Internet Key Exchange) diese beim Aufbau der Verbindung dynamisch aus. Nebenbei erledigt IKE auch noch die Authentifizierung der Teilnehmer und das Aushandeln der Security Associations (SA), in denen die Konfiguration der Verbindung festgehalten wird.
Beim Verbindungsaufbau durchläuft IKE zwei Phasen:

  • In Phase 1 (Main Mode) tauschen die Partner in vier Nachrichten Schlüsselmaterial aus, um sich auf einen gemeinsamen symmetrischen Schlüssel (SKEYID) zu einigen. Aus SKEYID werden ein Schlüssel zur Authentisierung und einer zur Verschlüsselung der weiteren IKE-Nachrichten abgeleitet sowie ein Schlüssel für die spätere Phase 2.
    (Alternative zu Main Mode: Aggressive Mode)
  • Anschließend in Phase 2 (Quick Mode) erfolgt über zwei weitere, nun verschlüsselte Nachrichten die Authentifizierung der VPN-Teilnehmer durch digitale Signaturen, RSA-Schlüssel (X509-Zertifikate) oder PSK (Pre-Shared Keys). Letztere sind nichts anderes als geheime Passwörter, die auf beiden Seiten der IPSec-Verbindung identisch sein müssen. (Bei Actctiv-Directory: Kerberos)

PSKs sind wesentlich einfacher zu handhaben als Zertifikate, haben aber im Main Mode einen entscheidenden Nachteil: Sie funktionieren nur mit statischen IP-Adressen.

4. VPN-Tunnel Adressierungsbeispiele

4.1 End-to-End Tunneling

Es werden zwei Endpunkte direkt miteinander verbunden. Auf beiden Endgeräten muss eine VPN-Software installiert sein.

4.2 Site-to-End Tunneling

Damit kann ein externer Rechner mit dem Firmennetzwerk verbunden werden z.B. für Remoteverwaltung oder Homeoffice. Der Tunnelmodus verbindet ein IP-Netz und ein Endpunkt. Die Tunnelendpunkte bilden somit der VPN-Gateway und der VPN-Client. Die IP-Pakete erhalten bei IPsec ESP einen neuen, weiteren IP-Header. Der VPN-Client muss mit einer entsprechenden VPN-Software ausgerüstet sein.
Die Unverfälschbarkeit des transportierten Daten ist hier gewährleistet. Ebenso der Schutz vor Verfälschung der IP-Adressen. Da der Inhalt verschlüsselt übertragen wird, sind sogar die IP-Adressen der Endgeräte «unsichtbar».
Der hier rot dargestellte VPN-Client bzw. VPN-Endpunkt erhält seine IP-Adresse aus dem hier blau dargestellten LAN1-Bereich. Der VPN-Client besitzt nun zwei Netzwerkadressen. Die eine im eigenen LAN und die andere in der VPN-Applikation mit einer IP-Adresse aus dem Site-LAN-Bereich.

4.3 Site-to-Site Tunneling

Damit verbindet man zwei private Netzwerke über ein drittes, meist unsicheres Netzwerk. Man kann hier von einer Art LAN-to-LAN Interconnection sprechen.
Der Tunnelmodus verbindet zwei IP-Netzen. Die Endpunkte bilden zwei VPN-Gateways, dazwischen verläuft der Tunnel. Die IP-Pakete erhalten bei IPsec ESP einen neuen, weiteren IP-Header.
Die Unverfälschbarkeit des transportierten Daten ist hier gewährleistet. Ebenso der Schutz vor Verfälschung der IP-Adressen. Da der Inhalt verschlüsselt übertragen wird, sind sogar die IP-Adressen der Endgeräte «unsichtbar».

Wäre das LAN2 im selben Netz wie LAN1, würden z.B. Pakete aus LAN1 mit Bestimmung LAN2 nie dort ankommen, weil sie ja nicht geroutet würden. Ein Paket in LAN1 findet erst dann zu «seinem» VPN-Gateway, wenn das Zielnetzwerk nicht das eigene ist.

4.4 NAT-Traversal

IPSec hat immense Probleme mit dem heute in vielen Netzen eingesetzten NAT, weil dabei das IPSec-Paket verändert wird. Je nach NAT-Art erhält ein Paket eine neue IP-Adresse und gegebenenfalls noch eine neue Quell-Portnummer. AH, egal ob im Transport- oder Tunnel-Mode, streckt hier sofort die Waffen. Weil der Paket-Header verändert wurde, stimmt der HMAC nicht mehr. Bei ESP ist es etwas komplizierter: Um Ports umzuschreiben, müsste ein NAT-Router den TCP/UDP-Header lesen können. Der Original-Header ist aber verschlüsselt, sodass eine Zuordnung unmöglich ist. Mit ESP im Tunnelmode würde NAT zwar klappen, vorher scheitert aber schon IKE an NAT. Denn IKE kommuniziert fest über den UDP-Quell- und Zielport 500. Wird der verändert, kommt keine Verbindung zu Stande. Einige Router unterstützen deshalb das IPSec-Passthrough-Verfahren, bei dem die IKE-Ports nicht verändert werden. Zudem leitet der Router ESP-Pakete damit richtig weiter. Da die ESP-Pakete nur einer Verbindung zugeordnet werden können, funktioniert Passthrough nur mit einem einzigen Client. Um sich nicht auf den Router verlassen zu müssen, ist das ursprüngliche IPSec daher kaum noch gebräuchlich. Vielmehr setzt man es mit der IPSec-Erweiterung NAT-Traversal ein. Dabei tauschen beide Seiten über das NAT-Traversal-Protokoll verschiedene Informationen aus. Anschließend werden ESP-Pakete in UDP-Pakete verpackt und über Port 4500 verschickt. Nun können NAT-Router ohne Probleme sowohl IP-Adressen als auch Ports umschreiben.

5. Weitere VPN-Protokolle

(Mit IPsec haben wir die sicherste VPN-Variante, doch auch eine eher schwierige Konfiguration.)

  • SSL/TLS (Secure Sockets Layer / Transport Layer Security)
    • Sicherheitsmechanismen für z.B. HTTP (HTTPS)
    • Zunehmend auch „einfachere“ Alternative zu IPsec bei VPN’s
    • SSL/TLS: Arbeitet ab Layer4
    TLS hat SSL abgelöst. SSL wird nicht mehr weiter entwickelt!
    • Site-to-Site / End-to-Site, OpenVPN, Schwachstellen!?
  • PPTP (Point to Point Tunneling Protocol) Ist aber geknackt!
    Einfach einzurichten aber schwache Authentifizierung
  • L2TP (Layer 2 Tunneling Protocol; mit IPsec-Verschlüsselung)
    PAP/ CHAP/IPsec, Mühsame Installation
  • SSTP (Secure Socket Tunneling Protocol; nur Microsoft)
  • getVPN (Group Encrypted Transport VPN; von CISCO)

6. VPN-Software

  • OpenVPN: Freie Software zum Aufbau eines Virtuellen Privaten Netzwerkes (VPN) über eine verschlüsselte TLS-Verbindung. Zur Verschlüsselung wird die Bibliothek OpenSSL benutzt. OpenVPN verwendet wahlweise UDP oder TCP zum Transport.
    Link: www.openvpn.net
  • OpenSSL: Freie Software für TLS (Transport Layer Security). OpenSSL umfasst Implementierungen der Netzwerkprotokolle und verschiedener Verschlüsselungen sowie das Programm openssl für die Kommandozeile zum Beantragen, Erzeugen und Verwalten von Zertifikaten.
    Link: www.openssl.org
  • OpenSSH: Programmpaket zur Dateiübertragung. Dazu nutzt es Secure Shell (SSH) inklusive SSH File Transfer Protocol und beinhaltet dafür Clients, Dienstprogramme und einen Server.
    Link: www.openssh.com
  • STUNNEL: Kommunikationsschnittstelle mit TLS-Verschlüsselungsfunktionalität die OpenSSL nutzt.
    Link: www.stunnel.org
  • PuTTY: Freie Software zum Herstellen von Verbindungen über Secure Shell, Telnet, Remote login oder serielle Schnittstellen. Dabei dient PuTTY als Client und stellt die Verbindung zu einem Server her.
    Link: www.chiark.greenend.org.uk
  • Shrew-Soft VPN-Client: VPN-Client für Windows und Linux
    Link: www.shrew.net
  • pfSense: Firewall-Distribution auf der Basis des Betriebssystems FreeBSD und des Paketfilters pf. PfSense verwendet OpenSSL.
    Link: www.pfsense.org