La respuesta son las filtraciones de contraseñas. De vez en cuando, sitios web populares como LinkedIn y Facebook sufren ataques a sus bases de datos y las contraseñas de millones de usuarios se filtran en internet, todas ellas son contraseñas encriptadas (una cadena de caracteres aparentemente aleatorios).
Cuando te registras en un sitio web, esperemos que almacenen tu contraseña utilizando algo llamado algoritmo de hash, que toma tu contraseña en texto plano, como "MiContraseña123filtrada", y la convierte en un hash como "@6a8Agqu&EX&v$Lho*nXCYWua5YKo". Los atacantes pueden tomar estos hashes y, utilizando hardware de procesamiento paralelo (como tarjetas gráficas dedicadas), descubrir cómo es la contraseña real:
Por prueba y error, los atacantes prueban combinaciones de caracteres y comparan sus hashes con los hashes filtrados hasta que encuentran una coincidencia.
¿Cómo funciona esto?
Hay dos tipos comunes de ataques al intentar descifrar un conjunto de hashes de contraseñas: ataques de fuerza bruta y ataques de diccionario. Los ataques de fuerza bruta funcionan por prueba y error; una GPU de alta gama puede manejar alrededor de 40 mil millones de intentos por segundo, dependiendo del algoritmo de hash utilizado para encriptar la contraseña.
Una contraseña de siete dígitos que consiste en letras minúsculas y 2 números tomará segundos en descifrarse solo debido a la cantidad de entropía que tiene la contraseña. La entropía de la contraseña es una medida de cuán impredecible, y por lo tanto, difícil de adivinar es la contraseña. Una ecuación simple para averiguar todas las posibles combinaciones de cadenas utilizando los caracteres que estás usando para tu contraseña es:
Donde C es el número de caracteres en tu conjunto de caracteres y L es la longitud de tu contraseña.
Entonces, para una contraseña que tenga 8 caracteres y conste de 6 letras minúsculas y 2 números, el cálculo sería:
Hay 26 letras en el alfabeto y elevamos eso a la cantidad de letras que estamos utilizando en nuestra contraseña; lo mismo se aplica a los dos números que estamos utilizando. Esa no es una buena cifra teniendo en cuenta la cantidad de intentos por segundo que una GPU es capaz de realizar.
Las limitaciones de los ataques de fuerza bruta
Los ataques de fuerza bruta se pueden evitar usando contraseñas más largas, lo que significa que tienen mucha más entropía. Pero aquí es donde entran en juego los ataques de diccionario. Los ataques de diccionario utilizan un conjunto de palabras clave comunes y contraseñas reales de usuarios como una base de opciones para manipular mediante el uso de reglas; una regla es una forma de manipular datos.
Un buen ejemplo de una regla es cambiar la letra "e" dentro de una palabra por un 3 o cambiar la letra "O" por un cero. Puedes pensar que eres astuto al hacer eso, pero como todos piensan lo mismo, se vuelve predecible, así que los atacantes usan esa forma de pensar en tu contra. Este tipo de ataque es especialmente efectivo cuando se utilizan el diccionario correcto y las reglas adecuadas, y puede descifrar contraseñas de hasta 16 caracteres fácilmente si siguen prácticas comunes.
Entonces, ¿cómo deberías elegir una contraseña?
El cómic de arriba explica una forma de elegir contraseñas que son fáciles de recordar para los humanos y difíciles de descifrar para las computadoras (a medida que las computadoras se vuelven más rápidas, les resulta más fácil manejar contraseñas más complejas). Aunque no es la mejor solución, deberías usar 6 palabras y no deben ser palabras comunes. La forma de elegir estas palabras debe ser aleatoria y no debe depender de ti. Además, debes tener en cuenta el conjunto de palabras del que vas a elegir. Una buena regla podría ser elegir 6 palabras al azar de una lista de 10,000 palabras en inglés, y si quieres profundizar, intenta mezclarlo con algunas palabras inventadas, cambiar entre diferentes idiomas y agregar símbolos en lugares realmente aleatorios.
Simplemente usa un administrador de contraseñas
En general, las contraseñas no son la mejor manera de autenticar a los usuarios, y deberías usar la autenticación multifactor tanto como sea posible, pero las contraseñas van a quedarse con nosotros durante mucho tiempo. Idealmente, deberías estar usando un administrador de contraseñas, que actúa como una bóveda para todas tus contraseñas, para que solo tengas que recordar la contraseña maestra que te da acceso a tu bóveda, y es tu responsabilidad asegurarte de que tu contraseña maestra sea a prueba de balas. Lo bueno de usar un administrador de contraseñas es que puedes generar contraseñas largas y aleatorias cuando quieras y almacenarlas para que no necesites recordar tus contraseñas para todos tus diferentes sitios web, solo necesitas recordar tu contraseña maestra para acceder a todas tus contraseñas aleatorias.
Si quieres revisar mas recursos, puedes visitar el siguiente sitio https://randompass.herokuapp.com/