it-swarm-es.com

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

La API de protección de datos de Windows (DPAPI) es el método sugerido para almacenar secretos en sistemas Windows (como 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 pasadas y certificados del sistema de archivos cifrados. El resumen de presentación afirma el descifrado de todos los DPAPI cifrados Dado que se trata de un ataque fuera de línea, los controles de acceso al registro de Windows también son ineficaces.

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

12
Bell

@nealmcb me preguntó (¡Gracias!) sobre esto y esta es de hecho una gran pregunta que no está cubierta en nuestro artículo. 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 de blog, pero mientras tanto, aquí hay una descripción general de lo que puede hacer:

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

Entonces, en una configuración de ataque fuera de línea, un atacante primero necesita forzar (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 Rainbow 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 el atacante obviamente necesita descifrar el disco duro antes de intentar recuperar los datos DPAPI.

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

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

Avísame si tienes otras preguntas

11
user1587

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

Así que parece que esto ante todo amplifica la necesidad de utilizar una contraseña de inicio de sesión realmente buena, resistente a los ataques de diccionario.

Además, nunca use una contraseña débil, ya que expondrá a las demás a un fácil acceso.

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

Y presione a Microsoft para que acepte la oferta de las personas criptográficas más calificadas que hicieron este análisis gratuito por ellos. Es decir. arreglar su mecanismo CREDHIST roto. O cambie a otro esquema de almacenamiento secreto ...

6
nealmcb

Le doy 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 exhiba B, el usuario mismo.

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, luego procede a escribir su contraseña e iniciar 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 tener en sus manos el estado de la máquina (por ejemplo, robó toda la computadora portátil), entonces puede ejecutar un sin conexión ataque de diccionario en la contraseña del usuario, que puede hacer arbitrariamente rápida lanzándole más hardware.

El resto es solo el circo habitual de la seguridad mediante la oscuridad, la ingeniería inversa y la pronunciación de una larga serie de acrónimos de aspecto serio para exorcizar la amenaza de Evil Hackers ™. La situación de ataque de diccionario fuera de línea se puede mitigar con las campanas y silbidos de hash de contraseña habituales (consulte bcrypt ). Un enfoque más completo utilizaría un dispositivo a prueba de manipulaciones, p. Ej. una tarjeta inteligente externa, o una TPM , que conceptualmente priva 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 del hardware.

3
Thomas Pornin