Move concept-stuff into one chapter

This commit is contained in:
Jan Philipp Timme 2018-10-16 17:28:01 +02:00
parent f89fcfe5cc
commit d9450ac8fc
1 changed files with 59 additions and 54 deletions

View File

@ -123,7 +123,12 @@ Labor-Netze & erlaubt & erlaubt & erlaubt & erlaubt & --- \\
\end{table}
\chapter{Konzeption des VPN-Dienstes} \label{cpt:service_concept}
\chapter{Konzeptphase} \label{cpt:service_concept}
\todo{In diesem Abschnitt soll aus dem Arbeitsauftrag ein konkretes Vorhaben entstehen.
Dafür wird jetzt das Konzept für den neuen VPN-Dienst und dessen Benutzerverwaltung festgelegt.}
\section{Konzeption des VPNs} \label{sct:vpn_concept}
\todo{Aufgrund der Anforderungen ergibt sich, dass der VPN-Dienst in Client-Server-Architektur aufgesetzt wird, über Dualstack erreichbar ist, eigene IPv4- und IPv6-Adressen an VPN-Clients austeilt, Routen für die relevanten Informatik-Netzt auf den Clients einrichtet, verschlüsselt kommuniziert und Benutzer erst nach Authentisierung zulässt.}
Client-Server-Architektur, Benutzerauthentisierung muss durchgeführt werden.
@ -131,6 +136,59 @@ Nur bestimmte Netzbereiche der Abteilung Informatik werden durch das VPN geroute
Wir werden aus Layer~3 tunneln und dafür müssen wir den VPN-Clients VPN-interne IPv4- und IPv6-Adressen vergeben.
\section{Konzeption der Benutzerverwaltung} \label{sct:user_concept}
Nachdem die VPN-Software für das Vorhaben dieser Arbeit ausgewählt wurde, wird ein Konzept zur Verwaltung der VPN-Benutzer benötigt.
Zielgruppe des Dienstes sind Beschäftigte und Studenten der Abteilung Informatik in der Größenordnung von etwa 50-500~Benutzern.
Beschäftigte und Studenten sollen im zeitlichen Rahmen Ihrer Tätigkeiten in der Abteilung Informatik über das VPN Zugriff erhalten.
\paragraph{Methoden zur Benutzerauthentisierung} \label{par:user_auth_methods}
OpenVPN ermöglicht die Authentisierung von Benutzern mit den folgenden Methoden:
\begin{itemize}
\item Authentisierung mit X.509-Public-Key-Zertifikaten
\item Angabe von Benutzername und Passwort zur Authentisierung durch ein beliebiges Programm auf dem OpenVPN-Server
\item Angabe von Benutzername und Passwort für einen durch OpenVPN verwendeten HTTP- oder SOCKS-Proxy
\end{itemize}
Somit muss entschieden werden, ob die Authentisierung von VPN-Benutzern über Zertifikate oder über Zugangsdaten in Form von Benutzername und Passwort durchgeführt werden soll.
\paragraph{Authentisierung mit Zugangsdaten} \label{p:auth_cred}
Die Verwendung von Zugangsdaten zur Authentisierung bietet dem Benutzer einen hohen Komfort:
Die Eingabe einer Kombination aus Benutzername und Passwort erfordert keine individuellen Konfigurationen am OpenVPN-Client.
Zusätzlich ist denkbar, dass bereits existierende Zugangsdaten - wie zum Beispiel das Hochschulkonto des Benutzers - zur Authentisierung verwendet werden könnten.
Eine Benutzerverwaltung auf dieser Form der Authentisierung erfordert nur wenige Handgriffe durch den Systemadministrator, da eine Liste berechtigter VPN-Benutzer auf Basis aktuell zur Verfügung stehender Verzeichnisdienste automatisch generiert werden könnte.
Alternativ wäre auch die manuelle Pflege einer Whitelist von Benutzerkonten denkbar, die in einem bestehenden Verzeichnisdienst bereits existieren.
Ein weiterer Vorteil bestünde darin, dass man sich auf den Aktivitätsstatus der Benutzerkonten in bestehenden Verzeichnisdiensten verlassen kann um Benutzer auszuschließen, die keine Mitgliedschaft an der Hochschule Hannover besitzen.
Die genannten Vorteile ziehen allerdings auch einige Nachteile mit sich, die nicht außer Acht gelassen werden dürfen:
Ein VPN-Dienst, der Benutzer über eingegebene Zugangsdaten authentisiert kann zu einem Ziel für einen Brute-Force-Angriff werden.
Kompromittierte Zugangsdaten können in diesem Fall mindestens für den Missbrauch des VPN-Dienst verwendet werden.
Zusätzlich ist je nach konkreter Implementierung denkbar, dass kompromittierte Zugangsdaten auch für den Missbrauch anderer Systeme verwendet werden können, für die diese Zugangsdaten gültig sind.
Das Schadenspotential umfasst in diesem Fall zusätzlich zu über den VPN-Zugang begangene Straftaten auch das Ausspähen von persönlichen Daten, die über die kompromittierten Zugangsdaten zugänglich sind.
Ein weiterer Nachteil ergibt sich dadurch, dass Zugangsdaten zum Zweck der Benutzerauthentisierung durch OpenVPN-Client und -Server, sowie zusätzlich auf dem Server eingebundene Authentisierungsprogramme verarbeitet und übertragen werden müssen.
Die involvierten Programme erhöhen die Menge des Quellcodes, der aufgrund seiner Position als Angriffsfläche keine Schwachstellen enthalten darf.
Da die Abwesenheit von Schwachstellen in Quellcode nicht garantiert werden kann, ergibt sich der Verwendung von Zugangsdaten zur Benutzerauthentisierung ein erhöhtes Bedrohungsrisiko.
\paragraph{Authentisierung mit Zertifikaten} \label{p:auth_cert}
Die Authentisierung von Benutzern anhand von Zertifikaten erfordert den Aufbau und die Verwaltung einer \textit{Public-Key-Infrastructure} (PKI) und bringt somit erst einmal eine Reihe Nachteile mit sich:
Für die Benutzer ergibt sich ein zusätzlicher Aufwand durch das regelmäßige Beantragen von neuen Zertifikaten, sowie die Notwendigkeit der Anpassung der OpenVPN-Clientkonfiguration.
Auch für den Systemadministrator ergibt sich dieser zusätzliche Aufwand in Bezug auf die regelmäßige Erneuerung des Serverzertifikats und der \textit{Certificate Revocation List} (CRL).
Zusätzlich ist der Systemadministrator mit der Betreuung der \textit{Zertifizierungsstelle} (CA) beschäftigt, nimmt die Zertifikatsanträge der Benutzer entgegen, prüft diese und stellt Benutzerzertifikate aus.
Der daraus resultierende Aufwand erhöht sich proportional zu der Anzahl der VPN-Benutzer.
Dennoch gibt es eine Reihe von Vorteilen, die diesen zusätzlichen Aufwand rechtfertigen:
Zertifikate haben eine klar definierte Laufzeit, die bei Ausstellung des Zertifikates festgelegt wird.
Aufgrund der Länge der verwendeten Schlüssel ist es mit herkömmlichen Brute-Force-Angriffen nicht in für Angreifer akzeptabler Zeit möglich, diese zu erraten.
Auch das Stehlen von privaten Schlüsseln kann einem Angreifer weniger attraktiv gemacht werden, wenn man den privaten Schlüssel nur in verschlüsselter Form ablegt.
Sollte ein privater Schlüssel dennoch kompromittiert werden, besteht jederzeit die Möglichkeit, diesen durch eine Ergänzung der CRL von der CA unbrauchbar zu machen.
Zusätzlich gilt, dass ein kompromittierter Schlüssel lediglich zur Benutzung des VPN-Dienst berechtigt.
Dadurch reduziert sich der potentielle Schaden, den ein Angreifer mit einem kompromittierten Schlüssel anrichten könnte.
\paragraph{Wahl der Authentisierungsmethode}
Insgesamt bringt die Authentisierung von Benutzern mit Zertifikaten im Vergleich zur Authentisierung auf Basis von Zugangsdaten einen höheren Arbeitsaufwand mit sich.
Dafür besteht ein reduziertes Bedrohungsrisiko bei kompromittierten privaten Schlüsseln als im Vergleich zu kompromittierten Zugangsdaten, welche gegebenenfalls für weitere Dienste gültig sein können.
Außerdem ist die Angriffsfläche beim Einsatz von Zertifikaten geringer, da kein zusätzlicher Code in das System integriert wird, durch das Zugangsdaten verarbeitet würden.
Unter Abwägung dieser Vor- und Nachteile werden im Rahmen dieser Arbeit Zertifikate zur Authentisierung von Benutzern verwendet.
\chapter{Auswahl der VPN-Software} \label{cpt:choosing_vpn_software}
Das Umfeld, in dem der VPN-Dienst errichtet werden soll, wurde im vorherigen Kapitel bereits vorgestellt.
In diesem Kapitel wird die Software ausgesucht, mit der der VPN-Dienst umgesetzt werden soll.
@ -356,59 +414,6 @@ Dadurch ist OpenVPN besser für die Umsetzung eines VPN-Dienst geeignet, der die
Somit wird OpenVPN als VPN-Software zur Umsetzung des VPN-Dienst gewählt.
\chapter{Konzeption der Benutzerverwaltung} \label{cpt:user_concept}
Nachdem die VPN-Software für das Vorhaben dieser Arbeit ausgewählt wurde, wird ein Konzept zur Verwaltung der VPN-Benutzer benötigt.
Zielgruppe des Dienstes sind Beschäftigte und Studenten der Abteilung Informatik in der Größenordnung von etwa 50-500~Benutzern.
Beschäftigte und Studenten sollen im zeitlichen Rahmen Ihrer Tätigkeiten in der Abteilung Informatik über das VPN Zugriff erhalten.
\paragraph{Methoden zur Benutzerauthentisierung} \label{par:user_auth_methods}
OpenVPN ermöglicht die Authentisierung von Benutzern mit den folgenden Methoden:
\begin{itemize}
\item Authentisierung mit X.509-Public-Key-Zertifikaten
\item Angabe von Benutzername und Passwort zur Authentisierung durch ein beliebiges Programm auf dem OpenVPN-Server
\item Angabe von Benutzername und Passwort für einen durch OpenVPN verwendeten HTTP- oder SOCKS-Proxy
\end{itemize}
Somit muss entschieden werden, ob die Authentisierung von VPN-Benutzern über Zertifikate oder über Zugangsdaten in Form von Benutzername und Passwort durchgeführt werden soll.
\paragraph{Authentisierung mit Zugangsdaten} \label{p:auth_cred}
Die Verwendung von Zugangsdaten zur Authentisierung bietet dem Benutzer einen hohen Komfort:
Die Eingabe einer Kombination aus Benutzername und Passwort erfordert keine individuellen Konfigurationen am OpenVPN-Client.
Zusätzlich ist denkbar, dass bereits existierende Zugangsdaten - wie zum Beispiel das Hochschulkonto des Benutzers - zur Authentisierung verwendet werden könnten.
Eine Benutzerverwaltung auf dieser Form der Authentisierung erfordert nur wenige Handgriffe durch den Systemadministrator, da eine Liste berechtigter VPN-Benutzer auf Basis aktuell zur Verfügung stehender Verzeichnisdienste automatisch generiert werden könnte.
Alternativ wäre auch die manuelle Pflege einer Whitelist von Benutzerkonten denkbar, die in einem bestehenden Verzeichnisdienst bereits existieren.
Ein weiterer Vorteil bestünde darin, dass man sich auf den Aktivitätsstatus der Benutzerkonten in bestehenden Verzeichnisdiensten verlassen kann um Benutzer auszuschließen, die keine Mitgliedschaft an der Hochschule Hannover besitzen.
Die genannten Vorteile ziehen allerdings auch einige Nachteile mit sich, die nicht außer Acht gelassen werden dürfen:
Ein VPN-Dienst, der Benutzer über eingegebene Zugangsdaten authentisiert kann zu einem Ziel für einen Brute-Force-Angriff werden.
Kompromittierte Zugangsdaten können in diesem Fall mindestens für den Missbrauch des VPN-Dienst verwendet werden.
Zusätzlich ist je nach konkreter Implementierung denkbar, dass kompromittierte Zugangsdaten auch für den Missbrauch anderer Systeme verwendet werden können, für die diese Zugangsdaten gültig sind.
Das Schadenspotential umfasst in diesem Fall zusätzlich zu über den VPN-Zugang begangene Straftaten auch das Ausspähen von persönlichen Daten, die über die kompromittierten Zugangsdaten zugänglich sind.
Ein weiterer Nachteil ergibt sich dadurch, dass Zugangsdaten zum Zweck der Benutzerauthentisierung durch OpenVPN-Client und -Server, sowie zusätzlich auf dem Server eingebundene Authentisierungsprogramme verarbeitet und übertragen werden müssen.
Die involvierten Programme erhöhen die Menge des Quellcodes, der aufgrund seiner Position als Angriffsfläche keine Schwachstellen enthalten darf.
Da die Abwesenheit von Schwachstellen in Quellcode nicht garantiert werden kann, ergibt sich der Verwendung von Zugangsdaten zur Benutzerauthentisierung ein erhöhtes Bedrohungsrisiko.
\paragraph{Authentisierung mit Zertifikaten} \label{p:auth_cert}
Die Authentisierung von Benutzern anhand von Zertifikaten erfordert den Aufbau und die Verwaltung einer \textit{Public-Key-Infrastructure} (PKI) und bringt somit erst einmal eine Reihe Nachteile mit sich:
Für die Benutzer ergibt sich ein zusätzlicher Aufwand durch das regelmäßige Beantragen von neuen Zertifikaten, sowie die Notwendigkeit der Anpassung der OpenVPN-Clientkonfiguration.
Auch für den Systemadministrator ergibt sich dieser zusätzliche Aufwand in Bezug auf die regelmäßige Erneuerung des Serverzertifikats und der \textit{Certificate Revocation List} (CRL).
Zusätzlich ist der Systemadministrator mit der Betreuung der \textit{Zertifizierungsstelle} (CA) beschäftigt, nimmt die Zertifikatsanträge der Benutzer entgegen, prüft diese und stellt Benutzerzertifikate aus.
Der daraus resultierende Aufwand erhöht sich proportional zu der Anzahl der VPN-Benutzer.
Dennoch gibt es eine Reihe von Vorteilen, die diesen zusätzlichen Aufwand rechtfertigen:
Zertifikate haben eine klar definierte Laufzeit, die bei Ausstellung des Zertifikates festgelegt wird.
Aufgrund der Länge der verwendeten Schlüssel ist es mit herkömmlichen Brute-Force-Angriffen nicht in für Angreifer akzeptabler Zeit möglich, diese zu erraten.
Auch das Stehlen von privaten Schlüsseln kann einem Angreifer weniger attraktiv gemacht werden, wenn man den privaten Schlüssel nur in verschlüsselter Form ablegt.
Sollte ein privater Schlüssel dennoch kompromittiert werden, besteht jederzeit die Möglichkeit, diesen durch eine Ergänzung der CRL von der CA unbrauchbar zu machen.
Zusätzlich gilt, dass ein kompromittierter Schlüssel lediglich zur Benutzung des VPN-Dienst berechtigt.
Dadurch reduziert sich der potentielle Schaden, den ein Angreifer mit einem kompromittierten Schlüssel anrichten könnte.
\paragraph{Wahl der Authentisierungsmethode}
Insgesamt bringt die Authentisierung von Benutzern mit Zertifikaten im Vergleich zur Authentisierung auf Basis von Zugangsdaten einen höheren Arbeitsaufwand mit sich.
Dafür besteht ein reduziertes Bedrohungsrisiko bei kompromittierten privaten Schlüsseln als im Vergleich zu kompromittierten Zugangsdaten, welche gegebenenfalls für weitere Dienste gültig sein können.
Außerdem ist die Angriffsfläche beim Einsatz von Zertifikaten geringer, da kein zusätzlicher Code in das System integriert wird, durch das Zugangsdaten verarbeitet würden.
Unter Abwägung dieser Vor- und Nachteile werden im Rahmen dieser Arbeit Zertifikate zur Authentisierung von Benutzern verwendet.
\chapter{Implementieren der Benutzerverwaltung} \label{cpt:ca_config}
Die VPN-Software OpenVPN bringt OpenSSL als Abhängigkeit mit.
OpenSSL stellt eine Menge von Funktionen als Kommandozeilenwerkzeug zur Verfügung, mit denen alle Basisfunktionen einer Zertifizierungsstelle wie zum Beispiel die Erzeugung von Schlüssel\-paaren und Zertifikatsanträgen, sowie das Ausstellen von Zertifikaten auf Basis von Zertifikatsanträgen möglich ist.