Diese Woche hatte habe ich mehr als eine Stunde damit verbracht eine PPTP-Verbindung wieder zum Laufen zu bekommen. Nach dem Update von Windows Vista von SP1 auf SP2 ließ sich keine Verbindung mehr mit dem Server herstellen. Mit etwas Glück hatte Windows ab und an den Fehler 741 ausgegeben.
Analyse
Eine genauere Analyse mit Wireshark hat gezeigt, dass der PPTP-Server die Verbindung auflegt, nachdem er gemeldet hat, dass er maximal 0 Sessions akzeptieren würde. Dies deutet also darauf hin, dass sich der Client und der Server bei der Wahl des Verschlüsselungsprotokolls nicht einig werden. Hmh, könnte es etwa sein, dass der Administrator MPPE-128 nicht zum funktionieren gekriegt hat und noch immer 40Bit-Verschlüsselung einsetzt? Ein wenig Recherchieren im Internet bestätigte meine Vermutung: Windows Vista kennt einen Registry-Schlüssel mit dem sich die Nutzung der schwachen Verschlüsselung deaktivieren lässt.
Lösung
Im KB-Artikel 929857 zeigt Microsoft mehrere Lösungsmöglichkeiten für dieses Problem auf. Prinzipiell ist der Parameter AllowPPTPWeakCrypto im Pfad HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters der Auslöser des Problems. Wird dieser auf 0 gesetzt, so sind die — definitiv unsicheren und nicht empfehlenswerten — schwachen Verschlüsselungen deaktiviert. D.h. beim Aushandeln der Verschlüsselungsprotokolle bietet Vista die schwache 40Bit-Verschlüsselung nicht an und wird sich daher mit dem VPN-Server (der nur diese nutzen kann) nicht einig. Um das Problem zu lösen genügt es daher, den Parameter in der Registry auf 1 zu setzen.