عن المشروع
يُعد pg_vault_tde امتداد PostgreSQL مفتوح المصدر يوفر تشفير البيانات الشفاف (TDE) لإصدارات PostgreSQL 17 و18، مع دعم مخطط للإصدار 19. يعتمد على خوارزمية التشفير AES-256-GCM ويعمل على طبقة Table Access Method، مما يعني أن البيانات تُشفَّر قبل التخزين وتُفك تشفيرها عند الاسترجاع دون الحاجة إلى أي تعديلات على نواة PostgreSQL.
يدعم الامتداد عدة حلول لإدارة المفاتيح: HashiCorp Vault وOpenBao ومحافظ PKCS#12 المحلية ووحدات HSM المتوافقة مع PKCS#11. تُدار مفاتيح التشفير خارجيًا وتخزَّن في الذاكرة المشتركة مع دعم التدوير التلقائي للمفاتيح.
من أبرز الميزات:
* **التشفير الشفاف**: يشفِّر كل سجل باستخدام AES-256-GCM. يتم تشفير البيانات قبل وصولها إلى مدير التخزين وفك تشفيرها بعد مغادرتها.
* **خيارات إدارة المفاتيح**: يدعم HashiCorp Vault/OpenBao ومحافظ PKCS#12 المحلية وتكامل PKCS#11/HSM.
* **بدون تعديلات على النواة**: يعمل كامتداد جاهز للاستخدام الفوري.
* **تشفير الفهارس**: يدعم AES-256-SIV لفهارس B-Tree (`tde_btree`). تُخطط الإصدارات المستقبلية لدعم فهارس GIN وHash وGiST.
* **تشفير سجل WAL**: يتم تشفير البيانات قبل كتابتها في سجل Write-Ahead Log.
* **إعداد KMS خاص بكل قاعدة بيانات**: يسمح بتكوينات KMS مختلفة لقواعد البيانات الفردية ضمن نفس العناقيد.
* **تدوير المفاتيح**: يدعم تدوير DEK الخاص بكل جدول (أونلاين) وتدوير KEK.
يمكن التثبيت عن طريق البناء من المصدر أو باستخدام `pgxn install`. يتضمن التكوين تعديل ملف `postgresql.conf` لإضافة `pg_vault_tde` إلى `shared_preload_libraries` ثم إنشاء الامتداد داخل قاعدة البيانات. تُستخدم معاملات GUC المحددة لتكوين مزود KMS المختار وإعداداته.
يعرّف الامتداد طريقة وصول جديدة للجداول باسم `encrypted_heap` لإنشاء جداول مشفرة. يتم فك تشفير البيانات بشكل شفاف عند القراءة. يتضمّن تنسيق الأسلاك للسجلات المشفرة رأسًا وIV ونصًا مشفرًا ووسم GCM ورหัส وإصدارًا وعدّاد توليد، مما يُضيف عبئًا طفيفًا لكل سجل.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.