Autosave
This commit is contained in:
parent
c6b00888aa
commit
4ddc2b3431
|
@ -211,28 +211,35 @@ Alle kryptografische Operationen zur Verarbeitung des VPN-Datenverkehrs, sowie z
|
||||||
|
|
||||||
|
|
||||||
\subsection{Wireguard}
|
\subsection{Wireguard}
|
||||||
Zur Zeit noch als Beta zu betrachten, könnte aber in Zukunft eine super Basis für VPN werden.
|
Wireguard ist ein Softwareprojekt, mit dem ein geschützter Netzwerktunnel zwischen zwei Netzwerkteilnehmern aufgebaut werden kann.
|
||||||
Für Linux gibt es ein Kernel-Modul, für MacOS, *BSD, (Linux) und co gibt es auch wireguard-go.
|
Zum aktuellen Zeitpunkt (12.10.2018) befindet sich Wireguard noch in Entwicklung, der Quellcode wird noch als experimentell eingestuft\footnote{Vergleich \url{https://www.wireguard.com/install/}}.
|
||||||
Windows-Unterstützung fehlt zur Zeit noch.
|
Wireguard wurde als Kernel-Modul für Linux entwickelt, welches einen Umfang von weniger als 4000 Zeilen Code hat \cite[][Abschnitt VII]{wireguard:intro}, wodurch Audits und Reviews erleichtert werden \cite[][Abschnitt VII]{wireguard:intro}.
|
||||||
|
Im Vergleich zu OpenVPN und IPsec arbeitet Wireguard als Kernel-Modul schneller und effizienter \cite[][Abschnitt VIII]{wireguard:intro}.
|
||||||
|
Für MacOS, FreeBSD und Windows (Unterstützung für Windows ist noch nicht fertiggestellt) wird mit \texttt{wireguard-go} eine in Go geschriebene Wireguard-Implementation entwickelt.
|
||||||
|
Eine auf Rust aufbauende Implementation wird unter der Bezeichnung \texttt{wireguard-rs} entwickelt\footnote{Siehe \url{https://www.wireguard.com/xplatform/}}.
|
||||||
|
|
||||||
Kommunikation erfolgt über UDP
|
Wireguard arbeitet nur auf OSI-Layer~3 und unterstützt IPv4 und IPv6 sowohl zur Kommunikation zwischen zwei Netzwerkteilnehmern, als auch für den Transport durch den Netzwerktunnel \cite[][Abschnitt I]{wireguard:intro}.
|
||||||
NAT kann durch zusätzliche Keepalive-Nachrichten besiegt werden (UDP Hole Punching).
|
Die durch Wireguard geschützten IP-Pakete werden in UDP-Paketen gekapselt zwischen den Netzwerkteilnehmern übertragen \cite[][Abschnitt III]{wireguard:intro}.
|
||||||
|
Durch das periodische Senden von \enquote{Keepalive}-Nachrichten \cite[][Abschnitt VI, Absatz E]{wireguard:intro} durch den Netzwerktunnel können Wireguard-Sitzungen, auch hinter \textit{Network Address Translation} (NAT) \cite[][Abschnitt II]{wireguard:intro}, aufrecht gehalten werden.
|
||||||
|
|
||||||
Der Tunnel ist Layer3 only und somit leichter in der Handhabung
|
Während OpenVPN und IPsec die Konfiguration der zu verwendenden kryptografischen Algorithmen und Parameter erlauben, gibt Wireguard diese fest vor.
|
||||||
|
Sollten Schwachstellen in der verwendeten Kryptografie vorliegen, so müssen alle Wireguard-Endpunkte mit Sicherheitsaktualisierungen versorgt werden \cite[][Abschnitt I]{wireguard:intro}.
|
||||||
|
Durch diesen Schritt kann Wireguard weniger komplex gestaltet werden und Verwundbarkeiten vermeiden, wie sie bei SSL/TLS häufig aufgetreten sind \cite[][Abschnitt I]{wireguard:intro}.
|
||||||
|
|
||||||
Architektur: Point-to-Point
|
Ein Netzwerkteilnehmer wird durch seinen öffentlichen Schlüssel, ein 32~Byte-Punkt auf der elliptischen Kurve \texttt{Curve25519}, eindeutig identifiziert \cite[][Abschnitt I]{wireguard:intro}.
|
||||||
Beide Teilnehmer tauschen auf nicht spezifizierte Weise ihre öffentlichen Schlüssel aus. (Wie bei OpenSSH)
|
Die Transportverschlüsselung verwendet \texttt{ChaCha20Poly1205}
|
||||||
Dieser öffentliche Schlüssel ist ein 32 Byte Curve25519 Punkt (II Cryptokey Routing) und identifiziert einen WireGuard-Peer.
|
|
||||||
|
Zwei Netzwerkteilnehmer tauschen auf nicht spezifizierte Weise (wie bei OpenSSH) ihre öffentlichen Schlüssel aus.
|
||||||
|
Dieser öffentliche Schlüssel, der sind zufällig gewählte Punkte auf Curve25519 32 Byte)
|
||||||
|
|
||||||
|
(II Cryptokey Routing) und identifiziert einen WireGuard-Peer.
|
||||||
|
|
||||||
Curve25519 für ECDH -> von Bernstein als SaveCurve geführt
|
Curve25519 für ECDH -> von Bernstein als SaveCurve geführt
|
||||||
ChaCha20Poly1305
|
ChaCha20Poly1305
|
||||||
|
|
||||||
|
|
||||||
|
Laut einer Analyse ist das Wireguard-Protokoll für \textit{key-compromise impersonation} (KCI)-Angriffe verwundbar \cite{wireguard:analysis}.
|
||||||
\cite{wireguard:intro}
|
Was das bedeutet, muss ich noch herausfinden. Aber dazu später.
|
||||||
|
|
||||||
|
|
||||||
\cite{wireguard:analysis}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{comment}
|
\begin{comment}
|
||||||
|
|
Loading…
Reference in New Issue