stored - ¿Windows equivalente a OS X Keychain?
windows 10 stored passwords (4)
¿Hay un equivalente de OS X Keychain, utilizado para almacenar contraseñas de usuario, en Windows? Lo usaría para guardar la contraseña del usuario para un servicio web que utiliza mi software (de escritorio).
De las respuestas a esta pregunta relacionada ( Protección de contraseñas de usuario en aplicaciones de escritorio (Rev 2) ) y la multitud de herramientas de almacenamiento de contraseñas de terceros disponibles, asumo que tal cosa no existe-- ¿Estoy atrapado con cualquiera de los dos? contraseña cada vez que accedo al servicio web, o simplemente lo guardo ofuscado?
En realidad, mirando a través de MSDN, las funciones que recomiendan usar (en lugar de almacenamiento protegido) son:
CryptProtectData y CryptUnprotectData
El enlace para CryptProtectData está en:
http://msdn.microsoft.com/en-us/library/aa380261(v=VS.85).aspx
Mira Roboform ( http://www.roboform.com/ ). Yo uso esto todo el tiempo. También hay un programa gratuito en SourceForge.net. Aquí hay uno en CNET ( http://download.cnet.com/Password-Keychain/3000-2381_4-10072470.html ). Solo algunos de los (probablemente) cientos de programas que existen. :-)
Windows 8 tiene una idea de un llavero llamado Password Vault. Las aplicaciones de Windows Runtime (Modern / Metro) así como las aplicaciones de escritorio administradas pueden hacer uso de ella. De acuerdo con la documentación:
Las aplicaciones y los servicios no tienen acceso a las credenciales asociadas con otras aplicaciones o servicios.
Consulte Cómo almacenar credenciales de usuario en MSDN.
Pre-Windows 8, API de protección de datos (DPAPI) es el equivalente más cercano a un llavero. Los datos arbitrarios se pueden cifrar utilizando esta API, aunque el almacenamiento de los datos cifrados corresponde al desarrollador. En última instancia, los datos se cifran con la contraseña del usuario actual; sin embargo, se puede incluir la "entropía opcional" suministrada por el usuario o el desarrollador para proteger aún más los datos de otros programas o usuarios. Los datos también se pueden descifrar en diferentes computadoras en un dominio.
Se puede acceder a DPAPI a través de llamadas nativas a las funciones CryptProtectData y CryptUnprotectData oa través de la clase ProtectedData .NET Framework, que es un contenedor de características limitadas para las funciones anteriores.
En el artículo de Passcape, Secretos DPAPI, está disponible más información de la que nunca necesitó saber sobre DPAPI . Análisis de seguridad y recuperación de datos en DPAPI .
El equivalente "tradicional" de Windows sería el subsistema de Almacenamiento Protegido, utilizado por IE (pre IE 7), Outlook Express y algunos otros programas. Creo que está encriptada con su contraseña de inicio de sesión, lo que previene algunos ataques fuera de línea, pero una vez que haya iniciado sesión, cualquier programa que quiera puede leerla. (Consulte, por ejemplo, el PassView de almacenamiento protegido de NirSoft ).
Windows también proporciona CryptoAPI y la API de protección de datos que podrían ayudar. De nuevo, sin embargo, no creo que Windows haga nada para evitar que los procesos que se ejecutan bajo la misma cuenta vean las contraseñas de los demás.
Parece que el libro Mechanics of User Identification and Authentication brinda más detalles sobre todos estos.
Eclipse (a través de su función de Storage Secure ) implementa algo como esto, si está interesado en ver cómo lo hace otro software.