Conformità
Ho solo familiarità con le specifiche della legislazione, ma, a quanto ho capito, non c'è nulla che indichi che la crittografia del database è necessaria per conservare le informazioni personali e rispettare il regolamento generale sulla protezione dei dati (GDPR).
D'altra parte, l'utilizzo di misure di crittografia appropriate ridurrà in qualche modo l'impatto sulla privacy e i requisiti di notifica dovrebbero comportare una violazione.
(3) The communication to the data subject referred to in paragraph 1 shall not be required if any of the following conditions are met:
a) the controller has implemented appropriate technical and organisational protection measures, and those measures were applied to the personal data affected by the personal data breach, in particular those that render the personal data unintelligible to any person who is not authorised to access it, such as encryption;
Excerpt from: https://gdpr-info.eu/art-34-gdpr/
I vantaggi della crittografia per la sicurezza del database
La crittografia può ridurre in modo significativo l'impatto di una violazione dei dati. Ad esempio, nel 2015, Patreon è stata violata, perdendo il controllo di 15 GB di dati. A loro merito, Patreon ha utilizzato forti hash di bcrypt per proteggere le password e ha utilizzato misure di crittografia secondarie per proteggere le informazioni sensibili come i numeri di previdenza sociale e le informazioni fiscali.
Se non avessero crittografato le informazioni, l'impatto della violazione - sia per Patreon che per i suoi utenti - sarebbe stato considerevolmente peggiore.
Gestione chiavi
Se la tua preoccupazione è che un utente malintenzionato sia comunque in grado di accedere alla chiave, ci sono alcune misure che puoi adottare per mitigare tale rischio.
In definitiva, a meno che non si utilizzi un modulo di sicurezza hardware (HSM), la protezione delle chiavi è fondamentalmente come giocare a shell con l'attaccante. Un modo ragionevolmente efficace per mantenere le chiavi protette non è memorizzarle sul server. Una delle mie soluzioni preferite per questo è il servizio Azure KeyVault.
Tenendo le chiavi fuori dalla memoria permanente sul server e recuperandole solo per l'uso dalla memoria, rende molto più difficile per un utente malintenzionato recuperare la chiave. Dovrai comunque memorizzare i tasti per accedere ai tasti ... ma aggiungere quel livello aggiuntivo di riferimento indiretto renderà più difficile l'attacco.