Ho il seguente scenario di app in cui avrei bisogno di implementare la crittografia a livello di cella.
- Database - MS SQL Server
- Tecnologia Web - ASP.net MVC
Scenario di app esistente: - Attualmente l'applicazione web serve più client e l'app è collegata a più db come ClientX, Clienty, ClientZ ecc. Tutti questi db del client hanno lo stesso schema ma dati diversi. Tutti questi client i db risiedono solo sul nostro database.
Ora c'è una tabella presente in tutti i DB client conosciuti con il nome Cliente e ha alcune colonne importanti come TaxId, quantità ecc. Ora ho bisogno di crittografare queste colonne e anche di dover eseguire la decodifica su richiesta dalla nuova pagina dell'interfaccia utente.
Utilizzerò la chiave simmetrica con i certificati per gestire la crittografia per queste colonne specifiche.
Si prega di suggerire l'approccio alla progettazione del framework.
Le mie maggiori preoccupazioni sono: -
- Devo implementare la crittografia dei dati con la stessa chiave in tutti i diversi DB dei client? Il che significa dover creare la chiave simmetrica, certificato in tutti i db del cliente.
- I dati crittografati verrebbero visualizzati nei vari rapporti sProc e pagine dell'applicazione.
- Quanto è efficace l'area di gestione delle chiavi nell'implementazione del progetto?
- Se la richiesta di decifrazione si verifica molto spesso o frequentemente, dovrei salvare i dati decrittografati da qualche parte nella nuova tabella e usarli per l'app.