La crittografia non risolve i problemi di controllo degli accessi. Tuttavia, migliora la sicurezza limitando la perdita di dati anche se i controlli di accesso vengono aggirati. Ad esempio, se il computer host del database è configurato in modo errato e un hacker ottiene dati sensibili, le informazioni rubate potrebbero essere inutili se crittografate.
Sebbene la crittografia sia uno strumento prezioso per garantire la sicurezza, non dovrebbe essere presa in considerazione per tutti i dati o le connessioni. Quando decidi se implementare la crittografia, considera il modo in cui gli utenti accedono ai dati. Se gli utenti accedono ai dati su una rete pubblica, potrebbe essere necessaria la crittografia dei dati per aumentare la sicurezza. Tuttavia, se tutti gli accessi implicano una configurazione Intranet sicura, la crittografia potrebbe non essere necessaria. Qualsiasi utilizzo della crittografia dovrebbe includere anche una strategia di manutenzione di password, chiavi e certificati.
Encryption e metodi disponibili
SQL Server comprende la capacità nativa di crittografare i dati a partire dalla versione 2005. Quella versione includeva funzionalità che potevano essere utilizzate per crittografare singoli elementi e colonne di dati, nonché la funzionalità TDE (Transparent Data Encryption) che era disponibile con l'edizione Enterprise di SQL Server e poteva essere utilizzata per crittografare tutti i dati archiviati su disco.
Non ci sono state aggiunte significative alle funzionalità disponibili per la crittografia fino al 2016, quando Microsoft ha aggiunto Always Encrypted per la crittografia delle colonne.
Con SQL Server 2019 Microsoft ha reso disponibile TDE per l’edizione standard, ed oltre a questo in SQL Server 2019 è stata aggiunta la possibilità di utilizzare Always Encrypted con enclavi sicure per migliorare le funzionalità disponibili per l'interazione con i dati crittografati.
Infine, con SQL Server 2022 sono stati apportati ulteriori miglioramenti all'insieme di funzionalità disponibili quando si lavora con Always Encrypted con enclavi.
Scopo dell’Encryption
Lo scopo dell’Encryption è semplice da individuare: si vuole evitare che i dati cadano nelle mani sbagliate.
La pratica è un po' più complessa: esattamente da quali tipi di attacchi si desidera essere protetti? Assicurare che i dati siano crittografati nel punto in cui sono archiviati sul disco non aiuta se un utente malintenzionato ottiene l'accesso diretto per eseguire query sul database.
Si potrebbero crittografare i dati contenuti in colonne, ma ciò consentirà di essere protetti comunque se i dati non crittografati saranno ritrasmessi attraverso la rete alla nostra applicazione ed un utente malintenzionato intercetterà il nostro traffico di rete?
Un’altra domanda utile da porsi è: perché si sta considerando la crittografia in primo luogo?
Spesso i progetti prendono in considerazione la crittografia perché le normative pertinenti o i requisiti del cliente lo richiedono. Troppo spesso in questi casi la crittografia è considerata un'opzione binaria, i dati sono crittografati o meno.
Capita sovente che venga fatto il minimo indispensabile per attivare la crittografia ed andare avanti. I dati potrebbero essere crittografati, ma la protezione offerta sarà utile solo in casi limitati.
Quando pensiamo agli scenari nei quali desideriamo proteggerci, è opportuno considerare dove sono presenti i dati che quindi potrebbero essere vulnerabili. Con questo non ci riferiamo a dove sono archiviati dati specifici, ma piuttosto al tipo di posizione:
- Su disco, principalmente in file di dati e file di backup.
- In memoria sul server del database.
- In transito attraverso la rete.
- Nelle applicazioni.
- File archiviati all'esterno del database, magari su una condivisione di rete.
La crittografia è solo una linea di difesa e dovrebbe andare di pari passo con un approccio alla sicurezza ben definito e implementato. La prima linea di difesa sarà sempre il controllo degli accessi, assicurando in primo luogo che solo gli utenti e le applicazioni corretti possano accedere a server e dati.
Allora perché utilizzare la crittografia?
La risposta è: esiste sempre la possibilità che i controlli sugli accessi vengano violati. I migliori approcci alla sicurezza sono sempre a più livelli e, oltre al controllo degli accessi e alla crittografia, è bene disporre di controlli in modo da poter vedere chi accede ai sistemi e sapere cosa sta facendo, oltre a disporre di avvisi per attività sospette.
Fonte notizia
www.datamaze.it blogs post encryption-in-sql-server-2022