Escribo (en C# con .NET 3.5) una aplicación administrativa que sondeará varios sistemas Windows para varios bits de datos. En muchos casos, utilizará WMI, pero en algunos casos puede necesitar leer el registro remoto o ejecutar remotamente algún comando o script en el sistema sondeado. Este sondeo se realizará a intervalos periódicos, por lo general todas las noches, pero se puede configurar para que ocurra más (o menos) con frecuencia. Por lo tanto, la encuesta podría realizarse cada 10 minutos o tan raramente como una vez al mes. Tiene que suceder de forma automatizada, sin intervención humana.Almacenamiento de contraseñas de Windows
Estas funciones requerirán acceso de nivel administrativo a los sistemas sondeados. Ahora, espero que en la mayoría de los casos de uso, habrá un dominio, y la aplicación de sondeo se puede ejecutar como un servicio con privilegios de administrador de dominio (o equivalente), lo que significa que no tengo que preocuparme por almacenar contraseñas: la configuración del administrador la aplicación definirá el nombre de usuario/contraseña del servicio a través de los mecanismos estándar de Windows.
Pero siempre hay algunas ovejas negras por ahí. El programa puede ejecutarse en entornos sin dominio, o en los casos en que algunos sistemas sondeados no son miembros del dominio. En estos casos, tendremos que definir un nombre de usuario y una contraseña, almacenarlos de forma segura y luego invocar este par usuario/pase en el momento en que sondeamos el sistema. Así que tenga en cuenta que, en este caso, el programa que se escribe es el usuario que envía contraseña al sistema de autenticación.
No estoy seguro de si necesitaré usar un hash reversible que luego descifraré al texto plano en el momento del uso, o si hay algún mecanismo de Windows que me permita almacenar y luego reutilizar el hash solamente. Obviamente, el segundo mecanismo es preferible; Me gustaría que mi programa ya sea nunca conozca el valor del texto sin formato de la contraseña, o que lo sepa por el menor tiempo posible.
Necesito sugerencias para formas inteligentes y seguras de lograr esto.
¡Gracias por mirar!
posible duplicado de [¿Cómo almacenar contraseñas en la aplicación Winforms?] (Http://stackoverflow.com/questions/40853/how-to-store-passwords-in-winforms-application) – BalusC