PQC@TLS-Handshake

From
Revision as of 11:12, 25 October 2025 by Kay (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Präsentation zum Thema im Rahmen des IT Security Workshop 2025: Präsentation

Das Protokoll TLS(Transport Layer Security) ist ein wichtiger Bestandteil der Transportschicht um eine sichere Kommunikation im Internet zu gewährleisten. Es dient dazu die Kommunikation zwischen 2 Endpunkten(in der Regel Server und Client) vor Angriffen von Dritten zu schützen. Im Rahmen eines Verbindungsaufbaus mittels TLS erfolgt unter anderem ein TLS-Handshake. Nur wenn ein TLS-Handshake erfolgreich durchgeführt wird, kann eine Verbindung zwischen Server und Client hergestellt werden. Die sicherheitsrelevanten Bestandteile eines TLS-Handshakes sind die Schlüsselaushandlung, die Verschlüsselung der Kommunikation unter Verwendung des ausgehandelten Schlüssels und die Authentifizierung von Server und ggf. auch Client über Zertifikate. Diese Schritte erfolgen jeweils unter Verwendung verschiedener kryptografischer Algorithmen. Mit der zunehmenden Bedrohung durch Quantencomputer wird es notwendig, die bestehenden kryptografischen Algorithmen durch quantensichere(PQC/Post-Quanten-Kryptografie) Alternativen zu ergänzen oder zu ersetzen.

Ansatz: "store now and decrypt later"-Szenario

Auch wenn aktuelle Algorithmen für die Schlüsselaushandlung derzeit noch sicher sind, besteht die Gefahr, dass Dritte die Kommunikation abhorchen und aufzeichnen können. Mit der aktuell verbreiteten Technologie ist die Entschlüsselung der Kommunikation heutzutage zwar nicht realitätsnah, aber künftig verfügbare Quantencomputer werden in der Lage sein aufgezeichnete verschlüsselte Kommunikation nachträglich entschlüsseln zu können. Dieses als "store now and decrypt later" bekannte Szenario gilt es durch den Einsatz von quantensicheren Algorithmen präventiv zu unterbinden.

Schlüsselaushandlung

Die Schlüsselaushandlung während des TLS-Handshakes kann durch verschiedene kryptografische Algorithmen erfolgen. Hierbei stellen Client und Server jeweils eine Auswahl an Verfahren zur Verfügung und für einen erfolgreichen TLS-Handshake wird sich ein gemeinsamen Verfahren ausgesucht. Während der Schlüsselaushandlung kommen sowohl private Schlüssel (diese werden nicht an das Gegenüber verschickt) als auch öffentliche Schlüssel zum Einsatz. Während der Kommunikation berechnen Client und Server mit Hilfe der privaten und öffentlichen Schlüssel ein gemeinsames "Shared Secret", das als Grundlage für die weitere Verschlüsselung dient. Aus diesem Shared Secret werden anschließend mit Hilfe von Schlüsselableitungsfunktionen wie z.B. "HKDF" die eigentlichen Sitzungsschlüssel erzeugt, die für die verschlüsselte Datenübertragung verwendet werden.

Klassische Schlüsselaushandlung

Bei einer klassischen Schlüsselaushandlung werden mit Hilfe von Verfahren wie Elliptic Curve Diffie-Hellman (ECDH) oder Rivest–Shamir–Adleman (RSA) gemeinsame Sitzungsschlüssel zwischen Client und Server ausgehandelt.

Beispiel (ECDH)

ECDH basierende Algorithmen sind weit verbreitete Algorithmen zur sicheren Schlüsselaushandlung im Rahmen von TLS. Sie basieren auf elliptischen Kurven, wobei häufig Kurven wie "X25519" oder "SecP256r1" für die Schlüsselaushandlung verwendet werden. Sowohl der Client als auch der Server wählen dabei jeweils einen zufälligen privaten Schlüssel (a und b) und verwenden einen gemeinsamen Generator-Punkt G auf der Kurve, der für beide Parteien identisch ist. Der öffentliche Schlüssel (A und B) ergibt sich aus der Multiplikation des privaten Schlüssels mit diesem Punkt G. Durch den anschließenden Austausch der öffentlichen Schlüssel können beide Seiten unabhängig voneinander dasselbe Shared Secret S berechnen. Es gilt:

S=aB=a(bG)=b(aG)=bA

Quantensichere Schlüsselaushandlung

Bei einer quantensicheren Schlüsselaushandlung werden PQC-Algorithmen wie z.B. ML-KEM genutzt, um die Schlüsselaushandlung selbst vor der künftigen Bedrohung durch Quantencomputern zu schützen.

Beispiel (ML-KEM)

Der Module Lattice-based Key Encapsulation Mechanism (ML-KEM) basiert auf Gittern im mehrdimensionalen Raum, typischerweise mit sehr großen Dimension(z.B. n=256). Im Gegensatz zu klassischen Verfahren sind die Schlüsselpaare bei ML-KEM deutlich größer und können bis zu mehrere Kilobyte umfassen. Die Berechnung der Schlüssel erfolgt unter Verwendung von Matrizen und Vektoren mit Dimension n und Polynomen des (n−1)-ten Grades. Im Ablauf generiert der Server zunächst ein Schlüsselpaar, während der Client den öffentlichen Schlüssel erhält und um einen eigenen Schlüsselwert erweitert sowie dabei einen Störfaktor (ein "Rauschen") hinzufügt, bevor die Daten an den Server zurückgesendet werden. Mithilfe seines privaten Schlüssels kann der Server den ursprünglichen Schlüsselwert rekonstruieren. Über diesen Schlüsselwert lassen sich für beide Partien das Shared Secret berechnen. Obwohl die zugrunde liegende Berechnung im Prinzip einem simplen linearen Gleichungssystem entspricht, verhindert der eingebaute Störfaktor, dass dieses selbst von Quantencomputern effizient gelöst werden kann.

Ein Beispiel für ein quantensicheres Schlüsselaushandlungsverfahren ist "MLKEM768".

Hybride Schlüsselaushandlung

Hybride Schlüsselaushandlungsverfahren kombinieren einen klassischen Algorithmus mit einem quantensicheren Algorithmus, um sowohl gegen aktuelle als auch zukünftige Angriffe abgesichert zu sein. Dabei werden die Schlüsselpaare beider Verfahren parallel erzeugt und als Konkatenation in der Kommunikation übertragen. Das resultierende Shared Secret wird über die beiden Shared Secrets der zugrunde liegenden Algorithmen berechnet. Selbst wenn einer der Algorithmen z.B. Implementierungsfehler oder kryptografische Schwächen aufweist, bliebe die Gesamtsicherheit durch das nutzen eines zweiten Algorithmus bestehen; gleichzeitig erhält man auch den Vorteil der Quantensicherheit so wie eine gewisse Abwärtskompatibilität durch die Implementation eines klassischen Verfahrens. Hybride Verfahren gelten daher als sinnvolle Übergangslösung während weiterhin an quantensicheren Lösungen geforscht wird.

Ein Beispiel für ein hybrides Schlüsselaushandlungsverfahren ist "X25519MLKEM768".

Performance

Grundsätzlich gilt, dass klassische Schlüsselaushandlungsverfahren weniger CPU-Auslastung vorweisen als quantensichere Verfahren und die TLS-handshakes auch weniger Zeit in Anspruch nehmen als bei quantensicheren Verfahren. Hybride Verfahren, welche sowohl ein klassisches als auch ein quantensicheres Verfahren parallel ausführen, haben die höchste CPU-Auslastung und beanspruchen die meisten Zeit.

Im Rahmen des IT-Security Workshops 2025 wurden auch entsprechende Messungen durchgeführt, welche ähnliche Ergebnisse hervorbrachten.

Interoperabilität

Diverse Anwendungen und Libraries bieten zusätzlich zu den klassischen Verfahren bereits quantensichere Verfahren oder sogar hybride Verfahren als Verfahren für die Schlüsselaushandlung mit an. Ein paar Beispiele wären OpenSSL, GnuTLS, wolfSSl und auch bereits einige Internetbrowser.

Zertifikate

Zertifikate werden in einem TLS-Handshake für die Authentifizerung des Servers und ggf. auch des Clients genutzt.

Quantensichere Zertifikate

Aktuell existieren scheinbar noch keine öffentlichen Zertifizierungsstellen (Certificate Authorities CA), die PQC-Zertifikate ausstellen. Dennoch gibt es bereits Optionen um an PQC-zertifikate durch private CA's zu kommen. Einige Firmen setzen bereits experimentell quantensichere Zertifikate in internen Netzwerken ein, um Erfahrungen mit deren Integration und Kompatibilität zu sammeln. Ein wichtiger und bereits anerkannter Standard für quantensichere Signaturen von Zertifikaten ist der Module Lattice–Based Digital Signature Algorithm (ML-DSA).

Hybride Zertifikate

Hybride Zertifikate befinden sich derzeit (Stand: 25.08.2025) noch in der Entwicklungs- und Diskussionsphase und sind bislang nicht produktiv einsetzbar. Das Grundkonzept besteht darin, dass ein hybrides Zertifikat zwei Signaturen und zwei Schlüsselpaaren enthält, je mit nach einem klassischen und einem quantensicheren Verfahren. Der große Vorteil liegt in der Abwärtskompatibilität (Anwendungen, die keine quantensicheren Verfahren nutzen, können den kompletten PQC-Teil innerhalb des Zertifikats einfach ignorieren) und der zusätzlichen Sicherheit. Bei Implementationsfehlern eines Verfahren wird durch das jeweils andere immer noch Schutz geboten.

Beispiele (OpenSSL)

Im folgenden gibt es einige Beispiele um eigene OpenSSL-Server zum testen aufzusetzen.

Zertifikate

Ein simpler Befehl, der ein klassisches Zertifikat und den dazugehörigen Schlüssel erstellt:

openssl req -new -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365

Ein simpler Befehl, der ein quantensicheres Zertifikat und den dazugehörigen Schlüssel erstellt:

openssl req -x509 -newkey ML-DSA-65 -keyout key.pem -out cert.pem -nodes -days 365

Schlüsselaushandlung

Öffnen eines simplen OpenSSL-Servers und eines simplen OpenSSL-Clients:

openssl s_server -accept 4433 -cert cert.pem -key key.pem

openssl s_client -connect localhost:4433

Auflistung der von OpenSSL unterstützten Schlüsselaushandlungsverfahren:

openssl list -tls1_3 -tls-groups

Öffnen eines simplen OpenSSL-Servers und eines simplen OpenSSL-Clients unter Verwendung eines bestimmten Schlüsselaushandlungsverfahren:

openssl s_server -accept 4433 -cert cert.pem -key key.pem -tls1_3 -groups "X25519MLKEM768"

openssl s_client -connect localhost:4433 -tls1_3 -groups "X25519MLKEM768"