¿Cómo de seguras son tus claves? (segundo asalto)

candado

Foto: Carlamercury

Seguimos destripando a John The Ripper (y nunca mejor dicho). En esta ocasión explicaré un poco la estructura y evolución de los archivos de claves de Unix/Linux, porque será con los que trabajemos más adelante.

Originalmente, en estos sistemas, el hash de las contraseñas residía en el archivo /etc/passwd. Pero éste debe tener necesariamente permisos de lectura para todos los usuarios (si no, no serán capaces de iniciar sesión), lo que suponía un problema de seguridad, ya que aunque las claves estuvieran cifradas, cualquiera podía ejecutar programas como John.

Cada línea del fichero /etc/passwd corresponde a un usuario y está dividida en 7 partes separadas por el símbolo “:” con la siguiente información:

usuario:contraseña:ID_Usuario:ID_Grupo:nombre:directorio:shell

Ejemplo:

loretahur:Ejrt3EJUnh5Ms:1000:1000:Lorena Fdez:/home/loretahur:/bin/bash

La primera parte corresponde al nombre de usuario y la segunda, a la clave cifrada. El resto, es sólo información sobre el usuario, su directorio de trabajo,… que no tiene importancia para John puesto que no lo necesita. De hecho, se podría dejar de la siguiente forma (lo importante es la estructura, de forma que john pueda reconocerlo como una clave unix):

loretahur:Ejrt3EJUnh5Ms:a:a:a:a:a

Posteriormente, para mejorar la seguridad, se incluyó un nuevo sistema: el shadowing o sistema de claves fantasmas. Éste consiste en ocultar las contraseñas del archivo /etc/passwd (dejando el campo de la contraseña o bien con “x” o con “*”). Ejemplo:

loretahur:x:1000:1000:Lorena Fdez:/home/loretahur:/bin/bash

Ahora, los hashes de las claves se encuentran en el archivo /etc/shadow, al que sólo tiene acceso el usuario root. Por tanto, ahora para obtener las claves son necesarios los ficheros passwd y shadow. Para hacer nuestras pruebas de calidad de claves, copiaremos estos dos ficheros (y reitero lo de copiar, que luego os cargáis cualquiera de ellos y la liáis parda).

Otra cuestión curiosa de los sistemas Unix es que cifran las contraseñas utilizando como llave de cifrado a la propia contraseña. Con esto se consigue que no pueda invertirse el proceso. Por lo tanto, para poder obtener la clave, John hace lo siguiente: utiliza las palabras de los diccionarios y variaciones de éstas como llaves del DES, comparando el resultado obtenido con la clave cifrada. Si coinciden, ha dado con la clave buscada.

En anteriores capítulos de la saga:

¿Cómo de seguras son tus claves?

Por el día, directora de identidad digital en la Universidad de Deusto. Por la noche, rompiendo techos de cristal en Doce Miradas. Y como dormir está sobrevalorado, colaboro en Radio Bilbao en la sección "De las ondas a la red" del programa Hoy por Hoy Bilbao. Puedes saber más de mí o echar un vistazo a mis publicaciones, cursos y participación en congresos.

Últimas publicaciones de Lorena Fernández (ver todas)

Related Posts Plugin for WordPress, Blogger...