19 abril 2012

Tipo de hash para las contraseñas en equipos Linux

Otra diferencia importante entre CentOS 5 y CentOS 6 es que se ha pasado de usar (por defecto) md5 como hash para las contraseñas a usar sha512 en CentOS 6
Mediante pam_unix podemos definir el tipo de hash de las contraseñas que queremos usar por defecto. En CentOS esto lo definimos en el fichero /etc/pam.d/system-auth. Podremos comprobar que en una CentOS 5 por defecto tenemos:
 
password    sufficient    pam_unix.so try_first_pass use_authtok nullok md5 shadow

Podremos ver que las contraseñas en el shadow empiezan por $1 para indicar el tipo de hash:
 
jordi:$1$nlv1bkHO$jX3hT3Cdabsrg9/8LqiEl1:15274:0:99999:7:::

Mientras que en CentOS 6 tenemos que usa la opción sha512 para el modulo pam_unix:
 
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

Por lo que la contraseña en el /etc/shadow se marca con $6 y es mucho más larga al ser un sha512:

jordi:$6$Z2EBLK/f$zb1GhxIMjo7YICEoD5fX8mtFrj4amh8GbzdDN14.yH1.zeQJmjRP7mNTPNHXPKnlcy.QUXitEhgb/gnMwuocD.:15274:0:99999:7:::
Además de md5 ($1) o sha512 ($6) también podríamos usar bigcrypt (sin marca), sha256 ($5) o blowfish ($2). En el caso que configuremos sha256, sha512 o blowfish pero la función crypt no soporta estos algoritmos se usa md5 en su lugar.

Tomado de: http://systemadmin.es/2011/10/tipo-hash-contrasenas-equipos-linux