À propos du projet
pg_vault_tde est une extension PostgreSQL open source qui fournit un chiffrement transparent des données (TDE) pour PostgreSQL versions 17 et 18, avec un support prévu pour la version 19. Elle utilise l'algorithme de chiffrement AES-256-GCM et opère au niveau de la couche Table Access Method, ce qui signifie que les données sont chiffrées avant le stockage et déchiffrées lors de la récupération, sans aucune modification du noyau PostgreSQL.
L'extension prend en charge plusieurs solutions de gestion de clés : HashiCorp Vault, OpenBao, des portefeuilles PKCS#12 locaux et des HSM PKCS#11. Les clés de chiffrement sont gérées externement et mises en cache en mémoire partagée avec rotation automatique des clés.
Principales fonctionnalités :
* **Chiffrement transparent** : Chiffre chaque tuple avec AES-256-GCM. Les données sont chiffrées avant d'atteindre le gestionnaire de stockage et déchiffrées après en être sorties.
* **Options de gestion de clés** : Prend en charge HashiCorp Vault/OpenBao, des portefeuilles PKCS#12 locaux et l'intégration PKCS#11/HSM.
* **Aucune modification du noyau** : Fonctionne comme une extension plug-and-play.
* **Chiffrement des index** : Prend en charge AES-256-SIV pour les index B-Tree (`tde_btree`). Les versions futures prévoient le support des index GIN, Hash et GiST.
* **Chiffrement WAL** : Les données sont chiffrées avant d'être écrites dans le journal de préécriture (WAL).
* **Configuration KMS par base de données** : Permet des paramètres KMS différents pour chaque base de données au sein du même cluster.
* **Rotation des clés** : Prend en charge la rotation DEK par table (en ligne) et la rotation KEK.
L'installation peut se faire en compilant depuis les sources ou en utilisant `pgxn install`. La configuration implique de modifier `postgresql.conf` pour ajouter `pg_vault_tde` dans `shared_preload_libraries`, puis de créer l'extension dans la base de données. Des paramètres GUC spécifiques sont utilisés pour configurer le fournisseur KMS choisi et ses paramètres.
L'extension définit une nouvelle méthode d'accès aux tables `encrypted_heap` pour créer des tables chiffrées. Les données sont déchiffrées de manière transparente lors de la lecture. Le format filaire des tuples chiffrés comprend un en-tête, un IV, le texte chiffré, la balise GCM, une version et un compteur de génération, ajoutant une faible surcharge par tuple.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.