¿Cómo puedo mitigar la amenaza que DPAPick representa para mis datos protegidos de DPAPI?

12

La API de protección de datos de Windows (DPAPI) es el método sugerido para almacenar secretos en sistemas Windows (como las contraseñas de bases de datos requeridas por las aplicaciones ASP.Net).

DPAPick se presentó en BlackHat DC 2010 y WOOT'10, con un enfoque en la recuperación de contraseñas anteriores y certificados de sistemas de archivos cifrados. El resumen de la presentación reclama el descifrado de todos los datos cifrados DPAPI. Dado que se trata de un ataque sin conexión, los controles de acceso al registro de Windows también son ineficaces.

¿Cuáles son las limitaciones de la efectividad de DPAPick y cómo se pueden aprovechar sus puntos ciegos y sus puntos débiles para proteger mejor los datos que estoy almacenando en las estaciones de trabajo para mis aplicaciones?

    
pregunta Bell 22.02.2011 - 14:39
fuente

3 respuestas

11

@nealmcb me preguntó (¡Gracias!) acerca de esto y esta es una gran pregunta que no se trata en nuestro documento. Estoy de acuerdo en que no estamos dando suficientes consejos sobre cómo lidiar con la seguridad de DPAPI. Arreglaré esto escribiendo una publicación en el blog, pero mientras tanto aquí hay una descripción general de lo que puedes hacer:

En general, DPAPI es una API de blackbox que le permite vincular cualquier información secreta, como la base de datos de contraseñas de Firefox, a una contraseña de cuenta de Windows. Para descifrar cualquier secreto DPAPI necesita un hash de la contraseña del usuario (en SHA1 (16_LE) aunque no NTLM).

Por lo tanto, en un ataque sin conexión, un atacante primero debe usar fuerza bruta (o adivinar) la contraseña del usuario para obtener este hash, por lo que una contraseña "segura" es definitivamente la primera buena línea de defensa. Pero recuerde que tenemos tablas de arco iris para NTLM, por lo que la seguridad de DPAPI también se ve afectada por esto.

El cifrado de disco, como bitlocker y truecrypt, es una buena primera línea de defensa contra esto porque, obviamente, el atacante necesita descifrar el disco duro antes de intentar recuperar los datos de DPAPI.

Lo que no es una buena idea es creer que EFS resolverá el problema, porque los certificados necesarios para descifrar el archivo están cifrados con un sistema "DPAPI". Entonces, una vez que se conoce la contraseña del usuario, todo lo que el atacante debe hacer es primero descifrar los archivos EFS recuperando el certificado y luego descifrar los datos de DPAPI.

Espero que esto aclare la situación. Para el problema de CREDHIST, estoy pensando en escribir una herramienta que la borre (al menos las primeras N contraseñas antiguas).

Hazme saber si tienes otras preguntas

    
respondido por el user1587 01.03.2011 - 14:27
fuente
6

Esto es principalmente una ingeniería inversa del algoritmo, ya que la API empleaba la seguridad por oscuridad y no proporcionaba un conjunto completo de primitivas.

Parece que esto primero amplía la necesidad de usar una contraseña de inicio de sesión realmente buena, resistente a los ataques de diccionario.

Tampoco utilice una contraseña débil, ya que expondrá las otras a una fácil ruptura.

Esté siempre alerta ante la posibilidad de una puerta trasera, como se describe en el documento: Elie - Invertir DPAPI y robar los secretos de Windows sin conexión .

Y presiona a Microsoft para que acepte la oferta de las personas crypto más calificadas que hicieron este análisis gratuito por ellos. Es decir. Arreglar su mecanismo de CREDHIST roto. O cambiar a otro esquema de almacenamiento secreto ....

    
respondido por el nealmcb 25.02.2011 - 07:28
fuente
3

Le proporciono la prueba A, una PC con un sistema operativo Windows instalado y una cuenta de usuario configurada, y algunos datos que han sido "protegidos" con DPAPI en nombre del usuario.

Luego exhibe B, el propio usuario.

Colocamos las dos entidades juntas en una habitación, con algo de energía eléctrica pero sin red externa. El usuario B enciende la máquina A y luego ingresa su contraseña e inicia sesión. Y luego el usuario B accede a los datos protegidos.

Por lo tanto , el contenido integral del estado de la máquina (es decir, su disco duro) y el conocimiento de la contraseña del usuario son suficientes para recuperar los datos. Corolario: si un atacante puede poner sus manos en el estado de la máquina (por ejemplo, robó toda la computadora portátil), entonces puede ejecutar un ataque de diccionario sin conexión a la contraseña del usuario, que puede hacer arbitrariamente rápido lanzándole más hardware.

El resto es solo el habitual circo de seguridad por oscuridad, ingeniería inversa y pronunciando una larga serie de acrónimos de apariencia seria para exorcizar la amenaza de los Malvados Hackers ™. La situación de ataque del diccionario sin conexión se puede mitigar con las típicas contraseñas de hash de contraseña (consulte bcrypt ). Un enfoque más completo usaría un dispositivo a prueba de manipulaciones, por ej. una tarjeta inteligente externa, o un TPM , que priva conceptualmente al atacante de una parte crucial del estado de la máquina; pero esto es más caro y tiene un impacto en la recuperación de datos en caso de falla de hardware.

    
respondido por el Thomas Pornin 03.02.2013 - 15:55
fuente

Lea otras preguntas en las etiquetas