diff --git a/MA-Inhalt.tex b/MA-Inhalt.tex index 3f389a9..2479e98 100644 --- a/MA-Inhalt.tex +++ b/MA-Inhalt.tex @@ -618,19 +618,29 @@ remote-cert-tls client \paragraph{Kryptografische Parameter} Wie in Abschnitt~\ref{ssct:openvpn} bereits erläutert wurde, unterscheidet OpenVPN bei der Kommunikation zwischen zwei OpenVPN-Prozessen zwischen Datenkanal für Nutzdaten und Kontrollkanal für Steuernachrichten. -In diesem Absatz werden die Parameter definiert, die +Während OpenVPN im TLS-Modus über den Kontrollkanal den TLS-Sitzungsaufbau durchführt und den Kontrollkanal anschließend über TLS absichert, wird für den Datenkanal eine separat konfigurierbare, symmetrische Chiffre verwendet. +Das gemeinsame Geheimnis für den Schutz des Datenkanals wird dabei über den durch TLS geschützten Kontrollkanal ausgetauscht. +Mit den in diese Absatz definierten Parametern soll die Kommunikation zwischen Clients und Server unabhängig von den verwendeten Betriebssystemen einheitlich geschützt werden. +Um Konfigurationsprobleme durch abweichende Konfiguration von Client und Server auszuschließen, werden alle hier definierten Parameter in \textbf{Client- und Serverkonfiguration} eingetragen. -Wir sprechen nur TLS~1.2 oder höher. +Sämtliche TLS-Kommunikation verwendet TLS-Version~1.2 oder höher. \begin{lstlisting} tls-version-min "1.2" \end{lstlisting} -Die TLS-Chiffre \enquote{TLS-DHE-RSA-WITH-AES-256-GCM-SHA384} wird in \cite{bsi:tls-checkliste} und \cite{RFC7525} empfohlen. -Diese wird zur Absicherung des Kontrolkanals verwendet. -Eine Nutzung von ECDHE-Verfahren fällt leider Flach\footnote{Es existiert ein Problem in Kombination mit OpenSSL~1.1.x. Siehe \url{https://community.openvpn.net/openvpn/ticket/963}}. +In RFC~7525 wird die TLS-Chiffre \enquote{TLS-DHE-RSA-WITH-AES-256-GCM-SHA384} empfohlen\cite[][]{RFC7525}. +Laut BSI ist diese TLS-Chiffre für den Einsatz über das Jahr~2023 hinaus geeignet\cite[][]{bsi:tls-checkliste}. +Diese Chiffre wird für die Absicherung des Kontrollkanals verwendet. \begin{lstlisting} tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 \end{lstlisting} +Die Verwendung einer verwandten Chiffre, die anstelle des Diffie-Hellman-Schlüssel\-aus\-tausch ein Diffie-Hellman-Verfahren auf Basis von elliptischen Kurven verwendet, kann aufgrund von bestehenden Kompatibilitätsproblemen zwischen OpenVPN-Clients und OpenSSL~1.1.x nicht eingesetzt werden\footnote{Es existiert ein Problem in Kombination mit OpenSSL~1.1.x. Siehe \url{https://community.openvpn.net/openvpn/ticket/963}}. + +OpenVPN verwendet eine HMAC-Funktion mit einem zuvor ausgetauschen, gemeinsamen Geheimnis um für Daten- und Kontrollkanal eingehende Datenpakete vor ihrer Verarbeitung zu authentisieren. +Die in der HMAC-Funktion verwendete Hashfunktion wird auf SHA-256 festgelegt. +\begin{lstlisting} +auth SHA256 +\end{lstlisting} Verschlüsselung der Daten im Datenkanal mit AES-256-GCM. \begin{lstlisting} @@ -639,10 +649,6 @@ cipher AES-256-GCM Die Aushandlung dieses Ciphers ist auf der Serverseite deaktiviert mit \texttt{ncp-disable} -Die Hashfunktion SHA-256 wird als message digest algorithm in HMAC verwendet, um die Pakete in Daten- und Kontrollkanal zu authentisieren. -\begin{lstlisting} -auth SHA256 -\end{lstlisting} \paragraph{Zertifikate und DH-Parameter} Dateiangaben, die TLS-Rolle, welche Sorte von Zertifikat erwartet wird, gegen welches CA das präsentierte Zertifikat geprüft wird.