Llegamos a ustedes gracias a:



Reportajes y análisis

Cómo crear contraseñas sólidas y seguras aprendiendo a descifrarlas

[11/03/2021] Cree contraseñas más fuertes y seguras: Se nos presiona para que lo hagamos todo el tiempo, pero pocos de nosotros realmente hacemos el esfuerzo. Mientras tanto, las contraseñas continúan siendo robadas, filtradas y descifradas de forma regular. ¡Así que esta vez esperamos llamar su atención mirándolo desde el lado del atacante! Le mostraremos cómo se descifran las contraseñas e incluso cómo hacerlo usted mismo, para que pueda ver exactamente por qué es importante una contraseña segura.

Como le mostrará nuestra breve incursión con una herramienta de descifrado, su única protección contra un descifrador de contraseñas determinado es -lo adivinó- una cadena larga y compleja de 10 o más caracteres. Cualquier cosa más corta, o más simple, es demasiado fácil de descifrar. Tenga eso en cuenta y descubrirá que usar un gestor de contraseñas parece mucho más fácil que tratar de crear contraseñas por su cuenta.

Siga leyendo para obtener más información sobre cómo se les ocultan las contraseñas a los crackers y cómo los crackers intentan encontrarlas.

Nota: Intentamos descifrar herramientas en nuestras propias contraseñas para esta historia. El uso de herramientas de cracking para ingresar a una página web, servicio o archivo ajeno es, en el mejor de los casos, poco ético y -en el peor de los casos, ilegal-. Siga nuestro consejo y ni lo piense.

Cómo el hashing protege su contraseña

Para disuadir a los crackers, una página web responsable no almacenará una contraseña en su forma original, en lo que se conoce como texto sin formato. En su lugar, utilizará lo que se conoce como algoritmo de hashing -los más comunes incluyen MD5, SHA2 o SHA3, pero existen muchos más- para tomar su contraseña y convertirla en un "hash, una cadena de números y letras aparentemente aleatorios.

El sitio no anuncia qué algoritmo hash utiliza, ya que eso solo les facilitaría la vida a los crackers. Incluso podría tomar ese primer hash y hacerlo nuevamente, o agregar lo que se conoce como "salt -una serie de caracteres adicionales que hacen que su contraseña sea aún más difícil de descifrar-.

Crear un hash de ejemplo es fácil. Para obtener un hash MD5, todo lo que necesita hacer es visitar un sitio como MD5hashgenerator.com y usar un hash de una palabra de ejemplo. (Por motivos de seguridad, le recomendamos que no utilice el hash de una contraseña). MD5 es un algoritmo más antiguo que se considera inseguro por varias razones, pero sigue siendo útil para demostrar cómo funcionan el hash y el descifrado de contraseñas.

En este caso, aplicamos hash a la contraseña fred. Simplemente escriba la palabra que se va a cifrar en el cuadro y haga clic en Generate.
Contraseñas, password, hash

Por lo tanto, la contraseña maverick se convierte en 55f9c405bd87ba23896f34011ffce8da.

Como protección adicional, los algoritmos hash funcionan en una sola dirección. Por diseño, no puede eliminar el hash de una contraseña con hash. Además, con un hash unidireccional, la página web o el servicio ni siquiera necesita saber su contraseña. El sitio solo necesita aplicar un hash a su contraseña, y compararla con el hash almacenado en el archivo. Si los dos coinciden, usted ingresa. Así es como empezamos a descifrar contraseñas.

Cómo aún se pueden descifrar las contraseñas hash

El hash es un paso importante y fundamental para proteger su contraseña, pero no hace que su contraseña sea inmune. Todo lo que tiene que hacer un descifrador de contraseñas es replicar el proceso: adivinar una contraseña, cifrarla y luego compararla con el hash de contraseña filtrado. Desafortunadamente, si un cracker acierta, logra descifrar su contraseña. Si se equivocan, lo intentan de nuevo... una y otra y otra vez.

Una página web institucional grande, como ésta, generalmente está protegida con medidas que evitan que los usuarios intenten contraseña tras contraseña, en un esfuerzo por ingresar a las cuentas de los usuarios.
Contraseñas, password, hash

Sin embargo, uno no puede simplemente tratar de iniciar sesión en Amazon, fingir que es Bill Gates y adivinar una y otra vez contraseñas hasta que tenga suerte. Lo mismo ocurre con un banco. Una página web diseñada de forma inteligente tendrá algún tipo de control integrado. Si se equivoca demasiadas veces, el sitio probablemente marcará su cuenta o dirección IP como un probable hacker, y limitará o bloqueará sus intentos de inicio de sesión por completo.

Sin embargo, luego de un robo de contraseñas, cualquier cosa puede pasar. Por ejemplo: en el 2019, un enorme tesoro de 2,19 mil millones de direcciones de correo electrónico/nombres de usuario y contraseñas se filtró a la web, como parte del robo a Collections. Una vez que se publicaron esas contraseñas con hash, no había ninguna forma de evitar que quienes tenían acceso a ellas las descargaran en su propia PC, y luego intentaran descifrarlas sin ninguno de los controles impuestos por una página web en vivo.

En este escenario, con el fin de descifrar una contraseña, todo lo que el cracker realmente necesita saber, o adivinar, es el algoritmo utilizado para codificar las contraseñas, y luego aplicar la enorme potencia informática de la PC para realizar miles de millones de intentos por segundo. Los enemigos de su contraseña hash son el tiempo, la potencia de cómputo y las conjeturas inteligentes. (A continuación, le indicamos cómo saber si su contraseña ha sido robada).

¿Qué tan difícil es descifrar una contraseña?

Descifrar una contraseña puede volverse enormemente complejo, muy rápidamente. Una contraseña de un solo carácter ya representa 26 posibilidades -o 52, cuando agrega letras mayúsculas-. Al agregar los números del cero al nueve, obtendrá 62 posibilidades, y los caracteres especiales elevan el total a 96 (los teclados de idiomas extranjeros pueden afectar esto, y algunos sitios pueden requerir solo un subconjunto de los caracteres especiales disponibles). Basándose en una lista de 96 caracteres, incluso una contraseña de cuatro caracteres como t7G(, teóricamente requeriría hasta 84.934.656 intentos individuales (96 a la cuarta potencia).

Entonces, ¿eso significa que una contraseña de cuatro caracteres es segura? Para nada.

El gráfico que se muestra a continuación, elaborado en el 2018 por la empresa profesional de descifrado de contraseñas Terahash, muestra lo increíblemente fácil y lo increíblemente difícil que puede ser el descifrado de contraseñas. El gráfico enumera los principales algoritmos de hash a la izquierda. El color inmediatamente adyacente indica qué tan rápido se puede descifrar una contraseña con hash en cada algoritmo mediante la tecnología de descifrado de contraseñas de Terahash. En general, NTLM, el algoritmo más alto, resultó ser el más rápido de descifrar, junto con muchos otros algoritmos codificados en rojo oscuro; mientras que el algoritmo Bitcoin/Litecoin, en la parte inferior, tomó más tiempo y está codificado en amarillo-verde.

Este cuadro ilustra cómo el simple hecho de agregar algunos caracteres más a una contraseña puede hacer que el tiempo necesario para descifrarla sea casi imposiblemente largo, incluso con el poderoso clúster de GPUs de Terahash a su disposición.
Contraseñas, password, hash

Pero el algoritmo es solo una parte del desafío. La otra es la longitud de la contraseña original. En función de su longitud original, la codificación de colores de las otras columnas representa la facilidad con la que se puede descifrar una contraseña hash en cada algoritmo. Ese mar de azul turquesa representa contraseñas más cortas de cuatro a ocho caracteres, que se pueden descifrar "instantáneamente o hasta en una hora, dependiendo del algoritmo hash utilizado. Las áreas de color verde oscuro representan contraseñas que pueden tardar hasta un día en descifrarse, mientras que las de color verde brillante tardan hasta una semana, y así sucesivamente. Los grados de naranja y rojo representan contraseñas que tardan un año o más en descifrarse.

Existen dos conclusiones importantes de este cuadro. Primero, independientemente del algoritmo, las contraseñas más cortas, de cuatro a seis caracteres, fueron fáciles de descifrar para Terahash. En segundo lugar, simplemente al hacerla con mínimo 10 caracteres, la resistencia de una contraseña aleatoria a ser descifrada se incrementó enormemente.

El descifrado de contraseñas sigue la misma progresión que la minería de criptomonedas: las CPU son algo eficientes, las GPU son mucho más eficientes y solo los investigadores o estados nación bien financiados han intentado desarrollar ASIC dedicados al descifrado de contraseñas. La tecnología de Terahash utiliza un grupo de potentes GPUs, por lo que su tecnología será mucho más poderosa de lo que su PC puede ofrecer. Aun así, todo lo que realmente necesita para descifrar contraseñas es una PC con una GPU dedicada. Usamos una Microsoft Surface Book 3 con una GPU GeForce GTX 1660 Ti como banco de pruebas, alcanzando un pico de descifrado que alcanza 6.959 megahashes -casi siete mil millones de hashes- por segundo. Las desktops pueden procesar aún más. 

Cómo descifrar contraseñas con Hashcat

Existen muchas herramientas de software disponibles para descifrar contraseñas, aunque nos centraremos en solo una. Hashcat ataca los hashes de contraseñas mediante una combinación de fuerza bruta, reglas, máscaras y ataques de diccionario, que serán explicados más adelante.

Originalmente, Hashcat exigía distribuciones de Linux especializadas como Kali Linux, que fueron diseñadas para pruebas de penetración. Puede descargar Kali Linux a través de la aplicación Microsoft Store y colocarlo dentro de un subsistema de Windows para Linux shell. (Solo asegúrese de que sea el Subsistema de Windows para Linux 2, que permite que su GPU realice cálculos). Sin embargo, existe una manera más fácil: hashcat tiene un binario de Windows, lo que significa que puede descargarlo para Windows. Se ejecuta utilizando la interfaz de línea de comandos de Windows, tocando la API CUDA de Nvidia o un controlador OpenCL más genérico.

Existen tres componentes principales de Hashcat: el programa en sí y dos archivos de texto que deberá crear. Un archivo contiene los hashes que se van a descifrar y el otro es un repositorio de los hashes descifrados. En este caso, los llamé "hash.txt y "cracked.txt. Creé un hash simple de una contraseña fácil de adivinar, copié el hash de la contraseña en el archivo hash.txt, lo guardé y cerré el editor de texto. Luego abrí la aplicación Windows Command Line con privilegios administrativos para ejecutar Hashcat, navegando al directorio en el que está almacenado Hashcat.

Vamos a empezar utilizando Hashcat para descifrar contraseñas mediante "fuerza bruta, adivinando una serie interminable de posibles contraseñas con la esperanza de dar con la correcta. Puede leer la documentación si lo desea en las preguntas frecuentes de Hashcat, pero escribir esto en la aplicación de línea de comandos hará que todo comience:

hashcat -m0 -a3 -o cracked.txt hash.txt

Una contraseña corta y simple como fred debería tomar solo unos minutos para descifrar, y lo hace.

La ventana de comando hashcat, superpuesta sobre el archivo del Bloc de notas con el hash roto y la "contraseña en texto plano. Hashcat muestra la velocidad de hash (Speed.#1) que en este caso es bastante lenta, alrededor de mil millones de hashes por segundo. También incluye protecciones térmicas de GPU de forma predeterminada y controlará la temperatura de su GPU (Hardware.Mon.#1) para evitar que se sobrecaliente.
Password, contraseña, hash

Para volver a verificar la contraseña hash, puede abrir el archivo en el que se almacenan las contraseñas descifradas. Verá el hash, seguido del texto sin formato (plaintext), y finalmente la contraseña descifrada.

Hice un trabajo rápido con contraseñas hash simples de cuatro caracteres, como 4289, yniu, tg5f y Trxc. Tenga en cuenta que, si bien las últimas combinaciones agregaron un poco de complejidad, todas se resolvieron en cuatro segundos o menos. Pero luego probé jRtw y sucedió algo muy interesante: usando la configuración predeterminada, Hashcat no pudo descifrar mi hash en segundos. O minutos. O más de una hora.

¿Por qué? Supongo que rompí una máscara. Y eso es bueno.

Realmente no importa si su contraseña es Oliver, brújula o iloveyou; si aparece en el diccionario de un cracker, su contraseña está en la vía rápida para ser hackeada. Estas son las contraseñas que los crackers prueban primero.
Password, contraseña, hash
Reglas, máscaras y ataques de diccionario

Los crackers de contraseñas saben tan bien como nosotros que las contraseñas más largas y complejas son más difíciles de descifrar. Pero también saben que los humanos hacen trampa, usando palabras y patrones para crear contraseñas, en lugar de cadenas largas y aleatorias. Eso significa que los descifradores de contraseñas también pueden hacer trampa, utilizando tácticas conocidas como "reglas y "máscaras, combinadas con "diccionarios de contraseñas comunes. Por ejemplo, el cuadro de SplashData de las contraseñas más inseguras del 2018 y 2019, a continuación, debería ser parte del ataque de diccionario de cualquier cracker respetable. También señala el peligro de reutilizar las contraseñas, porque una vez que un cracker se entera, lo intentará en otras de sus cuentas, solo por probar si usted fue perezoso.

Un ataque de diccionario puede usar palabras sueltas o cadenas de palabras, combinadas con una lista de nombres comunes, además de las contraseñas más comunes. En el 2009, por ejemplo, un proveedor de aplicaciones llamado RockYou sufrió una infiltración, y la base de datos de contraseñas sin cifrar, supuestamente 30 millones, se filtró a la web. Esta base de datos constituye uno de los ataques de diccionario más comunes disponibles en la actualidad.

Una máscara es un enfoque independiente, que utiliza patrones para simplificar el proceso. ¿Alguna vez comenzó su contraseña con una letra mayúscula y terminó con un signo de puntuación? ¿Qué hay de terminar su contraseña con dos dígitos numéricos? Ambos son ejemplos de máscaras, y pueden y están programados en un descifrador de contraseñas para reducir el número de posibles hashes.

Una regla es una expresión más compleja, que a menudo combina una máscara y un ataque de diccionario. Si su contraseña combina una palabra común con dos dígitos, o combina el nombre de su tía con un número y un signo de exclamación al final, una regla puede ayudar a descifrar esa contraseña mucho más rápido que intentar adivinarlas al azar. Esa es una ventaja de usar un administrador de contraseñas -no solo generará una contraseña larga, sino que esa contraseña será mucho más aleatoria que la que usted mismo generaría normalmente.

Sin embargo, recuerde (¡y esto es importante!) que una herramienta de descifrado desconoce si su contraseña tiene cuatro caracteres o catorce. En el ejemplo de la contraseña de cuatro caracteres inesperadamente difícil que generé, lo que aparentemente sucedió es que el ataque de máscara predeterminado de Hashcat pensó que era más eficiente simplemente omitir todo lo que no estaba programado previamente en sus archivos de máscara y pasar de intentar descifrar contraseñas de cuatro caracteres a contraseñas de cinco caracteres.

¿Eso significa que jRtw es una contraseña imposible de descifrar? ¡Por supuesto no! En este caso, otro cracker podría simplemente escribir una regla que le diga a Hashcat, que pruebe cada contraseña de cuatro caracteres antes de continuar. Sin embargo, sí significa que una contraseña bien diseñada puede eludir la detección.

¿Qué debería aprender de esto?

Debería aprender tres lecciones de todo esto:

  1. Cuanto más larga sea la contraseña, mejor. Según el ejemplo de Terahash anterior, por ahora, una contraseña de mínimo diez caracteres parecen segura.
  2. Cuanto más compleja sea la contraseña, mejor. Las contraseñas aleatorias son la opción más segura, pero como mínimo, asegúrese de tener al menos un carácter en minúscula, un carácter en mayúscula, un número y un carácter especial como &, # o]. Mientras más, mejor.
  3. Los administradores de contraseñas son probablemente la mejor solución para la administración de contraseñas.
Un administrador de contraseñas -cualquier administrador de contraseñas- probablemente pueda hacer un mejor trabajo en el seguimiento de las contraseñas que solo su cerebro.
Contraseñas, password, hash

Vale la pena repetirlo: un administrador de contraseñas -hemos revisado los mejores administradores de contraseñas pagados y también hemos analizado los mejores administradores de contraseñas gratuitos- es la solución más sólida y conveniente. ¿Por qué luchar con crear una lista de contraseñas largas y complejas si un servicio lo hace por usted?

Eso es lo que hace que descifrar contraseñas sea tan fascinante. Es trivialmente fácil descifrar una contraseña y casi imposible. La diferencia entre los dos depende de las elecciones que haga.

Gracias a Carlos Suarez y su tutorial de YouTube, Hashcat, por proporcionar la interfaz de línea de comandos para aplicar hashcat a un hash MD5.

Puede ver también