In diesem Dokument werden Best Practices für die Konfiguration Ihrer Workstation und Compute Engine-VM-Instanzen für die Verwendung von Post-Quantum-Schlüsselaustauschalgorithmen für SSH-Verbindungen beschrieben.
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 den Post-Quanten-Schlüsselaustausch konfigurieren
- Ausgehandelten Algorithmus zum Schlüsselaustausch prüfen
Bedrohung durch „Jetzt speichern, später entschlüsseln“-Angriffe
Klassische Public-Key-Kryptografie (z. B. RSA und Elliptische-Kurven-Kryptografie) 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.
Zum Schutz vor dieser Bedrohung unterstützen OpenSSH und andere moderne SSH-Clients Methoden zum Schlüsselaustausch mit Post-Quanten-Kryptografie (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 PuTTY 0.83 und höher unterstützt.mlkem768x25519-sha256ist der derzeit bevorzugte Post-Quantum-Algorithmus zum Schlüsselaustausch für SSH.
Umfang des Post-Quanten-Schutzes in SSH
Eine SSH-Verbindung umfasst drei kryptografische Phasen:
- Schlüsselaustausch (
KexAlgorithms): Der Client und der Server erstellen ein gemeinsames symmetrisches Secret. 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-Handshakes sendet der Client eine sortierte Liste der 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-Algorithmen für den Schlüsselaustausch.
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 den Post-Quanten-Schlüsselaustausch in der Standardalgorithmusliste. Wenn Sie eine Verbindung zu einer kompatiblen VM herstellen, wird für die Verbindung 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 für den Nutzer (
~/.ssh/configunter Linux und macOS oder%USERPROFILE%\.ssh\configunter Windows).Füge die Anweisung
KexAlgorithmshinzu oder aktualisiere sie.Wenn Sie Post-Quanten-Algorithmen priorisieren und gleichzeitig einen klassischen Fallback zulassen möchten (empfohlen), fügen Sie die folgende Konfiguration hinzu:
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-Quanten-Algorithmus:
- NTRU Prime / Curve25519 Hybrid-KEX (verfügbar in PuTTY 0.78+)
- 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. Prüfen Sie die kompatiblen Betriebssysteme 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. VMs mit OpenSSH 10.0 oder höher unterstützen standardmäßig auch mlkem768x25519-sha256.
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 strikt vorschreiben
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.
SSH-Sperre aufheben
Wenn Sie Ihre VM so konfigurieren, dass sie strikt 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 auch dann eine Verbindung herstellen, wenn Post-Quanten-Algorithmen auf der VM zwingend 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 prüfen möchten, ob für eine aktive SSH-Verbindung ein Post-Quanten-Schlüsselaustauschalgorithmus verwendet wird, rufen Sie die Verbindungsdetails von Ihrem Client ab.
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
Prüfen Sie die Terminalausgabe während des Verbindungsaufbaus. 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.
- Rechtsklicken Sie 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, in der der Schlüsselaustauschalgorithmus angegeben ist:
Using NTRU Prime / Curve25519 hybrid key exchangeUsing ML-KEM / Curve25519 hybrid key exchange