Los investigadores han esbozado sus avances en el desarrollo de BitCracker, una herramienta de descifrado de contraseñas con potencia de GPU construida específicamente para romper el BitLocker, el cifrado de disco completo integrado en Microsoft Windows.
Un libro blanco (PDF) publicado recientemente por Elena Agostini, ingeniera de software de Nvidia, y Massimo Bernaschi, director de tecnología del Consejo Nacional de Investigación de Italia (CNR), describe BitCracker como una solución diseñada para «intentar descifrar, mediante un ataque de diccionario, las unidades de memoria cifradas por BitLocker».
BitCracker fue lanzado por primera vez en diciembre de 2015 y ha sido desarrollado continuamente desde entonces.
Ataque de diccionario
BitLocker es la implementación de Microsoft del cifrado de disco completo, lanzado por primera vez como una actualización de Windows Vista en 2007. BitLocker es compatible con los módulos de plataforma de confianza (TPM) y cifra los datos almacenados en el disco para evitar el acceso no autorizado en casos de robo de dispositivos o ataques basados en software.
BitLocker To Go funciona de la misma manera para los dispositivos externos, como las unidades USB.
La tecnología utiliza un cifrado AES de 128 bits por defecto, pero puede configurarse a 256 bits para un mayor nivel de seguridad.
Como BitLocker utiliza altos niveles de cifrado AES, BitCracker se apoya en Unidades de Procesamiento Gráfico (GPU) de alto rendimiento para hacer viable un ataque de diccionario.
El software está disponible para la comunidad de código abierto y accesible a través de GitHub.
Una implementación OpenCL de BitCracker se integró con la popular herramienta de hacking de contraseñas de código abierto John The Ripper, versión Bleeding-Jumbo, lanzada el año pasado.
«El proceso de descifrado de BitLocker requiere la ejecución de un número muy elevado de hashes SHA-256 y también de AES, por lo que proponemos una solución muy rápida, muy ajustada a la GPU Nvidia, para ambos», explican los investigadores.
BitCracker se ha probado con tres arquitecturas de GPU Nvidia: Kepler, Maxwell y Pascal.
ESCUCHA AHORA SwigCast, Episodio 2: ENCRYPTION
Bits and pieces
BitLocker utiliza dos modos diferentes de autenticación; una contraseña de usuario o el modo de recuperación, en el que un usuario escribe una contraseña para cifrar o descifrar una unidad, o utiliza una clave de recuperación de 48 dígitos generada por BitLocker para acceder a su contenido.
Durante el cifrado, cada volumen del sector se cifra individualmente utilizando una clave de cifrado de todo el volumen (FVEK) y una clave maestra del volumen (VMK), esta última también cifrada y almacenada en el volumen.
Si una unidad se ha cifrado con el método de la contraseña de usuario, por ejemplo, en los metadatos del volumen encontrará dos VMK cifradas: una cifrada con la contraseña de usuario y otra cifrada con la contraseña de recuperación.
Durante el descifrado, BitLocker comienza a descifrar la VMK, luego la FVEK y después el propio disco.
La herramienta BitCracker se centra en descifrar una clave VMK, exponiendo una contraseña capaz de descifrar un dispositivo.
Se realiza un ataque de diccionario, aprovechando el rendimiento y la potencia de la GPU. El estándar SHA-256 transforma los mensajes en lo que se conoce como «bloques W» antes de realizar el hash, por lo que, para acelerar las cosas, el equipo creó una facilidad de precomputación para algunos conjuntos de palabras W, reduciendo el número de operaciones aritméticas necesarias mediante la creación de una tabla de búsqueda de arco iris. Sin embargo, esto no puede aplicarse a otras configuraciones de SHA-256.
También te puede gustar Las herramientas de código abierto ayudan a detectar la seguridad de los contenedores en la nube
Para aumentar aún más la velocidad de los posibles ataques, Agostini y Bernaschi también pudieron eliminar el cálculo y la comparación de MAC.
El rendimiento de BitCracker se comparó con el de otro popular cracker de contraseñas, Hashcat, utilizando una GPU Pascal.
El equipo reconoce que la comparación no es del todo justa, ya que Hashcat no utiliza las funciones de bloque W de BitCracker ni el cálculo de MAC.
Sin embargo, Hashcat fue capaz de realizar 3.290 millones de hashes por segundo (MH/s), un resultado que, según los investigadores, es «comparable al mejor rendimiento de BitCracker en la misma GPU.»
El complejo proceso de cifrado de BitLocker significa que hay un límite en el número de contraseñas que se pueden probar a la vez.
Sin embargo, el documento de investigación sugiere que con una sola GPU de gama alta, es teóricamente posible que se puedan intentar más de 122 millones de contraseñas en sólo 24 horas.
«Los resultados muestran que BitCracker puede competir con un descifrador de contraseñas de última generación en términos de rendimiento bruto en los núcleos computacionales básicos, mientras que es el único que proporciona atajos específicos para acelerar el procedimiento de descifrado de BitLocker», explican los investigadores.
Desarrollos futuros
Hay limitaciones en BitCracker. Actualmente, la herramienta sólo es capaz de evaluar contraseñas de entre ocho y 27 caracteres, y los usuarios deben suministrar su propio diccionario de entrada.
Además, BitLocker se utiliza a menudo junto con un TPM en entornos empresariales en lugar de depender únicamente de una contraseña de usuario, por lo que los ataques pueden limitarse a configuraciones de consumidores o tal vez de individuos en organizaciones particulares en lugar de implementaciones en toda la empresa.
Como señala el usuario de Reddit y colaborador de GitHub Rarecoil, también se da el caso de que la herramienta tiene varios años, y tanto los diccionarios como los conjuntos de reglas optimizados han avanzado más allá del alcance de los ataques de BitCracker.
Agostini y Bernaschi también han propuesto métodos para mejorar BitCracker en el futuro, incluyendo la adición de un ataque en modo máscara o la asignación de probabilidades inteligentes a los diccionarios de entrada para acelerar el proceso.