PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL :chiffrer la colonne avec pgcrypto

Le stockage secret est un problème courant lors de l'utilisation de mécanismes de chiffrement.

pgcrypto ne fournit pas de stockage de clé, vous êtes libre de stocker la clé où vous voulez et de la protéger comme vous le pouvez.

Stocker la clé dans une autre base de données, si elle est gérée par le même DBA, n'offre pas beaucoup de sécurité car le DBA peut y accéder de la même manière.

Idéalement, vous stockeriez la clé dans un coffre-fort sécurisé et la demanderiez à votre application afin de construire les requêtes. Il sera toujours visible depuis DBA pendant que la requête s'exécute via select * from pg_stat_activity .

Vous pouvez définir la clé pour une utilisation à l'échelle d'une session SQL via set session my.vars.cryptokey = 'secret'; puis utilisez-le dans vos requêtes avec la syntaxe suivante :current_setting('my.vars.cryptokey')::text

Pour être (presque) transparentes du point de vue de l'application, les règles PostgreSQL peuvent aider à traduire secure_column à l'appel pour déchiffrer la fonction avec la clé stockée de session. Pour l'insertion, un déclencheur de pré-insertion serait nécessaire.