ECDH-Schlüsselaustausch zum Mitverfolgen

ECDH-Schlüsselaustausch Schritt für Schritt: Alice und Bob vereinbaren per X25519, P-256 oder P-384 ein gemeinsames Geheimnis und verschlüsseln damit eine Nachricht, alles im Browser.

–

 

SchrittWert (hex bzw. Base64)
Dasselbe mit OpenSSL

Alles läuft in Ihrem Browser, Eingaben werden nicht übertragen. Nur zum Lernen und Testen: Verwenden Sie für echte Geheimnisse und Produktivsysteme geprüfte Werkzeuge Ihrer Organisation.

So funktioniert ECDH

Der ECDH-Schlüsselaustausch (Elliptic Curve Diffie-Hellman) löst ein altes Problem: Zwei Parteien wollen über eine abhörbare Leitung einen gemeinsamen Schlüssel vereinbaren, ohne ihn je zu übertragen. Alice und Bob erzeugen dazu je ein Schlüsselpaar auf derselben Kurve. Sie tauschen nur die öffentlichen Schlüssel aus. Jeder kombiniert dann den eigenen privaten Schlüssel mit dem öffentlichen des anderen und erhält dasselbe Shared Secret. Wer nur mitliest, kennt beide öffentlichen Schlüssel, kann daraus das Geheimnis aber nicht berechnen; dafür müsste er das Problem des diskreten Logarithmus auf elliptischen Kurven lösen.

Die Demo zeigt alle Schritte mit echten Werten aus der WebCrypto-Schnittstelle Ihres Browsers: X25519 nach RFC 7748, wie es TLS 1.3, SSH und Signal verwenden, oder die NIST-Kurven P-256 und P-384 auf Basis elliptischer Kurven nach SP 800-56A. Das rohe gemeinsame Geheimnis wird nicht direkt als Schlüssel benutzt, sondern über HKDF mit SHA-256 in einen AES-256-Schlüssel umgewandelt. Damit verschlüsselt Alice Ihre Nachricht mit AES-GCM, Bob entschlüsselt sie. Mit dem Testvektor aus RFC 7748 können Sie das Ergebnis mit dem im Standard veröffentlichten Wert vergleichen. Wie AES-GCM mit einem Passwort funktioniert, zeigt die AES-Verschlüsselung.

Grenze des klassischen Diffie-Hellman-Verfahrens: Ohne Authentisierung weiß Alice nicht, ob der öffentliche Schlüssel wirklich von Bob stammt. Ein Angreifer in der Mitte könnte mit beiden getrennt einen Schlüssel aushandeln. In der Praxis wird der Austausch deshalb mit Zertifikaten oder Signaturen abgesichert. Die Werte auf dieser Seite sind nur zum Lernen gedacht; die privaten Schlüssel werden angezeigt und sind damit verbraucht.

Anleitung: ECDH-Schlüsselaustausch in 4 Schritten

  1. Unter „Kurve“ X25519, P-256 oder P-384 wählen; Alice und Bob erhalten sofort je ein neues Schlüsselpaar.
  2. In der Tabelle verfolgen, wie beide ihre öffentlichen Schlüssel austauschen und jeweils ECDH rechnen.
  3. Eine „Nachricht von Alice an Bob“ eintippen und sehen, wie sie mit dem abgeleiteten AES-Schlüssel verschlüsselt und von Bob entschlüsselt wird.
  4. Mit „RFC-7748-Testvektor“ die festen Schlüssel aus dem Standard laden und das Ergebnis mit dem dort genannten Wert vergleichen.

Typische Anwendungsfälle

  • Im Informatik- oder Kryptografie-Unterricht den Schlüsselaustausch Schritt für Schritt vorführen.
  • Verstehen, was TLS 1.3, SSH oder Signal beim Verbindungsaufbau mit X25519 tun.
  • Eine eigene WebCrypto-Implementierung gegen die Werte aus RFC 7748 prüfen.
  • Zeigen, warum ein Schlüsselaustausch ohne Authentisierung gegen Man-in-the-Middle-Angriffe anfällig ist.
Fragen

Häufige Fragen

Warum erhalten Alice und Bob dasselbe Ergebnis?

Weil die Rechnung kommutativ ist: Alice rechnet a mal (b mal G), Bob rechnet b mal (a mal G). Beides ergibt den Punkt a mal b mal G auf der Kurve. G ist ein fester Startpunkt, a und b sind die privaten Schlüssel.

Was ist der Unterschied zwischen X25519 und P-256?

Beide bieten etwa 128 Bit Sicherheit. X25519 ist einfacher sicher umzusetzen und schneller, P-256 ist in vielen Normen und Behördenvorgaben vorgeschrieben. TLS 1.3 unterstützt beide.

Warum wird das Shared Secret nicht direkt als AES-Schlüssel genutzt?

Das Ergebnis von ECDH ist ein Kurvenpunkt bzw. dessen Koordinate und nicht gleichmäßig verteilt. Eine Schlüsselableitung wie HKDF macht daraus einen gleichmäßig zufälligen Schlüssel und erlaubt, mehrere Schlüssel für verschiedene Zwecke abzuleiten.

Ist ECDH sicher gegen Quantencomputer?

Nein. Elliptische Kurven schützen nur gegen klassische Rechner. Ein ausreichend großer Quantencomputer könnte ECDH brechen. Deshalb kombinieren aktuelle Browser und TLS-Server X25519 mit dem Post-Quanten-Verfahren ML-KEM zu einem hybriden Schlüsselaustausch.

Was ist der Unterschied zwischen ECDH und ECDHE?

Das E am Ende steht für ephemeral: Für jede Verbindung werden neue Schlüsselpaare erzeugt und danach verworfen. So bleiben alte Sitzungen geschützt, selbst wenn später ein Langzeitschlüssel bekannt wird (Forward Secrecy).

Kann ich mit X25519 auch signieren?

Nein, X25519 dient nur dem Schlüsselaustausch. Zum Signieren auf derselben Kurve gibt es Ed25519; die Schlüssel sind verwandt, werden in der Praxis aber getrennt erzeugt.

Weitere Werkzeuge

Das könnte auch helfen

Alle 558 Werkzeuge