इस प्रोजेक्ट के बारे में
pg_vault_tde एक पन-सोर्स PostgreSQL एक्सटेंशन है जो PostgreSQL संस्करण 17 और 18 के लिए Transparent Data Encryption (TDE) प्रदान करता है, और संस्करण 19 के लिए समर्थन की योजना है। यह AES-256-GCM एन्क्रिप्शन एल्गोरिद्म का उपयोग करता है और Table Access Method परत पर कार्य करता है, जिसका अर्थ है कि डेटा संग्रहण से पहले एन्क्रिप्ट होता है और पुनर््राप्ति पर डिक्रिप्ट होता है, बिना PostgreSQL core में कोई संशोधन आवश्यक किए।
यह एक्सटेंशन कई कुंजी प्रबंधन समाधानों का समर्थन करता है: HashiCorp Vault, OpenBao, स्थानीय PKCS#12 वॉलेट, और PKCS#11 HSM। एन्क्रिप्न कुंजियाँ बाहरी रूप से प्रबंधित की जाती हैं और स्वचालित रोटेशन क्षमताओं के साथ shared memory में कैश की जाती हैं।
मुख्य विशेषताएँ:
• Transparent Encryption: प्रत्येक tuple को AES-256-GCM से एन्क्रिप्ट करता है। डेटा storage manager तक पहुचने से पहले एन्क्रिप्ट होता है और उससे निकलने के बाद डिक्रिप्ट होता है।
• Key Management विकल्प: HashiCorp Vault/OpenBao, स्थानीय PKCS#12 वॉलेट, और PKCS#11/HSM एकीकरण का समर्थन करता है।
• कोई Core संशोधन नहीं: प्लग-एंड-प्ले एक्सटेंशन के रूप में कार्य करता है।
• Index Encryption: B-Tree indexes के लिए AES-256-SIV का समर्थन करता है (tde_btree)। भविष्य के संस्करणों में GIN, Hash, और GiST equality indexes के लिए समर्थन की योजना है।
• WAL Encryption: Write-Ahead Log (WAL) में लिखे जाने से पहले डेटा एन्क्रिप्ट किया जाता है।
• Per-Database KMS Configuration: एक ही cluster के भीतर अलग-अलग डेटाबेस के लिए अलग-अलग KMS सेटिंग्स की अनुमति देता है।
• Key Rotation: प्रति-टेबल DEK रोटेशन (नलाइन) और KEK रोटेशन दोनों का समर्थन करता है।
इंस्टॉलेशन स्रोत से बिल्ड करके या pgxn install का उपयोग करके किया जा सकता है। कॉन्फ़िरेशन में postgresql.conf को संशोधित करके shared_preload_libraries में pg_vault_tde शामिल करना और फिर डेटाेस में एक्सटेंशन बनाना शामिल है। चुने गए KMS प्रदाता और उसकी सेटिंग्स को कॉन्फ़िगर करने के लिए विशिष्ट GUC पैरामीटर उपयोग किए जाते हैं।
यह एक्सटेंशन एन्क्रिप्टेड टेबल बनाने के लिए एक नया table access method encrypted_heap परिभाषित करता है। पढ़ने पर डेटा पारदर्शी रूप से डिक्रिप्ट होता है। एन्क्रिप्टेड tuples के लिए wire format में header, IV, ciphertext, GCM tag, version, और generation counter शामिल हैं, जो प्रति tuple थोड़ा ओवरहेड जोड़ते हैं।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.