Descifrado de contraseñas

Recuperación de contraseñas almacenadas o transmitidas por sistemas informáticos

En criptoanálisis y seguridad informática , el descifrado de contraseñas es el proceso de adivinar contraseñas [1] para proteger un sistema informático . Un método común ( ataque de fuerza bruta ) consiste en intentar adivinar repetidamente la contraseña y compararlas con un hash criptográfico disponible de la contraseña. [2] Otro tipo de método es la pulverización de contraseñas , que suele ser automática y se produce lentamente a lo largo del tiempo para pasar desapercibida, utilizando una lista de contraseñas comunes. [3]

El propósito del descifrado de contraseñas puede ser ayudar a un usuario a recuperar una contraseña olvidada (debido al hecho de que instalar una contraseña completamente nueva implicaría privilegios de administración del sistema), obtener acceso no autorizado a un sistema o actuar como una medida preventiva mediante la cual los administradores del sistema verifican contraseñas fáciles de descifrar. Archivo por archivo, el descifrado de contraseñas se utiliza para obtener acceso a evidencia digital a la que un juez ha permitido el acceso, cuando los permisos de un archivo en particular están restringidos.

Tiempo necesario para la búsqueda de contraseñas

El tiempo necesario para descifrar una contraseña está relacionado con la fuerza de bits, que es una medida de la entropía de la contraseña , y los detalles de cómo se almacena la contraseña. La mayoría de los métodos de descifrado de contraseñas requieren que la computadora produzca muchas contraseñas candidatas, cada una de las cuales se verifica. Un ejemplo es el descifrado por fuerza bruta , en el que una computadora prueba cada clave o contraseña posible hasta que tiene éxito. Con múltiples procesadores, este tiempo se puede optimizar mediante la búsqueda desde el último grupo posible de símbolos y el principio al mismo tiempo, con otros procesadores que se colocan para buscar a través de una selección designada de posibles contraseñas. [4] Los métodos más comunes de descifrado de contraseñas, como los ataques de diccionario , la verificación de patrones y las variaciones de palabras comunes, tienen como objetivo optimizar el número de conjeturas y generalmente se intentan antes de los ataques de fuerza bruta. Una mayor fuerza de bits de contraseña aumenta exponencialmente el número de contraseñas candidatas que deben verificarse, en promedio, para recuperar la contraseña y reduce la probabilidad de que la contraseña se encuentre en cualquier diccionario de descifrado. [5]

La capacidad de descifrar contraseñas mediante programas informáticos también depende de la cantidad de contraseñas posibles por segundo que se puedan comprobar. Si el atacante dispone de un hash de la contraseña de destino, esta cantidad puede ser de miles de millones o billones por segundo, ya que es posible un ataque fuera de línea . Si no es así, la tasa depende de si el software de autenticación limita la frecuencia con la que se puede probar una contraseña, ya sea mediante retrasos de tiempo, CAPTCHA o bloqueos forzados después de una cierta cantidad de intentos fallidos. Otra situación en la que es posible adivinar rápidamente es cuando la contraseña se utiliza para formar una clave criptográfica . En tales casos, un atacante puede verificar rápidamente si una contraseña adivinada decodifica con éxito los datos cifrados.

Para algunos tipos de hashes de contraseñas, las computadoras de escritorio comunes pueden probar más de cien millones de contraseñas por segundo usando herramientas de descifrado de contraseñas que se ejecutan en una CPU de propósito general y miles de millones de contraseñas por segundo usando herramientas de descifrado de contraseñas basadas en GPU [1] [6] [7] (ver los puntos de referencia de John the Ripper ) . [8] La tasa de adivinación de contraseñas depende en gran medida de la función criptográfica utilizada por el sistema para generar hashes de contraseñas. Una función de hash de contraseñas adecuada, como bcrypt , es muchos órdenes de magnitud mejor que una función ingenua como MD5 o SHA simples . Una contraseña de ocho caracteres seleccionada por el usuario con números, mayúsculas y minúsculas y símbolos, con contraseñas seleccionadas comúnmente y otras coincidencias de diccionario filtradas, alcanza una fuerza estimada de 30 bits, según NIST. 2 30 es solo mil millones de permutaciones [9] y se descifraría en segundos si la función de hash fuera ingenua. Cuando las computadoras de escritorio comunes se combinan en un esfuerzo de descifrado, como se puede hacer con botnets , las capacidades de descifrado de contraseñas se extienden considerablemente. En 2002, distributed.net encontró con éxito una clave RC5 de 64 bits en cuatro años, en un esfuerzo que incluyó más de 300.000 computadoras diferentes en varios momentos y que generó un promedio de más de 12 mil millones de claves por segundo. [10]

Las unidades de procesamiento gráfico pueden acelerar el descifrado de contraseñas en un factor de 50 a 100 con respecto a las computadoras de propósito general para algoritmos de hash específicos. Como ejemplo, en 2011, los productos comerciales disponibles afirmaban tener la capacidad de probar hasta 2.800.000.000 de contraseñas NTLM por segundo en una computadora de escritorio estándar utilizando un procesador gráfico de alta gama. [11] Un dispositivo de este tipo puede descifrar una contraseña de 10 letras con mayúsculas y minúsculas en un día. El trabajo se puede distribuir entre muchas computadoras para una aceleración adicional proporcional a la cantidad de computadoras disponibles con GPU comparables. Sin embargo, algunos algoritmos se ejecutan lentamente, o incluso están diseñados específicamente para ejecutarse lentamente, en GPU. Algunos ejemplos son DES , Triple DES , bcrypt , scrypt y Argon2 .

La aceleración de hardware en una GPU ha permitido utilizar recursos para aumentar la eficiencia y la velocidad de un ataque de fuerza bruta para la mayoría de los algoritmos de hash. En 2012, Stricture Consulting Group presentó un clúster de 25 GPU que alcanzó una velocidad de ataque de fuerza bruta de 350 mil millones de intentos de contraseñas NTLM por segundo, lo que les permitió verificar combinaciones de contraseñas en 5,5 horas, lo suficiente para descifrar todas las contraseñas alfanuméricas de 8 caracteres especiales que se usan comúnmente en entornos empresariales. Utilizando ocl- Hashcat Plus en una plataforma de clúster OpenCL virtual , [12] el clúster de GPU basado en Linux se utilizó para "descifrar el 90 por ciento de los 6,5 millones de hashes de contraseñas pertenecientes a usuarios de LinkedIn". [13] 95 8 {\textstyle 95^{8}}

Para algunos algoritmos de hash específicos, las CPU y las GPU no son una buena combinación. Se requiere hardware diseñado específicamente para funcionar a altas velocidades. Se puede fabricar hardware personalizado utilizando tecnología FPGA o ASIC . El desarrollo de ambas tecnologías es complejo y (muy) costoso. En general, los FPGA son favorables en pequeñas cantidades, los ASIC son favorables en cantidades (muy) grandes, son más eficientes energéticamente y más rápidos. En 1998, la Electronic Frontier Foundation (EFF) construyó un descifrador de contraseñas dedicado utilizando ASIC. Su máquina, Deep Crack , descifró una clave DES de 56 bits en 56 horas, probando más de 90 mil millones de claves por segundo. [14] En 2017, documentos filtrados mostraron que los ASIC se usaban para un proyecto militar que tenía el potencial de descifrar códigos en muchas partes de las comunicaciones de Internet con un cifrado más débil. [15] Desde 2019, John the Ripper admite el descifrado de contraseñas para un número limitado de algoritmos de hash utilizando FPGA. [16] Las empresas comerciales ahora utilizan configuraciones basadas en FPGA para descifrar contraseñas. [17]

Fácil de recordar, difícil de adivinar.

Las contraseñas que son difíciles de recordar reducirán la seguridad de un sistema porque

  • Los usuarios podrían necesitar escribir o almacenar electrónicamente la contraseña utilizando un método inseguro,
  • Los usuarios necesitarán restablecer contraseñas con frecuencia y
  • Es más probable que los usuarios reutilicen la misma contraseña.

De manera similar, cuanto más estrictos sean los requisitos de fortaleza de la contraseña, por ejemplo, "tener una combinación de letras mayúsculas y minúsculas y dígitos" o "cambiarla mensualmente", mayor será el grado en que los usuarios subvertirán el sistema. [18]

En "La memorabilidad y seguridad de las contraseñas", [19] Jeff Yan et al. examinan el efecto de los consejos que se dan a los usuarios sobre la elección adecuada de contraseñas. Descubrieron que las contraseñas basadas en pensar en una frase y tomar la primera letra de cada palabra son tan memorables como las contraseñas elegidas ingenuamente, y tan difíciles de descifrar como las contraseñas generadas aleatoriamente. Combinar dos palabras no relacionadas es otro buen método. Tener un " algoritmo " diseñado personalmente para generar contraseñas poco claras es otro buen método.

Sin embargo, pedir a los usuarios que recuerden una contraseña que consiste en una "mezcla de caracteres en mayúsculas y minúsculas" es similar a pedirles que recuerden una secuencia de bits: difícil de recordar, y sólo un poco más difícil de descifrar (por ejemplo, sólo 128 veces más difícil de descifrar para contraseñas de 7 letras, menos si el usuario simplemente escribe en mayúscula una de las letras). Pedir a los usuarios que utilicen "tanto letras como dígitos" a menudo dará lugar a sustituciones fáciles de adivinar, como 'E' → '3' e 'I' → '1': sustituciones que son bien conocidas por los atacantes. De manera similar, escribir la contraseña una fila más arriba en el teclado es un truco común que conocen los atacantes.

Una investigación detallada en un artículo de abril de 2015 elaborado por varios profesores de la Universidad Carnegie Mellon muestra que las opciones de estructura de contraseñas de las personas suelen seguir varios patrones conocidos. Por ejemplo, cuando los requisitos de contraseñas exigen una longitud mínima larga, como 16 caracteres, las personas tienden a repetir caracteres o incluso palabras enteras en sus contraseñas. [20] Como resultado, las contraseñas pueden descifrarse con mucha más facilidad de lo que sus probabilidades matemáticas indicarían. Las contraseñas que contienen un dígito, por ejemplo, lo incluyen desproporcionadamente al final de la contraseña. [20]

Incidentes

El 16 de julio de 1998, el CERT informó de un incidente en el que un atacante había encontrado 186.126 contraseñas cifradas. Cuando se descubrió la brecha, ya se habían descifrado 47.642 contraseñas. [21]

En diciembre de 2009, se produjo una importante filtración de contraseñas en Rockyou.com que dio lugar a la divulgación de 32 millones de contraseñas. El atacante filtró entonces la lista completa de las 32 millones de contraseñas (sin ninguna otra información identificable) a Internet. Las contraseñas se almacenaron en texto sin formato en la base de datos y se extrajeron mediante una vulnerabilidad de inyección SQL . El Centro de Defensa de Aplicaciones (ADC) de Imperva realizó un análisis sobre la solidez de las contraseñas. [22] Algunos de los hallazgos clave fueron:

  • Aproximadamente el 30% de los usuarios eligió contraseñas cuya longitud era inferior a siete caracteres,
  • Casi el 60% de los usuarios eligieron sus contraseñas de un conjunto limitado de caracteres alfanuméricos, y
  • Casi el 50% de los usuarios usaban nombres, palabras de jerga, palabras de diccionario o contraseñas triviales que empleaban construcciones débiles como dígitos consecutivos y/o teclas de teclado adyacentes;  por ejemplo, la contraseña más común entre los propietarios de cuentas de RockYou era simplemente “123456”. [22]

En junio de 2011, la OTAN (Organización del Tratado del Atlántico Norte) sufrió una brecha de seguridad que llevó a la divulgación pública de nombres y apellidos, nombres de usuario y contraseñas de más de 11.000 usuarios registrados de su librería electrónica. Los datos se filtraron como parte de la Operación AntiSec , un movimiento que incluye a Anonymous , LulzSec y otros grupos e individuos de piratas informáticos. [23]

El 11 de julio de 2011, los servidores de Booz Allen Hamilton , una gran empresa de consultoría estadounidense que realiza una cantidad sustancial de trabajo para el Pentágono , fueron hackeados por Anonymous y se filtraron datos el mismo día. "La filtración, denominada 'Military Meltdown Monday', incluye 90.000 inicios de sesión de personal militar, incluido personal de USCENTCOM , SOCOM , el Cuerpo de Marines , varias instalaciones de la Fuerza Aérea , Seguridad Nacional , personal del Departamento de Estado y lo que parecen ser contratistas del sector privado". [24] Se descubrió que estas contraseñas filtradas estaban codificadas con SHA-1 sin sal , y luego fueron analizadas por el equipo ADC en Imperva , revelando que incluso algunos militares usaban contraseñas tan débiles como "1234". [25]

El 18 de julio de 2011, Microsoft Hotmail prohibió la contraseña: "123456". [26]

En julio de 2015, un grupo autodenominado "The Impact Team" robó los datos de los usuarios de Ashley Madison . [27] Muchas contraseñas fueron cifradas utilizando tanto el algoritmo bcrypt relativamente fuerte como el hash MD5 más débil . El ataque a este último algoritmo permitió que el grupo de descifrado de contraseñas CynoSure Prime recuperara unos 11 millones de contraseñas en texto plano. [28]

Prevención

Un método para evitar que se descifre una contraseña es asegurarse de que los atacantes no puedan acceder ni siquiera a la contraseña en hash. Por ejemplo, en el sistema operativo Unix , las contraseñas en hash se almacenaban originalmente en un archivo de acceso público . En los sistemas Unix (y similares) modernos, por otro lado, se almacenan en el archivo de contraseñas shadow , al que solo pueden acceder programas que se ejecutan con privilegios mejorados (es decir, privilegios de "sistema"). Esto hace que sea más difícil para un usuario malintencionado obtener las contraseñas en hash en primera instancia, sin embargo, muchas colecciones de hashes de contraseñas han sido robadas a pesar de dicha protección. Y algunos protocolos de red comunes transmiten contraseñas en texto sin formato o utilizan esquemas de desafío/respuesta débiles. [29] [30]/etc/passwd/etc/shadow

El uso de salt , un valor aleatorio único para cada contraseña que se incorpora en el hash, evita que se ataquen múltiples hashes simultáneamente y también evita la creación de diccionarios precalculados como las tablas arco iris .

Otro enfoque consiste en combinar una clave secreta específica del sitio con el hash de la contraseña, lo que impide la recuperación de la contraseña en texto simple incluso si se roban los valores hash. Sin embargo, los ataques de escalada de privilegios que pueden robar archivos hash protegidos también pueden exponer el secreto del sitio. Un tercer enfoque consiste en utilizar funciones de derivación de claves que reducen la tasa a la que se pueden adivinar las contraseñas. [31] : 5.1.1.2 

Los sistemas Unix modernos han reemplazado la función de hash de contraseñas crypt() basada en DES por métodos más potentes como crypt-SHA , bcrypt y scrypt . [32] Otros sistemas también han comenzado a adoptar estos métodos. Por ejemplo, el IOS de Cisco originalmente usaba un cifrado Vigenère reversible para cifrar contraseñas, pero ahora usa md5-crypt con una sal de 24 bits cuando se usa el comando "enable secret". [33] Estos métodos más nuevos usan valores de sal grandes que evitan que los atacantes realicen ataques fuera de línea de manera eficiente contra múltiples cuentas de usuario simultáneamente. Los algoritmos también son mucho más lentos de ejecutar, lo que aumenta drásticamente el tiempo necesario para montar un ataque fuera de línea exitoso. [34]

Muchos algoritmos hash utilizados para almacenar contraseñas, como MD5 y la familia SHA , están diseñados para un cálculo rápido con requisitos de memoria bajos y una implementación eficiente en hardware. Se pueden ejecutar múltiples instancias de estos algoritmos en paralelo en unidades de procesamiento gráfico (GPU), lo que acelera el descifrado. Como resultado, los algoritmos hash rápidos son ineficaces para evitar el descifrado de contraseñas, incluso con sal. Algunos algoritmos de estiramiento de claves , como PBKDF2 y crypt-SHA, calculan hashes de contraseñas de forma iterativa y pueden reducir significativamente la velocidad a la que se pueden probar las contraseñas, si el recuento de iteraciones es lo suficientemente alto. Otros algoritmos, como scrypt , consumen mucha memoria , lo que significa que requieren cantidades relativamente grandes de memoria además de un cálculo que consume mucho tiempo y, por lo tanto, son más difíciles de descifrar utilizando GPU y circuitos integrados personalizados.

En 2013 se anunció una competencia de hash de contraseñas a largo plazo para elegir un nuevo algoritmo estándar para el hash de contraseñas, [35] y Argon2 fue elegido ganador en 2015. Otro algoritmo, Balloon , es recomendado por NIST . [36] Ambos algoritmos consumen mucha memoria.

Las soluciones como un token de seguridad ofrecen una respuesta de prueba formal [ aclaración necesaria ] al cambiar constantemente la contraseña. Esas soluciones reducen abruptamente el tiempo disponible para la fuerza bruta (el atacante necesita descifrar y usar la contraseña en un solo cambio) y reducen el valor de las contraseñas robadas debido a su breve validez.

Software

Existen muchas herramientas de software para descifrar contraseñas, pero las más populares [37] son ​​Aircrack-ng , Cain & Abel , John the Ripper , Hashcat , Hydra , DaveGrohl y ElcomSoft . Muchos paquetes de software de apoyo a litigios también incluyen la función de descifrado de contraseñas. La mayoría de estos paquetes emplean una combinación de estrategias de descifrado; los algoritmos con ataques de fuerza bruta y de diccionario han demostrado ser los más productivos. [38]

La mayor disponibilidad de potencia informática y de software de descifrado automático de contraseñas apto para principiantes para una serie de esquemas de protección ha permitido que la actividad sea adoptada por script kiddies . [39]

Véase también

Referencias

  1. ^ ab oclHashcat-lite – recuperación avanzada de contraseñas. Hashcat.net. Recuperado el 31 de enero de 2013.
  2. ^ Montoro, Massimiliano (2005). «Cain & Abel User Manual: Brute-Force Password Cracker» (Manual del usuario de Cain & Abel: descifrador de contraseñas por fuerza bruta). oxid.it (extinto) . Archivado desde el original el 7 de junio de 2019. Consultado el 13 de agosto de 2013 .{{cite web}}: CS1 maint: URL no apta ( enlace )
  3. ^ "¿Qué es el robo de contraseñas? Cómo detener los ataques de robo de contraseñas".
  4. ^ Bahadursingh, Roman (19 de enero de 2020). "Un algoritmo distribuido para descifrar contraseñas por fuerza bruta en n procesadores". doi :10.5281/zenodo.3612276. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  5. ^ Lundin, Leigh (11 de agosto de 2013). "PIN y contraseñas, parte 2". SleuthSayers.org . Orlando.
  6. ^ Alexander, Steven. (20 de junio de 2012) The Bug Charmer: How long should passwords be? [El encantador de bichos: ¿cuán largas deben ser las contraseñas?]. Bugcharmer.blogspot.com. Recuperado el 31 de enero de 2013.
  7. ^ Blog de Cryptohaze: 154 mil millones de NTLM/seg en 10 hashes. Blog.cryptohaze.com (15 de julio de 2012). Consultado el 31 de enero de 2013.
  8. ^ John the Ripper benchmarks. openwall.info (30 de marzo de 2010). Recuperado el 31 de enero de 2013.
  9. ^ Burr, WE; Dodson, DF; Polk, WT (2006). Directriz de autenticación electrónica (PDF) (Informe). Gaithersburg, MD: Instituto Nacional de Normas y Tecnología. doi :10.6028/nist.sp.800-63v1.0.2.
  10. ^ "Estado del proyecto de clave de 64 bits". Distributed.net. Archivado desde el original el 10 de septiembre de 2013. Consultado el 27 de marzo de 2008 .
  11. ^ "Tabla de velocidad de recuperación de contraseña". ElcomSoft . Archivado desde el original el 21 de febrero de 2011. Consultado el 1 de febrero de 2011 .
  12. ^ "Plataforma de clúster VCL". mosix.cs.huji.ac.il .
  13. ^ "Un clúster de 25 GPU descifra todas las contraseñas estándar de Windows en menos de 6 horas". 2012.
  14. ^ "La máquina EFF DES Cracker aporta honestidad al debate sobre criptomonedas". EFF. Archivado desde el original el 1 de enero de 2010. Consultado el 7 de junio de 2020 .
  15. ^ Biddle, Sam (11 de mayo de 2017). "NYU expuso accidentalmente un proyecto informático de descifrado de códigos militares a todo Internet". The Intercept .
  16. ^ "anuncia - [openwall-announce] John el Destripador 1.9.0-jumbo-1". openwall.com .
  17. ^ "¿El descifrado de contraseñas de Bcrypt es extremadamente lento? No si lo estás usando". Medium . 8 de septiembre de 2020.
  18. ^ Managing Network Security. Fred Cohen & Associates. All.net. Recuperado el 31 de enero de 2013.
  19. ^ Yan, J.; Blackwell, A.; Anderson, R.; Grant, A. (2004). "Memorabilidad y seguridad de contraseñas: resultados empíricos" (PDF) . Revista IEEE Security & Privacy . 2 (5): 25. doi :10.1109/MSP.2004.81. S2CID  206485325.
  20. ^ ab Steinberg, Joseph (21 de abril de 2015). "Nueva tecnología para descifrar contraseñas 'seguras': lo que necesita saber". Forbes .
  21. ^ "CERT IN-98.03". Archivado desde el original el 9 de julio de 2010. Consultado el 9 de septiembre de 2009 .
  22. ^ ab "Peores prácticas de contraseñas para consumidores" (PDF) . Imperva.com .
  23. ^ "Ataque de piratas informáticos de la OTAN". The Register . Consultado el 24 de julio de 2011 .
  24. ^ "Anonymous filtra 90.000 cuentas de correo electrónico militares en el último ataque antiseguridad". 11 de julio de 2011.
  25. ^ "Análisis de contraseñas militares". Imperva.com . 12 de julio de 2011.
  26. ^ "Microsoft's Hotmail Bans 123456". Imperva.com . 18 de julio de 2011. Archivado desde el original el 27 de marzo de 2012.
  27. ^ "Ashley Madison: los piratas informáticos filtran datos robados de un sitio de citas". bankinfosecurity.com . Consultado el 11 de abril de 2021 .
  28. ^ "Investigadores descifran 11 millones de contraseñas de Ashley Madison". bankinfosecurity.com . Consultado el 11 de abril de 2021 .
  29. ^ Singer, Abe (noviembre de 2001). "No Plaintext Passwords" (PDF) . Login . 26 (7): 83–91. Archivado (PDF) desde el original el 24 de septiembre de 2006.
  30. ^ "Criptoanálisis del protocolo de túnel punto a punto de Microsoft". Schneier.com . 7 de julio de 2011 . Consultado el 31 de enero de 2013 .
  31. ^ Grassi, Paul A (junio de 2017). "SP 800-63B-3 – Directrices de identidad digital: autenticación y gestión del ciclo de vida" (PDF) . NIST. doi : 10.6028/NIST.SP.800-63b . {{cite journal}}: Requiere citar revista |journal=( ayuda )
  32. ^ Un esquema de contraseñas adaptable al futuro. Usenix.org (13 de marzo de 2002). Recuperado el 31 de enero de 2013.
  33. ^ Preguntas frecuentes sobre MDCrack 1.8. Ninguna. Consultado el 31 de enero de 2013.
  34. ^ Protección de contraseñas para sistemas operativos modernos. Usenix.org. Recuperado el 31 de enero de 2013.
  35. ^ "Concurso de hash de contraseñas". Archivado desde el original el 2 de septiembre de 2013. Consultado el 3 de marzo de 2013 .
  36. ^ "NIST SP800-63B Sección 5.1.1.2" (PDF) . nvlpubs.nist.gov .
  37. ^ "Los 10 principales descifradores de contraseñas". Sectools . Consultado el 1 de noviembre de 2009 .
  38. ^ "Manténgase seguro: vea cómo funcionan los descifradores de contraseñas - Blog de Keeper". Blog de seguridad de Keeper - Noticias de ciberseguridad y actualizaciones de productos . 28 de septiembre de 2016 . Consultado el 7 de noviembre de 2020 .
  39. ^ Anderson, Nate (24 de marzo de 2013). "Cómo me convertí en un descifrador de contraseñas: descifrar contraseñas es ahora oficialmente una actividad de "script kiddie"". Ars Technica . Consultado el 24 de marzo de 2013 .
  • Philippe Oechslin: Cómo lograr un equilibrio entre tiempo y memoria criptoanalítica más rápido. CRYPTO 2003: págs. 617-630
  • Resumen de las filtraciones realizadas por The Anonymous y LulzSec en 2011
  • Conferencia internacional sobre contraseñas
  • Seguridad de contraseñas: pasado, presente, futuro, presentación de Passwords12
  • Lista de Skullsecurity de colecciones de contraseñas vulneradas
Obtenido de "https://es.wikipedia.org/w/index.php?title=Descifrado_de_contraseñas&oldid=1251645430"