¿cómo recordar las contraseñas de forma segura?

2

Imagine que tiene una clave RSA privada en su computadora cifrada (a través de PBKDF2, AES-CTR, HMAC256) con una contraseña, ahora si el usuario desea marcar "Recordar contraseña", ¿cuál es la forma más segura de guardar? / ¿Recuerdas la contraseña? Obviamente, no lo está almacenando en texto sin formato en el directorio local.

Una opción sería utilizar:

  • el ID de hardware de la computadora
  • el SID del usuario actual
  • las ventanas integradas EncryptFile (debe iniciar sesión como la misma cuenta)

El problema es que todas esas informaciones pueden verse comprometidas cuando se utiliza el Utilman.exe Trick por ejemplo.

Una alternativa sería la ofuscación, pero sabemos que no es realmente una solución a largo plazo.

¿Existe una solución adecuada para esto o es simplemente una mala práctica?

    
pregunta hl3mukkel 30.06.2014 - 18:24
fuente

1 respuesta

3

En última instancia, si la máquina puede usar la contraseña guardada sin intervención humana específica, entonces ... puede usarla. Esto significa que un atacante que obtiene el control total de la máquina (ya sea un secuestro de software hostil con privilegios de administrador / raíz, o toma la computadora portátil y se ejecuta para ella) podrá recuperar la contraseña. Sobre una base teórica, si desea resistirse a un atacante de este tipo, necesita la contraseña para no llegar nunca a la RAM de la máquina; Necesita algún componente resistente a la manipulación que realice todo el procesamiento. Este es el modelo de tarjetas inteligentes y terminales de pago, que cuentan con protección física y destruyen activamente los datos confidenciales en caso de incumplimiento físico; y tampoco tienen una noción de "usuario root" accesible para el usuario humano real.

En el mejor de los casos, puedes esperar ralentizar al atacante. Sin embargo, todavía hay métodos de gestión que son mejores que otros. Por ejemplo, cuando almacena algún valor secreto confidencial, debe evitar dejar que se filtre a las copias de seguridad, o al menos con alguna protección específica. De manera similar, el usuario puede querer integrar dicho almacenamiento dentro de una solución de administración secreta más grande, por ejemplo. una "contraseña segura" con una contraseña maestra, o cosas así. Entonces, lo mejor es confiar en los servicios provistos por el sistema operativo para el almacenamiento de datos confidenciales. En los sistemas Windows, esto apunta a DPAPI . En Mac OS X, use Keychain . Como de costumbre, el software que es más fácil de diseñar, implementar e implementar es un software que ya ha sido diseñado, implementado y desplegado por otra persona. Por lo tanto, no trates de hacer cosas más o menos inteligentes de tu lado; solo deja que el sistema operativo haga su trabajo.

    
respondido por el Thomas Pornin 11.07.2014 - 15:13
fuente

Lea otras preguntas en las etiquetas