Public-Key-Kryptographie (auch asymmetrische Kryptographie genannt) ist die Grundlage von SSL/TLS. Sie verwendet ein Paar mathematisch verknuepfter Schluessel — einen oeffentlichen und einen privaten — um Daten zu verschluesseln, Identitaeten zu verifizieren und sichere Verbindungen herzustellen. Jede HTTPS-Verbindung haengt davon ab.
Das Schluesselpaar-Konzept
| Oeffentlicher Schluessel | Privater Schluessel | |
|---|---|---|
| Wer hat ihn | Jeder (er ist im Zertifikat) | Nur der Server-Besitzer |
| Kann verschluesseln | Ja | Ja |
| Kann entschluesseln | Nur was der private Schluessel verschluesselt hat | Nur was der oeffentliche Schluessel verschluesselt hat |
| Teilen? | Ja — das ist der Sinn | Niemals |
Die Magie: Daten, die mit dem oeffentlichen Schluessel verschluesselt wurden, koennen nur mit dem passenden privaten Schluessel entschluesselt werden. Und umgekehrt. Die beiden Schluessel sind mathematisch verknuepft, aber man kann den privaten Schluessel nicht aus dem oeffentlichen ableiten.
Wie es in SSL/TLS verwendet wird
Public-Key-Kryptographie erfuellt drei Zwecke in jeder HTTPS-Verbindung:
1. Schluesselaustausch — ein gemeinsames Geheimnis etablieren
Waehrend des TLS-Handshakes muessen Server und Browser einen gemeinsamen Sitzungsschluessel zur Verschluesselung des Datenverkehrs vereinbaren. Sie koennen diesen Schluessel nicht im Klartext senden — jemand koennte ihn abfangen.
Loesung: Diffie-Hellman-Schluesselaustausch (speziell ECDHE in modernem TLS). Beide Seiten tragen zufaellige Werte bei, und die Mathematik ermoeglicht es ihnen, dasselbe gemeinsame Geheimnis zu berechnen, ohne es jemals zu uebertragen. Der private Schluessel des Servers signiert seinen Beitrag und beweist damit die Identitaet des Servers.
2. Authentifizierung — Identitaet nachweisen
Das SSL-Zertifikat des Servers enthaelt seinen oeffentlichen Schluessel. Das Zertifikat ist von einer Zertifizierungsstelle signiert. Waehrend des Handshakes beweist der Server, dass er den passenden privaten Schluessel besitzt. Dies beweist, dass der Server derjenige ist, fuer den ihn das Zertifikat ausgibt.
Ohne diesen Schritt koennte jeder behaupten, google.com zu sein.
3. Digitale Signaturen — Datenintegritaet nachweisen
Der private Schluessel kann eine digitale Signatur erstellen — einen mathematischen Beweis dafuer, dass ein bestimmtes Datenstueck vom Schluesselinhaber signiert wurde und nicht veraendert wurde. Die TLS-Handshake-Nachrichten werden signiert, um Manipulation zu verhindern.
Symmetrische vs. asymmetrische Verschluesselung
| Asymmetrisch (Public Key) | Symmetrisch (Sitzungsschluessel) | |
|---|---|---|
| Schluessel | Zwei (oeffentlich + privat) | Einer (gemeinsames Geheimnis) |
| Geschwindigkeit | Langsam (~1000x langsamer) | Schnell |
| Verwendet fuer | Schluesselaustausch + Authentifizierung | Verschluesselung der eigentlichen Daten |
| Algorithmen | RSA, ECDSA, ECDHE | AES-GCM, ChaCha20 |
| In TLS | Nur waehrend des Handshakes | Nach dem Handshake (gesamter Datenverkehr) |
HTTPS verwendet beides: asymmetrische Verschluesselung fuer den Handshake (Identitaet nachweisen, Schluessel austauschen), dann symmetrische Verschluesselung fuer die eigentliche Datenuebertragung (weil sie viel schneller ist).
Die Algorithmen hinter SSL
RSA
Der aelteste noch verwendete Public-Key-Algorithmus (1977). Basiert auf der Schwierigkeit, grosse Primzahlen zu faktorisieren. Wird fuer Signaturen und Schluesselaustausch verwendet, wobei RSA-Schluesselaustausch (ohne Diffie-Hellman) keine Forward Secrecy bietet und aus TLS 1.3 entfernt wurde.
ECDSA (Elliptic Curve Digital Signature Algorithm)
Moderner Signaturalgorithmus basierend auf elliptischer Kurvenmathematik. Ein 256-Bit-ECC-Schluessel bietet gleichwertige Sicherheit wie ein 3072-Bit-RSA-Schluessel — kleinere Schluessel, schnellere Signaturen. GetHTTPS verwendet standardmaessig ECDSA P-256.
ECDHE (Elliptic Curve Diffie-Hellman Ephemeral)
Der Schluesselaustauschmechanismus in modernem TLS. “Ephemeral” bedeutet, dass fuer jede Verbindung ein neues Schluesselpaar generiert wird — das bietet Forward Secrecy. Wird sowohl in TLS 1.2 als auch 1.3 verwendet.
AES-GCM
Die symmetrische Chiffre, die nach dem Handshake zur Verschluesselung des eigentlichen Datenverkehrs verwendet wird. AES (Advanced Encryption Standard) mit GCM (Galois/Counter Mode) bietet sowohl Verschluesselung als auch Authentifizierung. Hardwarebeschleunigt auf modernen CPUs ueber AES-NI-Befehle.
Wie GetHTTPS Public-Key-Kryptographie verwendet
Wenn Sie GetHTTPS verwenden:
- Ihr Browser generiert ein Schluesselpaar mit der Web Crypto API — dieselben kryptographischen Primitive, die TLS selbst verwendet
- Der oeffentliche Schluessel wird in einen CSR eingebettet, der an Let’s Encrypt gesendet wird
- Der private Schluessel bleibt im Speicher Ihres Browsers — wird niemals uebertragen
- Let’s Encrypt signiert den oeffentlichen Schluessel und gibt Ihr Zertifikat zurueck
- Sie laden sowohl das Zertifikat (oeffentlich) als auch den privaten Schluessel auf Ihren Server herunter
Dass der private Schluessel nur im Browserspeicher existiert, ist der Grund, warum GetHTTPS privater ist als Tools, die Schluessel auf einem Remote-Server generieren.
Haeufig gestellte Fragen
Koennen Quantencomputer Public-Key-Kryptographie knacken?
Aktuelle Quantencomputer koennen das nicht. Aber ein ausreichend leistungsfaehiger Quantencomputer, der Shors Algorithmus ausfuehrt, koennte RSA und ECC knacken. Die Branche bereitet sich mit Post-Quanten-Kryptographie vor — neue Algorithmen (ML-KEM, ML-DSA), die gegen Quantenangriffe resistent sind. TLS wird diese in einem Hybridmodus (klassisch + Post-Quanten) uebernehmen, ohne die Funktionsweise von Zertifikaten zu aendern.
Warum nicht einfach asymmetrische Verschluesselung fuer alles verwenden?
Geschwindigkeit. Asymmetrische Operationen sind etwa 1000-mal langsamer als symmetrische. Eine Webseite mit RSA zu verschluesseln waere unpraktisch langsam. Stattdessen verwendet TLS asymmetrische Kryptographie nur fuer den Handshake (~1ms) und wechselt dann zu symmetrischer (AES) fuer die Daten — die mit Hardwaregeschwindigkeit laeuft.
Ist ein 256-Bit-ECC-Schluessel wirklich sicher genug?
256-Bit-ECC bietet ~128 Bit Sicherheit — das bedeutet, ein Angreifer brauchte ungefaehr 2^128 Operationen, um ihn zu knacken. Das sind mehr Operationen als Atome im beobachtbaren Universum. Er ist auf absehbare Zeit sicher (abgesehen von Quantencomputern, die voellig andere Algorithmen erfordern).
Was ist der Unterschied zwischen Verschluesselung und Signierung?
Verschluesselung: Schuetzt die Vertraulichkeit. Verschluesseln mit dem oeffentlichen Schluessel des Empfaengers -> nur sein privater Schluessel kann entschluesseln. Signierung: Beweist Authentizitaet. Signieren mit Ihrem privaten Schluessel -> jeder mit Ihrem oeffentlichen Schluessel kann verifizieren, dass es von Ihnen stammt und nicht veraendert wurde. TLS-Zertifikate verwenden Signaturen; die TLS-Datenuebertragung verwendet Verschluesselung.