Blog / ¿De verdad crees que tu contraseña es segura?

¿De verdad crees que tu contraseña es segura?

by SW Team

Hace unos días celebramos el día mundial de la contraseña y no quería perderme esta oportunidad para dar un apunte que quizá sorprenda a mucha gente: tu contraseña probablemente no sea tan segura como crees que es.

Vayamos al grano y veamos un pequeño ejemplo. ¿Cuál de estas dos contraseñas es más segura?

  • Contraseña A: 7%C$rn2E
  • Contraseña B: gAt0¿¿¿¿¿¿

El mantra de contraseñas en internet dice lo siguiente: una contraseña debería tener al menos 8 caracteres, un símbolo, una minúscula, una mayúscula, un número y no debe contener ninguna palabra conocida. Sin embargo, te puedo asegurar que en un ataque común de fuerza bruta, la contraseña B será estadísticamente 9025 veces más segura que la contraseña A.

¿Cómo es posible?

La razón por la que deberías elegir la contraseña B también desvela cuál es el aspecto más importante que debes tener en cuenta a la hora de crear una contraseña fiable: la longitud.

En la práctica, el hecho de que una contraseña sea más larga también implica que un atacante tendrá que probar un número de combinaciones exponencialmente mayor para descubrir cuál es la tuya.

Es fácil: si te pido que adivines un número del 0 al 9, (un dígito) te tomará como mucho diez intentos. Si te pido que adivines un número del 00 al 99 (dos dígitos), el esfuerzo necesario será, de promedio, diez veces mayor. Sólo añadiendo un dígito, hemos multiplicado por diez la dificultad del juego.

Adivinar contraseñas no es un juego de 'Mastermind'

¿Recuerdas el famoso juego de mesa 'Mastermind'? En este juego la meta era advinar un código de colores oculto mediante el método de ensayo y error. Por lo general, después de cada intento recibías información adicional y precisamente era esa información (o pista) la que permitiá a uno acercarse, progresivamente, al resultado final. Sin embargo, adivinar contraseñas es totalmente distinto.

Cuando un atacante trata de adivinar (o coloquialmente "romper") una contraseña, no dispone de ningún tipo de información adicional después de un intento fallido. Podría estar literalmente a un dígito de diferencia y nunca lo sabría. Es decir: la única opción para un atacante consiste en probar todas las combinaciones posibles hasta dar con la correcta. Es fácil ver cómo una contraseña más larga, aunque sea un solo dígito, dificulte considerablemente el esfuerzo y tiempo necesario para romper una contraseña.

Longitud VS variedad VS aletoriedad - ¿Cuál es más importante?

El objetivo final a la hora de elegir una contraseña segura es incrementar, el máximo posible, el número de combinaciones que un atacante debe probar para poder dar con ella. En este sentido, hay tres aspectos que juegan un papel fundamental:

  • Longitud: ¿Cuántos caracteres tiene la contraseña?
  • Variedad: ¿Qué caracteres podría tener la contraseña?
  • Aletoriedad: ¿Cómo de predecible es la elección de caracteres?

Resulta obvio que nuestra contraseña no debe flaquear en ninguno de estos tres aspectos, pero ahora que conocemos el objetivo real de una contraseña (ser difícil de adivinar), también resulta innegable que hay elementos que tienen un mayor peso que otros.

Sin ánimo de entrar en tecnicismos, una fórmula general y sencilla para calcular cuántas combinaciones tiene una contraseña es la siguiente:

v^1 + v^2 +... v^n

donde v (variedad) es el número de caracteres distintos que podríamos haber utilizado y n (longitud) es el número de caracteres que tiene una contraseña.

Vemos en la fórmula anterior que la longitud (n) ocupa el lugar de exponente. Esto significa que la dificultad de romper una contraseña crece exponencialmente cuánto más larga sea.

Aletoriedad y ataques de diccionario

Como es de esperar, incluso una contraseña larga será débil si es predecible. Es por esta misma razón que se desaconseja utilizar palabras comunes e incluso típicos esquemas de sustitución como por ejemplo: '(0ntr4s3ñ4'.

Por lo general, las contraseñas predecibles son las primeras en caer al poder ser atacadas mediante lo que se conoce como "un ataque de diccionario". Un diccionario de contraseñas es esencialmente una lista que recoge millones de palabras comunes y permutaciones típicas (y no tan típicas) que un ordenador es capaz de comprobar en muy poco tiempo.

'Hashcat', una de las herramientas más comunes para romper contraseñas.

Lo que mucha gente no sabe es que un simple cambio, un simple caracter, puede inutilizar por completo un ataque de diccionario. Esto es debido a que el atacante, al igual que explicamos anteriormente, debe dar sí o sí con la combinación exacta.

Si, por ejemplo combinamos una contraseña débil como 'hola123' con una palabra totalmente desconocida e inventada por nosotros, entonces la contraseña será imune a ataques de diccionario. Ejemplo 'hola123Wrixiulifüs'.

No sólo eso, sino que añadiendo esta palabra desconocida, habremos incrementado la longitud de la contraseña notablemente y con ello también la dificultad ante un ataque de fuerza bruta que necesitará de probar, una por una, todas las combinaciones posibles hasta dar con la correcta.

... pero las personas somos predecibles

Y ahora es cuando debo mostrarme escéptico entre aquello que hemos visto (la teoría) y lo que sucede en la práctica. Lo cierto es que las personas tendemos a ser muy predecibles: terminar todas las contraseñas con el mismo caracter, utilizar siempre los mismos símbolos, empezar siempre por minúscula o mayúscula. Las personas somos animales de patrones y hábitos.

Es por esta razón que nadie debería sobreestimar su capacidad de ser impredicible. Palabras como la que me acabo de inventar, Wrixiulifüs, podrían ya haber sido incluidas en un diccionario de contraseñas por el simple echo de aparecer en este artículo. Un atacante podría descubrir mediante ingeniería social qué patrones sueles utilizar para crear tus contraseñas, cuáles son las letras que más utilizas de media o, sencillamente, asumir que eres como las demás personas y recurrirás a los patrones más comunes.

En todo caso, la conclusión sigue siendo la misma: cuánto más larga la contraseña, más segura.

Precisamente, atendiendo a que las personas somos precedibles y tendemos a utilizar palabras fácilmente memorables, resulta aún más importante que compensemos esta falta de aletoriedad con un mayor número de combinaciones que el atacante deba probar. Y eso se consigue precisamente haciendo la contraseña más larga.

Conclusiones

Utilices contraseñas imposibles de recordar y completamente aleatorias o, por el contrario, recurras a palabras más típicas y sistemas de sustitución simples, todas tus contraseñas pueden ser más seguras si las haces más largas.

No importa tanto de qué forma alargues una contraseña (con palabras, un solo símbolo repetido o más caracteres aleatorios) como el hecho de que lo hagas. Por supuesto, cuánto más impredecible mejor, pero aún así debes recordar que cualquier caracter addicional ayudará a multiplicar exponencialmente la seguridad de tu contraseña.

Si aún utilizas contraseñas de 6 u 8 caracteres, deberías empezar a jubilarlas. A día de hoy, un atacante que obtenga acceso a la base de datos de contraseñas de un servidor, podría romper una contraseña totalmente aleatoria de 8 caracteres en cuestión de minutos u horas según la capacidad de cálculo de su equipo. ¿Y una contraseña de 12 caracteres? Al menos varios siglos.

Queda clara, pues, la importancia de la longitud de tu contraseña.

----

Nota final:

Este artículo ha sido posible gracias a mis compañeros, expertos en ciberseguridad, detección y prevención de ataques informáticos. ¡Muchas gracias a ellos por explicármelo de forma tan entendedora y ayudarme con el artículo!

Si quieres que ellos también te ayuden y asesoren con la seguridad de tu empresa, servidores, red o infraestructura TI general, no dudes en visitar la web de nuestra compañía SW Hosting y contactar con ellos. No tiene compromiso y seguro que les hace mucha ilusión (y a mi también) si mencionas que has leído este artículo.

¡Saludos y estamos en contacto!

i