miércoles, 17 de noviembre de 2010

Cambiar en CentOS la función hash usada para las claves de los usuarios

Por defecto CentOS viene configurado para utilizar md5 como algoritmo hash para cifrar las claves de los usuarios. Esta función no es ni de cerca la mas segura, de hecho existen programas para obtener por fuerza bruta las claves cifradas con md5. Un ejemplo es John the Ripper.


Para saber que algoritmo se está usando se puede utilizar el comando authconfig.


[root@trombotic ~]# authconfig --test | grep password
 shadow passwords are enabled
 password hashing algorithm is md5

Aquí se puede ver que se utiliza md5. Pero se mejoraría la seguridad del sistema utilizando sha256 o sha512. He aquí un extracto del archivo /etc/shadow donde se puede comparar la longitud de las claves para cada una de las funciones hash:


usermd5:$1$xP//mpS/$Ed/VdW5izisf9nm2R7knH1:14930:0:99999:7:::
usersha256:$5$1SSWI1VP$SGx7ldgHLghTCCln39MOZIM277BX3VKtHgFDpnWXUAB:14930:0:99999:7:::
usersha512:$6$rOmZT0Eu$ho7SvCwlIVeojtKzow7jIUa2IKiVoVmM0EJ.KvrHPcBx3h6mEL.8f9Rlz.e072v/28mWPGIABQ.gg.II8bMY.0:14930:0:99999:7:::


Es un usuario con clave cifrada con md5, el segundo con sha256 y el tercero con sha512. Por cierto, no hace falta que intentéis descifrarla, la clave cifrada es 123456. Esto también se puede saber por que los password empiezan con el identificador del algoritmo que usan:

  • $1$ es md5
  • $5$ es sha256
  • $6$ es sha512

Para cambiar el algoritmo usado, también se usa el comando authconfig. Por ejemplo, para sha256:

authconfig --passalgo=sha256 --update

Para sha512:

authconfig --passalgo=sha512 --update

Para volver a poner md5:

authconfig --passalgo=md5 --update

Hay que tener una cosa en cuenta, cuando se cambia la función hash solo las nuevas claves introducidas a partir del cambio usarán la nueva función hash. Las que ya están en el sistema siguen usando la función anterior. Para que todas las claves estén cifradas con la nueva función se puede forzar a que los usuarios cambien su clave la próxima vez que entren al sistema. Para conseguirlo, se puede modificar la fecha de caducidad de los password con el comando chage:

chage -d 0 usermd5
chage -d 0 usersha256

No hay comentarios:

Publicar un comentario