OpenVPN/Authentifizierung
Erscheinungsbild
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
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