Ce document décrit les bonnes pratiques pour configurer votre station de travail et vos instances de machines virtuelles (VM) Compute Engine afin d'utiliser des algorithmes d'échange de clés post-quantiques pour les connexions SSH.
Pour en savoir plus sur le fonctionnement des connexions SSH dans Compute Engine, consultez Connexions SSH aux VM Linux. Pour en savoir plus sur la gestion de l'accès SSH avec IAM, consultez À propos d'OS Login.
Les sections suivantes décrivent la cryptographie post-quantique dans le contexte de SSH :
- Comprendre la menace des attaques de type "capture-now, decrypt-later"
- Comprendre le champ d'application de la protection post-quantique dans SSH
Les sections suivantes décrivent les bonnes pratiques qui peuvent vous aider à protéger les connexions SSH contre les futures menaces liées à l'informatique quantique :
- Configurer votre client SSH pour qu'il privilégie ou exige les algorithmes post-quantiques
- Configurer votre VM pour l'échange de clés post-quantique
- Vérifier l'algorithme d'échange de clés négocié
Comprendre la menace des attaques de type "capture now, decrypt later"
La cryptographie à clé publique classique (telle que RSA et la cryptographie à courbe elliptique) est théoriquement vulnérable aux attaques par ordinateur quantique. Bien que les ordinateurs quantiques à grande échelle n'existent pas encore, les pirates informatiques peuvent capturer et stocker le trafic réseau chiffré aujourd'hui dans le but de le déchiffrer plus tard lorsqu'un ordinateur quantique suffisamment puissant sera disponible. C'est ce qu'on appelle une attaque capture-now, decrypt-later (capturer maintenant, déchiffrer plus tard).
Pour se prémunir contre cette menace, OpenSSH et d'autres clients SSH modernes sont compatibles avec les méthodes d'échange de clés de cryptographie post-quantique (PQC). Ces méthodes utilisent des algorithmes d'échange de clés hybrides qui combinent un algorithme post-quantique avec un algorithme classique (tel que X25519). Tant que l'un ou l'autre des algorithmes reste sécurisé, la clé de chiffrement de la session ne peut pas être dérivée par un espion.
Les algorithmes d'échange de clés post-quantiques hybrides suivants sont compatibles avec les implémentations SSH modernes :
sntrup761x25519-sha512@openssh.com: hybride de Streamlined NTRU Prime 761 et X25519. Compatible avec OpenSSH 9.0 et versions ultérieures, et PuTTY 0.78 et versions ultérieures.mlkem768x25519-sha256: hybride de ML-KEM-768 (anciennement CRYSTALS-Kyber) et de X25519, tous deux normalisés par le NIST. Compatible avec OpenSSH 10.0 et versions ultérieures, et PuTTY 0.83 et versions ultérieures.mlkem768x25519-sha256est l'algorithme d'échange de clés post-quantique préféré pour SSH.
Comprendre le champ d'application de la protection post-quantique dans SSH
Une connexion SSH comporte trois phases cryptographiques :
- Échange de clés (
KexAlgorithms) : le client et le serveur établissent un secret symétrique partagé. Lorsque vous utilisez un algorithme d'échange de clés post-quantique, ce secret partagé est protégé contre le déchiffrement par les ordinateurs quantiques. - Authentification de l'utilisateur et de l'hôte : le client valide la clé d'hôte du serveur, et le serveur valide la clé ou le certificat SSH de l'utilisateur. OpenSSH standard n'utilise pas encore d'algorithmes de signature post-quantiques pour l'authentification des utilisateurs, mais comme l'authentification a lieu à l'intérieur du canal chiffré établi par l'échange de clés, vos identifiants et vos clés hôtes sont protégés contre le déchiffrement rétroactif.
- Chiffrement des données de session (
Ciphers) : une fois les clés échangées, la session est chiffrée à l'aide d'un algorithme de chiffrement symétrique (tel queaes256-gcm@openssh.comouchacha20-poly1305@openssh.com). Les algorithmes de chiffrement symétriques ne sont pas vulnérables aux attaques informatiques quantiques comme le sont les algorithmes de chiffrement asymétriques (échange de clés).
Fonctionnement de la négociation d'algorithme
Lors du handshake de connexion SSH, le client envoie une liste ordonnée des algorithmes d'échange de clés qu'il prend en charge. Le serveur compare la liste du client à ses propres algorithmes compatibles et sélectionne le premier algorithme de la liste du client que le serveur prend également en charge.
Étant donné que le client détermine l'ordre de préférence, la configuration de votre client de station de travail pour privilégier les algorithmes post-quantiques garantit que l'échange de clés post-quantique est utilisé chaque fois que la VM cible le prend en charge.
Configurer votre client SSH
Configurez le client SSH sur votre poste de travail pour qu'il donne la priorité aux algorithmes d'échange de clés post-quantiques ou les applique. Suivez les étapes pour votre outil client préféré.
Console
L'accès SSH dans le navigateur (intégré à la console Google Cloud ) est compatible avec les algorithmes d'échange de clés post-quantiques et les préfère automatiquement.
Si vous vous connectez à votre VM à l'aide de SSH dans le navigateur, vous n'avez pas besoin de configurer de paramètres sur votre poste de travail. Lorsque la VM cible est compatible avec les algorithmes post-quantiques, SSH dans le navigateur négocie automatiquement un échange de clés post-quantique.
Pour vous connecter à l'aide de SSH dans le navigateur :
Dans la console Google Cloud , accédez à la page Instances de VM.
Dans la liste des instances de VM, cliquez sur SSH sur la ligne de la VM à laquelle vous souhaitez vous connecter.
gcloud
La gcloud CLI (gcloud compute ssh) utilise le client OpenSSH installé sur votre poste de travail local.
Vérifiez qu'OpenSSH 9.0 ou version ultérieure est installé sur votre poste de travail :
ssh -VSi votre version d'OpenSSH est antérieure à la version 9.0, mettez à niveau OpenSSH à l'aide du gestionnaire de packages de votre système d'exploitation.
Lorsque votre poste de travail exécute OpenSSH 9.0 ou une version ultérieure, OpenSSH inclut l'échange de clés post-quantique dans sa liste d'algorithmes par défaut. Lorsque vous vous connectez à une VM compatible, la connexion négocie un échange de clés post-quantique sans indicateurs supplémentaires :
gcloud compute ssh <var>VM_NAME</var> --zone=<var>ZONE</var>Remplacez les éléments suivants :
<var>VM_NAME</var>: nom de la VM à laquelle vous souhaitez vous connecter.<var>ZONE</var>: zone où se trouve la VM.
Client OpenSSH
Si vous utilisez le client OpenSSH standard (ssh) sous Linux, macOS ou Windows :
Vérifiez que la version de votre client OpenSSH local est la version 9.0 ou ultérieure :
ssh -VOuvrez ou créez votre fichier de configuration SSH utilisateur (
~/.ssh/configsur Linux et macOS, ou%USERPROFILE%\.ssh\configsur Windows).Ajoutez ou mettez à jour la directive
KexAlgorithms.Pour donner la priorité aux algorithmes post-quantiques tout en autorisant le retour à des algorithmes classiques (recommandé), ajoutez la configuration suivante :
KexAlgorithms ^mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com,diffie-hellman-group-exchange-sha256Pour appliquer strictement les algorithmes post-quantiques et refuser les connexions classiques, spécifiez uniquement les algorithmes post-quantiques :
KexAlgorithms mlkem768x25519-sha256,sntrup761x25519-sha512@openssh.com
Connectez-vous à votre VM à l'aide de SSH :
ssh -i <var>PATH_TO_PRIVATE_KEY</var> <var>USERNAME</var>@<var>EXTERNAL_IP</var>Remplacez les éléments suivants :
<var>PATH_TO_PRIVATE_KEY</var>: chemin d'accès à votre clé SSH privée.<var>USERNAME</var>: votre nom d'utilisateur (par exemple, votre nom d'utilisateur OS Login).<var>EXTERNAL_IP</var>: adresse IP externe de la VM.
Application PuTTY
Si vous vous connectez à des VM à l'aide de PuTTY sur Windows :
Assurez-vous d'exécuter la version 0.78 ou ultérieure de PuTTY (ou la version 0.83 ou ultérieure pour la compatibilité avec ML-KEM). Pour vérifier votre version, ouvrez PuTTY et cliquez sur À propos. Si nécessaire, téléchargez la dernière version depuis la page de téléchargement de PuTTY.
Ouvrez Putty.
Dans le volet Catégorie, accédez à Connexion > SSH > Kex.
Dans la liste Règle de sélection d'algorithme, recherchez l'algorithme post-quantique :
- Échange de clés hybride NTRU Prime / Curve25519 (disponible dans PuTTY 0.78 et versions ultérieures)
- Échange de clés hybride ML-KEM / Curve25519 (disponible dans PuTTY 0.83 et versions ultérieures)
Sélectionnez l'algorithme post-quantique, puis cliquez sur Haut jusqu'à ce qu'il se trouve en haut de la liste, au-dessus des algorithmes classiques Diffie-Hellman et ECDH.
(Facultatif) Pour appliquer strictement les algorithmes post-quantiques, sélectionnez chaque algorithme classique, puis cliquez sur Descendre jusqu'à ce qu'il se trouve sous le séparateur -- Avertissement ci-dessous -- ou -- Ne pas utiliser ci-dessous --.
Dans le volet Catégorie, cliquez sur Session.
Sous Sessions enregistrées, sélectionnez le nom de votre session, puis cliquez sur Enregistrer pour conserver votre préférence d'algorithme.
Cliquez sur Open (Ouvrir) pour vous connecter à la VM.
Configurer votre VM
Pour utiliser des algorithmes d'échange de clés post-quantiques, le système d'exploitation et le daemon SSH de votre VM doivent les prendre en charge. Examinez les systèmes d'exploitation compatibles et comprenez le comportement par défaut avant de modifier la configuration.
Systèmes d'exploitation compatibles
Pour prendre en charge l'échange de clés post-quantique, votre VM doit exécuter un système d'exploitation incluant OpenSSH 9.0 ou version ultérieure. Les images Linux publiques suivantes disponibles sur Compute Engine incluent OpenSSH 9.0 ou version ultérieure :
- Debian : Debian 12 (Bookworm) et versions ultérieures
- Ubuntu : Ubuntu 24.04 LTS (Noble Numbat) et versions ultérieures
- Fedora : Fedora 39 et versions ultérieures
- Container-Optimized OS : jalon 109 et versions ultérieures
- Rocky Linux / AlmaLinux : version 10 et ultérieures
Les anciennes versions de systèmes d'exploitation (comme Ubuntu 22.04 LTS, Debian 11 ou RHEL 9) incluent par défaut des versions d'OpenSSH antérieures à la version 9.0 et ne sont pas compatibles avec l'échange de clés post-quantique.
Comportement par défaut
Si votre VM exécute un système d'exploitation avec OpenSSH 9.0 ou version ultérieure, le serveur OpenSSH (sshd) est compatible avec sntrup761x25519-sha512@openssh.com par défaut. Les VM exécutant OpenSSH 10.0 ou version ultérieure sont également compatibles avec mlkem768x25519-sha256 par défaut.
Par défaut, aucune modification de la configuration de la VM n'est requise. Lorsqu'un client compatible avec la post-informatique quantique se connecte, la VM négocie automatiquement un échange de clés post-quantique. Dans le même temps, la VM continue d'accepter les connexions des clients qui ne prennent en charge que les algorithmes classiques.
Exiger strictement des algorithmes post-quantiques
Si votre organisation exige un échange de clés post-quantique pour toutes les sessions SSH, vous pouvez configurer le démon SSH de la VM pour qu'il n'accepte que les algorithmes d'échange de clés post-quantiques.
Pour exiger strictement des algorithmes post-quantiques sur votre VM :
Connectez-vous à votre VM à l'aide de SSH.
Créez un fichier de configuration drop-in dans
/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'Testez la configuration du daemon SSH pour détecter les erreurs de syntaxe :
sudo sshd -tSi la commande génère des erreurs, vérifiez le fichier de configuration avant de continuer.
Rechargez le démon SSH pour appliquer la modification sans interrompre les sessions actives :
sudo systemctl reload sshdSi votre distribution Linux utilise
sshcomme nom de service, exécutez plutôtsudo systemctl reload ssh.Laissez la fenêtre de terminal actuelle ouverte et ouvrez-en une nouvelle pour tester la connexion à la VM. Si la nouvelle connexion réussit, votre VM est correctement configurée pour exiger des algorithmes post-quantiques.
Récupérer l'accès SSH
Si vous configurez votre VM pour qu'elle exige strictement des algorithmes post-quantiques et que vous êtes bloqué parce que votre client ne prend pas en charge les algorithmes requis, utilisez l'une des options de récupération suivantes :
- Utilisez SSH dans le navigateur : ouvrez la console Google Cloud et connectez-vous à l'aide de SSH dans le navigateur. SSH dans le navigateur est compatible avec l'échange de clés post-quantique et peut se connecter même lorsque les algorithmes post-quantiques sont strictement requis sur la VM.
Une fois connecté, supprimez ou modifiez
/etc/ssh/sshd_config.d/99-post-quantum-kex.conf, puis rechargezsshd. - Utilisez la console série virtuelle : connectez-vous à la VM à l'aide de la console d'administration spéciale (SAC) ou de la console série.
Connectez-vous avec vos identifiants, supprimez le fichier de configuration et rechargez
sshd. - Utilisez un script de démarrage : si l'accès interactif n'est pas disponible :
- Dans la console Google Cloud , arrêtez la VM.
- Modifiez les métadonnées de la VM pour ajouter un script de démarrage qui supprime le fichier de configuration
/etc/ssh/sshd_config.d/99-post-quantum-kex.confque vous avez créé précédemment, puis redémarrez le daemon du serveur SSH :startup-script:rm -f /etc/ssh/sshd_config.d/99-post-quantum-kex.conf && (systemctl reload ssh || systemctl reload sshd) - Démarrez la VM. Le script de démarrage s'exécute en tant que root et restaure la compatibilité classique.
- Supprimez le script de démarrage des métadonnées une fois que vous avez retrouvé l'accès.
Vérifier l'algorithme d'échange de clés négocié
Pour vérifier qu'une connexion SSH active utilise un algorithme d'échange de clés post-quantique, consultez les détails de la connexion depuis votre client.
Vérifier à l'aide d'OpenSSH ou de gcloud CLI
Connectez-vous à votre VM avec la sortie détaillée activée à l'aide de l'indicateur -v :
Utiliser OpenSSH :
ssh -v -i <var>PATH_TO_PRIVATE_KEY</var> <var>USERNAME</var>@<var>EXTERNAL_IP</var>Utiliser gcloud CLI :
gcloud compute ssh <var>VM_NAME</var> --zone=<var>ZONE</var> -- -v
Inspectez la sortie du terminal lors de l'établissement de la connexion. Recherchez la ligne kex: algorithm :
debug1: kex: algorithm: sntrup761x25519-sha512@openssh.com
ou :
debug1: kex: algorithm: mlkem768x25519-sha256
Si le résultat liste sntrup761x25519-sha512 ou mlkem768x25519-sha256, la connexion est protégée par un échange de clés post-quantique. Si un algorithme tel que curve25519-sha256 ou ecdh-sha2-nistp256 est indiqué, la connexion utilise un échange de clés classique et reste vulnérable aux attaques de type"capture maintenant, déchiffrement plus tard".
Valider à l'aide de PuTTY
- Dans PuTTY, connectez-vous à votre VM.
- Effectuez un clic droit sur la barre de titre de la fenêtre PuTTY, puis sélectionnez Event Log (Journal des événements).
- Dans la fenêtre PuTTY Event Log (Journal des événements PuTTY), recherchez la ligne indiquant l'algorithme d'échange de clés :
Using NTRU Prime / Curve25519 hybrid key exchangeUsing ML-KEM / Curve25519 hybrid key exchange
Étapes suivantes
- En savoir plus sur les connexions SSH aux VM Linux
- Consultez les bonnes pratiques pour sécuriser l'accès SSH.
- Découvrez comment protéger les identifiants SSH avec des clés de sécurité.
- Découvrez les fonctionnalités et la configuration de SSH dans le navigateur.