PQK und TLS

Da es noch kein ausreichendes Vertrauen in die Sicherheit des ML-KEM gibt, wird eine Hybride Schlüsselvereinbarung genutzt: die eine Hälfte des Sitzungsschlüssels wird via ML-KEM vereinbart, die andere Hälfte per klassischem Schlüsselaustausch (X25519). Beide Hälften werden aneinanderhängt (X25519MLKEM768). Außerdem setzt die PQK Unterstützung zwingend TLS 1.3 voraus.

Cloudfare hat eine (etwas veraltete) Liste von Browsern und Server, die PQK unterstützen.

Alle wichtigen Browser unterstützen X25519MLKEM768: Firefox ab Version 132, Chrome sowie Edge ab Version 131, Safari ab Version 26, TOR Browser ab Version 15, sowie die aktuellen Opera und Brave. Ebenso unterstützen die Apple Betriebssysteme ab Version 26 und Android ab Version 15 ML-KEM

Auch die Webserver Apache, Caddy, lighttpd und NGINX unterstützen in Verbindung mit OpenSSL (ab Version 3.5.0) ML-KEM.

In der Apache Konfigurationsdatei muss TLS 1.3 ergänzt werden und in die Liste der "Curves" muss "X25519MLKEM768" aufgenommen werden.

SSLProtocol           -all +TLSv1.2 +TLSv1.3
SSLOpenSSLConfCmd     Curves X25519MLKEM768:X25519:X448:prime256v1:secp384r1
					

In der lighttpd Konfigurationsdatei conf-enabled/10-ssl.conf werden alle Protokolle ab TLS 1.2 aktiviert und in die Liste der "Curves" muss "X25519MLKEM768" aufgenommen werden.

ssl.openssl.ssl-conf-cmd = ("MinProtocol" => "TLSv1.2")
ssl.openssl.ssl-conf-cmd += ("Curves" => "X25519MLKEM768:X25519:X448:prime256v1;secp384r1“)
					

NGINX muss mit einer aktuellen Version von OpenSSL compiliert werden. Dann wwerdne in der Konfigurationsdatei TLS 1.3 und und in die Liste der "Curves" muss "X25519MLKEM768" aufgenommen werden.

ssl_protocols      TLSv1.2 TLSv1.3;
ssl_conf_command   Curves "X25519MLKEM768:X25519:X448:prime256v1:secp384r1";
					

Der eigene oder auch fremde Web-Server können getestet werden, ob sie PQK-Algorithmen für die Schlüsselvereinbarung unterstützen.

Unter MacOS mit

nscurl --tls-diagnostics https://tipps4it.de
Als Ergebnis erhalten wir:
Test TLS PQK MacOS

Unter Windows/Linux: mit

openssl s_client -brief -connect tipps4it.de:443
Als Ergebnis erhalten wir:
Test TLS PQK Windows/Linux
Unter Windows muss OpenSSL erst installiert werden: winget install openssl. In jedem Fall muss OpenSSL bei beiden Betriebssystemen mindestens in der Version 3.5 vorliegen.

Qualys SSL Labs bietet derzeit noch keinen Test auf PQK-Algorithmen. Wir können aber mit mit dem Skript testssl.sh den nahezu identischen Test. Da es ein Shell-Skript ist, muss es unter Linux installiert und ausgeführt werden. Es wird mit

./testssl.sh tipps4it.de:443
aus dem Installationsverzeichnis gestartet.
Test TLS PQK Linux testssl.sh
Die Abbildung zeigt einen Ausschnitt aus der Ergebnisliste

Der eigene Browser kann auch auf Kompatibilität mit PQC getestet werden, Cloudflare bietet einen entsprechenden Test an. Das Ergebnis sehen wir nach dem ersten Absatz:
Test TLS PQK Browser