VPN-Knigge

Seite 4: Tunnel nach Redmonder Art

Inhaltsverzeichnis

Das hauptsächlich unter Windows eingesetzte Point-to-Point Tunneling Protocol (PPTP) ist ein VPN-Verfahren für Remote Access und setzt eine verschlüsselte PPP-Brücke auf. Das Point-to-Point-Protokoll (PPP) dürfte den meisten Anwendern geläufig sein: Es sorgt für den Verbindungsaufbau des heimischen PC und die Datenübertragung über Modem- und ISDN-Wählzugängen zum Internet-Provider. Grundsätzlich kann PPP beliebige Protokolle aus höheren Schichten transportieren, etwa IP, IPX, NetBIOS und Appletalk. Bei der Einwahl ins Internet funktioniert die Weiterleitung über den Network Access Server (NAS) aber nur mit IP-Paketen. Um auch andere Protokolle, etwa für Remote Access ins Firmennetz zu transportieren, muss man die PPP-Verbindung quasi über den NAS des Providers zum NAS der eigenen Firma verlängern. Dazu verpackt PPTP die PPP-Pakete über das Tunnel-Verfahren Generic Routing Encapsulation (GRE) in IP-Pakete. Die Signalisierung zum Verbindungsauf- und -abbau erfolgt zwischen dem PPTP-Client und dem Server über eine Control Connection über den TCP-Port 1723.

PPTP kapselt die verschlüsselten PPP-Pakete in das GRE-Protokoll, das wie IPSec ein eigenständiges Protokoll ist und keine Ports besitzt.

PPP übernimmt mehrere Aufgaben: Es ist für die Authentifizierung, die Aushandlung der Paketgrößen und IP-Adressen sowie für die Verschlüsselung der Daten zuständig. Die Authentifizierung und die Aushandlung der Schlüssel sind die Schwachpunkte von Microsofts PPTP-Implementierung. Die Authentifizierung beruht auf einem Challenge-Response-Verfahren (MSCHAPv1), bei der der Windows-Client eine vom Server im Klartext verschickte Challenge mit einem Passwort verschlüsselt und an den Server zurückschickt.

Dieser 24 Byte lange LM-Hash lässt sich wie schon die PSKs von IPSec im Aggressive Mode mit Wörterbuch- oder Brute-Force-Angriffen mehr oder minder schnell knacken [3]. Microsoft hat darauf in MSCHAPv2 mit zahlreichen Verbesserungen reagiert, bei dem der Client unter anderem nicht mehr die ursprüngliche Server-Challenge verschlüsselt, sondern eine davon abgeleitete. Somit ist es erheblich schwieriger, den Hash zu berechnen. Allerdings demonstrierte bereits 2001 eine Gruppe von Studenten, wie man auch MSCHAPv2 innerhalb von Stunden knackt.

Die Datenverschlüsselung von PPTP mit dem Stromchiffrierer RC4 hat ebenfalls ihre Haken: Die in Microsofts Point-to-Point Encryption Protocol (MPPE) eingesetzten Schlüssel beruhen auf dem Passwort, eine dedizierte Schlüsselaushandlung findet nicht statt. In der ersten MPPE-Version gab es sogar nur einen Schlüssel zum Ver- und Entschlüsseln, seit MSCHAPv2 errechnet MPPE für jede Richtung einen eigenen Key. Die Schlüssellänge kann 40 oder 128 Bit betragen. Eine zusätzliche Authentisierung der Pakete nimmt PPTP nicht vor.

Auch PPTP hat unter Umständen Probleme mit NAT-Router. Das Passthrough-Verfahren ebnet diese Hürde.

Um die Sicherheitsprobleme von PPTP zu beseitigen, hat Microsoft ab Windows 2000 das Extensible Authentication-Protocol (EAP) eingeführt, das die Authentifizierung über Zertifikate und MD5-Hashes unterstützt. Ohne EAP gilt PPTP heutzutage als nicht mehr hinreichend sicher.

Neben den Sicherheitsproblemen hat PPTP auch mit NAT zu kämpfen. Manche Router nehmen GRE-Pakete nicht an und verwerfen sie kommentarlos. Zudem gibt es bei GRE keine Ports, sodass die Zuordnung von Ports zu Client-Verbindungen unmöglich ist. Anders als bei IPSec befördert PPTP die zugehörigen Kenndaten unverschlüsselt. Mit PPTP Passthrough sind moderne NAT-Router daher in der Lage, eine Liste der von Clients verwendeten Call IDs zu führen und zuzuordnen.

Als Alternative baut Microsoft seit Windos 2000 das Protokoll L2TP over IPSec (Layer 2 Tunneling Protocol) ein, das wie PPP andere Protokolle höherer Schichten transportiert. L2TP hat keine eigenen Funktionen zur Verschlüsselung. Daher wird es zum Schutz der Daten in Kombination mit IPSec eingesetzt, wobei IPSec dann auch die Authentifizierung übernimmt.