more text

This commit is contained in:
Jan Philipp Timme 2018-10-12 15:40:49 +02:00
parent e40184c868
commit 5320af57d5

View File

@ -231,14 +231,16 @@ Der Austausch von Sitzungsschlüsseln wird durch das Diffie-Hellman-Verfahren au
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)
(II Cryptokey Routing) und identifiziert einen WireGuard-Peer.
Curve25519 für ECDH -> von Bernstein als SaveCurve geführt
ChaCha20Poly1305
Bevor eine Wireguard-Sitzung zwischen zwei Teilnehmern konfiguriert werden kann, müssen die beiden Teilnehmer ihren öffentlichen Schlüssel austauschen.
Dieser Austausch ist mit Absicht nicht durch Wireguard spezifiziert und wird, wie auch bei OpenSSH, den Teilnehmern selbst überlassen \cite[][Abschnitt I]{wireguard:intro}.
Um eine Sitzung mit einem anderen Teilnehmer zu konfigurieren, muss zunächst die eigene Wireguard-Netzwerkschnittstelle konfiguriert werden \cite[Vergleich][Abschnitt II]{wireguard:intro}.
Dafür wird das Paar aus öffentlichem und privatem Schlüssel des Teilnehmers benötigt, sowie die Angabe, über welchen UDP-Port Wireguard Pakete empfangen und verschicken soll.
Als nächstes kann die Liste der bekannten Sitzungsteilnehmer mit einem neuen Eintrag versehen werden .
Der andere Sitzungsteilnehmer wird durch seinen öffentlichen Schlüssel identifiziert.
Anschließen wird eine Liste von erlaubten IP-Adressen hinzugefügt, die durch den Netzwerktunnel von dem anderen Sitzungsteilnehmer verwendet werden dürfen.
Optional ist eine Angabe von IP-Adresse und UDP-Port des anderen Sitzungsteilnehmers möglich, damit eine Sitzung direkt aufgebaut werden kann.
Wird diese Angabe weggelassen, lernt Wireguard diese Informationen aus den empfangenen Paketen des anderen Teilnehmers automatisch.
Durch diese Flexibilität können Teilnehmer ihre IP-Adresse wechseln, ohne dass die Wireguard-Sitzung dadurch abgebrochen wird.
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.