stringtranslate.com

Descifrando contraseñas

En criptoanálisis y seguridad informática , descifrar contraseñas es el proceso de recuperar contraseñas [1] a partir de datos que han sido almacenados o transmitidos por un sistema informático en forma codificada. Un enfoque común ( ataque de fuerza bruta ) es intentar adivinar repetidamente la contraseña y compararlas con un hash criptográfico disponible de la contraseña. [2] Otro tipo de enfoque es la pulverización de contraseñas, que a menudo está automatizada y se produce lentamente con el tiempo para pasar desapercibida, utilizando una lista de contraseñas comunes. [3]

El propósito de descifrar contraseñas podría 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 medida preventiva mediante la cual el sistema Los administradores comprueban si hay contraseñas fáciles de descifrar. Archivo por archivo, el descifrado de contraseñas se utiliza para obtener acceso a pruebas digitales a las 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 para descifrar una contraseña está relacionado con la intensidad de los bits (consulte Descifrar contraseña) , 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 para descifrar contraseñas requieren que la computadora produzca muchas contraseñas candidatas, cada una de las cuales se verifica. Un ejemplo es el cracking por fuerza bruta , en el que una computadora prueba todas las claves o contraseñas posibles hasta que tiene éxito. Con múltiples procesadores, este tiempo se puede optimizar buscando desde el último grupo posible de símbolos y desde el principio al mismo tiempo, colocando otros procesadores para buscar a través de una selección designada de posibles contraseñas. [4] Los métodos más comunes para descifrar contraseñas, como ataques de diccionario , verificación de patrones, sustitución de listas de palabras, etc., intentan reducir el número de pruebas necesarias y, por lo general, se intentarán antes que la fuerza bruta. Una mayor intensidad de bits de contraseña aumenta exponencialmente la cantidad 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 utilizando programas informáticos también depende del número de contraseñas posibles por segundo que se pueden comprobar. Si el atacante dispone de un hash de la contraseña de destino, este número puede ser de miles de millones o billones por segundo, ya que es posible un ataque fuera de línea . De lo contrario, la tasa depende de si el software de autenticación limita la frecuencia con la que se puede intentar una contraseña, ya sea mediante retrasos, 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 comprobar rápidamente si una contraseña adivinada decodifica correctamente los datos cifrados.

Para algunos tipos de hash 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 uso general y miles de millones de contraseñas por segundo usando herramientas de descifrado de contraseñas basadas en GPU [1] [6] [7 ] (ver puntos de referencia de John el Destripador ) . [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ña adecuada, como bcrypt , es mucho mejor que una función ingenua como MD5 o SHA simple . Según el NIST, 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 del diccionario filtradas, alcanza una fuerza estimada de 30 bits. 2 30 son solo mil millones de permutaciones [9] y se descifrarían en segundos si la función hash fuera ingenua. Cuando se combinan computadoras de escritorio comunes en un esfuerzo de descifrado, como se puede hacer con las botnets , las capacidades de descifrado de contraseñas se amplían considerablemente. En 2002, distribuido.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 distintos momentos y que generó un promedio de más de 12 mil millones de claves por segundo. [10]

Las unidades de procesamiento de gráficos pueden acelerar el descifrado de contraseñas en un factor de 50 a 100 en comparación con las computadoras de uso general para algoritmos de hash específicos. A modo de ejemplo, en 2011, los productos comerciales disponibles afirmaban tener la capacidad de probar hasta 2.800.000.000 contraseñas NTLM por segundo en una computadora de escritorio estándar utilizando un procesador de gráficos de alta gama. [11] Un dispositivo de este tipo puede descifrar una contraseña de 10 letras en un solo día. El trabajo se puede distribuir entre muchas computadoras para obtener 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 .

El surgimiento durante la última década [ ¿cuándo? ] de 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 hash. En 2012, Stricture Consulting Group presentó un clúster de 25 GPU que logró una velocidad de ataque de fuerza bruta de 350 mil millones de conjeturas por segundo, lo que les permitió verificar combinaciones de contraseñas en 5,5 horas. Utilizando ocl- Hashcat Plus en una plataforma de clúster Virtual OpenCL , [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 los usuarios de LinkedIn". [13]

Para algunos algoritmos hash específicos, las CPU y las GPU no son una buena combinación. Se requiere hardware especialmente diseñado 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) caro. En general, los FPGA son favorables en pequeñas cantidades, los ASIC son favorables en cantidades (muy) grandes, 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 , rompió 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 utilizaron para un proyecto militar que tenía el potencial de descifrar muchas partes de las comunicaciones de Internet con un cifrado más débil. [15] El diseño y la construcción de crackers de contraseñas basados ​​en ASIC están a cargo de [ ¿quién? ] estar fuera del alcance de las organizaciones no gubernamentales. [ cita necesaria ] Desde 2019, John the Ripper admite el descifrado de contraseñas para un número limitado de algoritmos hash que utilizan FPGA. [16] Las empresas comerciales ahora están utilizando 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

De manera similar, cuanto más estrictos sean los requisitos de seguridad de la contraseña, por ejemplo "tener una combinación de letras y dígitos mayúsculas y minúsculas" 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. examinar el efecto de los consejos dados a los usuarios sobre una buena elección de contraseña. 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 seleccionadas 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 oscuras es otro buen método.

Sin embargo, pedir a los usuarios que recuerden una contraseña que consta de 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). crack 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 conducirá a sustituciones fáciles de adivinar, como 'E' → '3' y '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 conocido por los atacantes.

La investigación detallada en un artículo de abril de 2015 realizado por varios profesores de la Universidad Carnegie Mellon muestra que las elecciones de estructura de contraseñas de las personas a menudo siguen varios patrones conocidos. Por ejemplo, cuando los requisitos de contraseña requieren una longitud mínima larga, como 16 caracteres, las personas tienden a repetir caracteres o incluso palabras enteras dentro de sus contraseñas. [20] Como resultado, las contraseñas pueden descifrarse mucho más fácilmente de lo que indicarían sus probabilidades matemáticas. Las contraseñas que contienen un dígito, por ejemplo, lo incluyen de manera desproporcionada al final de la contraseña. [20]

Incidentes

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

En diciembre de 2009, se produjo una importante violación de contraseña de Rockyou.com que provocó la liberación de 32 millones de contraseñas. Luego, el atacante filtró a Internet la lista completa de los 32 millones de contraseñas (sin otra información identificable). Las contraseñas se almacenaron en texto sin cifrar 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 seguridad de las contraseñas. [22] Algunas de las conclusiones clave fueron:

En junio de 2011, la OTAN (Organización del Tratado del Atlántico Norte) sufrió una brecha de seguridad que provocó la divulgación pública de los 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 piratería. [24]

El 11 de julio de 2011, Anonymous pirateó sus servidores y los filtró el mismo día. "La filtración, denominada 'Lunes de fusión militar', incluye 90.000 inicios de sesión de personal militar, incluido personal de USCENTCOM , SOCOM , la Infantería de Marina , varias instalaciones de la Fuerza Aérea , Seguridad Nacional , personal del Departamento de Estado y lo que parecen contratistas del sector privado. " [25] Se descubrió que estas contraseñas filtradas estaban codificadas con SHA-1 sin sal y luego fueron analizadas por el equipo ADC de Imperva , revelando que incluso algunos miembros del personal militar usaban contraseñas tan débiles como "1234". [26]

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

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

Prevención

Un método para evitar que se descifre una contraseña es garantizar que los atacantes no puedan acceder ni siquiera a la contraseña hash. Por ejemplo, en el sistema operativo Unix , las contraseñas hash se almacenaban originalmente en un archivo de acceso público . Por otro lado, en los sistemas Unix modernos (y similares), se almacenan en el archivo de contraseña oculta , al que sólo pueden acceder los 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 hash en primera instancia; sin embargo, se han robado muchas colecciones de hashes de contraseñas a pesar de dicha protección. Y algunos protocolos de red comunes transmiten contraseñas en texto sin cifrar o utilizan esquemas débiles de desafío/respuesta. [30] [31]/etc/passwd/etc/shadow

Otro enfoque es 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 plano 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 reduzcan la velocidad a la que se pueden adivinar las contraseñas. [32] : 5.1.1.2 

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

Los sistemas Unix modernos han reemplazado la función hash de contraseña tradicional basada en DES crypt() con métodos más potentes como crypt-SHA , bcrypt y scrypt . [33] Otros sistemas también han comenzado a adoptar estos métodos. Por ejemplo, Cisco IOS usó originalmente un cifrado Vigenère reversible para cifrar contraseñas, pero ahora usa md5-crypt con un salt de 24 bits cuando se usa el comando "enable secret". [34] Estos métodos más nuevos utilizan 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. [35]

Muchos hashes utilizados para almacenar contraseñas, como MD5 y la familia SHA , están diseñados para un cálculo rápido con bajos requisitos de memoria y una implementación eficiente en hardware. Se pueden ejecutar varias instancias de estos algoritmos en paralelo en unidades de procesamiento de gráficos (GPU), lo que acelera el craqueo. Como resultado, los hashes rápidos son ineficaces para prevenir el descifrado de contraseñas, incluso con sal. Algunos algoritmos de extensión de claves , como PBKDF2 y crypt-SHA, calculan de forma iterativa los hashes de contraseñas 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, tienen memoria dura , lo que significa que requieren cantidades relativamente grandes de memoria además de cálculos que requieren mucho tiempo y, por lo tanto, son más difíciles de descifrar utilizando GPU y circuitos integrados personalizados.

En 2013, se anunció un concurso de hash de contraseñas a largo plazo para elegir un nuevo algoritmo estándar para el hash de contraseñas, [36] y Argon2 fue elegido ganador en 2015. El NIST recomienda otro algoritmo, Balloon . [37] Ambos algoritmos tienen poca memoria.

Soluciones como un token de seguridad brindan una respuesta de prueba formal 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 turno) y reducen el valor de las contraseñas robadas debido a su corta validez.

Software

Existen muchas herramientas de software para descifrar contraseñas, pero las más populares [38] son ​​Aircrack-ng , Cain & Abel , John the Ripper , Hashcat , Hydra , DaveGrohl y ElcomSoft . Muchos paquetes de software de asistencia en 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 craqueo; Los algoritmos con ataques de fuerza bruta y de diccionario resultaron ser los más productivos. [39]

La mayor disponibilidad de potencia informática y de software para descifrar contraseñas automatizado y fácil de usar para principiantes para una serie de esquemas de protección ha permitido que los script kiddies se dediquen a esta actividad . [40]

Ver también

Referencias

  1. ^ ab oclHashcat-lite: recuperación avanzada de contraseña. Hashcat.net. Recuperado el 31 de enero de 2013.
  2. ^ Montoro, Massimiliano (2005). "Manual del usuario de Cain & Abel: descifrador de contraseñas de fuerza bruta". oxid.it (desaparecido) . Archivado desde el original el 7 de junio de 2019 . Consultado el 13 de agosto de 2013 .{{cite web}}: Mantenimiento CS1: URL no apta ( enlace )
  3. ^ "¿Qué es la pulverización de contraseñas? Cómo detener los ataques de pulverización 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}}: Citar diario requiere |journal=( ayuda )
  5. ^ Lundin, Leigh (11 de agosto de 2013). "PIN y contraseñas, parte 2". SleuthSayers.org . Orlando.
  6. ^ Alejandro, Steven. (20 de junio de 2012) The Bug Charmer: ¿Cuánto tiempo deben tener las contraseñas? Bugcharmer.blogspot.com. Recuperado el 31 de enero de 2013.
  7. ^ Blog Cryptohaze: 154 mil millones de NTLM/seg en 10 hashes. Blog.cryptohaze.com (15 de julio de 2012). Recuperado el 31 de enero de 2013.
  8. ^ Puntos de referencia de John el Destripador. openwall.info (30 de marzo de 2010). Recuperado el 31 de enero de 2013.
  9. ^ Rebabas, NOSOTROS; Dodson, DF; Polk, WT (2006). "Pauta de autenticación electrónica". NIST. doi : 10.6028/NIST.SP.800-63v1.0.2 . Consultado el 27 de marzo de 2008 . {{cite journal}}: Citar diario requiere |journal=( ayuda )
  10. ^ "Estado del proyecto de clave de 64 bits". Distribuido.net. Archivado desde el original el 10 de septiembre de 2013 . Consultado el 27 de marzo de 2008 .
  11. ^ "Tabla de velocidades de recuperación de contraseñas". 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. ^ "El clúster de 25 GPU descifra todas las contraseñas estándar de Windows en <6 horas". 2012.
  14. ^ "La máquina EFF DES Cracker aporta honestidad al debate sobre las 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). "La Universidad de Nueva York expuso accidentalmente un proyecto informático de descifrado de códigos militares a todo Internet". La Intercepción .
  16. ^ "anunciar - [openwall-announce] John the Ripper 1.9.0-jumbo-1". openwall.com .
  17. ^ "¿La contraseña de Bcrypt se descifra extremadamente lenta? No si la estás usando". Medio . 8 de septiembre de 2020.
  18. ^ Gestión de la seguridad de la red. Fred Cohen y asociados. Todo.net. Recuperado el 31 de enero de 2013.
  19. ^ Yan, J.; Blackwell, A.; Anderson, R.; Subvención, A. (2004). "Seguridad y memorización de contraseñas: resultados empíricos" (PDF) . Revista IEEE sobre seguridad y privacidad . 2 (5): 25. doi :10.1109/MSP.2004.81. S2CID  206485325.
  20. ^ ab Steinberg, Joseph (21 de abril de 2015). "La nueva tecnología descifra 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. ^ "Peores prácticas de contraseñas de consumidores" (PDF) . Imperva.com .
  23. ^ "Peores prácticas de contraseñas de consumidores" (PDF) . Imperva.com .
  24. ^ "Ataque de piratería de la OTAN". El registro . Consultado el 24 de julio de 2011 .
  25. ^ "Anonymous filtra 90.000 cuentas de correo electrónico militares en el último ataque antisec". 11 de julio de 2011.
  26. ^ "Análisis de contraseñas militares". Imperva.com . 12 de julio de 2011.
  27. ^ "Prohibiciones de Hotmail de Microsoft 123456". Imperva.com . 18 de julio de 2011. Archivado desde el original el 27 de marzo de 2012.
  28. ^ "Ashley Madison: los piratas informáticos arrojan datos robados del sitio de citas". bankinfosecurity.com . Consultado el 11 de abril de 2021 .
  29. ^ "Los investigadores descifran 11 millones de contraseñas de Ashley Madison". bankinfosecurity.com . Consultado el 11 de abril de 2021 .
  30. ^ Cantante, Abe (noviembre de 2001). "Sin contraseñas de texto sin formato" (PDF) . Acceso . 26 (7): 83–91. Archivado (PDF) desde el original el 24 de septiembre de 2006.
  31. ^ "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 .
  32. ^ 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}}: Citar diario requiere |journal=( ayuda )
  33. ^ Un esquema de contraseña adaptable al futuro. Usenix.org (13 de marzo de 2002). Recuperado el 31 de enero de 2013.
  34. ^ Preguntas frecuentes sobre MDCrack 1.8. Ninguno. Recuperado el 31 de enero de 2013.
  35. ^ Protección con contraseña para sistemas operativos modernos. Usenix.org. Recuperado el 31 de enero de 2013.
  36. ^ "Concurso de hash de contraseñas". Archivado desde el original el 2 de septiembre de 2013 . Consultado el 3 de marzo de 2013 .
  37. ^ "NIST SP800-63B Sección 5.1.1.2" (PDF) . nvlpubs.nist.gov .
  38. ^ "Los 10 mejores descifradores de contraseñas". Sectorherramientas . Consultado el 1 de noviembre de 2009 .
  39. ^ "Manténgase seguro: vea cómo funcionan los descifradores de contraseñas - Blog de Keeper". Blog de Keeper Security: noticias sobre ciberseguridad y actualizaciones de productos . 28 de septiembre de 2016 . Consultado el 7 de noviembre de 2020 .
  40. ^ Anderson, Nate (24 de marzo de 2013). "Cómo me convertí en un descifrador de contraseñas: descifrar contraseñas ahora es oficialmente una actividad de" script kiddie "". Ars Técnica . Consultado el 24 de marzo de 2013 .

enlaces externos