¿Cómo almacenar el secreto del cliente de forma segura en la base de la aplicación en Windows?

5

Me gustaría almacenar datos valiosos del cliente (por ejemplo, contraseñas, tokens OAuth) de manera que solo sean accesibles desde una aplicación (separación en la base de la aplicación). El mecanismo debe ser transparente para el usuario: la protección de contraseña adicional será irritante.

¿Hay alguna manera de lograr eso en Windows?

(En el caso de Android, tal separación es posible asignando a cada aplicación un ID de usuario único y aprovechando los mecanismos estándar * nix.)

Soy consciente de la existencia de almacenamiento aislado ( enlace ), pero la documentación indica claramente no se recomienda para almacenar datos valiosos:

  

No debe usar almacenamiento aislado en las siguientes situaciones:

     
  • Para almacenar secretos de alto valor, como claves o contraseñas no cifradas, porque el almacenamiento aislado no está protegido de un código altamente confiable, de un código no administrado o de usuarios confiables de la computadora.
  •   
    
pregunta random_crane 05.11.2014 - 13:00
fuente

1 respuesta

3

Debería usar DPAPI para cifrar los datos antes de almacenarlos en almacenamiento aislado. Si bien la DPAPI está dirigida principalmente a la seguridad por usuario, no por aplicación, tiene algunas disposiciones para su escenario:

  

Un pequeño inconveniente de usar la contraseña de inicio de sesión es que todas las aplicaciones   ejecutándose bajo el mismo usuario puede acceder a los datos protegidos que   saber sobre. Por supuesto, porque las aplicaciones deben almacenar sus propios   datos protegidos, obtener acceso a los datos podría ser algo difícil   Para otras aplicaciones, pero desde luego no es imposible. Para contrarrestar   esto, DPAPI permite que una aplicación use un secreto adicional cuando   protección de datos Este secreto adicional es necesario para desproteger   los datos.

    
respondido por el Bruce 11.11.2014 - 18:23
fuente

Lea otras preguntas en las etiquetas