Ho una situazione in cui la mia applicazione web verrà distribuita su più server Web e vorrò memorizzare alcuni dati crittografati in modo sicuro sui server DB (ogni server Web ha un server DB associato).
Ora, quello che stavo pensando di fare era implementare le funzioni di libreria Encrypt
e Decrypt
che utilizzano la classe AesManaged
. Questi userebbero un tasto AES che sarebbe diverso per ogni server (ne genereremmo uno nuovo per ogni server sulla distribuzione) - in questo modo, ogni server userebbe una chiave diversa. Dovremmo quindi utilizzare SectionInformation.ProtectSection()
per crittografarli in Web.config
, quindi erano sicuri.
Tuttavia, mi sono imbattuto in ProtectedData
classe. Questo si aggancia alla funzionalità DPAPI di Windows e consente la crittografia e la decrittografia simmetriche. Ora mi chiedo, c'è qualche punto nel mio usando AesManaged
con le mie chiavi generate a tutti, o dovrei semplicemente criptare e decrittografare i dati usando ProtectedData
? Quali sono i pro e i contro di ciascuno?