Los chicos de Forbes México volvieron a hacerse eco de otra de mis respuestas a la pregunta que un usuario de Quora me lanzaba hace ya un par de meses: ¿Qué son más seguras, las contraseñas con múltiples palabras o las que están hechas usando una combinación de letras, números y símbolos? (ES).
La tesis que defendí fue básicamente que la seguridad ya no depende tanto de la propia estructura de la contraseña como de las medidas de seguridad que se han tomado a la hora de almacenarla. Básicamente porque mes tras mes podemos observar cómo se comprometen millones de cuentas simplemente por fallos de seguridad que afectan a los sistemas de bases de datos de X gran servicio o compañía. Se filtran los credenciales, y como la mayoría utilizan el mismo usuario contraseña para cada servicio, y como la mayoría de esas potenciales víctimas no se van a enterar del hackeo, ocurre lo que ocurre.
Contra eso, ya podríamos haber creado la contraseña más difícil y compleja que existe, que si ésta ha sido almacenada en texto plano o bajo un cifrado débil, y este servicio ha visto comprometida su seguridad, va a dar lo mismo.
Siendo conscientes de esto, por supuesto, tenemos estrategias para mejorar la robustez de una contraseña, y que se basan, como cabría esperar, en incluir caracteres y elementos que no están contemplados habitualmente en bibliotecas de contraseñas (evitando así ataques de fuerza bruta), así como el uso de mnemotécnica para encontrar un justo equilibrio entre una contraseña fácil de recordar y una contraseña que no contenga, per sé, datos habitualmente utilizados en este tipo de elementos (nombre+NIF, o nombre+fecha de nacimiento…, evitando así, en pequeña medida, ataques dirigidos).
Sin obviar, por cierto, que la seguridad de cualquier sistema único de identificación empieza ya a ser considerado insuficiente, cobrando mayor protagonismo y siendo por ello altamente recomendable recurrir a dobles factores de autenticación.
La respuesta ha sido portada de Forbes México (ES) recientemente, y me ha parecido oportuno dejarla también por aquí como archivo permanente por si a alguien más le puede interesar:
¿Qué tipo de password es el más seguro?
La seguridad de una contraseña no depende de la propia contraseña, sino de las medidas que se hayan tenido a la hora de almacenarla. De nada nos sirve tener una contraseña larguísima y complicada si luego el servicio la guarda en texto plano y sufre una fuga de información.
Entiendo por tanto que te refieres a robustez, y en ese caso, una contraseña es más robusta conforme más elementos tiene, alejados de lo que podríamos encontrar en una biblioteca de contraseñas (series de contraseñas habituales) y/o accesibles mediante un conocimiento de la víctima (utilización de nombres, fechas o demás eventos que competen a la persona, y que podrían ser utilizados en campañas de spear phishing).
Es decir: Una contraseña del tipo “pepitonosabíaloquehacía” es menos robusta que otra del tipo “p.1~n9€lh”, por el simple hecho de que aunque sea más corta, hace uso de caracteres que no suelen estar incluidos en una biblioteca de contraseñas, cosa que sí podría ocurrir con la anterior.
De ahí que lo mejor sea crearse un modelo que transforme quizás una frase (múltiples palabras) a un conjunto de caracteres alfanuméricos que no tengan a priori sentido. Así es más sencillo de recordar, y mantenemos una robustez adecuada.
También decir que existen métodos de seguridad más eficientes que el de las contraseñas y que afortunadamente cada vez están democratizándose más. Sistemas de seguridad basados en la huella dactilar o los patrones de imágenes equilibran de una forma bastante más adecuada la seguridad, integridad y usabilidad que como lo hace el mundo de las contraseñas.
El mayor problema para determinar la seguridad de un sistema es que no podemos auditarlo, es decir, que cuando nos damos de alta en servicios de la red, me tengo que fiar que hará lo que tiene que hacer.
Dado que eso no es posible, y que, a pesar de existir nuevos sistemas que refuerzan la seguridad, la contraseña es la llave de nuestra vida electrónica y lo seguirá siendo durante años así que lo mejor es que hagamos lo que mejor podamos en nuestro lado
Yo por mi parte llevo cerca de diez años aplicando estos principios
1.- No repetir la contraseña en ningún sitio. Es decir, cada sitio web en el que entro tengo un password totalmente distinto. De ese modo, si se vulnera un sitio web en el que me he dado de alta, con el password solo podrían tener acceso a esa web. Cabe decir que no lo he seguido a pies puntillas, ciertamente, en aquellos sitios que me obligan a registrarme para dejarme ver un dato, lo hago con el email falso y el password 123456. Pero en los demás…
2.- El password no se debe guardar en ningún sitio. Ni en ficheros, ni en un software que guarda passwords ni en ningún servicio en la nube. Ciertamente el último no existía cuando empecé a aplicar este principio, pero el problema era que si utilizaba un fichero cifrado, si perdía el fichero o el password de acceso, perdía todo, y guardarlo en ficheros lo veía como dejar un post it en el monitor
3.- Debe ser fácil de recordar, logicamente si tenemos que recordarlo y lo olvidamos no nos sirve, la idea es que no recordamos la contraseña, si no la forma de obtenerla
4.- Debe admitir sitios que te obligan a cambiar el password cada cierto tiempo, y, logicamente, no sea deducible sabiendo una. Durante años he visto que en esos sitios que te obligan a cambiar el password se utilicen esquemas del tipo «junio2016» que en vez de aumentar la seguridad, la disminuyen.
5.- Debe contener caracteres especiales. Aunque esto no lo consigo con el método en si, si no con modificaciones
A groso modo, por que explicarlo al completo aquí sería largo, la idea la cogí de como funcionaba la máquina enigma, donde la clave parte del nombre del sitio web, y utilizo la disposición del teclado donde vamos girando en cada una de las posiciones, dificultando deducir el método incluso teniendo muchas contraseñas.
Pero eso, dicho sea de paso, no está exento de problemas, puesto que hay sitios donde te obligan a utilizar determinado número de dígitos, o no admiten cierto tipo de carácteres, o te piden algunos requisitos que no se pueden cumplir. Aunque cuando me resultó algo peor fue al llegar lo teclados de los móviles, donde la disposición no es la misma.
Pero eso si, para mejorar el algoritmo, siempre escribo el password al entrar en un sitio web, de ese modo consigo escribir más rápido y casi sin pensar.
Ahora que hay dobles factores de autenticación, los aplico si están disponibles, que desde luego aumentan la seguridad.
Pero los basados en biometría intentaré evitarlos mientras pueda, como no puedo auditar la seguridad de esos sistemas, no se como fiarme de ellos. Cuando pierdan mi huella, el hash de mi huella o algo que permita reconstruir mi huella o el hash que se utilice en donde sea que sea, no podrá volver a ser un identificativo, y, en cuanto se democraticen en todas partes…