From d9450ac8fcfa17bef887ab29b90072f2f0ad3d08 Mon Sep 17 00:00:00 2001 From: Jan Philipp Timme Date: Tue, 16 Oct 2018 17:28:01 +0200 Subject: [PATCH] Move concept-stuff into one chapter --- MA-Inhalt.tex | 113 ++++++++++++++++++++++++++------------------------ 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/MA-Inhalt.tex b/MA-Inhalt.tex index dc65be6..c455106 100644 --- a/MA-Inhalt.tex +++ b/MA-Inhalt.tex @@ -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.