diff --git a/Literaturverweise.bib b/Literaturverweise.bib index 2a70f38..6b3e85b 100644 --- a/Literaturverweise.bib +++ b/Literaturverweise.bib @@ -309,4 +309,32 @@ 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;} diff --git a/MA-Inhalt.tex b/MA-Inhalt.tex index 6d41a4b..3e1884d 100644 --- a/MA-Inhalt.tex +++ b/MA-Inhalt.tex @@ -212,7 +212,7 @@ Alle kryptografische Operationen zur Verarbeitung des VPN-Datenverkehrs, sowie z \subsection{Wireguard} 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}. 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. @@ -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}. 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. Dieser öffentliche Schlüssel, der sind zufällig gewählte Punkte auf Curve25519 32 Byte)