Sto cercando di capire come le tipiche distribuzioni Linux generano il campo password per le voci in /etc/shadow
. Non riesco a capire quale algoritmo di crittografia viene utilizzato per produrre la stringa della password crittografata.
Ad esempio:
$1$CQoPk7Zh$370xDLmeGD9m4aF/ciIlC.
Da quanto ho capito, il primo valore 1
indica che è stato utilizzato un metodo di hashing MD5 con il secondo valore CQoPk7Zh
come salt. Tuttavia, qual è stato l'algoritmo di crittografia utilizzato per produrre la stringa password codificata finale 370xDLmeGD9m4aF/ciIlC.
?
La pagina man di Linux per crypt (3) ha una nota per glibc2 :
If salt is a character string starting with the characters "$id$" followed by a string terminated by "$":
$id$salt$encrypted
then instead of using the DES machine, id identifies the encryption method used and this then determines how the rest of the password string is interpreted.
Penso che la semantica mi stia buttando fuori: il manuale dice che id specifica il metodo di crittografia , ma sta specificando il metodo di hashing .
Credo che il processo funzioni in questo modo:
password ==> MD5(password+salt) ==> hash ==> encryption-algorithm(hash) ==> encrypted-pass
Quindi come faccio a determinare l'algoritmo di crittografia? In particolare, quale algoritmo di crittografia viene utilizzato quando l' id è 6
( SHA512 )?