more sources, more explaining wireguard

This commit is contained in:
Jan Philipp Timme 2018-10-12 15:27:39 +02:00
parent f6a3e7ede9
commit e40184c868
2 changed files with 32 additions and 2 deletions

View File

@ -309,4 +309,32 @@
publisher = {Internet Engineering Task Force}, publisher = {Internet Engineering Task Force},
} }
@TechReport{RFC7539,
author = {Y. Nir and A. Langley},
title = {ChaCha20 and Poly1305 for IETF Protocols},
institution = {Internet Engineering Task Force},
year = {2015},
type = {RFC},
number = {7539},
note = {\url{https://tools.ietf.org/html/rfc7539.txt}},
month = {May},
url = {https://tools.ietf.org/html/rfc7539.txt},
howpublished = {Internet Requests for Comments},
issn = {2070-1721},
publisher = {Internet Engineering Task Force},
}
@InProceedings{blake2s:definition,
author = {Aumasson, Jean-Philippe and Neves, Samuel and Wilcox-O'Hearn, Zooko and Winnerlein, Christian},
title = {BLAKE2: Simpler, Smaller, Fast as MD5},
booktitle = {Applied Cryptography and Network Security},
year = {2013},
editor = {Jacobson, Michael and Locasto, Michael and Mohassel, Payman and Safavi-Naini, Reihaneh},
publisher = {Springer Berlin Heidelberg},
isbn = {978-3-642-38980-1},
pages = {119--135},
abstract = {We present the hash function BLAKE2, an improved version of the SHA-3 finalist BLAKE optimized for speed in software. Target applications include cloud storage, intrusion detection, or version control systems. BLAKE2 comes in two main flavors: BLAKE2b is optimized for 64-bit platforms, and BLAKE2s for smaller architectures. On 64-bit platforms, BLAKE2 is often faster than MD5, yet provides security similar to that of SHA-3: up to 256-bit collision resistance, immunity to length extension, indifferentiability from a random oracle, etc. We specify parallel versions BLAKE2bp and BLAKE2sp that are up to 4 and 8 times faster, by taking advantage of SIMD and/or multiple cores. BLAKE2 reduces the RAM requirements of BLAKE down to 168 bytes, making it smaller than any of the five SHA-3 finalists, and 32{\%} smaller than BLAKE. Finally, BLAKE2 provides a comprehensive support for tree-hashing as well as keyed hashing (be it in sequential or tree mode).},
address = {Berlin, Heidelberg},
}
@Comment{jabref-meta: databaseType:biblatex;} @Comment{jabref-meta: databaseType:biblatex;}

View File

@ -212,7 +212,7 @@ Alle kryptografische Operationen zur Verarbeitung des VPN-Datenverkehrs, sowie z
\subsection{Wireguard} \subsection{Wireguard}
Wireguard ist ein Softwareprojekt, mit dem ein geschützter Netzwerktunnel zwischen zwei Netzwerkteilnehmern aufgebaut werden kann. 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/}}. Aktuell (am 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}. 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}. 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. 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.
@ -227,7 +227,9 @@ Sollten Schwachstellen in der verwendeten Kryptografie vorliegen, so müssen all
Durch diesen Schritt wird Wireguard weniger komplex; Verwundbarkeiten, wie sie bei SSL/TLS häufig aufgetreten sind, werden vermieden \cite[][Abschnitt I]{wireguard:intro}. Durch diesen Schritt wird Wireguard weniger komplex; Verwundbarkeiten, wie sie bei SSL/TLS häufig aufgetreten sind, werden vermieden \cite[][Abschnitt I]{wireguard:intro}.
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}. 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} Der Austausch von Sitzungsschlüsseln wird durch das Diffie-Hellman-Verfahren auf elliptischen Kurven durchgeführt, dessen Ergebnisse mit einer Schlüsselableitungsfunktion auf Basis eines HMAC (HKDF) gestreckt werden \cite[][Abschnitt I]{wireguard:intro}.
Für die Verschlüsselung des VPN-Verkehrs wird die in \cite{RFC7539} konstruierte \textit{Authenticated Encryption with Associated Data} (AEAD)-Chiffre aus ChaCha20 und Poly1205 verwendet \cite[][Abschnitt I]{wireguard:intro}.
Als Hashfunktion kommt BLAKE2s \cite[definiert in][]{blake2s:definition} zum Einsatz \cite[][Abschnitt I]{wireguard:intro}.
Zwei Netzwerkteilnehmer tauschen auf nicht spezifizierte Weise (wie bei OpenSSH) ihre öffentlichen Schlüssel aus. 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) Dieser öffentliche Schlüssel, der sind zufällig gewählte Punkte auf Curve25519 32 Byte)