Secure Socket Tunneling Protocol (SSTP): Microsofts VPN-Tunnel innerhalb von HTTPS
Von 534 Privatkunden-VPNs in unseren Daten geben 42 an, keinen anzubieten. Unten: die Dienste, die dafür am höchsten ranken.
SSTP ist das VPN-Protokoll von Microsoft: Es verpackt eine PPP-Verbindung in eine TLS-Sitzung und sendet sie über den TCP-Port 443, sodass eine Firewall etwas sieht, das wie gewöhnliches HTTPS aussieht. Der Client ist seit Vista SP1 in Windows enthalten, der Server seit Windows Server 2008. Microsoft hat das Protokoll entworfen und seine Spezifikation 2007 als MS-SSTP veröffentlicht, mit Blick auf Netzwerke, in denen PPTP (das auf GRE setzt) und L2TP/IPsec (das UDP 500 und 4500 benötigt) blockiert waren.
Wie eine SSTP-Verbindung aufgebaut ist
PPP-Frames werden in SSTP gekapselt, anschließend in einen TLS-Record eingebettet und schließlich in einem TCP-Segment über Port 443 übertragen; PPP, das alte Einwahlprotokoll, übernimmt Sitzungsaufbau, Adresszuweisung und Anmeldung. Die MS-SSTP-Spezifikation beschreibt die Reihenfolge: TCP-Verbindung zu Port 443, TLS-Handshake, eine HTTPS-Anfrage plus eine OK-Antwort, die den Stream in den SSTP-Modus versetzt, danach PPP-Verhandlung und Benutzeranmeldung.
Zwei getrennte Prüfungen finden statt. Das TLS-Zertifikat bestätigt die Identität des Servers; ein selbstsigniertes muss auf jedem Client manuell hinzugefügt werden, sonst lehnt der Client die Verbindung zum Server ab. Der Benutzer meldet sich dann in der PPP-Phase mit MS-CHAPv2 oder EAP an (EAP-TLS unterstützt Smartcards), und ein Krypto-Binding-Schritt verknüpft die PPP-Schlüssel mit der TLS-Sitzung, um Man-in-the-Middle-Weiterleitungen zu verhindern. SSTP authentifiziert nur Benutzer, niemals Geräte oder Maschinen.
Warum Firewalls es durchlassen und was es trotzdem entlarvt
Netzwerke schließen Port 443 selten, weil das auch HTTPS-Websites abschneiden würde, und die meisten Web-Proxys leiten den Verkehr ebenfalls weiter. Ein Proxy, der einen eigenen Benutzernamen und ein Passwort verlangt, ist die Ausnahme; SSTP kann solche Proxys nicht passieren. Eine Firewall, die nur Ports prüft, sieht gewöhnliches HTTPS. Ein DPI-System, das den Beginn der Sitzung liest, kann SSTP dennoch erkennen, da das Protokoll keine eigene Verschleierung mitbringt – unter echter Zensur brauchen Sie daher ein Stealth-Protokoll.
Die Schwachstellen
TCP über TCP auf schlechten Leitungen
SSTP hat keinen UDP-Modus. Die TCP-Verbindungen Ihres Browsers fahren in der äußeren TCP-Verbindung von SSTP mit, und wenn ein Paket verloren geht, übertragen beide Schichten die Daten erneut und verringern gleichzeitig ihre Senderate – ein Problem, das als TCP-Meltdown bekannt ist. Eine saubere Kabelleitung verbirgt das; unzuverlässige Mobilfunk- oder Fernverbindungen lassen die Geschwindigkeit einbrechen.
Geschlossener Code und Microsofts Fahrplan
Microsoft hat sowohl die Spezifikation als auch den Windows-Code geschrieben, der Closed Source ist und nicht unabhängig geprüft werden kann. Seine Zukunft hängt von Microsofts Entscheidungen ab, und Azure VPN Gateway-Benutzer werden bereits zu IKEv2 und OpenVPN gelenkt.
Dünne Unterstützung jenseits von Windows
macOS, iOS, Android und Linux bringen keinen integrierten SSTP-Client mit. Nachinstallationen beheben das: sstp-client mit einem NetworkManager-Plugin für Linux, Open-Source-Clients auf Android, kostenpflichtige Apps auf iOS.
SSTP neben L2TP/IPsec, IKEv2 und OpenVPN
| Protokoll | Transport und Port | Integriert in | Code | Typischer Einsatz |
|---|---|---|---|---|
| SSTP | TCP 443, TLS | nur Windows | geschlossen | Windows-Laptops hinter strengen Firewalls |
| L2TP/IPsec | UDP 500, 4500, 1701 | die meisten Systeme | offene Standards | ältere Setups, für Firewalls leicht zu blockieren |
| IKEv2/IPsec | UDP 500, 4500 | Windows, macOS, iOS, viele Android-Versionen | offene Standards | Telefone, die die Netzwerke wechseln |
| OpenVPN | UDP oder TCP, beliebiger Port | nichts, App erforderlich | Open Source | flexibel, auch über TCP 443 |
Wo SSTP neben Windows Server läuft
SoftEther VPN Server, ein kostenloses Open-Source-Paket von der Universität Tsukuba, nimmt neben OpenVPN, L2TP/IPsec und einem eigenen Protokoll auch MS-SSTP-Clients an, sodass ein Linux- oder BSD-Rechner Windows-Benutzer über den bereits vorhandenen Client bedienen kann. Freiwillige VPN-Gate-Relays auf Basis von SoftEther erben diese Fähigkeit. MikroTik RouterOS bietet SSTP auf beiden Seiten seit RouterOS 5.0, sodass ein MikroTik-Router entfernte Windows-Laptops annehmen oder sich selbst zu einem anderen SSTP-Server verbinden kann.
SSTP bei VPN-Diensten
Von den 371 Diensten im Hauptranking von VPNRadarLab bestätigen 19 die SSTP-Unterstützung, 38 geben an, sie nicht anzubieten, und 320 erwähnen sie überhaupt nicht; die SSTP-Ranking-Seite listet die Dienste auf, die sie bieten.
FAQ
Ist SSTP TCP oder UDP?
Ausschließlich TCP, standardmäßig auf Port 443 (der Betreiber des Servers kann ihn verschieben).
Ist SSTP sicher?
Die TLS-Schicht mit zertifikatsbasierter Server-Authentifizierung und Krypto-Binding ist solide. Die Zweifel betreffen den nicht prüfbaren Windows-Code und die Tatsache, dass DPI das Protokoll erkennen kann.
Funktioniert SSTP auf einem Mac oder Telefon?
Nicht nativ. Sie brauchen einen Client eines Drittanbieters auf macOS, iOS, Android oder Linux.
Wer nutzt SSTP heute?
Windows-Betriebe mit RRAS, Besitzer von MikroTik-Routern und Betreiber von SoftEther-Servern.
SSTP im Überblick
SSTP transportiert PPP über TLS auf TCP 443 und ist in Windows enthalten. Es passiert Portfilter und die Mehrheit der Proxys, aber keine authentifizierten, wird von DPI erkannt und wird auf verlustbehafteten Verbindungen wegen der doppelten TCP-Schicht langsamer. SoftEther und MikroTik halten es außerhalb von Microsofts eigenem Server am Leben. Für einen Windows-Rechner in einem Netzwerk, das GRE und IPsec-Ports blockiert, ist es die schnellste funktionierende Option; sonst ist IKEv2 oder OpenVPN die bessere Wahl.