In diesem Dokument werden Best Practices für die Konfiguration Ihrer Workstation und Compute Engine-VM-Instanzen beschrieben, damit Post-Quantum-Schlüsselaustauschalgorithmen für SSH-Verbindungen verwendet werden.
Weitere Informationen zur Funktionsweise von SSH-Verbindungen in Compute Engine finden Sie unter SSH-Verbindungen zu Linux-VMs. Informationen zum Verwalten des SSH-Zugriffs mit IAM finden Sie unter OS Login.
In den folgenden Abschnitten wird die Post-Quantum-Kryptografie im Kontext von SSH beschrieben:
- Gefahr von „Jetzt aufzeichnen, später entschlüsseln“-Angriffen
- Umfang des Post-Quanten-Schutzes in SSH
Die folgenden Abschnitte enthalten Best Practices, mit denen Sie SSH-Verbindungen vor zukünftigen Bedrohungen durch Quantencomputer schützen können:
- SSH-Client so konfigurieren, dass Post-Quanten-Algorithmen bevorzugt oder erforderlich sind
- VM für Post-Quanten-Schlüsselaustausch konfigurieren
- Ausgehandelten Algorithmus zum Schlüsselaustausch prüfen
Die Bedrohung durch „Jetzt aufzeichnen, später entschlüsseln“-Angriffe verstehen
Klassische Public-Key-Kryptografie (z. B. RSA und Elliptic Curve Cryptography) ist theoretisch anfällig für Angriffe durch Quantencomputer. Obwohl es noch keine großen Quantencomputer gibt, können Angreifer verschlüsselten Netzwerkverkehr bereits heute erfassen und speichern, um ihn später zu entschlüsseln, wenn ein ausreichend leistungsfähiger Quantencomputer verfügbar ist. Dies wird als Capture-Now-Decrypt-Later-Angriff bezeichnet.
Um sich vor dieser Bedrohung zu schützen, unterstützen OpenSSH und andere moderne SSH-Clients Post-Quanten-Kryptografie-Schlüsselaustauschmethoden (PQC). Diese Methoden verwenden hybride Schlüsselaustauschalgorithmen, die einen Post-Quanten-Algorithmus mit einem klassischen Algorithmus (z. B. X25519) kombinieren. Solange einer der beiden Algorithmen sicher bleibt, kann der Verschlüsselungsschlüssel der Sitzung nicht von einem Lauscher abgeleitet werden.
Die folgenden hybriden Post-Quanten-Schlüsselaustauschalgorithmen werden in modernen SSH-Implementierungen unterstützt:
sntrup761x25519-sha512@openssh.com: Eine Kombination aus Streamlined NTRU Prime 761 und X25519. Wird in OpenSSH 9.0 und höher sowie in PuTTY 0.78 und höher unterstützt.mlkem768x25519-sha256: Eine Kombination aus dem vom NIST standardisierten ML-KEM-768 (früher CRYSTALS-Kyber) und X25519. Wird in OpenSSH 10.0 und höher sowie in PuTTY 0.83 und höher unterstützt.mlkem768x25519-sha256ist der derzeit bevorzugte Post-Quantum-Algorithmus zum Schlüsselaustausch für SSH.
Geltungsbereich des Post-Quanten-Schutzes in SSH
Eine SSH-Verbindung umfasst drei kryptografische Phasen:
- Schlüsselaustausch (
KexAlgorithms): Der Client und der Server richten ein gemeinsames symmetrisches Secret ein. Wenn Sie einen Post-Quanten-Schlüsselaustauschalgorithmus verwenden, ist dieses gemeinsame Secret vor der Entschlüsselung durch Quantencomputer geschützt. - Nutzer- und Hostauthentifizierung: Der Client überprüft den Hostschlüssel des Servers und der Server überprüft den SSH-Schlüssel oder das Zertifikat des Nutzers. Standard-OpenSSH verwendet noch keine Post-Quantum-Signaturalgorithmen für die Nutzerauthentifizierung. Da die Authentifizierung jedoch innerhalb des durch den Schlüsselaustausch eingerichteten verschlüsselten Kanals erfolgt, sind Ihre Anmeldedaten und Hostschlüssel vor der rückwirkenden Entschlüsselung geschützt.
- Verschlüsselung von Sitzungsdaten (
Ciphers): Sobald die Schlüssel ausgetauscht wurden, wird die Sitzung mit einer symmetrischen Chiffre (z. B.aes256-gcm@openssh.comoderchacha20-poly1305@openssh.com) verschlüsselt. Symmetrische Chiffren sind nicht so anfällig für Quantencomputerangriffe wie asymmetrische Chiffren (Schlüsselaustausch).
So funktioniert die Algorithmus-Aushandlung
Während des SSH-Verbindungs-Handshake sendet der Client eine geordnete Liste der von ihm unterstützten Algorithmen für den Schlüsselaustausch. Der Server vergleicht die Liste des Clients mit seinen eigenen unterstützten Algorithmen und wählt den ersten Algorithmus in der Liste des Clients aus, den der Server ebenfalls unterstützt.
Da der Client die Reihenfolge der bevorzugten Algorithmen bestimmt, wird durch die Konfiguration Ihres Workstation-Clients, Post-Quanten-Algorithmen zu bevorzugen, sichergestellt, dass der Post-Quanten-Schlüsselaustausch verwendet wird, wenn die Ziel-VM ihn unterstützt.
SSH-Client konfigurieren
Konfigurieren Sie den SSH-Client auf Ihrer Workstation so, dass Post-Quantum-Algorithmen für den Schlüsselaustausch priorisiert oder erzwungen werden. Führen Sie die Schritte für Ihr bevorzugtes Client-Tool aus.
Console
SSH im Browser (in die Cloud de Confiance Console integriert) unterstützt und bevorzugt automatisch Post-Quanten-Schlüsselaustauschalgorithmen.
Wenn Sie über SSH im Browser eine Verbindung zu Ihrer VM herstellen, müssen Sie keine Einstellungen auf Ihrer Workstation konfigurieren. Wenn die Ziel-VM Post-Quanten-Algorithmen unterstützt, wird automatisch ein Post-Quanten-Schlüsselaustausch ausgehandelt.
So stellen Sie eine Verbindung über SSH im Browser her:
Rufen Sie in der Cloud de Confiance Console die Seite VM-Instanzen auf:
Klicken Sie in der Liste der VM-Instanzen in der Zeile der VM, zu der Sie eine Verbindung herstellen möchten, auf SSH.
gcloud
Die gcloud CLI (gcloud compute ssh) verwendet den auf Ihrer lokalen Workstation installierten OpenSSH-Client.
Prüfen Sie, ob auf Ihrer Workstation OpenSSH 9.0 oder höher installiert ist:
ssh -VWenn Ihre OpenSSH-Version älter als 9.0 ist, führen Sie ein Upgrade von OpenSSH mit dem Paketmanager Ihres Betriebssystems durch.
Wenn auf Ihrer Workstation OpenSSH 9.0 oder höher ausgeführt wird, enthält OpenSSH in der Standardalgorithmusliste den Post-Quanten-Schlüsselaustausch. Wenn Sie eine Verbindung zu einer kompatiblen VM herstellen, wird ein Post-Quanten-Schlüsselaustausch ohne zusätzliche Flags ausgehandelt:
gcloud compute ssh <var>VM_NAME</var> --zone=<var>ZONE</var>Ersetzen Sie Folgendes:
<var>VM_NAME</var>ist der Name der VM, zu der Sie eine Verbindung herstellen möchten.<var>ZONE</var>: die Zone, in der sich die VM befindet.
OpenSSH-Client
Wenn Sie den Standard-OpenSSH-Client (ssh) unter Linux, macOS oder Windows verwenden:
Prüfen Sie, ob Ihre lokale OpenSSH-Clientversion 9.0 oder höher ist:
ssh -VÖffnen oder erstellen Sie die SSH-Konfigurationsdatei des Nutzers (
~/.ssh/configunter Linux und macOS oder%USERPROFILE%\.ssh\configunter Windows).Fügen Sie die
KexAlgorithms-Anweisung hinzu oder aktualisieren Sie sie.Post-Quanten-Algorithmen priorisieren und gleichzeitig einen klassischen Fallback zulassen (empfohlen):
KexAlgorithms ^mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com,diffie-hellman-group-exchange-sha256Wenn Sie Post-Quanten-Algorithmen erzwingen und klassische Verbindungen ablehnen möchten, geben Sie nur Post-Quanten-Algorithmen an:
KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com
Stellen Sie über SSH eine Verbindung zu Ihrer VM her:
ssh -i <var>PATH_TO_PRIVATE_KEY</var> <var>USERNAME</var>@<var>EXTERNAL_IP</var>Ersetzen Sie Folgendes:
<var>PATH_TO_PRIVATE_KEY</var>: der Pfad zu Ihrem privaten SSH-Schlüssel.<var>USERNAME</var>: Ihr Nutzername, z. B. Ihr OS Login-Nutzername.<var>EXTERNAL_IP</var>: Die externe IP-Adresse der VM.
PuTTY-Anwendung
Wenn Sie unter Windows mit PuTTY eine Verbindung zu VMs herstellen:
Achten Sie darauf, dass Sie PuTTY-Version 0.78 oder höher (oder Version 0.83 oder höher für ML-KEM-Unterstützung) verwenden. Wenn Sie Ihre Version prüfen möchten, öffnen Sie PuTTY und klicken Sie auf Info. Laden Sie bei Bedarf die aktuelle Version von der PuTTY-Downloadseite herunter.
Öffnen Sie Putty.
Gehen Sie im Bereich Kategorie zu Verbindung > SSH > Kex.
Suchen Sie in der Liste Richtlinie zur Algorithmusauswahl nach dem Post-Quantum-Algorithmus:
- NTRU Prime / Curve25519 Hybrid-KEX (verfügbar in PuTTY 0.78 und höher)
- ML-KEM / Curve25519-Hybrid-KEX (verfügbar in PuTTY 0.83 und höher)
Wählen Sie den Post-Quantum-Algorithmus aus und klicken Sie auf Nach oben, bis er oben in der Liste steht, über den klassischen Diffie-Hellman- und ECDH-Algorithmen.
Optional: Wenn Sie Post-Quantum-Algorithmen strikt erzwingen möchten, wählen Sie jeden klassischen Algorithmus aus und klicken Sie auf Abwärts, bis er unter der Trennlinie -- Warn below here -- oder -- Don't use below here -- liegt.
Klicken Sie im Bereich Kategorie auf Sitzung.
Wählen Sie unter Gespeicherte Sitzungen den Namen der Sitzung aus und klicken Sie auf Speichern, um die bevorzugte Einstellung für den Algorithmus beizubehalten.
Klicken Sie auf Öffnen, um eine Verbindung zur VM herzustellen.
VM konfigurieren
Damit Sie Post-Quanten-Schlüsselaustauschalgorithmen verwenden können, müssen das Betriebssystem Ihrer VM und der SSH-Daemon sie unterstützen. Sehen Sie sich die kompatiblen Betriebssysteme an und machen Sie sich mit dem Standardverhalten vertraut, bevor Sie Konfigurationsänderungen vornehmen.
Kompatible Betriebssysteme
Damit der Post-Quantum-Schlüsselaustausch unterstützt wird, muss auf Ihrer VM ein Betriebssystem mit OpenSSH 9.0 oder höher ausgeführt werden. Die folgenden öffentlichen Linux-Images, die in Compute Engine verfügbar sind, enthalten OpenSSH 9.0 oder höher:
- Debian: Debian 12 (Bookworm) und höher
- Ubuntu: Ubuntu 24.04 LTS (Noble Numbat) und höher
- Fedora: Fedora 39 und höher
- Container-Optimized OS: Meilenstein 109 und höher
- Rocky Linux / AlmaLinux: Version 10 und höher
Ältere Betriebssystemversionen wie Ubuntu 22.04 LTS, Debian 11 oder RHEL 9 enthalten standardmäßig OpenSSH-Versionen vor 9.0 und unterstützen keinen Post-Quantum-Schlüsselaustausch.
Standardverhalten
Wenn auf Ihrer VM ein Betriebssystem mit OpenSSH 9.0 oder höher ausgeführt wird, unterstützt der OpenSSH-Server (sshd) standardmäßig sntrup761x25519-sha512@openssh.com. Auf VMs mit OpenSSH 10.0 oder höher wird mlkem768x25519-sha256 standardmäßig unterstützt.
Standardmäßig sind keine Änderungen an der VM-Konfiguration erforderlich. Wenn ein Post-Quanten-fähiger Client eine Verbindung herstellt, wird automatisch ein Post-Quanten-Schlüsselaustausch ausgehandelt. Gleichzeitig akzeptiert die VM weiterhin Verbindungen von Clients, die nur klassische Algorithmen unterstützen.
Post-Quanten-Algorithmen sind unbedingt erforderlich
Wenn Ihre Organisation für alle SSH-Sitzungen einen Post-Quanten-Algorithmus für den Schlüsselaustausch erfordert, können Sie den SSH-Daemon der VM so konfigurieren, dass nur Post-Quanten-Algorithmen für den Schlüsselaustausch akzeptiert werden.
So erzwingen Sie die Verwendung von Post-Quanten-Algorithmen auf Ihrer VM:
Stellen Sie eine SSH-Verbindung zu Ihrer VM her.
Erstellen Sie eine Drop-in-Konfigurationsdatei in
/etc/ssh/sshd_config.d/:sudo bash -c 'cat << 'EOF' > /etc/ssh/sshd_config.d/99-post-quantum-kex.conf # Require post-quantum key exchange algorithms only KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com EOF'Testen Sie die SSH-Daemon-Konfiguration auf Syntaxfehler:
sudo sshd -tWenn beim Ausführen des Befehls Fehler auftreten, prüfen Sie die Konfigurationsdatei, bevor Sie fortfahren.
Laden Sie den SSH-Daemon neu, um die Änderung anzuwenden, ohne aktive Sitzungen zu beenden:
sudo systemctl reload sshdWenn Ihre Linux-Distribution
sshals Dienstnamen verwendet, führen Sie stattdessensudo systemctl reload sshaus.Lassen Sie das aktuelle Terminalfenster geöffnet und öffnen Sie ein neues Terminalfenster, um die Verbindung zur VM zu testen. Wenn die neue Verbindung erfolgreich ist, ist Ihre VM erfolgreich für die Verwendung von Post-Quantum-Algorithmen konfiguriert.
Wiederherstellung nach einer SSH-Sperrung
Wenn Sie Ihre VM so konfigurieren, dass sie ausschließlich Post-Quanten-Algorithmen erfordert, und Sie ausgesperrt werden, weil Ihr Client die erforderlichen Algorithmen nicht unterstützt, verwenden Sie eine der folgenden Wiederherstellungsoptionen:
- SSH im Browser verwenden: Öffnen Sie die Cloud de Confiance Console und stellen Sie eine Verbindung über SSH im Browser her. SSH im Browser unterstützt den Post-Quanten-Schlüsselaustausch und kann eine Verbindung herstellen, auch wenn Post-Quanten-Algorithmen auf der VM unbedingt erforderlich sind.
Entfernen oder ändern Sie
/etc/ssh/sshd_config.d/99-post-quantum-kex.conf, sobald die Verbindung hergestellt ist, und laden Siesshdneu. - Virtuelle serielle Konsole verwenden: Stellen Sie über die spezielle Verwaltungskonsole (Special Administrative Console, SAC) oder die serielle Konsole eine Verbindung zur VM her.
Melden Sie sich mit Ihren Anmeldedaten an, entfernen Sie die Konfigurationsdatei und laden Sie
sshdneu. - Startskript verwenden: Wenn kein interaktiver Zugriff möglich ist:
- Halten Sie die VM in der Cloud de Confiance Console an.
- Bearbeiten Sie die VM-Metadaten, um ein Startskript hinzuzufügen, das die zuvor erstellte Konfigurationsdatei
/etc/ssh/sshd_config.d/99-post-quantum-kex.conflöscht und den SSH-Server-Daemon neu startet:startup-script:rm -f /etc/ssh/sshd_config.d/99-post-quantum-kex.conf && (systemctl reload ssh || systemctl reload sshd) - Starten Sie die VM. Das Startskript wird als Root ausgeführt und stellt die klassische Kompatibilität wieder her.
- Entfernen Sie das Startskript aus den Metadaten, nachdem Sie wieder Zugriff haben.
Vereinbarten Algorithmus zum Schlüsselaustausch prüfen
Wenn Sie bestätigen möchten, dass für eine aktive SSH-Verbindung ein Post-Quantum-Schlüsselaustauschalgorithmus verwendet wird, sehen Sie sich die Verbindungsdetails in Ihrem Client an.
Mit OpenSSH oder der gcloud CLI prüfen
Stellen Sie mit dem -v-Flag eine Verbindung zu Ihrer VM her, um die ausführliche Ausgabe zu aktivieren:
OpenSSH verwenden:
ssh -v -i <var>PATH_TO_PRIVATE_KEY</var> <var>USERNAME</var>@<var>EXTERNAL_IP</var>gcloud CLI verwenden:
gcloud compute ssh <var>VM_NAME</var> --zone=<var>ZONE</var> -- -v
Sehen Sie sich die Terminalausgabe während des Verbindungsaufbaus an. Suchen Sie nach der Zeile kex: algorithm:
debug1: kex: algorithm: sntrup761x25519-sha512@openssh.com
oder:
debug1: kex: algorithm: mlkem768x25519-sha256
Wenn in der Ausgabe sntrup761x25519-sha512 oder mlkem768x25519-sha256 aufgeführt ist, ist die Verbindung durch den Post-Quanten-Schlüsselaustausch geschützt. Wenn ein Algorithmus wie curve25519-sha256 oder ecdh-sha2-nistp256 aufgeführt ist, verwendet die Verbindung den klassischen Schlüsselaustausch und ist weiterhin anfällig für „Capture Now, Decrypt Later“-Angriffe.
Mit PuTTY überprüfen
- Stellen Sie in PuTTY eine Verbindung zu Ihrer VM her.
- Klicken Sie mit der rechten Maustaste auf die Titelleiste des PuTTY-Fensters und wählen Sie Event Log (Ereignisprotokoll) aus.
- Suchen Sie im Fenster PuTTY Event Log (PuTTY-Ereignisprotokoll) nach der Zeile, die den Schlüsselaustauschalgorithmus angibt:
Using NTRU Prime / Curve25519 hybrid key exchangeUsing ML-KEM / Curve25519 hybrid key exchange