Sono d'accordo con gli altri: questa è una cattiva pratica, da ogni POV, inclusi design, audit, recovery, sicurezza, performance. L'elenco continua.
Se un hacker entra nel database, il gioco è finito. Non importa se hai nascosto i dati, sarà una questione di tempo prima che ciò possa essere de-offuscato.
Gli RDBMS in questi giorni consentono le autorizzazioni basate su colonne e, quindi, l'utilizzo di chiavi reali per l'aggiunta ad altre tabelle consente l'utilizzo di query SQL standard, senza il sovraccarico di offuscamento. Inoltre, i revisori apprezzeranno l'attenzione alla capacità di scalare, aggiornare, risolvere e mantenere l'integrità e la sicurezza.
Detto questo, alcuni fornitori, come Microsoft e Oracle, forse altri, hanno intensificato e consentito crittografia molto focalizzata. Le chiavi sono memorizzate in un sistema separato e l'accesso alle colonne è protetto. Microsoft SQL Server, ad esempio, utilizza TDE (crittografia trasparente dei dati) ed EKM (Extensible Key Management) per fare proprio questo. Pertanto, le strutture della tabella non cambiano, e non compromettete il sovraccarico di join con l'offuscamento, et al. Quindi, mentre potresti avere un medico e un paziente, non conoscerai necessariamente i nomi o altri dettagli di entrambi, poiché TDE può consentire la crittografia di questi campi.
I sistemi RDBMS consentono anche la crittografia dell'intero database, per gestire le istanze in cui il database stesso viene rubato.
In breve, non offuscare le chiavi dei dati. Piuttosto, crittografa i dati che sono sensibili. Puoi guardare in questo modo: non offuscare i metadati; piuttosto, cripta solo i dati. Pensa alle chiavi e alle chiavi esterne come metadati.
Fai attenzione, inoltre, a non cadere vittima della pratica di mettere strong sicurezza sulla porta principale, lasciando la porta posteriore sbloccata: i registri delle transazioni, i registri degli errori, le applicazioni, i registri delle applicazioni, i sistemi di backup e le persone a cui ci si può fidare di avere accesso a questi dati e le applicazioni sono tutte fonti di perdite, quindi, autorizzare le autorizzazioni e fare attenzione a ciò che si registra e cosa si fa con tali registri.
Una volta applicati questi principi, diventa meno importante offuscare le chiavi.