Sonntag, 2. September 2012


Topthema

Donnerstag, 8. März 2007 | Topthema

About Security #96: Virtuelle Private Netze — PPTP

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/034729)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

PPTP, das 'Point-to-Point Tunneling Protocol', ist ein weiteres VPN-Protokoll. Es wurde von einem Herstellerkonsortium, bestehend aus Microsoft, Ascend Communications, 3Com/Primary Access, ECI Telematics und US Robotics, entwickelt und ist kein offizieller Standard, jedoch enthält RFC 2637 eine informelle Beschreibung.

Das PPTP dient dazu, das 'Point to Point Protocol' (PPP, RFC 1661) durch ein IP-Netzwerk zu tunneln. PPP wiederum dient dazu, verschiedene Protokolle über Punkt-zu-Punkt-Verbindungen zu übertragen – z.B. IP über eine Modemverbindung. Haupteinsatzgebiet des PPTP ist die sichere Anbindung einzelner Rechner an ein entferntes Netzwerk (Site-to-End- oder Remote-Access-VPN).

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Das PPTP erweitert PPP nur um die für Aufbau und Betrieb eines Tunnels benötigten Funktionen und stellt selbst keine Funktionen zur Authentifizierung und Verschlüsselung zur Verfügung. Diese werden von PPP bzw. dessen Erweiterungen bereitgestellt. Die Authentifizierung erfolgte dabei ursprünglich ausschließlich über ein Challenge-Response-Verfahren, vom Microsoft MS-CHAPv1 und in einer verbesserten Version MS-CHAPv2 genannt. Für die Verschlüsselung wird die Stromchiffre RC4 verwendet, von Microsoft im Microsoft Point-to-Point Encryption Protocol (MPPE, informell beschrieben in RFC 3078) implementiert. Die erste Version verwendete einen gemeinsamen Schlüssel für beide Richtungen des Tunnels, mit MS-CHAPv2 wurde ein Schlüssel für jede Richtung eingeführt. Die verwendeten Schlüssel werden aus einem Passwort berechnet, eine Schlüsselaushandlung wie bei IPsec/IKE findet nicht statt. Mit Windows 2000 wurde als Erweiterung das Extensible Authentication Protocol (EAP) eingeführt, das den Einsatz von Zertifikaten und MD5-Hashwerten für die Authentifizierung erlaubt.

Parallel zum eigentlichen Tunnel (bzw. schon vor dessen Aufbau) wird vom Client eine Kontrollverbindung zum TCP-Port 1723 des Servers aufgebaut. Die Endpunkte werden auf der Client-Seite als PPTP Access Concentrator (PAC) und auf der Server-Seite als PPTP Network Server (PNS) bezeichnet. Die Kontrollverbindung dient dem Auf- und Abbau des Tunnels sowie dessen Überwachung, dem Auf- und Abbau einer evtl. benötigten physikalischen Verbindung (z.B. einer Modemverbindung) sowie der Steuerung der PPP-Kommunikation. Da die Kontrollverbindung weder authentifiziert noch verschlüsselt ist, ist sie ein mögliches Ziel für Angriffe. Zwar sind die über den Tunnel übertragenen Daten davon nicht direkt betroffen, doch zumindest Denial-of-Service-Angriffe wirken sich auch auf den Tunnel aus.

Zur Kapselung der PPP-Pakete in IP-Pakete wird von PPTP ein zusätzliches Protokoll verwendet: Generic Routing Encapsulation (GRE, spezifiziert in RFC 2784).

PPTP-Paket:
IP-Header TCP-Header TCP-Nutzdaten       IP-Paket
     
IP-Header (neu) GRE-Header PPP-Header IP-Header (alt) TCP-Header TCP-Nutzdaten       PPTP-Paket
Der Nachfolger: L2TP (Layer 2 Tunneling Protocol)

Das Layer 2 Tunneling Protocol L2TP, standardisiert in RFC 2661, ist eine Weiterentwicklung der Protokolle PPTP und Layer 2 Forwarding (L2F, beschrieben in RFC 2341, inzwischen obsolet). Während der Tunnelaufbau bei PPTP nur durch den Client und bei L2F nur durch den ISP gestartet werden konnte, sieht L2TP beide Varianten vor.

About Security: Die komplette Serie

L2TP nutzt für die Authentifizierung die Protokolle 'PPP Challenge Handshake Authentication Protocol' (CHAP, standardisiert in RFC 1994) und 'Password Authentication Protocol' (PAP, standardisiert in RFC 1334), eine Verschlüsselung ist nicht vorgesehen. Diese wird bei Bedarf durch die Kombination von L2TP mit IPsec erreicht, standardisiert ist dies in RFC 3193.

Prinzipieller Verbindungsaufbau bei L2TP
  1. Der Client initialisiert eine PPP-Verbindung.
  2. Der Network Access Server (NAS, zuständig für den temporären Netzwerkzugang des Clients) akzeptiert die Initialisierung und authentifiziert den Client (z.B. auf Grundlage seines lokalen Authentifizierungsservers).
  3. Nach erfolgreicher Authentifizierung baut der NAS einen L2TP-Tunnel zum gewünschten Endpunkt auf. Analog zum PAC/ PNS des PPTP wird der Endpunkt auf Seiten des NAS als LAC (L2TP Access Concentrator) und sein Gegenstück als LNS (L2TP Network Server) bezeichnet.
  4. Der LNS authentifiziert den Client (z.B. auf Grundlage seines lokalen Authentifizierungsservers).
  5. Nach erfolgreicher Authentifizierung akzeptiert der LNS den L2TP-Tunnel.
  6. Der LNS baut durch den L2TP-Tunnel die PPP-Verbindung zum Client auf.

L2TP unterscheidet zwei Pakettypen: Kontrollpakete und Datenpakete. Kontrollpakete dienen dem Auf- und Abbau und der Überwachung des Tunnels. Datenpakete werden für die Kapselung der über den Tunnel übertragenen PPP-Pakete verwendet. Kontrollpakete werden über einen zuverlässigen Kontrollkanal übertragen, Datenpakete über einen unzuverlässigen Datenkanal. Die Paket-Header beider Typen unterscheiden sich nur im Wert des 'Type'-Bits.

Sowohl PPTP als auch L2TP verlieren an Bedeutung und werden zunehmend durch IPsec und VPN auf der Basis von Transport Layer Security (TLS) ersetzt. Letztere sind das Thema der nächsten Folge.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "VPN – Virtuelle Private Netze"

Kommentare

Folgende Links könnten Sie auch interessieren