Explain why i torture my clients

This commit is contained in:
Jan Philipp Timme 2018-11-04 21:03:59 +01:00
parent cdab9397d5
commit 675bfc67d6

View File

@ -632,7 +632,7 @@ Das gemeinsame Geheimnis für den Schutz des Datenkanals wird dabei über den du
Mit den in diese Absatz definierten Parametern soll die Kommunikation zwischen Clients und Server unabhängig von den verwendeten Betriebssystemen einheitlich geschützt werden.
Die TLS-Kommunikation wird nach Empfehlung des BSI über TLS-Version~1.2 oder höher durchgeführt \cite[][Abschnitt 2.3]{bsi:tls-checkliste}.
Zur Absicherung des Kontrollkanals wird die TLS-Chiffre \texttt{TLS-DHE-RSA-WITH-AES-256-GCM-SHA384} ausgewählt.
Zur Absicherung des Kontrollkanals wird die TLS-Chiffre TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 ausgewählt.
Diese Chiffre verwendet \textit{Ephemeral Diffie Hellman} (DHE) für den Schlüsselaustausch \cite[][Abschnitt A.5]{RFC5246}, RSA als Signaturalgorithmus zur Authentisierung \cite[][Abschnitt A.5]{RFC5246}, AES-256-GCM für die Verschlüsselung und SHA384 als Funktion für Pseudozufallszahlen für den \textit{Keyed-Hash Message Authentication Code} (HMAC) \cite[][Kapitel 5]{RFC5246}.
Durch die Verwendung von DHE kann \textit{Perfect Forward Secrecy} (PFS) gewährleistet werden \cite[][Abschnitt F.1.1.2]{RFC5246}.
@ -659,12 +659,16 @@ Die Vertraulichkeit der über den VPN-Dienst übertragenen Daten hängt demnach
Der logische Schluss daraus ist die Verwendung der selben Chiffre zur Verschlüsselung beider Kanäle.
Damit alle VPN-Sitzungen die zuvor erläuterten, kryptografischen Parametern einhalten, werden diese Parameter in Client- und Serverkonfiguration hinterlegt.
Zusätzlich wird die Aushandlung der Chiffren auf dem OpenVPN-Server explizit deaktiviert, um unsichere VPN-Sitzungen zu verhindern.
OpenVPN unterstützt die Aushandlung der verwendeten TLS-Chiffre für den Kontrollkanal, sowie der Chiffre für den Datenkanal.
Die für den HMAC verwendete Pseudozufallsfunktion kann zum aktuellen Zeitpunkt (04.11.2018) jedoch nicht ausgehandelt werden.
Müssen die kryptografischen Parameter ausgetauscht werden, so besteht die Gefahr, dass die Funktion für den HMAC übersehen wird.
Die flexible Aushandlung der Chiffren kann unsichere VPN-Sitzungen durch Fehlkonfigurationen auf Client und Server begünstigen, weshalb auf die Aushandlung von Chiffren explizit verzichtet wird.
Eine sichere VPN-Sitzung kommt somit nur bei korrekter Konfiguration von Client und Server zustande.
Potentielle Konfigurationsfehler auf Client oder Server bleiben somit nicht unbemerkt, sondern fallen durch Fehler beim Sitzungsaufbau auf.
\textbf{Erweiterbarkeit:} Sollten die hier gewählten, kryptografischen Parameter einzeln oder insgesamt nicht mehr als sicher gelten, so sollten \textbf{alle} diese Parameter nach aktuellem Stand der Technik und unter Berücksichtigung der verschiedenen Clientbetriebssysteme neu ausgewählt werden.
In diesem Zuge ist es notwendig, alle aktiven VPN-Benutzer über die Änderungen der Parameter zu benachrichtigen und eine aktuelle Vorlage für die OpenVPN-Clientkonfiguration bereitzustellen.
Dieser Ansatz wird gewählt, damit (1) all VPN-Sitzungen einheitlich geschützt werden, und (2) zusätzliche Komplexität durch flexible Verwendung von Chiffren und deren Aushandlung vermieden wird.
Sollten die hier gewählten, kryptografischen Parameter (einzeln oder insgesamt) nicht mehr als sicher gelten, so sollen \textbf{alle} kryptografischen Parameter nach aktuellem Stand der Technik und unter Berücksichtigung der verschiedenen Clientbetriebssysteme neu ausgewählt werden.
In diesem Zug ist es notwendig, alle VPN-Benutzer über die Änderungen der Parameter zu benachrichtigen und eine aktuelle Vorlage für die OpenVPN-Clientkonfiguration bereitzustellen.
Der damit verbundene Arbeitsaufwand ist akzeptabel, weil alle kryptografischen Parameter für eine Laufzeit von 20 Jahren gewählt wurden, und die Eintrittswahrscheinlichkeit dieses Falls somit als gering eingeschätzt wird.