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

Memorizzazione di dati crittografati in Postgres

Il migliore il modo è eseguire la crittografia sul client o sul server delle applicazioni, quindi il database non ha idea di quali siano le chiavi e non può decrittografare i dati. Se il client/l'app server si trova su un host diverso, tanto meglio.

Se il tuo database sta crittografando e decrittografando i dati per te, è vulnerabile al furto delle chiavi insieme al database.

Se utilizzi le funzioni crittografiche all'interno del database di pgcrypto, puoi fare in modo che l'applicazione invii la chiave insieme ai dati, il che è almeno in qualche modo utile. Tuttavia, rischia ancora di avere le chiavi esposte nei registri se un amministratore di sistema utile attiva la registrazione aggressiva delle istruzioni o il dumping automatico del piano e alla fine se le chiavi vanno al computer del database sono più vulnerabili che se non lo sono . Un utente malintenzionato che assume il controllo della macchina del database può anche modificare le impostazioni del registro, sostituire i binari postgresql o annusare il traffico per acquisire chiavi e dati in questo modo.

Se appserver e db si trovano sulla stessa macchina e sono gestiti dagli stessi ruoli, non ha senso preoccuparsi di isolarli e potrebbe essere ragionevole usare semplicemente pgcrypto.

Ad ogni modo, ricordati di salare!