Dans le chat, il s'est avéré que le système utilisait un stockage de mot de passe traditionnel (non shadow) et un algorithme de hachage de mot de passe Unix traditionnel. Les deux sont de mauvais choix dans l'environnement de sécurité d'aujourd'hui.
Étant donné que l'algorithme de hachage de mot de passe traditionnel ne stocke et ne compare que les 8 premiers caractères du mot de passe, cela explique le comportement observé dans la question d'origine.
La sortie sshd publiée comprend la ligne :
Could not get shadow information for user
Je suppose que cela signifie au moins sshd
(ou éventuellement la bibliothèque de stockage de mots de passe PAM Unix) sur ce système inclut la fonctionnalité de mot de passe fantôme, mais pour une raison quelconque, le fournisseur du système a choisi de ne pas l'utiliser.
Dans une distribution basée sur BusyBox, comme c'est généralement le cas avec Yocto, cela peut peut-être être corrigé en activant les options appropriées dans la configuration de BusyBox. Cette solution suppose que vous avez les recettes et que vous êtes capable de créer votre propre image de système d'exploitation adaptée, ou au moins un binaire BusyBox approprié. Il a également besoin d'algorithmes de hachage cryptographique avancés (au moins SHA-256, mieux SHA-512) disponibles (à partir de la libc).
Dans la configuration BusyBox, définissez
- Utilitaires de gestion des identifiants/mots de passe
- Prise en charge des mots de passe masqués → activé
- Utiliser les fonctions de cryptage internes → désactivé
- Méthode de cryptage du mot de passe par défaut →
sha512
ousha256
De plus, le contenu de /etc/passwd
et /etc/shadow
doivent être adaptés, e. g. en utilisant les outils de ligne de commande de la version améliorée de BusyBox (passwd
, mkpasswd
, chpasswd
), ou en les définissant lors de la construction de l'image avec EXTRA_USERS_PARAMS
:
EXTRA_USERS_PARAMS = " \
usermod -p '\$6\$<salt>\$<encrypted_pwd>' root; \
useradd -m -s /bin/sh -G … -u … -p '…' <username>; \
"