Philipp Jeschke | Mai 2007 OpenVPN / Zertifikate
Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007 Übersicht / Struktur PKI Authentifizierungsprozess Sicherheitsmodell Best Practice – OpenVPN / PKI 4.1 CA Zertifikat / Schlüssel erzeugen 4.2 Server Zertifikat / Schlüssel erzeugen 4.3 Client Zertifikat(e) / Schlüssel erzeugen 4.4 DH-Parameter generieren 4.5 Übersicht Files 4.6 Konfiguration von Server/Clients Quellen Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007 PKI Public Key Infrastructure Separates Zertifikat (Public Key) + private Keys für VPN-Server/Clients master Certificate Authority (CA) Zertifikat + Schlüssel um die Server/Client Zertifikate digital zu signieren Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Authentifizierungsprozess bidirektional => „mutual trust“ Client muss Server authentifizieren Server muss Client authentifizieren ist das Zertifikat von der CA signiert? Test der dargelegten Informationen: common name Zertifikatstyp (client/server) [...] Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007 Sicherheitsmodell Server braucht eigenes Zertifikat/Schlüssel: muss Clientzertifikate nicht kennen Server akzeptiert lediglich signierte Zertifkate (von der CA) kein Zugang / Netzwerkverbindung zum CA private Key nötig Zertifkatsperrlisten (CRL) keine kompletter Rebuild der PKI notwendig Clientspezifische Zugangsrechte basierend auf Zertifikatinformationen (common name) Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Best Practice – OpenVPN / PKI PKI planen(!) Prozess der Schlüsselerzeugung: CA Zertifikat / Schlüssel erzeugen Server Zertifikat / Schlüssel erzeugen auf Client Zertifikate / Schlüssel erzeugen der CA Diffie Hellmann Parameter generieren Schlüssel-Files verteilen Client/Server konfigurieren Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
CA Zertifikat / Schlüssel erzeugen OpenVPN Paket installieren „meist“ zu finden unter: /usr/share/doc/packages/openvpn bzw. /usr/share/doc/openvpn-2.0 Kopie in /etc/openvpn anlegen PKI initialisieren: . ./vars ./clean-all ./build-ca Konstruiert das eigentliche Certificate Authority Zertifikat + Schlüssel Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Server Zertifikat / Schlüssel erzeugen ./build-key-server server common name -> „server“ „Sign the certificate? [y/n]“ „1 out of 1 certificate requests certified, commit? [y/n]“ Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Client Zertifikat(e) / Schlüssel erzeugen ./build-key client1 ./build-key client2 […] ./build-key clientn passwortgeschützte Zertifikate: ./build-key-pass clientn ein-eindeutigen „common name“ verwenden Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
DH-Parameter generieren erforderlich für den Server ./build-dh …. This is going to take a long time … Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007 Übersicht Files Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Konfiguration von Server/Clients http://openvpn.net/howto.html#config Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007 Quellen http://openvpn.net/howto.html#pki (Stand: 28.05.2007, 13:57 MEZ) http://www.sans.org/rr/whitepapers/vpns/1459.php (Stand: 28.05.2007, 14:32 MEZ) Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007
Vielen Dank für die Aufmerksamkeit! Fragen? Philipp Jeschke FS44, OpenVPN / Zertifikate, Mai 2007