Hai due alternative:
-
Controllo crittografico. Con questo solo gli utenti che conoscono la password possono decrittografare i dati. Lo svantaggio è che l'utente deve entrare la password di decrittazione ogni volta che accedono ai dati. Un report deve contenere un parametro Password che l'utente che esegue il report compila con la password di accesso ai dati. L'applicazione deve richiedere la password all'utente. I siti Web devono richiedere la password al visitatore. E così via e così via
-
Controllo di accesso. I dati vengono crittografati con una chiave a cui SQL Server stesso ha accesso (alla fine la catena di crittografia arriva fino alla Service Master Key e questa viene crittografata tramite DPAPI). Questo non ti offre una protezione maggiore rispetto a quella che ti darebbe concedere e negare SELECT:è accesso controllo, non controllo crittografico. Un tale schema protegge esclusivamente dalla perdita accidentale di supporti (qualcuno trova un disco con il tuo database o perdi un laptop con il database su di esso). Puoi ottenere lo stesso risultato utilizzando Crittografia dei dati trasparenti o crittografia a livello di file (BitLocker ).
Lo scenario comune di crittografia dei dati consiste nel crittografare i dati con una chiave simmetrica, quindi crittografare la chiave simmetrica con una chiave asimmetrica (in genere la chiave privata di un certificato). La chiave asimmetrica viene quindi crittografata a sua volta con una password, che deve essere presentata quando si tenta di accedere ai dati. Il motivo principale di questo indirizzamento a due livelli è la modifica della password:quando una password o una chiave privata viene compromessa, la chiave simmetrica viene nuovamente crittografata con una chiave asimmetrica diversa oppure la chiave asimmetrica viene nuovamente crittografata con una password diversa. In questo modo la password di accesso è cambiata senza richiedere una nuova crittografia di tutti i dati . Se l'accesso fosse concesso direttamente alla chiave simmetrica, la compromissione della password potrebbe richiedere la ricrittografia di tutti i dati , possibili terabyte di dati.
Laddove i due scenari che ho presentato differiscono è se la chiave asimmetrica è anche crittografata con la chiave master del database o meno. Caso 1) non lo è, caso 2) lo è. Tutto questo è spiegato in Gerarchia di crittografia .