PPTP - Point-to-Point Tunneling Protocol

PPTP ist ein VPN-Tunneling-Verfahren für Remote-Access-Verbindungen. Es baut auf den Remote Access Server für Microsoft Windows NT inklusive der Authentisierung auf.
PPTP wurde 1996 von mehreren Unternehmen entwickelt, die sich zum PPTP-Forum zusammengeschlossen haben. Unter anderem war auch Microsoft an der Entwicklung von PPTP beteiligt. Die häufige Nennung im Zusammenhang mit Microsoft kommt daher, weil PPTP hauptsächlich in Microsoft-Betriebssystemen zum Einsatz kommt. Ein PPTP-Client ist nicht nur in Windows, sondern auch in Linux und MacOS integriert.

Wie sicher ist PPTP?

PPTP kommt häufig als VPN-Technik zum Einsatz. Es ist auf fast allen Endgeräten verfügbar und einfach einzurichten. Allerdings ist PPTP ausschließlich für den Transfer von IP, IPX und NetBEUI über IP geeignet. Außerdem gilt die Verschlüsselung von PPTP als unsicher. Das liegt weniger an PPTP, sondern am Anmeldevorgang mit MS-CHAPv2. Microsoft selber warnt vor VPN-Zugängen, die MS-CHAPv2 (insbesondere PPTP-Verbindungen) nutzen. Sie lassen sich mit vergleichsweise geringem Aufwand knacken. Eine Lösung wäre, die MS-CHAP-Authentifizierung in einen separat verschlüsselten Tunnel, zum Beispiel Protected Extensible Authentication Protocol (PEAP), zu verpacken.

Seit Windows 2000 werden von Microsoft verschiedene Tunneling-Protokolle innerhalb von Windows angeboten. Für eine sichere Installation wird L2TP over IPsec empfohlen. L2TP weist gewisse Ähnlichkeiten zu PPTP auf und transportiert auch die Protokolle höherer Schichten. Allerdings bietet L2TP keine Verschlüsselung an. Zur Verschlüsselung der Daten muss deshalb auf IPsec zurückgegriffen werden, das auch die Authentifizierung übernimmt.

Insbesondere wegen der mangelhaften Verschlüsselung und Authentifizierung hat sich Microsoft von PPTP verabschiedet. Es bietet sich also an, statt PPTP gleich eine sichere VPN-Technik zu verwenden. Zum Beispiel L2TP/IPSec, IPSec mit IKEv2, SSTP oder die Open-Source-Software OpenVPN auf Basis von OpenSSL.

PPTP-Architektur

PPTP-Architektur
Die PPTP-Architektur teilt sich in zwei logische Systeme. Den PPTP Access Concentrator (PAC) und den PPTP Network Server (PNS). Der PAC ist üblicherweise in den Client integriert, verwaltet die Verbindungen und stellt sie zum PNS her. Der PNS ist für das Routing und die Kontrolle der vom PNS empfangenen Pakete zuständig.

PPTP-Verbindungsaufbau

PPTP-Verbindungsaufbau
PPTP baut auf eine zweigeteilte Kommunikation. Zuerst eröffnet der Client die Kontrollverbindung zum Server über den TCP-Port 1723. Über diesen Port laufen alle Kontrolldaten der PPTP-Verbindung. Dieser Port muss bei der Nutzung von PPTP von innen geöffnet sein (z. B. mit PPTP-Passthrough oder Port-Forwarding), damit ein PPTP-Client die ausgehenden bzw. eingehenden Verbindungen nutzen kann. Als Quell-Port der Kontrollverbindung benutzt PPTP einen beliebig freien Port.
PPTP-Protokoll-Stack
Der zweite Teil der Kommunikation ist die Verbindung mit GRE (Generic Routing Encapsulation). Darüber werden die PPP-Pakete getunnelt. Das bedeutet, PPTP kapselt die PPP-Pakete mit GRE in IP-Pakete.
Die Benutzerauthentifizierung erfolgt mit MS-CHAPv1 oder MS-CHAPv2. Die Authentifizierung und Aushandlung der Schlüssel gilt als Schwachstelle von PPTP. Bei MSCHAPv1 wird die Authentifizierung mit einem Passwort verschlüsselt, die sich mit einer Wörterbuch- oder Brute-Force-Attacke knacken lässt. Zwar bietet MSCHAPv2 Verbesserungen, die aber auch nur wenige Stunden standhalten.
Nach der Authentifizierung wird dem Client eine IP-Adresse aus dem LAN zugewiesen. Danach erfolgt die Datenkommunikation.
Eine Verschlüsselung findet nicht statt. Die muss mit PPP ausgehandelt werden. Z. B. mit RC4, was Microsoft auch als Microsoft Point-to-Point-Encryption (MPPE) bezeichnet.

Probleme mit NAT

Wie alle anderen VPN-Verfahren hat auch PPTP mit NAT zu kämpfen. NAT ordnet eingehende Datenpakete anhand der Portnummer einem Client zu. GRE ist ein IP-Protokoll, das keine Ports wie TCP oder UDP kennt. Dadurch ist die Zuordnung eines GRE-Pakets zu einem Client unmöglich. NAT-Router verwerfen GRE-Pakete. Ein Verbindungsaufbau ist nicht möglich.
Um die Probleme wegen NAT zu umgehen verwenden NAT-Router PPTP-Passthrough. NAT-Router, die PPTP-Passthrough bzw. PPTP mit NAT beherrschen, führen eine Liste mit den Clients und der von PPTP verwendeten Call-ID. Die Call-ID ist ein Art Tunnelnummer, die unverschlüsselt übertragen wird und der NAT-Router auslesen kann. Er kann auf diese Weise eine Liste der von Clients verwendeten Call-IDs führen. So ist eine Zuordnung von GRE-Paket und Client doch möglich.

Übersicht: VPN-Technik und - Protokolle