Move concept-stuff into one chapter
This commit is contained in:
parent
f89fcfe5cc
commit
d9450ac8fc
113
MA-Inhalt.tex
113
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.
|
||||
|
|
Loading…
Reference in New Issue