13.07.2015 Views

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8.5.AUT<strong>EN</strong>TICACIÓN DE USUARIOS <strong>EN</strong> <strong>UNIX</strong> 133Algunos ejemplos de cuentas sobre los que hay que prestar una especial atención son 4 root, guest,lp, demos, 4DGifts, tour, uucp, nuucp, games o postmaster; es muy recomendable consultar losmanuales de cada sistema concreto, y chequear periódicamente la existencia de cuentas sin clave ocuentas que deberían permanecer bloqueadas y no lo están.Para cifrar las claves de acceso de sus usuarios, el sistema operativo Unix emplea un criptosistemairreversible que utiliza la función estándar de C crypt(3), basada en el algoritmo DES. Parauna descripción exhaustiva del funcionamiento de crypt(3) se puede consultar [MT79], [FK90] o[GS96]. Esta función toma como clave los ocho primeros caracteres de la contraseña elegida por elusuario (si la longitud de ésta es menor, se completa con ceros) para cifrar un bloque de texto enclaro de 64 bits puestos a cero; para evitar que dos passwords iguales resulten en un mismo textocifrado, se realiza una permutación durante el proceso de cifrado elegida de forma automática yaleatoria para cada usuario, basada en un campo formado por un número de 12 bits (con lo queconseguimos 4096 permutaciones diferentes) llamado salt. El cifrado resultante se vuelve a cifrarutilizando la contraseña del usuario de nuevo como clave, y permutando con el mismo salt, repitiéndoseel proceso 25 veces. El bloque cifrado final, de 64 bits, se concatena con dos bits cero,obteniendo 66 bits que se hacen representables en 11 caracteres de 6 bits cada uno y que, junto conel salt, pasan a constituir el campo password del fichero de contraseñas, usualmente /etc/passwd.Así, los dos primeros caracteres de este campo estarán constituidos por el salt y los 11 restantespor la contraseña cifrada:toni:LEgPN8jqSCHCg:1000:100:Antonio Villalon,,,:/export/home/toni:/bin/shsalt: LE Password cifrado: gPN8jqSCHCgComo hemos dicho antes, este criptosistema es irreversible. Entonces, ¿cómo puede un usuarioconectarse a una máquina Unix? El proceso es sencillo: el usuario introduce su contraseña, quese utiliza como clave para cifrar 64 bits a 0 basándose en el salt, leído en /etc/passwd, de dichousuario. Si tras aplicar el algoritmo de cifrado el resultado se corresponde con lo almacenado enlos últimos 11 caracteres del campo password del fichero de contraseñas, la clave del usuario seconsidera válida y se permite el acceso. En caso contrario se le deniega y se almacena en un ficheroel intento de conexión fallido.8.5.2 Mejora de la seguridadProblemas del modelo clásicoLos ataques de texto cifrado escogido constituyen la principal amenaza al sistema de autenticaciónde Unix; a diferencia de lo que mucha gente cree, no es posible descifrar una contraseña, pero esmuy fácil cifrar una palabra junto a un determinado salt, y comparar el resultado con la cadenaalmacenada en el fichero de claves. De esta forma, un atacante leerá el fichero /etc/passwd (estefichero ha de tener permiso de lectura para todos los usuarios si queremos que el sistema funcionecorrectamente), y mediante un programa adivinador (o crackeador) como Crack o John the Rippercifrará todas las palabras de un fichero denominado diccionario (un fichero ASCII con un grannúmero de palabras de cualquier idioma o campo de la sociedad – historia clásica, deporte, cantantesde rock. . . ), comparando el resultado obtenido en este proceso con la clave cifrada del fichero decontraseñas; si ambos coinciden, ya ha obtenido una clave para acceder al sistema de forma noautorizada. Este proceso se puede pero no se suele hacer en la máquina local, ya que en este casohay bastantes posibilidades de detectar el ataque: desde modificar en código de la función crypt(3)para que alerte al administrador cuando es invocada repetidamente (cada vez que el adivinador cifrauna palabra utiliza esta función) hasta simplemente darse cuenta de una carga de CPU excesiva(los programas adivinadores suelen consumir un tiempo de procesador considerable). Lo habituales que el atacante transfiera una copia del archivo a otro ordenador y realice el proceso en estaotra máquina; ni siquiera se tiene que tratar de un servidor Unix con gran capacidad de cómputo:4 Hemos preferido no mostrar las claves por defecto (si las tienen) ni el sistema operativo concreto.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!