Zum Inhalt springen

OpenVPN/Authentifizierung

Aus Foxwiki

Authentifizierung

Zur Authentifizierung stellt OpenVPN zwei wesentliche Methoden zur Verfügung

Pre-shared Key

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
  • 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