/ etc / shadow au format ancien, où est stocké le sel?

3

Dans / etc / shadow, j'ai des entrées telles que admin:YtChlvAGYzva2:16318:0:99999:7:::. Je connais le mot de passe d'origine et souhaite générer le même hachage. Cependant, courir openssl passwd -crypt passwordme donne des résultats différents à chaque fois que je le lance. Je suppose que le sel est impliqué, alors où puis-je trouver le sel utilisé pour créer le hachage original?

Edit: J'ai le hachage original en utilisant la commande suivante:

openssl passwd -crypt -salt Yu password
JohnEye
la source

Réponses:

7

Le sel et le mot de passe crypté sont tous deux écrasés dans la chaîne YtChlvAGYzva2.

Dans le Howto Shadow Password :

Lorsqu'un utilisateur sélectionne ou se voit attribuer un mot de passe, il est codé avec une valeur générée aléatoirement appelée le sel. Cela signifie qu'un mot de passe particulier peut être stocké de 4096 manières différentes. La valeur du sel est ensuite stockée avec le mot de passe codé.

Lorsqu'un utilisateur se connecte et fournit un mot de passe, le sel est d'abord extrait du mot de passe codé stocké.

Les chaînes de mot de passe plus longues que vous voyez avec les systèmes modernes séparent le hachage en utilisant $ . Mais pour les anciens systèmes, il a juste été écrasé ( Wikipedia ):

Les versions antérieures d'Unix utilisaient un fichier de mots de passe (/ etc / passwd) pour stocker les hachages de mots de passe salés (mots de passe précédés de sels avec des sels aléatoires à deux caractères). Dans ces anciennes versions d'Unix, le sel était également stocké dans le fichier passwd (sous forme de texte en clair) avec le hachage du mot de passe salé.

Dans votre exemple, je pense que le sel est "Yt" et que le mot de passe crypté est "ChlvAGYzva2". Ce sont littéralement les deux premiers caractères de la chaîne.

Gowenfawr
la source
Puis-je les séparer en quelque sorte?
JohnEye
@JohnEye Utilisez-vous les méthodes de sous-chaîne de votre script / langage préféré?
Schroeder
Merci, j'ai pu obtenir le hachage original en utilisant openssl passwd -crypt -salt Yu password.
JohnEye
@schroeder: J'ai déjà posé cette question avant que OP ne modifie le message :-)
JohnEye Le
Et ... c'était quoi le sel? Les deux premiers caractères (Yt) du hachage, comme indiqué par gowenfawr?
Aydin K.