La tecnología subyacente es el uso de Windows DPAPI y .NET mediante ProtectedData . En nuestro escenario, tenemos una aplicación que se ejecuta en varios servidores, sitios web, sitios web en los que los usuarios pueden iniciar sesión y servicios de Windows que se ejecutan en segundo plano. Todo lo cual se ejecuta bajo una cuenta de AD específica para la aplicación.
Las claves de cifrado se almacenan en el perfil y esto permite que todos los componentes accedan a los datos. Todo funcionando bien.
Sin embargo, ¿existe un riesgo inherente al asociar las claves con un perfil de AD, ya que cualquier manipulación / corrupción en el perfil puede hacer que la aplicación ya no pueda acceder a los datos? ¿O es este riesgo tan bajo como para ser insignificante?
¿Sería mejor usar otros objetos criptográficos de .NET para almacenar la clave a nivel de aplicación para que AD no esté involucrado?
Inicialmente busqué en el sitio y encontré esta publicación sobre cifrado simétrico y vinculado a un buen documento técnico por Microsoft que describe algunas de las debilidades de DPAPI, pero no aborda si es apropiado para una aplicación grande y algo distribuida. Creo que hay cierto riesgo, pero no sé si es lo suficientemente alto como para preocuparse a largo plazo.