:::: MENU ::::

¡Cuidado con las contraseñas!

Supongo que estaréis cansados de escuchar lo mismo cada día, cuidado con las contraseñas es una frase que os dirán muchos informáticos/hackers cuando os hablen de seguridad informática.
Por si no sabéis por que o creéis que el riesgo es inferior y os pensáis que cuando os lo decimos somos exagerados, voy a explicar varias razones por las cuales deberíais tener contraseñas largas, raras, diferentes en todos los sitios y además, a ser posible, con un segundo o incluso tercer factor de autenticación (con un segundo factor es suficiente, aun que aun así, no estamos nunca del todo seguros).

Razones para que la contraseña no tenga sentido
Sinceramente, no eres el único que sabe cuando te casastes (se acordará más tu mujer) y tampoco eres el único que sabe el nombre de tu perro. Y sí, sobre esto creo que no hay más.

Razones para que las contraseñas sean largas y raras
Básicamente una de las razones fundamentales es para evitar la fuerza bruta, que consiste en probar contraseñas hasta averiguarla, obviamente eso no lo hace una persona si no un programa, y es por ello que no se cansa de probar hasta encontrarle, obviamente llegará un punto que se dará por vencido, pero eso significa meses probando, ya que con la velocidad de los proxies que iría intercambiando, buf, mejor ni pensar en esa velocidad que nos deprimimos. Obviamente, si es una contraseña que no tenga nada que ver con internet o que sea una conexión rápida, supondría mucho menos esfuerzo, pero aun así hay una cosa llamada diccionarios, por lo que si pones algo coherente será más fácil encontrarla puesto que es lo primero que buscan dichos programas. Además, si intentan “desencriptar” (y lo pongo entre comillas por que no se desencripta) van a buscar el hash (lo cual mencionaré en la siguiente razón) y cuanto más complicada sea, menos posibilidades habrá de que la haya generado el robot que va metiendo contraseñas (si no la ha introducido otra persona ya por que apretó al azar las mismas teclas/números/símbolos que tu, lo cual es extraño).

Razones para que sean diferentes en todos los sitios
Para empezar hay sitios que ni encriptan las contraseñas al almacenarlas (lo cual es ilegal según el artículo 93.3 del reglamento que desarrolla la Ley orgánica de protección de datos), y los hay que encriptan las contraseñas con métodos comunes, por ejemplo, una de las encriptaciones más realizadas es la de MD5. Muy bien, ¿cual es el problema de eso? pues muy fácil, si encuentran una vulnerabilidad en el sitio web en cuestión mediante la cual puedan acceder a la base de datos (o al sitio donde guarden dichas contraseñas) simplemente será tan fácil como buscar tu nombre para encontrarlas, y si las tienen y tienes la misma contraseña en todas las páginas webs… Creo que no hace falta decir nada más.
¿Y que pasa si está encriptada diréis algunos? Pues como he mencionado anteriormente hay webs que ofrecen gigantescas bases de datos repletas de palabras y combinaciones con un montón de variedad de Hashes para poder encontrar dicha contraseña. Es posible que otra contraseña que no sea la tuya también te permita entrar a una web puesto que hay un número de hashes limitado y por ello se van repitiendo, pero hay poquisimas posibilidades entre incontables millones, por lo que eso no debería preocuparte, pero si que es posible que si pongo ‘a’ en un caso hipotético eso coincida con ‘sijndf9uewghf98342egf4eg894g89324tg89gt80934e2’ (me lo he inventado, pero podría ocurrir), y entonces la contraseña ‘sijndf9uewghf98342egf4eg894g89324tg89gt80934e2’  pasaría a ser una de las más inseguras del mundo. Adjunto abajo un ejemplo de contraseña “desencriptada”.

Hash 'e10adc3949ba59abbe56e057f20f883e' MD5 "desencriptado"

Hash ‘e10adc3949ba59abbe56e057f20f883e’ MD5 “desencriptado”

Creo que con eso queda claro el por qué usar contraseñas diferentes en todos los sitios, contraseñas largas (si eres un gurú de la seguridad comprobando que no coincida con ninguna contraseña de al menos 8 caracteres con todos los simbolos en MD5 y SHA1), contraseñas con muchisimos símbolos y sin sentido para evitar que la descifren y evitar fuerza bruta y diccionarios, etc.

Una herramienta que os puede resultar útil es haveibeenpwned.com, una web que comprueba si has sido víctima sin darte cuenta de accesos indeseados a varias empresas, entre ellas Adobe, que tubo una gran crisis no hace demasiado tiempo, y lo comprueba ya que muchas veces las contraseñas son publicadas en lugares como pastebin (y también otro tipo de información sensible). Obviamente no contiene todas, pero si bastantes, si sales ahí, al menos date por aludido y cambia la contraseña, y no digas “no van a por mi, no me harán nada”, por que esto no es así, y si no puedes buscar libros, documentales, vídeos, charlas, etc.

Ya que estoy os cuento una anécdota:
Hará un año más o menos, me aburría bastante, así que decidí hacer un robot que generara Hashes en MD5 y SHA1 y me los guardara en una base de datos junto a su respectiva cadena de texto para poder tener contraseñas a cholón a lo MD5decoder (entre otros cientos de webs existentes que ofrecen exactamente lo mismo). El robot iba generando contraseñas con un patrón, empezaba a, b, c… y, z, aa, ab, ac… zy, zz, aaa; más o menos como Excel, pero no solo con letras, también con números y caracteres que se usan comunmente en contraseñas (es decir, los que están en el teclado), tardé solo 20 minutos y generaba hasta 10.000/segundo y los guardaba en MySQL, en nada conseguí 100 millones de contraseñas, pero lo paré por que ocupaba mucho espacio, y total, solo quería demostrar que se podía hacer, con solo 20 minutitos de mi tiempo pude hacer eso, con ello demuestro que MD5 y SHA1 no es lo mejor a la hora de encriptar. Os iba a adjuntar el código, pero cabezón de mi, lo perdí al formatear :(

Bueno, ya es martes, un día menos para llegar al fin de semana, recordad que sigo preparando un post algo especial en el cual me gustaría eneñar a crear un chat seguro en C#, y explicaros cuatro cositas sobre los chats más comunes a la par que inseguros ;)