DuoKey لبروتوكول KMIP — نظرة عامة
يستضيف DuoKey خادم OASIS KMIP حتى تتمكّن العملاء المتوافقة مع المعيار — قواعد البيانات، ومصفوفات التخزين، ومنصّات المحاكاة الافتراضية — من إدارة المفاتيح التشفيرية عبر نقطة نهاية واحدة خاضعة للتدقيق.
ما هو KMIP؟
إنّ بروتوكول قابلية التشغيل البيني لإدارة المفاتيح (KMIP) هو معيار من OASIS يحدّد كيفية تواصل التطبيقات المُمكَّنة تشفيريًا — قواعد البيانات، وأنظمة التخزين، وأجهزة النسخ الاحتياطي — مع مدير مفاتيح مركزي. وهو يوحّد دورة حياة المفتاح كاملةً (الإنشاء، والاسترجاع، والتفعيل، والإبطال، والإتلاف) بحيث يمكن لمدير مفاتيح واحد أن يخدم منتجات مختلفة عديدة دون تكاملات مخصّصة.
كيف يطبّق DuoKey بروتوكول KMIP
يشغّل DuoKey Cockpit v2 نقطة نهاية خادم KMIP. تتّصل بها العملاء المتوافقة عبر TLS وتُصدر عمليات KMIP؛ ويولّد DuoKey مادّة المفتاح، ويحميها، ويعيدها (أو ينفّذ التشفير/فك التشفير) وفقًا لسياسة نقطة النهاية.
خادم KMIP هو قدرة من قدرات Cockpit v2 (Rust/React)، ويُوفَّر باعتباره نقطة نهاية خدمة PKI. وهو لا علاقة له بنموذج تكوين Cockpit v1 (.NET/Angular).
دعم البروتوكول
| Capability | Details |
|---|---|
| إصدارات KMIP | يتفاوض على 2.1 و2.0 و1.4 و1.3 و1.2 و1.1 و1.0. والملف الشخصي الافتراضي المُعلَن هو KMIP 2.1. |
| طرق النقل | ترميز TTLV الثنائي عبر TLS، وملف شخصي بصيغة JSON عبر HTTPS. |
| منفذ TLS الافتراضي | 5696 (منفذ KMIP المخصَّص من IANA). |
| الترميز | سمات KMIP 2.x القياسية؛ وتُطبَّع طلبات TemplateAttribute الخاصة بالإصدار 1.x عند الدخول ويُعاد تكييفها عند الخروج للعملاء السابقة للإصدار 2.0. |
العمليات المدعومة
توزّع نقطة النهاية عمليات KMIP التالية:
| Operation | Purpose |
|---|---|
Create | توليد مفتاح مُدار جديد. |
Register | استيراد مادّة مفتاح يقدّمها العميل. |
Get | استرجاع كائن مفتاح. |
GetAttributes | قراءة سمات كائن. |
GetAttributeList | سرد أسماء السمات على كائن. |
Locate | العثور على الكائنات المطابقة لمرشِّحات السمات. |
Activate | نقل مفتاح إلى الحالة النشطة. |
Revoke | إبطال مفتاح (مسار التعطيل القياسي). |
Destroy | إزالة مادّة المفتاح بشكل دائم. |
| NaN | عمليات تشفيرية من جانب الخادم. |
ReKey | تدوير مفتاح إلى مادّة جديدة تحت مُعرِّف جديد. |
Check | التحقّق من قيود الاستخدام على كائن. |
Query | اكتشاف قدرات الخادم. |
DiscoverVersions | التفاوض على إصدار بروتوكول KMIP. |
عمليات التوليد غير المتماثل والتوقيع — CreateKeyPair وDeriveKey وCertify وSign وMAC، وعمليات تعديل السمات — غير مدعومة وتُعيد نتيجة OperationNotSupported. ويمكن لسياسة نقطة النهاية أن تقيّد العمليات المسموح بها بشكل أكبر لكل عملية نشر.
الكائنات والخوارزميات
| Item | Support |
|---|---|
| أنواع الكائنات المُدارة | المفاتيح المتماثلة، والمفاتيح العامة، والمفاتيح الخاصة، والشهادات، والبيانات السرّية. |
| توليد المفاتيح | مادّة متماثلة فقط: AES (128 / 192 / 256 بت، الافتراضي 256) وHMAC (256 بت أو أكبر). |
| التشفير من جانب الخادم | AES-256-GCM لعمليتَي Encrypt / Decrypt، وتُعيد كتلة قائمة بذاتها nonce ‖ ciphertext ‖ tag. |
يولّد DuoKey مادّة مفتاح متماثلة ويخزّنها (AES، HMAC). ويمكن تسجيل أنواع الكائنات غير المتماثلة والشهادات وإدارتها ككائنات، لكن الخادم لا يُنشئ بنفسه أزواج مفاتيح RSA أو EC.
كيف تُحمى المفاتيح
تُشفَّر مادّة المفتاح المولَّدة أثناء التخزين باستخدام AES-256-GCM تحت مفتاح تشفير المنصّة — وهو الغلاف نفسه المستخدَم لبيانات اعتماد الخزنة وأسرار مزوّد الهوية — وتُخزَّن في قاعدة بيانات DuoKey. وتبقى المفاتيح بعد عمليات إعادة التشغيل ولا توجد أبدًا في ذاكرة العملية فقط. وتحذف عملية Destroy المادّة المخزَّنة حذفًا نهائيًا.
بالنسبة إلى KMIP، تُحمى المفاتيح بتشفير الغلاف تحت مفتاح المنصّة، لا بواسطة MPC. وتنطبق حماية المفاتيح القائمة على MPC على مسارات إدارة المفاتيح الأخرى في DuoKey، لا على الواجهة الخلفية لخادم KMIP الموصوفة هنا.
مصادقة العميل
مصادقة العميل هي TLS متبادل اختياري (mTLS): يصبح الاسم الشائع (CommonName) لشهادة العميل المُقدَّمة هوية العميل الخاضعة للتدقيق. وتقرّر السياسة الخاصة بكل نقطة نهاية (allowed_auth_methods وrequire_client_cert) الطرق المقبولة:
| Method | How it works |
|---|---|
| mTLS | يقدّم العميل شهادة X.509؛ ويكون اسمها الشائع (CommonName) هو الهوية. |
| بيانات اعتماد في الرسالة | بيانات اعتماد اسم مستخدم/كلمة مرور من KMIP محمولة في رأس الطلب. |
| مجهول الهوية | مسموح به فقط عندما تسمح به سياسة نقطة النهاية صراحةً. |
للثقة بهويات mTLS، وجّه المستمع إلى حزمة PEM من هيئات إصدار شهادات العملاء الموثوقة:
# PEM bundle of trusted client-CA certificates
KMIP_CLIENT_CA_BUNDLE=/etc/duokey/kmip/client-ca-bundle.pemعندما لا تُضبط أي حزمة CA للعميل، تُقبَل شهادات العملاء المُقدَّمة دون التحقّق من هيئة الإصدار، ويجب ألّا تُوثَق هويتها للتفويض. وفي بيئة الإنتاج يعمل المستمع بنمط الإخفاق المُغلَق ويرفض بدء التشغيل حتى تُضبط حزمة.
توافق العملاء
يمكن لأي عميل OASIS KMIP 1.x أو 2.x الاتّصال عبر نقل TLS الثنائي على المنفذ 5696. ويُختبَر التشغيل البيني من طرف إلى طرف باستخدام العميل المرجعي PyKMIP (Query ← Create ← Activate ← Get ← Encrypt/Decrypt ← Locate ← Revoke ← Destroy).
تشمل أهداف التكامل للتشفير القائم على KMIP:
Percona Server
تشفير البيانات الساكنة في MongoDB و MySQL.
VMware vSphere
مزوّد المفاتيح القياسي لـ vSphere و vSAN.
NetApp ONTAP
مدير مفاتيح خارجي لتشفير التخزين.
التوفير
تُنشأ نقطة نهاية خادم KMIP من DuoKey Cockpit ضمن PKI ← KMIP Server. يجمع المعالج اسم نقطة النهاية، وخزنة المفاتيح، وطرق المصادقة المسموح بها، والنقل (TLS الثنائي أو JSON/HTTPS) ومنفذ TLS، والخوارزمية الافتراضية وحجم المفتاح، وأنواع الكائنات والعمليات المسموح بها، وإعدادات التدقيق — ثم ينشر نقطة النهاية ويبدأ تشغيلها.