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}
|
||||
Zur Zeit noch als Beta zu betrachten, könnte aber in Zukunft eine super Basis für VPN werden.
|
||||
Für Linux gibt es ein Kernel-Modul, für MacOS, *BSD, (Linux) und co gibt es auch wireguard-go.
|
||||
Windows-Unterstützung fehlt zur Zeit noch.
|
||||
Wireguard ist ein Softwareprojekt, mit dem ein geschützter Netzwerktunnel zwischen zwei Netzwerkteilnehmern aufgebaut werden kann.
|
||||
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/}}.
|
||||
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
|
||||
NAT kann durch zusätzliche Keepalive-Nachrichten besiegt werden (UDP Hole Punching).
|
||||
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}.
|
||||
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
|
||||
Beide Teilnehmer tauschen auf nicht spezifizierte Weise ihre öffentlichen Schlüssel aus. (Wie bei OpenSSH)
|
||||
Dieser öffentliche Schlüssel ist ein 32 Byte Curve25519 Punkt (II Cryptokey Routing) und identifiziert einen WireGuard-Peer.
|
||||
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}.
|
||||
Die Transportverschlüsselung verwendet \texttt{ChaCha20Poly1205}
|
||||
|
||||
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
|
||||
ChaCha20Poly1305
|
||||
|
||||
|
||||
|
||||
\cite{wireguard:intro}
|
||||
|
||||
|
||||
\cite{wireguard:analysis}
|
||||
Laut einer Analyse ist das Wireguard-Protokoll für \textit{key-compromise impersonation} (KCI)-Angriffe verwundbar \cite{wireguard:analysis}.
|
||||
Was das bedeutet, muss ich noch herausfinden. Aber dazu später.
|
||||
|
||||
|
||||
\begin{comment}
|
||||
|
|
Loading…
Reference in New Issue