Virtual Private Networks (VPNs) wurden entwickelt, um vertrauenswürdige Endpunkte über unsichere Netzwerke zu verbinden. Ein VPN schützt gegen folgende Angriffe:
Außerdem ändern VPNs die eigene IP-Adresse, die ein Internetdienst sehen kann. Ein VPN kann gegen Tracking anhand der IP-Adresse schützen und einige Geo-IP Sperren umgehen.
Da das Tracking mit Cookies immer schwieriger wird und Fingerprinting nicht immer eindeutig ist, werden moderne Trackingverfahren anhand der IP-Adresse entwickelt, bei denen die Trackingfirmen wie Utiq SA/NV mit Telekommuniationsprovidern kooperieren. Mit Hilfe der Telcos wird die eine IP-Adresse eindeutig einem Smartphone zugeordnet. Gegen diese sogenannten Netzwerk-Cookies kann man sich nur mit einem VPN (oder TorBrowser) schützen.
Sinnvolle Anwendungen für VPNs sind:
Im privaten Bereich kann mit VPNs verwenden, um sich gegen Tracking mit Netzerk-Cookies zu schützen oder die Verfolgung der Reisetätigkeit durch Geo-Lokalisierung der IP-Adresse zu verhindern und in nicht vertrauenswürdigen Wi-Fi Netzwerken (Hotel, Flughafen, U-Bahn o.ä.) Angriffe durch bösartige Nutzer des Hotspots zu verhindern.
Ähnlich wie im Beruf ermöglicht ein privates VPN Zugriff auf das Heimnetz von unterwegs. Das hat den Vorteil, dass man private Server (NextCloud, Netzwerkspeicher o.ä.) nicht ins Internet exponieren und Hackerangriffen aussetzen muss, um von unterwegs darauf zuzugreifen.
Außerdem kann man mit einem VPN die Geo-IP Sperren von einigen Medien umgehen. Wenn eine VPN Server mit deutscher IP-Adresse verwendet, kann man beispw. auf Mallorca ein bisschen in der ZDF Mediathek stöbern.
(Das funktioniert aber nicht immer. Die Geo-IP Sperre von BBC lässt sich beispw. nicht so einfach mit VPNs austricksen, weil die BBC bekannte VPN Dienste generell blockiert.)
Mit einer Verbindung zu einem VPN-Server in einem anderen Land kann man viele nationale oder EU-weite Zensurmaßnahmen umgehen (falls unzensierte DNS-Server nicht ausreichen).
OpenVPN: ist ein Klassiker. Die Software arbeitet auf OSI Layer 4 (TCP, UDP) und nutzt TLS, um den Datenverkehr zwischen zwei Endpunkten zu verschlüsseln. Es funktioniert ähnlich wie HTTPS im Browser. Nachdem ein verschlüsselter TLS Tunnel aufgebaut wurde, werden Daten durch diesen verschlüsselten Tunnel geschickt. Bei HTTPS im Browser wird HTTP Traffic durch diesen Tunnel transportiert und bei OpenVPN werden alle Daten durch den TLS Tunnel gejagt.
Es werden Client-2-Server und Server-2-Server Verbindungen unterstützt.
IPsec: arbeitet einen Level tiefer auf IP-Ebene (OSI Layer 3) und bietet daher eine höhere Robustheit gegen Lauscher, da auch die TCP-Header verschlüsselt werden.
Der IPsec Standard ist komplex und besteht aus mehreren, eigenständigen Teilen:WireGuard: ist ein relativ junges Projekt, das wie IPsec auf OSI Layer 3 arbeitet. Ziel von WireGuard ist eine VPN Lösung mit geringer Komplexität in der Protokoll Spezifikation und Implementierung sowie einer einfachen Anwendung und hoher Performance. Der Quellcode umfasst derzeit nur 4.000 Zeilen Code (OpenVPN+OpenSSL: 292.000 Zeilen).
Wireguard ist ein Peer-2-Peer VPN. Jeder Peer stellt einen IP-Adressbereich zur Verfügung, der transparent mit den Netzen der anderen Peers über eine verschlüsselte Verbindung gekoppelt wird. Authentifizierung von Nutzern wie bei OpenVPN und IPsec gibt es nicht.
Einige VPN-Provider vergewaltigen das Konzept und bauen damit individuelle Client-Server ähnliche Infrastrukturen, indem die Client Peers nur eine eigene IP-Adresse für das VPN bereitstellt und der Peer auf der Seite des Server das gesamte Internet anbietet.
Stealth VPN Techniken sollen verhindern, dass ein Beobachter erkennt, dass man VPNs verwendet. Damit kann man beispw. die Firewalls einiger Diktaturen durchtunneln, die VPNs blockieren.
Die einfachste Stealth VPN Technik ist die Verwendung von OpenVPN im TCP Mode mit Port 443 auf dem Server als Endpunkt. Für einen oberflächlichen Beobachter, der keine Deep Packet Instektion (DPI) einsetzt, sieht es wie die harmlose TLS-verschlüsselte Verbindung eines Webbrowser zu einem Webserver aus (HTTPS).
Diesen Trick kann man auch für andere VPN Protokolle wie Wireguard oder IPsec verwendet. Es wird zuerst ein TLS-verschlüsselter Tunnel zum Port 443 zu einem Server aufgebaut und durch diesen Tunnel wird die eigentliche VPN Verbindung zum VPN Server initiiert.
Den TLS Tunnel könnte man sich mit stunnel auf beiden Seiten zusammenbasteln. Einige VPN Provider haben diese Technik auch in ihre Apps integriert.
Advanced Firewalls mit DPI lassen sich nicht so einfach austricksen. Die staatliche iranische Firewall erkennt zum Beispiel die typischen TLS-Zertifikate von VPN Providern (und Tor Oinion Router) beim Handshake zum Aufbau eines TLS-verschlüsselten Tunnels und blockiert die Verbindung.
Das SSH-Protokoll verwendet nur nackte Keys und arbeitet nicht mit signierten Zertifikaten wie TLS. Es bietet weniger Merkmale für die Trafficanalyse via DPI. Man kann auch mit SSH einen verschlüsselten Tunnel zu einem Server aufbauen und durch diesen verschlüsselten Tunnel die VPN Verbindung initiieren. Für einen Beobachter sieht es wie eine Serveradministration aus.
Obfproxy (Obfuscation Proxy) wurde von TorProject.org entwickelt, um die Erkennung von Tor Traffic zu verhindern. Man kann diese Technik auf für VPN Traffic nutzen. Einige VPN Provider wie IVPN habe es in ihre Apps integriert, wo man es mit einem Klick aktivieren kann.
Ein paar kleine Gedanken zu Einsatzempfehlungen für die unterschiedlichen Technologien:
OpenVPN ist robust gegen Einschränkungen oder Sperrungen von VPN Datenverkehr, wenn man das TCP Protokoll verwendet und den VPN-Server auf Port 443 erreichen kann.
Manchmal ist man bei Bekannten zu Gast und möchte kurz mal das WLAN nutzen oder unterwegs das WIFI@DB. Der Gast-Zugang ist restriktiv konfiguriert und lässt nur HTTPS und HTTP durch ("facist firewall"). Wenn man auf solche Situationen vorbereitet ist und eine OpenVPN Konfiguration mit einem Klick aktivieren kann, sind solche Beschränkungen kein Problem.
Auch in Hotels mit offenen WLANs, im ICE WLAN o.ä. ist OpenVPN gut geeigent, um sich gegen Angriffe zu schützen oder die Reisen gegenüber Internetdiensten zu verschleiern.
WireGuard ist ein kryptografisch modernes Protokoll ohne Altlasten mit hoher Performance.
Nachteilig ist der Schlüsseltausch und die fehlenden Möglichkeiten einer zentralen Nutzerverwaltung. Daher ist es ohne selbstgestrickte Erweiterungen eher für kleine VPNs (weniger als 10 Road Warrior oder Standorte) geeignet, bei denen man die Schlüssel per Hand verwalten kann.
Hinweis: Das Sicherheitskonzept von Wireguard geht davon aus, dass die privaten Schlüssel lokal auf den Clients (Road Warrior) erzeugt werden und nur die public Keys ausgetauscht werden. Eine zentrale Erzeugung/Verwaltung privater Schlüssel ist nicht empfehlenswert.
IPsec/IKEv2 ist ein komplexes Gebäude mit vielen Optionen, dass auch höchste Sicherheitsansprüche erfüllen kann ("military grade security"). Aufgrund der Möglichkeiten zur zentralen Verwaltung von Zugriffsrechten und Zertifikaten ist es auch für größere VPNs geeignet.
Da man prinzipiell eine Kompromittierung des VPN-Servers nicht ausschließen kann, ist die Verwendung von Smartcards oder Hardware Security Modulen (z.B. Nitrokey HSM) für Server Zertifikate in größeren, kommerziellen Umgebungen sinnvoll. Wenn die Serverzertifikate kompromittiert werden und hundert oder mehr Road Warrior die Serverzertifikate tauschen müssen, dann hat der Admin ein Problem. Einen kompromittierten Server könnte der Admin schnell ersetzen, HSM-Stick mit dem Serverzertifikat anschließen - fertig.
"Military grade security" ist ein Buzzword in der Werbung bei vielen VPN-Providern, weil sie starke AES256 Cipher für die Verschlüsselung des Datenstromes verwenden.
Es ist aber bei dieser Nutzung von VPN Technologien völlig egal, wie stark die Verschlüsselung der Daten ist, weil ein potenter Angreifer den Eingangs- und Ausgangsdatenstrom der VPN-Server beobachten kann und durch einfache Traffic Korrelation die Daten entschlüsselt. Hermann/Wendolsky/Federrath haben das bereits 2009 demonstiert und die Firma Team Cymru setzt es in der Praxis ein, um Bad Actors im Internet zu identifizieren, die sich hinter VPN Servern verstecken wollen.
"Military grade security" gibt es also nur bei der Verbindung von vertrauenswürdigen Endpunkten (also beispw. bei der Verbindung von zwei oder mehr Firmenstandorten oder bei der Einbindung von Road Warriors in das Firmen- oder Heimnetz aber nicht bei VPN-Providern).
Das BSI und die NSA geben in ihren Empfehlungen für VPNs mit hohen Sicherheitsanforderungen (für Regierungen, Militär u.ä.) einige allgemeine Hinweise, die man teilweise auch dann beachten und einfach umsetzen kann, wenn man keine extremen Sicherheitsanforderungen hat.
Kurze Zusammenfassung der BSI und NSA Empfehlungen für sichere VPNs:
Die Verwendung von irgendwelchen TLS Tunneln auf OSI Layer 4 für VPN Verbindungen sollte vermieden werden. Das kommt auch als nicht als Fallback in Frage (also kein OpenVPN). Die Verschlüsselung muss auf Layer 3 erfolgen, damit auch die TCP Header verschlüsselt sind.
Hinweis: bei der Verwendung von VPN-Providern gilt die gegenteilige Empfehlung. In diesem Fall sollten TLS Tunnel auf Layer 4 bevorzugt verwenden, weil Webdienste hinter dem VPN-Server bei Layer 3 VPNs anhand der reduzierten MTU erkennen können, dass man ein VPN verwendet. Einige Webseiten verwenden diese Information, um den Zugang zu blockieren. Außerdem erschwert man dem Internet Zugangsprovider die Erkennung der VPN Nutzung, wenn man einen TLS Tunnel zu Port 443 (TCP) beim VPN-Server verwendet (siehe oben: Stealth VPN).
Für hohe Sicherheitsanforderungen wird IPsec/IKEv2 empfohlen mit aktuellen Ciphersuiten.
IP-Adressen der Endpunkte sind fest zu konfigurieren und sollten nicht von der DNS Namensauflösung von DNS Servern abhängen, über die man keine Kontrolle hat.
Die Authentifizierung von Nutzern sollte nicht mit Passwörtern erfolgen sondern mit Zertifikaten, die in einem externen Hardware Security Modul gespeichert sind (z.B. Nitrokey HSM). Die PKI zur Verwaltung der Zertifikate für die Nutzer darf nicht ins Internet exponiert werden.
Funktionen für die Remote Administration der VPN Server dürfen nur via VPN zugänglich sein und nicht in das Internet exponiert werden, egal welche Authentifizierung eingesetzt wird.