ELSEIF
Your brief EB
404 stories from 200 feeds 1259 clusters Refreshed 17 minutes ago next pull 10:45

DATABASES Signal 205

pg_vault_tde v1.7.1 : Transparent Data Encryption for PostgreSQL 17 and 18

Illustration only Photo by Alan Bowman on Unsplash

pg_vault_tde 1.7.1 introduces a table access method that encrypts PostgreSQL 17 and 18 data at rest without application changes

WHY IT MATTERS

Engineers running PostgreSQL 17 or 18 can now encrypt data at rest with AES-256-GCM while keeping keys outside the database. The change is transparent to applications but requires a one-time export of TOAST data when upgrading from 1.7.0 or earlier.

Written by elseif from the cluster below · every claim links back to a source

The three things worth knowing

01

Encryption is applied per-tuple via the encrypted_heap table access method, requiring no application code changes

02

Keys are managed externally through HashiCorp Vault, OpenBao, PKCS#11 tokens, or local PKCS#12 wallets

03

Upgrading from 1.7.0 or earlier requires exporting TOAST data before installing 1.7.1 due to an AAD derivation fix

THE READ

What the cluster adds up to.

ORIGINAL ANALYSIS

pg_vault_tde 1.7.1 implements transparent data encryption for PostgreSQL 17 and 18 by introducing a new table access method called encrypted_heap. This method intercepts tuples before they reach the storage manager, encrypting them with AES-256-GCM, and decrypts them after retrieval. The implementation is designed to be transparent to applications, meaning existing queries and operations continue to work without modification. The encryption is applied at the tuple level, which provides granular protection for individual rows while maintaining compatibility with PostgreSQL's storage architecture.

Key management is handled externally to the database, supporting multiple backends including HashiCorp Vault, OpenBao, PKCS#11 tokens, HSMs, or local PKCS#12 wallets. Each table uses its own data encryption key, which can be rotated online without downtime. This separation of keys from the database reduces the risk of key exposure through database backups or unauthorized access. The requirement for PostgreSQL 17 or 18 and OpenSSL 3.x suggests the implementation relies on modern cryptographic APIs and may not be compatible with older PostgreSQL versions or alternative SSL libraries.

The 1.7.1 release fixes an issue with the additional authenticated data (AAD) derivation for out-of-line TOAST values. This change means TOAST data written by version 1.7.0 or earlier will not authenticate correctly under 1.7.1, requiring affected tables to be exported before upgrading. The documented procedure in the README provides a migration path, but this incompatibility introduces operational overhead for existing users. The fix suggests the previous implementation had a cryptographic flaw that could potentially allow tampering with TOAST data without detection.

The project is distributed under the PostgreSQL license and provides both source code and pre-built .deb and .rpm packages through GitHub and PGXN. This distribution model aligns with common PostgreSQL extension practices, making it accessible for both development and production environments. The availability of binary packages reduces the barrier to adoption for teams that may not have the resources to compile extensions from source. However, the requirement to add the library to shared_preload_libraries means administrators must restart PostgreSQL to enable the extension, which may impact service availability during deployment.

Written by elseif from the cluster below · checked for specifics the sources never contained

THE CLUSTER

Same story, 1 feed.

ORDERED BY FIRST SEEN
PostgreSQL pg_vault_tde v1.7.1 : Transparent Data Encryption for PostgreSQL 17 and 18 Open ↗