Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

miércoles, 7 de octubre de 2015

Cómo cambiar el cifrado de nuestras contraseñas en Linux

Hoy me gustaría hablaros sobre un pequeña faceta de Linux de la que muchos probablemente jamás os hayáis preguntado. Quiero hablaros sobre el cifrado usado en las contraseñas en Linux.... No quiero enfocarme en aspectos matemáticos ni en las características de cada cifrado, si bien si que quiero que os preguntéis: ¿Cómo se cifran las contraseñas en Linux? ¿Cómo se almacenan las contraseñas de nuestros usuarios en Linux?


Toda contraseña creada en el sistema operativo es cifrada automáticamente por el sistema, la cuestión está que el Linux no usa un único cifrado sino que escoge un cifrado entre su "abanico" de cifrados y cifra la contraseña con dicho cifrado... Esto se puede ver con facilidad si por ejemplo accediésemos (como root) al fichero /etc/shadow con cualquier herramienta que nos permita consultar su interior, ya sea vi, nano o cat. Por ejemplo, para ver todos los usuarios que posean una contraseña, podríamos escribir:

cat /etc/shadow |grep -v '*' |grep -v '!'

Con esta consulta veríamos los usuarios que tengan una contraseña (root, entre otros); pero no veríamos la contraseña en texto plano, sino que la veríamos cifrada. Obviamente dicho galimatías indescifrable sigue cierta estructura; es más veremos que todas después del nombre del usuario veremos un número entre dos $. Dicho número no está contemplado dentro del cifrado en sí; es decir, no es parte de la clave, sino que indica qué cifrado se ha usado con dicha clave. Cada número equivaldría a un cifrado y sería uno de los siguientes:

  • $1 --> Significa que la contraseña ha sido cifrada con md5. Hasta hace relativamente poco, era uno de los cifrados más populares.
  • $2 --> Probablemente el cifrado menos usado entre el abanico de opciones actuales; Indica que se ha usado cifrado blowfish.
  • $5 --> Equivale al cifrado SHA-256 (Secure Hash Alghoritm). 
  • $6 --> El cifrado más seguro de nuestro abanico y el más popular: SHA-512.
La cuestión está que a veces una contraseña se cifra con un cifrado que no deseamos, ya sea porque es inseguro o porque somos unos paranoicos y no nos gusta que se usen cifrados no tan seguros como el SHA-512; es por ello que tenemos la opción de cambiar la contraseña de nuestro usuario con un cifrado definido por nosotros. Obviamente la contraseña puede ser la misma pero con distinto cifrado.

Para cambiar la contraseña y su cifrado, debemos recurrir al comando chpasswd. Dicho comando de por sí únicamente puede cambiar la contraseña, pero si lo usamos junto con el parámetro -c, podemos especificar qué cifrado queremos usar. Los cifrados que deberíamos poner tras el parámetro -c serían uno de estos: DES, MD5, SHA-256, SHA-512. Por ejemplo:

chpasswd -c SHA512

Al escribir el comando parecería que no ha pasado nada, pero en verdad lo que ocurre es que está esperando que espefiquemos los usuarios y sus contraseñas. Dicha introducción debe hacerse así:

usuario:contraseña

Esta introducción de usuarios y contraseñas se puede hacer cuantas veces uno quiera, si bien parece que la introducción es infinita... Cuando queramos finalizar la introducción de usuarios y contraseñas debemos de pulsar ctrl + D. IMPORTANTE: No introducir ctrl + C, ya que sino no guardará los cambios realizados.

Con esto ya tendríamos cifradas las contraseñas a nuestro gusto. Espero que os haya resultado útil.

Saludos.

No hay comentarios :

Publicar un comentario