AprÚs quatre mois de développement Sortie d'OpenSSH 8.4, une implémentation open source du client et du serveur pour travailler avec les protocoles SSH 2.0 et SFTP.
Principales modifications :
- Modifications liées à la sécurité :
- Dans ssh-agent, lors de l'utilisation de clĂ©s FIDO non conçues pour l'authentification via SSH (l'identifiant de la clĂ© ne commence pas par «ssh:»), une vĂ©rification est maintenant effectuĂ©e pour s'assurer que le message sera signĂ© avec les mĂ©thodes appliquĂ©es dans le protocole SSH. Ce changement empĂȘchera la redirection de ssh-agent vers des hĂŽtes distants ayant des clĂ©s FIDO, afin de bloquer la possibilitĂ© d'utiliser ces clĂ©s pour former des signatures de requĂȘtes d'authentification web (le cas inverse, oĂč le navigateur peut signer une requĂȘte SSH, a Ă©tĂ© initialement exclu grĂące Ă l'utilisation du prĂ©fixe «ssh:» dans l'identifiant de la clĂ©).
- Dans ssh-keygen, lors de la génération d'une clé résidentielle, le support de l'extension credProtect, décrite dans la spécification FIDO 2.1, a été ajouté, offrant une protection supplémentaire pour les clés par une demande obligatoire de saisie de PIN avant toute opération pouvant conduire à l'extraction de la clé résidentielle du token.
- Modifications susceptibles de compromettre la compatibilité :
- Pour le support FIDO/U2F, il est recommandĂ© d'utiliser la bibliothĂšque libfido2 d'au moins la version 1.5.0. La possibilitĂ© d'utiliser d'anciennes versions est partiellement mise en Ćuvre, mais dans ce cas, certaines fonctionnalitĂ©s, telles que les clĂ©s rĂ©sidentielles, la demande de PIN et la connexion de plusieurs tokens, ne seront pas disponibles.
- Dans ssh-keygen, le format des informations d'authentification, facultativement sauvegardées lors de la génération d'une clé FIDO, a été enrichi de données pour l'authentificateur, nécessaires pour vérifier les signatures numériques d'authentification.
- L'API utilisée lors de l'interaction d'OpenSSH avec la couche d'accÚs aux tokens FIDO a été modifiée.
- Lors de la compilation de la version portable d'OpenSSH, automake est désormais requis pour former le script configure et les fichiers de construction associés (si la compilation est effectuée à partir d'un fichier tar publié contenant le code, la régénération de configure n'est pas nécessaire).
- Dans ssh et ssh-keygen, le support des clés FIDO nécessitant une confirmation par PIN a été ajouté. Pour générer des clés avec PIN dans ssh-keygen, une option «verify-required» a été ajoutée. Lors de l'utilisation de telles clés, un message demandant de confirmer l'action par la saisie de PIN est affiché à l'utilisateur avant l'exécution de l'opération de création de signature.
- Dans sshd, l'option « verify-required » a été mise en place dans la configuration authorized_keys, nécessitant une vérification de la présence de l'utilisateur pendant les opérations avec le token. La norme FIDO prévoit plusieurs options pour cette vérification, mais actuellement, OpenSSH ne prend en charge que la vérification basée sur un code PIN.
- Dans sshd et ssh-keygen, la prise en charge des signatures numériques conformes à la norme FIDO Webauthn a été ajoutée, permettant l'utilisation des clés FIDO dans les navigateurs web.
- Dans ssh, les paramĂštres CertificateFile,
ControlPath, IdentityAgent, IdentityFile, LocalForward et
RemoteForward permettent maintenant l'expansion des valeurs à partir des variables d'environnement, indiquées au format « ${ENV} ». - Dans ssh et ssh-agent, la variable d'environnement $SSH_ASKPASS_REQUIRE a été ajoutée, que l'on peut utiliser pour activer ou désactiver l'appel de ssh-askpass.
- Dans ssh, dans ssh_config, la directive AddKeysToAgent permet de limiter la durée de vie d'une clé. AprÚs l'expiration de la limite assignée, les clés sont automatiquement supprimées de ssh-agent.
- Dans scp et sftp, avec l'option « -A », il est maintenant possible de permettre explicitement le redirectionnement avec ssh-agent (normalement, le redirectionnement est désactivé).
- Dans les paramĂštres ssh, la substitution â%kâ a Ă©tĂ© ajoutĂ©e, dĂ©finissant le nom de la clĂ© hĂŽte. Cette fonctionnalitĂ© peut ĂȘtre utilisĂ©e pour distribuer les clĂ©s dans des fichiers sĂ©parĂ©s (par exemple, « UserKnownHostsFile ~/.ssh/known_hosts.d/%k »).
- L'utilisation de l'opération « ssh-add -d - » pour lire depuis stdin les clés à supprimer est autorisée.
- Dans sshd, le début et la fin du processus d'atténuation des connexions, régulé par le paramÚtre MaxStartups, sont désormais consignés dans le journal.
Les développeurs d'OpenSSH ont également rappelé l'imminente rétrogradation des algorithmes utilisant des hash SHA-1. de l'efficacité des attaques par collision avec un préfixe donné (le coût de la recherche d'une collision est évalué à environ 45 000 dollars). Dans l'une des prochaines versions, il est prévu de désactiver par défaut la possibilité d'utiliser l'algorithme de signature numérique à clé publique « ssh-rsa », qui est mentionné dans l'ancienne RFC pour le protocole SSH et reste largement utilisé dans la pratique (pour vérifier 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, OpenSSH dans la prochaine version inclura par défaut le paramÚtre UpdateHostKeys, permettant de mettre automatiquement à jour les clients vers des algorithmes plus sûrs. Parmi les algorithmes recommandés pour la migration figurent rsa-sha2-256/512 sur la base de 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 sur la base de RFC5656 ECDSA (prisé en charge depuis OpenSSH 5.7).
Source : opennet.ru
