Internals
Cifrado en Reposo con pg_enigma
Description
Existen varios mecanismos para cifrar información en las bases de datos, desde cifrado en disco, de toda la base de datos, a nivel registro y a nivel tabla.
Casi todos estos mecanismos dependen del programa que maneja esos datos o a una combinación de extensiones tipo pgcrypto y el programa cliente.
Pg_enigma es una extensión de cifrado en reposo a nivel columna que tiene como objetivo el brindar independencia entre el acceso de datos y programas
que procesan la información. Esta extensión permite hacer consultas a la base de datos desde la consola de Postgres sin necesidad de un programa
cliente, liberando así al desarrollador el tener que estar manejando mecanismos particulares de cifrado como pgcrypto dentro de la aplicación dejando la
lógica del cifrado en la base de datos.
Permite asignar pares de llaves a nivel registro y por mecanismos de llave pública y privada pueden separar responsabilidades al ser posible delegar el
cifrado a programas o capturistas que tengan acceso a una llave pública y el descifrado a unas pocas personas que manejen a las llaves privadas.
En esta plática vamos a analizar el funcionamiento de esta extensión y como la implementamos usando el framework PGRX para crear extensiones de
Postgres en Rust.

