DPAPI y malware

4

Estoy considerando usar la DPAPI de Windows para proteger una clave ECDH que utilizo para cifrar algunos datos en una base de datos local en una aplicación de escritorio de Windows. Soy nuevo en DPAPI, pero entiendo que DPAPI puede usar las credenciales de un usuario para proteger las claves que protege.

¿No sería esto vulnerable al malware, que un usuario instala inadvertidamente o si la DPAPI proporciona alguna protección en esta instancia?

    
pregunta Gene M. 27.01.2013 - 00:17
fuente

2 respuestas

3

No necesita inyección de procesos para acceder a los datos.

Creo que está claramente establecido en la documentación de DPAPI en el sitio web de Microsoft: su función es vincular los datos a proteger con la cuenta de usuario. Entonces, tan pronto como el código se ejecute con la misma cuenta (y no con el mismo proceso) se debe considerar desprotegido.

De hecho, si un malware se ejecuta, puede recuperar todos esos secretos sin ningún derecho específico. ¡Así es como funciona el software de recuperación de contraseña!

También se puede descifrar fuera de línea, pero supongo que ese no es el escenario de ataque que estás considerando aquí.

    
respondido por el Jean-Michel 27.01.2013 - 19:06
fuente
4

DPAPI está diseñado para proteger la memoria en escenarios donde se usa una cuenta limitada. La única forma de descifrar los datos protegidos por DPAPI es inyectar código en el proceso que protegió los datos. Esa operación (específicamente el uso de WriteProcessMemory y CreateRemoteThread ) requiere privilegios administrativos. Mientras el malware no logre escalar sus privilegios a un nivel administrativo, no puede inyectar un hilo en el proceso y, por lo tanto, no puede descifrar los datos de DPAPI.

El otro beneficio de DPAPI es que no importa si las regiones de memoria cifradas se escriben en el disco como parte de una operación de intercambio, hibernación o volcado de memoria. Las claves DPAPI se almacenan en áreas de la memoria del kernel que no se copian en el disco, por lo que es imposible recuperar los datos de ese archivo.

    
respondido por el Polynomial 27.01.2013 - 01:13
fuente

Lea otras preguntas en las etiquetas