10 enero 2011

Grandes mentiras de las contraseñas.

Sobre contraseñas se ha escrito y hablado tanto que se podría imprimir en papel y forrar varias montañas. En este mismo blog lo hemos tratado decenas de veces. Mucha de esta literatura trata de dar directrices para que nuestras passwords sean seguras y lo cierto es que han de serlas y se ha de conocer unos mínimos criterios para seleccionarlas.

Hoy por hoy todos los que nos leéis seguro que ya sabéis como poner una buena contraseña, incluso cuando algunos servicios web solo hacen comprobaciones mínimas antes de aceptarla.

Políticas de contraseñas hay cientos, aunque es gracioso ver que algunas de ellas aún no se han enterado de los ataques por máscara y sustitución. Esos que con un conjunto de reglas, se le puede indicar a una herramienta como John  The Ripper que por ejemplo añada años antes o después de cada palabra de un diccionario, o remplace las "a" por "@" o por "4" y las "o" por "0", las "i" por "1" y esas técnicas tan comúnmente utilizadas.

ESET nos dice que "@cce0_$i$tem@" es una contraseña segura, ¿lo es? ¿y "MiConTRaseñA" que dice Skype? Desde luego son mejores que "conchi", pero... ¿seguras?


Otro caso es el de eBay, en el que nos ponen como ejemplo "caradehuevo" y "$superman1963":


Pese a que me apetece utilizar la palabra de la contraseña para insultar al autor de ese documento, me limitaré a comentar que esa contraseña esta incluso en diccionarios como el de rockyou.

Aunque de  lo que realmente quería hablar es de las recientes publicaciones de bases de datos de usuarios y contraseñas de servicios como lifehacker, rockyou, moneybrookers o la reciente filtración de 1.7 millones de usuarios de vodafone (sha256) que ya se están crackeando.

¿Contraseñas seguras? No, ninguna. Tus datos personales, tus credenciales de acceso, tus datos privados... TODO, acabará siendo volcado en un archivo de texto en algún momento. Tal vez se suba a megaupload y todos lo descarguemos o tal vez se quede en el disco duro de alguien que pruebe si esa misma contraseña la usas en Paypal. Puede que no salgamos en el top100 de contraseñas más usadas si evitamos poner "123456" o "queso", pero antes o después alguien convertirá el MD5, el DES, el SHA1 o lo que sea que lo guarda, en el conjunto de caracteres irrecordables que tecleamos cuando nos dimos de alta.

Cada vez se habla más del arcaico y obsoleto sistema de autenticación mediante usuario y contraseña y no me extraña.

20 comments :

FErArg dijo...

podemos solucionarlo o tendremos que seguir viviendo con la espada de Damocles de que alguna vez nuestras claves podrán ser publicadas?

Rarokillo dijo...

¿Alguna solución?

Florencio Cano dijo...

Si por "clave segura" entendemos "irrompible" estoy de acuerdo. Pero IMHO una clave segura es aquella suficientemente compleja (larga, carácteres) como para que obtenerla por fuerza bruta, diccionario o modificación de un diccionario, sea más costoso o improbable que hackear el sistema que proteje. ¿Qué tamaño tiene que tener el diccionario que contenga la clave $superman1963 y su hash SHA1? cualquier_caracter+palabra_diccionario_superheroes+año[1950-2011]

Estoy de acuerdo en que seleccionar una contraseña con un patrón la debilita pero seleccionar contraseñas complejas y tener una distinta para cada sistema obliga a que las almacenemos en algún sitio y eso también tiene un riesgo.

La tendencia es ir hacia los certificados digitales o sistemas biométricos, ¿no creeis?, pero sin duda, tendrán sus debilidades y vulnerabilidades y seguramente, los fallos humanos por falta de formación y/o concienciación seguirán existiendo.

Alejandro Ramos dijo...

@FErArg, @Raokillo lo mejor es considerar que ya las tienen. No almacenar nada sensible sin cifrar y considerar todo lo que publiquemos en nuestros espacios privados como información que puede ser publicada...

José A. Guasch dijo...

También habría que confirmar que donde se está uno autenticando es el sitio que realmente dice ser, y no utilizar la misma autenticación en sitios que "nos prometen" conectarse al sitio para su integración, como los típicos casos de páginas que te piden meter el messenger para contactar e importar tus contactos. Podríamos evitar fugas de información como las ocurridas con el caso Hotmail del que hablamos en el post ¿Qué ha ocurrido realmente con Hotmail?".

Alejandro Ramos dijo...

@Florencio Cano: Pues un tamaño de 1 palabra, "superman" y las correspondientes permutaciones para llegar hasta la que propones. Mira el diccionario de palabras que ha salido de gawker y te darás cuenta que se rompen en menos de 2 días.

Con procesamiento de 800 millones de comprobaciones por segundo como tiene ahora MD5 en un solo equipo, ¿que esperamos?

Más ejemplos? Mira las que están saliendo ahora en (supuestamente) vodafone:

0a5fa760b50dea6f71d3609b8226eb8c2983a59510745241ed663b950ecf29ef:ihatehackers33
013e55cd075829af8d9c70d20457fa427dfa32f50be189777cda0be03433897e:ILoveSteel13
cde49f6aa9877fbf2bdc6a9ecaa7feb0b6eb17cd149fe260c8426baecf5d5adf:BelaFarinRod3

viozar dijo...

Algunas páginas debería abstenerse de dar consejos, sería mejor para todos.
Muy bueno el post de hoy, y gracias por el consejo del comentario, que es lo que deberían poner las webs que te mandan cambiar o por 0: "No publiques información que no quieras que salga a la luz, paraporsi. Gracias."

Anónimo dijo...

Keepass es una buena alternativa para esto de las contraseñas... :D es multiplataforma , ademas lo puedes llevar siempre en tu android :D

SlowBait dijo...

Que alternativa hay al uso de autenticacion por usuario/contraseña en un servicio web?

jcea dijo...

¡¡¡OpenID al poder!!!

Anónimo dijo...

A raiz de lo de lifehacker, en Coding Horror publicaron un articulo muy interesante acerca de las contraseñas. En el hablaban de que la mayoría de la gente usa la misma contraseña para todos los sitios y que crackear una web (o crear una web maliciosa) puede significar acceder a los datos de los usuarios en múltiples webs.

La solución que proponía era delegar la identificación de los usuarios a terceras partes (OpenID, Google, Facebook, Twitter) reduciendo así los posibles puntos de fallo a uno.

Otra opción sería empezar a usar DNIs electrónicos y certificados, pero eso ya me da mal rollo.

jcea dijo...

Hace nada salió en Slashdot un artículo sobre el uso de Facebook como SSO (Single Sign On) en webs de terceros.

Una idea de pesadilla, pero que muestra a las claras que el modelo de usuario/clave está anticuado. Al menos para el público en general, que acede a todo a través del navegador.

OpenID consigue lo mismo sin una empresa que lo centralice todo.

De hecho, este verano tuve una epifanía: antes desarrollaba servicios con login dual: usuario/clave y OpenID. Ahora he decidido que la única autentificación permitida en mis nuevos servicios será OpenID. Quien quiera usuario/clave... que use ese usuario/clave para crear una cuenta OpenID en cualquiera de las docenas de proveedores gratuitos disponibles. Y dicha cuenta para acceder a mi servicio :).

Por ejemplo, es lo que hace la gente de StackOverflow.

PS: Mi OpenID es http://www.jcea.es/, y lo estoy usando para autentificarme en el foro, sin necesitar una cuenta en blogger.

Anónimo dijo...

¿La solución que proponen algunos es dar las contraseñas a terceros para que no las tengamos que recordar?

¿Han nombrado Faceebook?

¿Estoy despierto o alucinando?

Punto de fallo único en esos sitios, por no hablar de empleados con acceso a esa información.

A mi no me importa que pudieran entrarme en la cuenta del facebook para las folliamigas, pero la del banco como que no.

Prefiero tenerlas con las joyas en la olla express de casa...

Anónimo dijo...

A ver, es que para la cuenta del banco, lo suyo es tirar de certificado digital (como el del dni electrónico, por ejemplo)

Alexis dijo...

Les contare mi truco para crear contraseñas seguras, ahi ustedes me diran si lo estoy haciendo bien o mal.

pues primero pongo los primeros 3 caracteres de la pagina en la que me estoy registrando en este caso seria "sec", luego unas palabras facil de recordar por mi (siempre uso las mismas palabras) separadas por guion bajo, por ejemplo uso "anonimo_freestyle" y lo termino con un @

mi contraseña quedaria de la siguiente forma:

secanonimo_freestyle@

esto digamos no es muy seguro, pero mi truco es correr mis dedos hacia la linea de arriba del teclado (normalmente estan en asdfg ñlkjh al correrlos mis dedos quedan en qwert y poiuy) entonces procedo a escribir mi contraseña, la cual quedaria asi:
w3dqh9h8j9_r433w56o3@

lo mismo se puede hacer con cualquier palabra por ejemplo:
tengoqueconseguirvidaynovisitarestaspaginas@
quedaria de la suguiente forma:
53ht9173d9hw3t784f8eq7h9f8w85q43w5qw0qt8hqw@

claro que estos solo podran hacerlo los que escriben sin mirar el teclado, ya que estamos acostumbrados a la posicion normal de las teclas y al correr los dedos hacia arriba no notaran la diferencia.

esperoo haberme hecho entender :P

otra cosa que hago es, para paginas sin importancia siempre uso la misma contraseña (paginas de juegos y foros etc) y para paginas importantes (correo, mi pagina personal, facebook) cambio la contraseña una vez al mes (lo cual es muy simple por que solo cambio la palabra de el medio en mi primer ejemplo era "anonimo_freestyle" la cambio por el nombre de la mujer con la que me quiero acostar ese mes ejm: pamela_valencia al correr mis dedos quedaria 0qj3oq_fqo3hd8q)

wqo7e9w j75 g73hq oq 0qt8hq :P

Anónimo dijo...

@Alexis Bueno... yo prefiero un generador aleatorio (ha ser posible no modular), y si encima las puedes guardar en un AES-256... que mas pedir ??

Mira esto ;)
http://keepass.info/help/base/security.html

Anónimo dijo...

".... lo mejor es considerar que ya las tienen. No almacenar nada sensible sin cifrar y considerar todo lo que publiquemos en nuestros espacios privados como información que puede ser publicada... " Entiendo que es lo más recomendable. ¿Pero y si no es en sí la información sino la suplantación?. No todo lo valioso se encuentra en el interior, sino en la cáscara: a parte de mi experiencia sufrida recordemos inconcebibles como la fuga de la carcel por fax (http://www.elpais.com/articulo/madrid/Segunda/fuga/reo/Estremera/orden/falsa/elpepiespmad/20110106elpmad_6/Tes) ... por hacer un paralelismo reducido al absurdo.

Juan Escobar dijo...

Excelente post... desde hace mucho había pensado en software que hiciera estas sustituciones y el cambio de concepto a lo que entendemos por contraseñas seguras. No sabía que ya jtr ya lo hace.

Enhorabuena!

Toni dijo...

Algunas preguntas, si sois tan amables.

Es seguro guardar todas las contraseñas en un servicio de documentos on line (Evernote, DropBox, etc.)?? Siempre que la contraseña para acceder a esos sitios sea segura, claro.

Y usar una contraseña maestra en el navegador?

Muchas gracias!

Alejandro Ramos dijo...

@Toni: si guardas datos de contraseñas en un servicio online, ese archivo debería a su vez tener otra contraseña que no esté almacenada en ningún servicio. Por ejemplo un truecrypt o un keepass

Lo de la contraseña maestra del navegador no lo entiendo, si te refieres a aplicaciones tipo, LastPass, estos sistemas no almacenan los datos de tu clave en ningún sistema, únicamente en el propio fichero en local, por lo que si la contraseña es realmente segura, no debería ser un problema