تكامل Oracle TDE مع Cockpit v2
كيف يتصل Oracle Transparent Data Encryption بـ Cockpit v2 عبر مزوّد DuoKey PKCS#11.
تصف هذه الصفحة كيف يتصل Oracle Transparent Data Encryption بـ Cockpit v2. لمعرفة مسار Cockpit v1 القديم، راجع قسم التثبيت والإعداد في هذا الدليل.
سيُضاف هنا فيديو توضيحي موجز لتدفق Oracle TDE ↔ Cockpit v2 من البداية إلى النهاية.
سلسلة التكامل
لا يتحدث Oracle مع Cockpit v2 مباشرة أبداً. فهو يحمّل مزوّد PKCS#11 الخاص بـ DuoKey (مكتبة أصلية)، والذي يحوّل كل استدعاء Cryptoki إلى طلب HTTPS واحد إلى نقطة نهاية وكيل في Cockpit v2. يؤدي الوكيل العملية التشفيرية الفعلية مقابل خزنة المستأجر / خلفية HSM.
Oracle Database (ADMINISTER KEY MANAGEMENT …)
│ PKCS#11 (Cryptoki v2.40 C_* calls)
▼
libdke_pkcs11.so / dke_pkcs11.dll (DuoKey PKCS#11 provider)
│ HTTPS — one request per Cryptoki operation
▼
Cockpit v2 proxy endpoint
│ encrypt / decrypt / wrap / unwrap / generate
▼
Tenant vault / HSM backend
(DuoKey software keystore in dev · Securosys / HSM in production)
توجد خاصيتان مهمتان يجب فهمهما:
لا تشفير محلي
لا تحتفظ مكتبة PKCS#11 بأي مفاتيح ولا تنفّذ أي تشفير محلياً. كل عملية تُنقَل إلى وكيل Cockpit v2. لا تقيم مادة المفتاح الرئيسي لـ TDE أبداً على مضيف قاعدة البيانات.
رمز تصدير واحد
يحمّل Oracle المكتبة عبر نقطة الدخول القياسية C_GetFunctionList، التي تُعيد جدول وظائف Cryptoki كاملاً.
مفتاح Oracle TDE الرئيسي للتشفير هو AES256. وفقاً لتوثيق Oracle، "مفاتيح التشفير الرئيسية هي دائماً AES256" (وتشفّر مفاتيح الجداول / مساحات الجداول بوضع CBC). لا يستخدم Oracle TDE مفاتيح RSA أو المنحنيات الإهليلجية للمفتاح الرئيسي. مكتبة DuoKey PKCS#11 هي مزوّد Cryptoki عام الغرض يُعلِن أيضاً عن آليات RSA وEC لتكاملات DuoKey الأخرى — لكن Oracle TDE لا يستخدم إلا مسار توليد مفتاح AES والتشفير/فك التشفير (التغليف/فك التغليف).
عمليات PKCS#11 التي يستخدمها Oracle TDE
لا يستخدم Oracle إلا المجموعة الفرعية أدناه. للاطلاع على جدول وظائف المكتبة الكامل، وآلياتها، ونموذج سماتها، راجع قسم مكتبة PKCS#11 المستقل — فهو حيث يُوثَّق المزوّد بالكامل.
| عملية Cryptoki | الدور في Oracle TDE |
|---|---|
C_Initialize / C_Finalize | تحميل تكوين pkcs11.toml وتهيئة المكتبة / إيقافها. |
C_OpenSession / C_Login | فتح جلسة تسلسلية والانتقال إلى حالة المستخدم — **لا يُرسَل أي PIN**؛ يُوثِّق رمز الحامل لكل طلب. |
C_FindObjectsInit / C_FindObjects | تحديد موقع مفتاح AES الرئيسي عبر CKA_LABEL / CKA_ID. |
C_GenerateKey | إنشاء مفتاح TDE الرئيسي من نوع AES256. |
C_Encrypt / C_Decrypt | تغليف / فك تغليف مفاتيح الجداول ومساحات الجداول تحت المفتاح الرئيسي. |
C_GetAttributeValue | قراءة سمات المفتاح؛ يُرفَض CKA_VALUE (CKR_ATTRIBUTE_SENSITIVE) — لا تغادر بايتات المفتاح الرئيسي الخلفية أبداً. |
C_DestroyObject | إلغاء تفعيل مفتاح رئيسي. |
النموذج التشفيري
- ينفّذ الوكيل تشفير مغلَّف موثَّق تحت المفتاح الرئيسي (MEK). ولأن التشفير وفك التشفير يستخدمان الأداة الأولية نفسها في الخزنة، فإن آلية Cryptoki استشارية — سلامة الذهاب والإياب مضمونة لكتل المفاتيح المعتمة التي يخزّنها Oracle.
- بايتات المفتاح الرئيسي حساسة: يرفض
C_GetAttributeValueطلبCKA_VALUE. ومع خلفية HSM حقيقية، لا توجد مادة المفتاح أبداً خارج HSM.
دورة حياة المفتاح الرئيسي للتشفير (MEK)
يتتبَّع Cockpit كل مفتاح رئيسي بتسميته (CKA_LABEL)، ومعرّفه (CKA_ID)، وخوارزميته وحجمه، ومرجع للمفتاح الداعم في الخزنة/HSM، وحالة دورة حياة.
الإنشاء
عند إنشاء تطبيق Oracle TDE في Cockpit v2، يُوفَّر تلقائياً مفتاح رئيسي نشط أوّلي (بالتسمية TDE-MASTER-<date>). يمكن إنشاء مفاتيح إضافية من Cockpit أو من المكتبة عبر استدعاء توليد مفتاح. الخوارزمية الافتراضية هي AES-256.
الفتح / الاستخدام
يفتح Oracle مخزن المفاتيح بأمر ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY EXTERNAL STORE ويحدّد موقع MEK عبر C_FindObjects. تُحمى مفاتيح مساحات الجداول (الجداول) بالتشفير / فك التشفير تحت MEK. في وضع نشر مخزن المفاتيح البرمجي، تُعاد استيراد مادة المفتاح المختومة إلى الخزنة كسلياً بعد إعادة تشغيل Cockpit؛ ومع خلفية HSM يبقى المفتاح داخل HSM.
التدوير
يؤدي تدوير مفتاح من Cockpit إلى إلغاء تفعيل المفتاح الحالي، وإنشاء MEK نشط جديد، وإرجاع أمر SQL الخاص بتدوير Oracle (ADMINISTER KEY MANAGEMENT SET KEY … WITH BACKUP). تبقى المفاتيح القديمة معطَّلة بحيث تظل مفاتيح مساحات الجداول المُغلَّفة سابقاً قابلة لفك التشفير.
آلة الحالات
pre_active → active → deactivated → revoked / destroyed
تُفرَض الانتقالات على جانب الخادم (لا يمكن تفعيل إلا مفتاح في حالة pre_active؛ ويجب إلغاء تفعيل المفتاح أو إبطاله قبل إمكانية تدميره).
مصادقة عمليات الإدارة مقابل عمليات الوكيل
- تُصادَق نقطة نهاية وكيل PKCS#11 حصراً برمز الحامل
access_guid. - تتطلب عمليات الإدارة (الإنشاء / التدوير / التفعيل / ...) جلسة مستخدم في Cockpit بصلاحية مناسبة قائمة على الأدوار، وتخضع إضافة إلى ذلك لفرض سياسة الوصول.
تابع إلى تكوين مزوّد PKCS#11 (pkcs11.toml) لتكوين المزوّد.