sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:Cifrar columna con pgcrypto

El almacenamiento secreto es un problema común cuando se usan mecanismos criptográficos.

pgcrypto no proporciona almacenamiento de claves, puede almacenar la clave donde desee y protegerla como pueda.

Almacenar la clave en otra base de datos, si la administra el mismo DBA, no brinda mucha seguridad, ya que el DBA puede acceder a ella de la misma manera.

Idealmente, almacenaría la clave en una bóveda segura y la solicitaría desde su aplicación para construir las consultas. Todavía será visible desde DBA mientras la solicitud se ejecuta a través de select * from pg_stat_activity .

Puede configurar la clave para un uso amplio de la sesión SQL a través de set session my.vars.cryptokey = 'secret'; luego utilícelo en sus consultas con la siguiente sintaxis:current_setting('my.vars.cryptokey')::text

Para ser (casi) transparente desde el punto de vista de la aplicación, las reglas de PostgreSQL pueden ayudar a traducir secure_column a la llamada para descifrar la función con la clave almacenada en la sesión. Para insertar, se requeriría un activador de inserción previa.