Version OpenSSH 8.4

Après quatre mois de développement soumis version d'OpenSSH 8.4, une implémentation client et serveur ouverte pour travailler avec les protocoles SSH 2.0 et SFTP.

Les principaux changements:

  • Modifications de sécurité :
    • Dans ssh-agent, lors de l'utilisation de clés FIDO qui n'ont pas été créées pour l'authentification SSH (l'ID de clé ne commence pas par la chaîne "ssh:"), il vérifie désormais que le message sera signé en utilisant les méthodes utilisées dans le protocole SSH. Le changement ne permettra pas à ssh-agent d'être redirigé vers des hôtes distants dotés de clés FIDO pour bloquer la possibilité d'utiliser ces clés pour générer des signatures pour les demandes d'authentification Web (le cas inverse, lorsqu'un navigateur peut signer une requête SSH, est initialement exclu en raison de l'utilisation du préfixe « ssh : » dans l'identifiant de la clé).
    • La génération de clé résidente de ssh-keygen inclut la prise en charge du module complémentaire credProtect décrit dans la spécification FIDO 2.1, qui fournit une protection supplémentaire pour les clés en exigeant un code PIN avant d'effectuer toute opération pouvant entraîner l'extraction de la clé résidente du jeton.
  • Modifications de compatibilité potentiellement révolutionnaires :
    • Pour supporter FIDO/U2F, il est recommandé d'utiliser la bibliothèque libfido2 au moins en version 1.5.0. La possibilité d'utiliser des éditions plus anciennes a été partiellement implémentée, mais dans ce cas, des fonctions telles que les clés résidentes, la demande de code PIN et la connexion de plusieurs jetons ne seront pas disponibles.
    • Dans ssh-keygen, les données d'authentification nécessaires à la vérification des signatures numériques de confirmation ont été ajoutées au format des informations de confirmation, éventuellement enregistrées lors de la génération d'une clé FIDO.
    • L'API utilisée lorsqu'OpenSSH interagit avec la couche pour accéder aux jetons FIDO a été modifiée.
    • Lors de la création d'une version portable d'OpenSSH, automake est désormais requis pour générer le script de configuration et les fichiers de construction qui l'accompagnent (si la construction à partir d'un fichier tar de code publié, la régénération de configure n'est pas requise).
  • Ajout de la prise en charge des clés FIDO qui nécessitent une vérification du code PIN dans ssh et ssh-keygen. Pour générer des clés avec code PIN, l'option « vérifier-requis » a été ajoutée à ssh-keygen. Si de telles clés sont utilisées, avant d'effectuer l'opération de création de signature, l'utilisateur est invité à confirmer ses actions en saisissant un code PIN.
  • Dans sshd, l'option « verify-required » est implémentée dans le paramètreauthorized_keys, ce qui nécessite l'utilisation de capacités pour vérifier la présence de l'utilisateur lors des opérations avec le jeton. La norme FIDO propose plusieurs options pour une telle vérification, mais actuellement OpenSSH ne prend en charge que la vérification basée sur le code PIN.
  • sshd et ssh-keygen ont ajouté la prise en charge de la vérification des signatures numériques conformes à la norme FIDO Webauthn, qui permet d'utiliser les clés FIDO dans les navigateurs Web.
  • En ssh dans les paramètres CertificateFile,
    ControlPath, IdentityAgent, IdentityFile, LocalForward et
    RemoteForward permet la substitution des valeurs des variables d'environnement spécifiées au format "${ENV}".

  • ssh et ssh-agent ont ajouté la prise en charge de la variable d'environnement $SSH_ASKPASS_REQUIRE, qui peut être utilisée pour activer ou désactiver l'appel ssh-askpass.
  • Dans ssh dans ssh_config dans la directive AddKeysToAgent, la possibilité de limiter la durée de validité d'une clé a été ajoutée. Une fois la limite spécifiée expirée, les clés sont automatiquement supprimées de ssh-agent.
  • Dans scp et sftp, en utilisant l'indicateur "-A", vous pouvez désormais autoriser explicitement la redirection vers scp et sftp à l'aide de ssh-agent (la redirection est désactivée par défaut).
  • Ajout de la prise en charge de la substitution '%k' dans les paramètres ssh, qui spécifie le nom de la clé hôte. Cette fonctionnalité peut être utilisée pour distribuer des clés dans des fichiers séparés (par exemple, « UserKnownHostsFile ~/.ssh/known_hosts.d/%k »).
  • Autorisez l'utilisation de l'opération "ssh-add -d -" pour lire les clés de stdin qui doivent être supprimées.
  • Dans sshd, le début et la fin du processus d'élagage de la connexion sont reflétés dans le journal, régulé à l'aide du paramètre MaxStartups.

Les développeurs d'OpenSSH ont également rappelé la mise hors service prochaine des algorithmes utilisant les hachages SHA-1 en raison de promotion l'efficacité des attaques par collision avec un préfixe donné (le coût de sélection d'une collision est estimé à environ 45 mille dollars). Dans l'une des prochaines versions, ils prévoient de désactiver par défaut la possibilité d'utiliser l'algorithme de signature numérique à clé publique « ssh-rsa », qui est mentionné dans la RFC originale pour le protocole SSH et reste répandu dans la pratique (pour tester l'utilisation de ssh-rsa dans vos systèmes, vous pouvez essayer de vous connecter via ssh avec l'option « -oHostKeyAlgorithms=-ssh-rsa »).

Pour faciliter la transition vers de nouveaux algorithmes dans OpenSSH, la prochaine version activera le paramètre UpdateHostKeys par défaut, qui migrera automatiquement les clients vers des algorithmes plus fiables. Les algorithmes recommandés pour la migration incluent rsa-sha2-256/512 basé sur RFC8332 RSA SHA-2 (pris en charge depuis OpenSSH 7.2 et utilisé par défaut), ssh-ed25519 (pris en charge depuis OpenSSH 6.5) et ecdsa-sha2-nistp256/384/521 basé sur sur RFC5656 ECDSA (pris en charge depuis OpenSSH 5.7).

Source: opennet.ru

Ajouter un commentaire