En criptografía , un ataque de fuerza bruta consiste en que un atacante envíe muchas contraseñas o frases de contraseña con la esperanza de adivinar correctamente. El atacante comprueba sistemáticamente todas las contraseñas y frases de contraseña posibles hasta que encuentra la correcta. Alternativamente, el atacante puede intentar adivinar la clave , que normalmente se crea a partir de la contraseña, utilizando una función de derivación de claves . Esto se conoce como búsqueda exhaustiva de claves . Este enfoque no depende de tácticas intelectuales; más bien, se basa en realizar varios intentos. [ cita requerida ]
Un ataque de fuerza bruta es un ataque criptoanalítico que, en teoría, puede utilizarse para intentar descifrar cualquier dato cifrado (excepto los datos cifrados de una manera que sea segura desde el punto de vista de la información ). [1] Este tipo de ataque se puede utilizar cuando no es posible aprovechar otras debilidades en un sistema de cifrado (si existen) que facilitarían la tarea.
Al adivinar contraseñas, este método es muy rápido cuando se utiliza para comprobar todas las contraseñas cortas, pero para contraseñas más largas se utilizan otros métodos, como el ataque de diccionario, porque una búsqueda por fuerza bruta lleva demasiado tiempo. Las contraseñas, frases de contraseña y claves más largas tienen más valores posibles, lo que las hace exponencialmente más difíciles de descifrar que las más cortas debido a la diversidad de caracteres. [2]
Los ataques de fuerza bruta pueden volverse menos efectivos si se ofuscan los datos que se van a codificar, lo que dificulta que un atacante reconozca cuándo se ha descifrado el código o si se obliga al atacante a realizar más trabajo para probar cada intento. Una de las medidas de la solidez de un sistema de cifrado es el tiempo que, en teoría, le llevaría a un atacante lanzar un ataque de fuerza bruta con éxito contra él. [3]
Los ataques de fuerza bruta son una aplicación de la búsqueda de fuerza bruta, la técnica general de resolución de problemas que consiste en enumerar todos los candidatos y comprobar cada uno de ellos. A veces se utiliza la palabra "martilleo" para describir un ataque de fuerza bruta, [4] y "antimartilleo" para las contramedidas. [5]
Los ataques de fuerza bruta funcionan calculando todas las combinaciones posibles que podrían formar una contraseña y probándolas para ver si son las correctas. A medida que aumenta la longitud de la contraseña, el tiempo que se tarda, en promedio, en encontrar la contraseña correcta aumenta exponencialmente. [6]
Los recursos necesarios para un ataque de fuerza bruta crecen exponencialmente con el aumento del tamaño de la clave , no de manera lineal. Aunque las regulaciones de exportación de EE. UU. históricamente restringían las longitudes de clave a claves simétricas de 56 bits (por ejemplo, el Estándar de cifrado de datos ), estas restricciones ya no están vigentes, por lo que los algoritmos simétricos modernos suelen utilizar claves computacionalmente más fuertes de 128 a 256 bits.
Existe un argumento físico que sostiene que una clave simétrica de 128 bits es computacionalmente segura contra ataques de fuerza bruta. El límite de Landauer implícito en las leyes de la física establece un límite inferior para la energía necesaria para realizar un cálculo de kT · ln 2 por bit borrado en un cálculo, donde T es la temperatura del dispositivo informático en kelvins , k es la constante de Boltzmann y el logaritmo natural de 2 es aproximadamente 0,693 (0,6931471805599453). Ningún dispositivo informático irreversible puede utilizar menos energía que esto, ni siquiera en principio. [7] Por lo tanto, para simplemente pasar por los posibles valores de una clave simétrica de 128 bits (ignorando el cálculo real para comprobarlo) se necesitarían, teóricamente, 2 128 − 1 cambios de bit en un procesador convencional. Si se supone que el cálculo se realiza cerca de la temperatura ambiente (≈300 K), se puede aplicar el límite de Von Neumann-Landauer para estimar la energía requerida como ≈10 18 julios , lo que equivale a consumir 30 gigavatios de energía durante un año. Esto es igual a 30×10 9 W×365×24×3600 s = 9,46×10 17 J o 262,7 TWh (aproximadamente el 0,1% de la producción mundial anual de energía ). El cálculo real completo (comprobar cada clave para ver si se ha encontrado una solución) consumiría muchas veces esta cantidad. Además, este es simplemente el requisito de energía para recorrer el espacio de claves; no se considera el tiempo real que lleva cambiar cada bit, que es ciertamente mayor que 0 (ver el límite de Bremermann ). [ cita requerida ]
Sin embargo, este argumento supone que los valores de los registros se modifican mediante operaciones convencionales de configuración y borrado, que inevitablemente generan entropía . Se ha demostrado que se puede diseñar hardware computacional para que no se enfrente a esta obstrucción teórica (véase computación reversible ), aunque no se sabe que se hayan construido tales computadoras. [ cita requerida ]
A medida que los sucesores comerciales de las soluciones ASIC gubernamentales se han vuelto disponibles, también conocidos como ataques de hardware personalizados , dos tecnologías emergentes han demostrado su capacidad en el ataque de fuerza bruta de ciertos cifrados. Una es la tecnología de unidad de procesamiento gráfico (GPU) moderna, [8] [ página necesaria ] la otra es la tecnología de matriz de puertas programables en campo (FPGA). Las GPU se benefician de su amplia disponibilidad y beneficio de precio-rendimiento, las FPGA de su eficiencia energética por operación criptográfica. Ambas tecnologías intentan trasladar los beneficios del procesamiento paralelo a los ataques de fuerza bruta. En el caso de las GPU, algunos cientos, en el caso de las FPGA, algunos miles de unidades de procesamiento, lo que las hace mucho más adecuadas para descifrar contraseñas que los procesadores convencionales. Por ejemplo, en 2022, se vincularon 8 GPU Nvidia RTX 4090 para probar la solidez de las contraseñas utilizando el software Hashcat con resultados que mostraron que se podían recorrer 200 mil millones de combinaciones de contraseñas NTLM de ocho caracteres en 48 minutos. [9] [10]
Varias publicaciones en el campo del análisis criptográfico han demostrado la eficiencia energética de la tecnología FPGA actual; por ejemplo, el ordenador FPGA Cluster de COPACOBANA consume la misma energía que un solo PC (600 W), pero rinde como 2.500 PC para ciertos algoritmos. Varias empresas ofrecen soluciones de análisis criptográfico FPGA basadas en hardware, desde una sola tarjeta PCI Express FPGA hasta ordenadores FPGA dedicados. [ cita requerida ] El cifrado WPA y WPA2 han sido atacados con éxito por fuerza bruta al reducir la carga de trabajo en un factor de 50 en comparación con las CPU convencionales [11] [12] y unos cientos en el caso de los FPGA.
El estándar de cifrado avanzado (AES) permite el uso de claves de 256 bits. Descifrar una clave simétrica de 256 bits mediante fuerza bruta requiere 2 128 veces más potencia computacional que una clave de 128 bits. Una de las supercomputadoras más rápidas de 2019 tiene una velocidad de 100 petaFLOPS que, en teoría, podría verificar 100 billones (10 14 ) de claves AES por segundo (suponiendo 1000 operaciones por verificación), pero aún requeriría 3,67 × 10 55 años para agotar el espacio de claves de 256 bits. [13]
Una suposición subyacente de un ataque de fuerza bruta es que se utilizó el espacio de claves completo para generar claves, algo que depende de un generador de números aleatorios eficaz , y que no hay defectos en el algoritmo o su implementación. Por ejemplo, una serie de sistemas que originalmente se pensó que eran imposibles de descifrar mediante fuerza bruta se han descifrado , sin embargo , porque se descubrió que el espacio de claves a través del cual buscar era mucho más pequeño de lo que se pensaba originalmente, debido a una falta de entropía en sus generadores de números pseudoaleatorios . Estos incluyen la implementación de Secure Sockets Layer (SSL) de Netscape (descifrada por Ian Goldberg y David Wagner en 1995) y una edición Debian / Ubuntu de OpenSSL que se descubrió en 2008 que tenía fallas. [14] [15] Una falta similar de entropía implementada llevó a la ruptura del código de Enigma . [16] [17]
El reciclaje de credenciales es la práctica de piratería informática de reutilizar combinaciones de nombre de usuario y contraseña obtenidas en ataques de fuerza bruta anteriores. Una forma especial de reciclaje de credenciales es el método de pasar el hash , en el que las credenciales con hash sin sal se roban y se reutilizan sin sufrir un ataque de fuerza bruta previo. [18]
Ciertos tipos de cifrado, por sus propiedades matemáticas, no pueden ser derrotados por la fuerza bruta. Un ejemplo de esto es la criptografía de un solo uso , donde cada bit de texto claro tiene una clave correspondiente de una secuencia verdaderamente aleatoria de bits de clave. Una cadena de 140 caracteres codificada con un solo uso sometida a un ataque de fuerza bruta eventualmente revelaría cada cadena de 140 caracteres posible, incluyendo la respuesta correcta – pero de todas las respuestas dadas, no habría manera de saber cuál es la correcta. Derrotar un sistema de este tipo, como lo hizo el proyecto Venona , generalmente no depende de la criptografía pura, sino de errores en su implementación, como que los teclados no sean verdaderamente aleatorios, teclados interceptados o operadores que cometan errores. [19]
En caso de un ataque offline en el que el atacante haya obtenido acceso al material cifrado, se pueden probar combinaciones de teclas sin riesgo de descubrimiento o interferencia. En caso de ataques online , los administradores de bases de datos y directorios pueden implementar contramedidas como limitar el número de intentos de contraseña, introducir retrasos de tiempo entre intentos sucesivos, aumentar la complejidad de la respuesta (por ejemplo, exigir una respuesta CAPTCHA o emplear autenticación multifactor ) y/o bloquear cuentas después de intentos de inicio de sesión fallidos. [20] [ página necesaria ] Los administradores de sitios web pueden impedir que una dirección IP en particular intente más de un número predeterminado de intentos de contraseña contra cualquier cuenta del sitio. [21] Además, el marco MITRE D3FEND proporciona recomendaciones estructuradas para defenderse de ataques de fuerza bruta mediante la implementación de estrategias como el filtrado del tráfico de red, la implementación de credenciales señuelo y la invalidación de cachés de autenticación. [22]
En un ataque de fuerza bruta inverso, se prueba una única contraseña (normalmente común) con varios nombres de usuario o archivos cifrados. [23] El proceso puede repetirse para unas cuantas contraseñas seleccionadas. En una estrategia de este tipo, el atacante no tiene como objetivo a un usuario específico.