La elección de una buena contraseña (II)

El número y la diversidad de los tipos de caracteres que conforman una contraseña son algunas de las claves, a veces olvidadas, que refuerzan la seguridad del sistema. En esta segunda entrega, vamos a conocer como los crackers intentan averiguar nuestras passwords, así como la forma de complicar su labor gracias a una buena elección de contraseña.

Los sistemas de control de acceso o autenticación necesitan poder contrastar la password que proporcionamos para validar si se trata de una pareja nombre de usuario + contraseña válida.

Una de las posibilidades consiste en comparar la contraseña solicitada con la password original almacenada en una base de datos. Este esquema tiene el inconveniente de que si un atacante consigue llegar a la base de datos, todas las contraseñas de los usuarios del sistema quedarían al descubierto.

Para evitar estos problemas, lo más común es encontrarse con una base de datos donde se registren nombres de usuarios junto con sus contraseñas cifradas, de forma que no exista forma de realizar el algoritmo inverso de cifrado para obtener la contraseña original.

Para validar una contraseña, el sistema realiza el cifrado de la password solicitada, y compara el resultado con la contraseña cifrada que mantiene en el registro. Si ambas coinciden, el usuario es legítimo. Esta forma de trabajar evita que por el sistema circulen y se almacenen las contraseñas, para evitar así que un tercero pueda hacerse con ellas.

Un ejemplo típico lo encontramos en los sistemas Unix, que almacenan las contraseñas en el archivo etc/passwd de la siguiente forma:

  • aperez:Xt4gmzs6RJU9b:14:8:Adrián Pérez:/home/agomez:/bin/csh

Cada línea del fichero contiene este formato, donde el primer campo corresponde al nombre de usuario y el segundo es la contraseña cifrada con el algoritmo DES. A continuación nos encontramos con dos campos numéricos, donde se recogen el identificador de usuario (UID) y el identificador de grupos (GID). A continuación nos encontramos con el campo GECOS, con información adicional sobre el usuario, y los campos del directorio por defecto del usuario y su shell.

Cuando un usuario se autentifica en Unix, el sistema solicita nombre de usuario y contraseña, cifra la password suministrada y compara los datos con el registro almacenado en etc/passwd.

La utilización del cifrado DES, que no permite el algoritmo inverso, garantiza que aunque un atacante pueda acceder al fichero etc/passwd, éste no podrá conocer la contraseña del usuario.

Para vulnerar estos sistemas los crackers utilizan unas utilidades que comparan, a gran velocidad, posibles contraseñas cifradas con las existentes en el registro, buscando coincidencias. Para elegir las posibles contraseñas utilizan principalmente dos métodos: el diccionario y la fuerza bruta.

El primer ataque consiste en ir recorriendo un diccionario y cifrar todas sus palabras para compararlas con las contraseñas ya cifradas, buscando que coincidan. Este método aprovecha que muchos usuarios escogen como contraseña términos que existen en el lenguaje. Por lo tanto una buena contraseña deberá ser un conjunto de caracteres sin significado alguno, para que no pueda encontrarse en un diccionario.

El ataque por fuerza bruta consiste en un ejercicio de combinación, donde se van cifrando todas las posibles contraseñas y comparándolas con las existentes en el registro, buscando también coincidencias.

Este método, por definición, siempre consigue su meta, si bien el problema que tienen es de recursos y tiempo. Si una contraseña es suficientemente larga, el número de combinaciones posibles se dispara exponencialmente, por lo que es prácticamente imposible, a efectos prácticos, probar todas las posibilidades. De este ataque aprendemos que debemos utilizar una buena longitud de contraseña y evitar las cortas.

Post Author: Nemo1

Nemo1La primera vez que se acercó en serio a un Pc fue en el año 1.995, y aprendió de forma autodidacta a utilizarlo, empezando por el mítico MS-DOS, y más tarde adentrándose en el mundo de Windows en sus distintas versiones.

El primer acercamiento con Internet comenzó en el año 1999, cuando Internet en España estaba aún en "pañales". Le sorprendió tanto que la información en español fuera tan escasa, que ese mismo año plasmó sus conocimientos informáticos en la primera página web que publicó, y desde entonces no ha parado.

Posee conocimientos sobre el entorno de Windows a nivel avanzado y de Linux a nivel usuario, utilizando en la actualidad la distribución de Ubuntu.

Se considera un mero aprendiz y sigue manteniendo un gran interés por la informática e Internet, manteniendo una mente abierta, y es un gran apasionado del software libre.