OpenVPN: Unterschied zwischen den Versionen
Zeile 24: | Zeile 24: | ||
Weiterhin stehen angepasste Implementierungen für eine Vielzahl von Linux-basierten Endgeräten wie z. B. [[Set-Top-Box|Settop-Boxen]] der Firma [[Dream Multimedia]] oder für Router der [[Fritz!Box]]-Linie der Firma [[AVM GmbH|AVM]] zur Verfügung | Weiterhin stehen angepasste Implementierungen für eine Vielzahl von Linux-basierten Endgeräten wie z. B. [[Set-Top-Box|Settop-Boxen]] der Firma [[Dream Multimedia]] oder für Router der [[Fritz!Box]]-Linie der Firma [[AVM GmbH|AVM]] zur Verfügung | ||
== Erkennbarkeit == | == Erkennbarkeit == |
Version vom 8. Januar 2025, 15:16 Uhr
OpenVPN - Freie Software zum Aufbau von Virtuellen Privaten Netzwerken (VPN) über eine verschlüsselte TLS-Verbindung
Beschreibung
OpenVPN ist eine freie Software zum Aufbau eines Virtuellen Privaten Netzwerkes (VPN) über eine verschlüsselte TLS-Verbindung
- Zur Verschlüsselung kann OpenSSL oder mbed TLS benutzt werden
- OpenVPN verwendet wahlweise UDP oder TCP zum Transport
- Lizenz
OpenVPN steht unter der GNU GPL
- Unterstützte Betriebssysteme
Weiterhin stehen angepasste Implementierungen für eine Vielzahl von Linux-basierten Endgeräten wie z. B. Settop-Boxen der Firma Dream Multimedia oder für Router der Fritz!Box-Linie der Firma AVM zur Verfügung
Erkennbarkeit
OpenVPN-Verbindungen können trivial mittels einer Deep Packet Inspection an den bekannten Header-Daten der übertragenen Pakete erkannt werden, unabhängig welches Protokoll oder welcher Port verwendet wird. Zwar kann durch die Deep Packet Inspection nicht der Inhalt im verschlüsselten Tunnel ermittelt werden, aber es kann beispielsweise mit der Erkennung die Verbindung blockiert, die Kommunikationspartner ermittelt und die Daten dazu protokolliert werden
- Dieser Punkt ist vor allem dann wesentlich, wenn der Einsatz von VPN-Verbindungen in bestimmten Umgebungen nicht zulässig ist, beispielsweise in Ländern, die verschlüsselte Kommunikationsverbindungen verbieten oder zivilrechtlich bei der Umgehung von Netzsperren in Firmennetzwerken
Authentifizierung
Zur Authentifizierung stellt OpenVPN zwei wesentliche Methoden zur Verfügung
- Bei Austausch eines pre-shared key}
- ein statischer Schlüssel/Passwort
- werden die Daten mit diesem ver- und entschlüsselt
- Dieses Verfahren ist einfach anzuwenden
- Es wird beispielsweise bei kommerziellen Proxy-Anbietern, welche auch Anonymisierungsdienste auf Basis von OpenVPN anbieten, verwendet
- Diese Methode hat zwei Nachteile
- Der Schlüssel kann durch unsachgemäßen Umgang kompromittiert werden (z. B. Aufschreiben, bei dem nach Gebrauch die Vernichtung vergessen wird)
- Brutforce-Attacken auf den Schlüssel ähnlich wie bei einem Passwort
- Daher sollte der gewählte Schlüssel in hinreichender Länge generiert werden und aus einem möglichst großen Zeichensatz bestehen
- Der Schlüssel sollte nicht selbst wie ein Passwort gewählt werden
- Eine Speicherung des Schlüssels sollte auf ein Notwendigstes reduziert werden, indem der Schlüssel nur auf den Endpunkten der VPN-Verbindung liegt
- Das Notieren oder Eintragen des Schlüssels in einer Passwortverwaltung stellt ein zusätzliches Sicherheitsrisiko dar
- Auf dem Endgerät sollte der pre-shared-key durch ein Passwort verschlüsselt werden, um das Netzwerk bei Abhandenkommen des Gerätes nicht zu gefährden.[1]
Zertifikate
- Bei der Anwendung einer zertifikatbasierten Authentifizierung über das TLS-Protokoll werden private und öffentliche Schlüsselpaare beziehungsweise X.509-Zertifikate verwendet
- Der Server und die jeweiligen Nutzer besitzen je ein eigenes Zertifikat (öffentlich/privat)
- Der OpenVPN-Server lässt nur Verbindungen zu, die von einer ihm bekannten Zertifizierungsstelle signiert wurden
- OpenVPN enthält Skripte, die die einfache Zertifikatserstellung ohne weitere Vorkenntnisse basierend auf OpenSSL ermöglichen (easy-rsa)
- Um eine Verbindung aufzubauen, schickt der Client Daten an den Server (SSL-Version und zufällige Daten)
- Der Server schickt die gleichen Daten und sein Zertifikat zurück
- Der Client autorisiert das Zertifikat
- Bei beidseitiger Authentifizierung schickt der Client auch sein Zertifikat an den Server
- Hat die Überprüfung geklappt, erstellt der Client das „Vorlage:Lang“ und verschlüsselt dies mit dem öffentlichen Schlüssel des Servers
- Der Server entschlüsselt die Daten mit seinem privaten Schlüssel und erstellt das „Vorlage:Lang“
- Mit diesem werden Sitzungsschlüssel erstellt
- Das sind einmalige Schlüssel, mit denen die Daten ver- und entschlüsselt werden
- Der Client teilt dem Server mit, dass ab nun alle Daten mit dem Sitzungsschlüssel verschlüsselt werden
- Der Server bestätigt dies, der Tunnel ist aufgebaut
- Nach einer gewissen Zeitspanne ersetzt OpenVPN den Sitzungsschlüssel automatisch
- Die zertifikatbasierte Authentifizierung gilt als die sicherste Form der Anmeldung
- Um die Sicherheit zu erhöhen, empfiehlt es sich, die Zertifikate auf einer Smartcard auszulagern
- OpenVPN unterstützt alle Karten, auf die mittels Windows-Crypto-API oder PKCS #11 zugegriffen werden kann
Anhang
Siehe auch
Links
Weblinks