Entradas etiquetadas en ‘contraseñas’
9-01-2009
Últimamente están saliendo a la palestra muchos casos de robos de cuentas gracias a la ingeniería social, es decir, el engaño de toda la vida. Ni las plataformas más potentes se libran, porque, como se suele repetir en el mundo de la seguridad, ésta es tan fuerte como el más débil de sus eslabones: el usuario. Así que si alguien os vende un día la moto de la seguridad total, desconfiad de inmediato. Eso no es posible.
Una tecnología que lleva un tiempo interesándome para la autenticación es OpenID. A continuación veremos sus puntos fuertes y sus puntos débiles.

¿Qué es OpenID?
Según la wikipedia es un sistema de identificación digital descentralizado, con el que un usuario puede identificarse en una página web a través de una URL o un XRI. Es decir, una forma de autenticarse en las páginas web sin necesidad de tener un usuario por cada una de esas plataformas. Algo así como mandar a todas las webs a un lugar central a pedir nuestras credenciales. Ese servidor central se denomina proveedor de identidad o IdP. ¿Os imagináis no tener que exprimiros más los sesos cada vez que tenéis que iniciar sesión en esa página de la que no recordáis ni el nombre de usuario ni la contraseña? Se acabó también usar la misma contraseña para todo (con el peligro que eso entraña). Basta con meter nuestra url de identificación para que se ponga en contacto con nuestro IdP. Incluso podremos decidir qué datos compartimos con esa página en concreto.
Para los que crean webs, también puede ser de gran ayuda porque ya no tienen que encargarse de la gestión de usuarios.
Pero cuidado, que no todo el campo es orégano. Esto también hace que tengamos un único pie de apoyo. Si logran hacerse con nuestra contraseña en el IdP, habremos comprometido toda nuestra identidad digital. Y hacer phising de esta cuenta puede llegar a ser realmente fácil. Por ejemplo, puedo crear una página “tarro de miel” (es decir, para atraer a los incautos) que necesite logueo con OpenID. Cuando lo haga el usuario, le redirigiré a una página falsa para que meta sus credenciales. Y es que el problema es que soy yo quien hace la redirección al IdP.
Además, estamos dando un inmenso poder a ese servidor central (que sabrá incluso por donde navegamos). La ventaja es que nosotros mismos podemos tener nuestro propio servidor y así no depender del manido cloud computing (es la ventaja que tienen los estándares web abiertos).
Más son los problemas que aún aquejan a este sistema, así que mi recomendación es que no se haga uso de él para cosas muy importantes
¿Cómo hacemos que nuestro blog haga de IdP?
No es que haga de IdP tal como lo he explicado anteriormente, sino que sirve de intermediario (algo así como lo hace Feedburner con nuestros rss). Dado que es más difícil que cambiemos la dirección de nuestra página personal que la plataforma que nos da las credenciales, me parece la mejor solución.
Para que esto funcione, copiamos las siguientes líneas dentro de las etiquetas <head> (en este ejemplo se hace uso de el IdP openid.blogs.es, pero tendrás que buscar las líneas correspondientes al tuyo):
<link rel=”openid.server” href=”http://openid.blogs.es/index.php/serve” />
<link rel=”openid.delegate” href=”http://openid.blogs.es/NOMBREDEUSUARIO” />
Si en un momento dado cambiamos de IdP (o éste cierra la persiana), sólo tendremos que modificarlo en la cabecera de nuestro blog y no se irán al garete nuestras credenciales en otras plataformas. De esta forma independizamos la dirección que nos representa en línea del servicio IdP.
¿Cómo hacemos para que nuestros lectores puedan dejar comentarios con su cuenta OpenID?
Gracias a OpenID se podría acabar con las suplantaciones en los comentarios, puesto que es una forma clara de decir: ésta soy yo. Existen varios plugins para WordPress que permiten que los comentaristas se identifiquen mediante OpenID: OpenID Comments, OpenID for WordPress, WordPress Delegate Plugin, … Y como el camino se aprende andando y es mejor predicar con el ejemplo, yo he instalado OpenID, que permite que cualquiera deje un comentario sin necesidad de rellenar su nombre y dirección de correo. Además también se puede acceder al back-end de wordpress con esta identidad. Por cierto, si tenéis instalado WP Contact Form III, tendréis que hacer unos arreglitos para que convivan ambos.
Incluso a plataformas como Mediawiki se les puede instalar una extensión para que se use la autenticación vía OpenID.
Lugares donde puedes crearte una cuenta OpenID:
Si tienes tu blog alojado en blogger, LiveJournal, WordPress.com, …. , tu propia url ya te sirve de identificador.
¿Qué grandes plataformas permiten el uso de OpenID?
Technorati, Blogger, Zoomr, Bloguzz, Live Journal, Wikispaces, … y muchos más. Incluso hay sites en los que es la única manera de loguearse, como por ejemplo, Twitterfeed o blogs donde sólo se puede comentar así, como el de David de Ugarte.
Otros enlaces de interés:
11-09-2007
He vuelto de vacaciones un poco vaga pero, como lo prometido es deuda, aquí sigo con mi serie de posts sobre John The Ripper. ¡Empecemos a jugar ya!
Primeramente, tenemos que observar si en el archivo /etc/passwd, en la posición de la contraseña, aparece alguna de las formas siguientes:
Un ejemplo del proceso que realiza esta herramienta es el siguiente:
passwd: root:x:0:0:root:/root:/bin/bash
shadow: root:fqjGKoSmasmFk:12712:0:99999:7:::
nuevo-passwd: root:fqjGKoSmasmFk:0:0:root:/root:/bin/bash
Una vez que ya se cuenta con el archivo definitivo sobre el que aplicar John, es necesario definir el modo de ejecución de éste para obtener las claves. Antes de pasar a comentar esto, comprobaremos las opciones con las que cuenta. Para verlas, sólo es necesario lanzar la aplicación sin pasarle ningún parámetro:

Modos de ejecución:
1. Single Crack
john −single FICHERO_PASSWORD
john –si FICHERO_PASSWORD
Este es el modo con el que se debería comenzar a trabajar. Con él se intentará usar la información del login/GECOS como passwords, ya que en muchas ocasiones los usuarios utilizan como contraseña el mismo login, o el nombre, o el apellido, etc,… por ejemplo:
rhantos:RKxhLEYIi7b9o:150:2000:Roberto Hantos:/home/rhantos:/bin/csh
Donde el password es roberto. En modo single esta contraseña sale en mucho menos de un segundo mientras que en modo incremental llevaría mucho tiempo:

Como en modo single crack la información que se usa es sólo la de la cuenta en que se ha tomado (y sólo con passwords con los mismos ‘salts’, lo que no consume tiempo extra), es mucho más rápido que el modo con diccionarios, y permite el uso de muchas reglas (éstas están siempre activadas en este modo) en un tiempo razonable.
2. Diccionarios o listas de palabras
john −wordfile:DICCIONARIO FICHERO_PASSWORD
john −w:DICCIONARIO FICHERO_PASSWORD
Este es el modo más simple soportado por John. Todo lo que se necesita hacer es especificar un wordlist (un archivo con una palabra por línea). Para descargaros diccionarios, podéis hacerlo desde esta página (tenéis hasta diccionarios de Tolkien
). El wordlist no debe contener vacíos.
John no ordena las palabras, ya que necesitaría cargar toda la lista en la memoria. Lee directamente del disco mientras está en funcionamiento. Además, no ordenar las palabras, permite poner las más frecuentes al principio de la lista para que sean probadas antes (words first). Sin embargo, si no se tiene ninguna preferencia en el orden, es mejor ordenarlas alfabéticamente. John funciona un poco más rápido si cada palabra difiere solo en algunos caracteres, esto es especialmente aplicable si sólo se ataca a unos pocos passwords de una vez.
Adicionalmente, no se debería tener palabras de más de 8 caracteres (o cualquiera que sea el limite del actual formato de cifrado), ya que los passwords serán considerados iguales si las 8 primeras letras lo son. John puede manejar estas situaciones (y solo probará el password una vez) cuando dichas palabras estén una a continuación de la otra (esto es, cuando la lista esté ordenada). Es preferible no truncar la lista en 8 caracteres, ya que el resto pueden ser necesitados si se activan las reglas.
Aún faltan más modos por explicar, pero lo dejaremos para otro post.
En anteriores capítulos de la saga:
¿Cómo de seguras son tus claves?
¿Cómo de seguras son tus claves? (segundo asalto)
Instalando John The Ripper
25-07-2007
Recordemos que John es software libre, así que si visitamos su página, podremos descargarnos tanto su ejecutable como su código (ya tenemos disponible la versión estable 1.7.0.2).
La instalación es tan simple que no requiere instalación
Sólo tendremos que bajarnos el ejecutable y empezar a funcionar. Eso sí, en windows, si tenéis algún antivirus instalado, os dirá que es una herramienta del mal y puede que incluso os la borre del tirón.
En sistemas linux sabor Debian podemos también instalarlo con un simple:
apt-get install john
Sin embargo, si sois de los linuxeros de bytes en el pecho, podéis compilarlo a mano. Para ello nos descargamos las fuentes de aquí:
John the Ripper 1.7.0.2 (Unix – tar.gz, 784 KB) y su firma.
Descomprimimos con la siguiente instrucción:
tar -xzvf john-1.7.0.2.tar.gz
Entramos en la carpeta john-1.7.0.2/src y ejecutamos el comando: make clean generic. Si todo ha ido bien, se nos habrá creado un ejecutable denominado john en la carpeta john-1.7.0.2/run. Para probarlo, lanzamos:
./john –test
¿A que esta parte ha sido fácil? Pues mañana mismo empezaré a explicar el funcionamiento.
En anteriores capítulos de la saga:
¿Cómo de seguras son tus claves?
¿Cómo de seguras son tus claves? (segundo asalto)
24-07-2007

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?
12-07-2007
Tantas y tantas aplicaciones inundan hoy en día nuestro ordenador, que nos toca memorizar una gran cantidad de contraseñas. Como consecuencia terminamos poniendo siempre la misma. De hecho, conozco a mucha gente ¡que usa su clave de cajero! Así que el robo de nuestras passwords puede ser catastrófico.
Por eso voy a hacer una serie de posts explicando el funcionamiento de John The Ripper, un programa que nos servirá para evaluar lo fuerte o débil que es nuestra contraseña. Porque la mejor defensa es un buen ataque
¿Qué es John the Ripper?
John the Ripper es una aplicación de código abierto que se utiliza para la recuperación de claves, o dicho de otra forma y dependiendo de quién lo use, un crackeador de contraseñas (de ahí lo de destripador). Con ella podremos comprobar la calidad de las claves de los usuarios, intentando encontrar las que sean débiles (y por tanto inseguras) y así previniendo que un presunto atacante que obtenga el fichero de claves, pueda hacer lo mismo.
Es multiplataforma (lo tenemos tanto para Unix, como para Windows, MS-DOS, BeOS y OpenVMS). Gracias a esta característica, se permite su uso incluso continuando una sesión que se comenzó en otro sistema.
Está diseñado para ser a la vez potente y rápido (aunque su rendimiento depende mucho de la máquina en la que se ejecute). Combina bastantes modos de recuperación de claves en un solo programa y es completamente configurable para distintas necesidades (incluso se puede definir un modo propio usando el compilador interno, que soporta un sublenguaje de C).
Hay tres formas de aplicar John:
- Single Crack: Este modo intentará usar la información de login/GECOS para obtener la password. Es decir, si al crear nuestro usuario hemos introducido nuestro nombre y apellidos, tratará de combinar esos datos para obtener la contraseña.
- Utilizando diccionarios de claves o archivos de palabras. Con esta posibilidad se permite añadir reglas para que el programa “juegue” con las palabras del diccionario. Esta opción es muy potente. De hecho, estoy convencida que con un diccionario del Señor de los Anillos sería capaz de conseguir el 50% de claves de los usuarios de la Red
- Modo incremental o también conocido como fuerza bruta: como su propio nombre indica, probará todas las combinaciones de caracteres posibles. También será el modo que más recursos y tiempo consuma.
En próximos posts contaré cómo instalarlo y usar sus múltiples modos.
Y vosotros, ¿sois de los que usáis la misma contraseña para todo?