PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:crittografa la colonna con pgcrypto

L'archiviazione segreta è un problema comune quando si utilizzano i meccanismi crittografici.

pgcrypto non fornisce l'archiviazione delle chiavi, sei libero di archiviare la chiave dove vuoi e proteggerla come puoi.

La memorizzazione della chiave in un altro database, se gestito dallo stesso DBA, non fornisce molta sicurezza in quanto il DBA potrebbe accedervi allo stesso modo.

Idealmente, dovresti archiviare la chiave in un deposito sicuro e richiederla alla tua applicazione per costruire le query. Sarà ancora visibile da DBA mentre la richiesta è in esecuzione tramite select * from pg_stat_activity .

Puoi impostare la chiave per un uso esteso della sessione SQL tramite set session my.vars.cryptokey = 'secret'; quindi usalo nelle tue query con la seguente sintassi:current_setting('my.vars.cryptokey')::text

Per essere (quasi) trasparenti dal punto di vista dell'applicazione, le regole di PostgreSQL possono aiutare a tradurre secure_column alla funzione di chiamata per decrittografare con la chiave memorizzata di sessione. Per l'inserimento, sarebbe necessario un trigger di pre-inserimento.