La tecnologia sottostante è Windows DPAPI e .NET che ne fanno uso tramite ProtectedData . Nel nostro scenario, abbiamo un'applicazione che funziona su vari server, Web Api, siti Web a cui gli utenti possono accedere e servizi Windows in esecuzione in background. Tutto ciò viene eseguito in un account AD specifico per l'applicazione.
Le chiavi di crittografia sono memorizzate sul profilo e questo consente a tutti i componenti di accedere ai dati. Tutto funziona bene.
Tuttavia, esiste un rischio intrinseco nell'associare le chiavi con un profilo AD in quanto qualsiasi manipolazione / corruzione del profilo può comportare che l'applicazione non sia più in grado di accedere ai dati? O questo rischio è così basso da essere trascurabile?
Sarebbe meglio usare gli altri oggetti crittografici di .NET per archiviare la chiave a livello di applicazione in modo che AD non sia coinvolto?
Inizialmente ho cercato sul sito e ho trovato questo post sulla crittografia simmetrica e collegata a un buon whitepaper tramite Microsoft che illustra alcuni dei punti deboli di DPAPI, ma non si occupa del tutto se è appropriato per un'applicazione grande, piuttosto distribuita. Penso che ci sia qualche rischio ma non so se è abbastanza alto per essere preoccupato a lungo termine.