أفضل ممارسات KMIP
توصيات لتشغيل نقطة نهاية KMIP من DuoKey بأمان، مستندة إلى ما تفرضه المنصّة فعليًا.
المصادقة والنقل
حركة مرور العميل هي TLS على منفذ KMIP (الافتراضي 5696)، ومصادقة العميل هي TLS متبادل اختياري.
افرض mTLS مُتحقَّقًا منه
كوّن حزمة CA موثوقة للعميل بحيث تُتحقَّق شهادات العملاء المُقدَّمة ويمكن الوثوق بهويتها للتفويض.
اشترِط شهادات العملاء
فعّل require_client_cert على نقطة النهاية وأبقِ طرق المصادقة المسموح بها على mtls (وtoken فقط إن احتاج عميل إليها).
تجنّب الوصول المجهول
لا تفعّل الوصول المجهول على نقطة نهاية إنتاجية — استخدمه فقط لفحص اتّصال سريع.
# PEM bundle of client-CA certificates the KMIP listener will trust.
KMIP_CLIENT_CA_BUNDLE=/etc/duokey/kmip/client-ca-bundle.pemمن دون KMIP_CLIENT_CA_BUNDLE، تُقبَل شهادات العملاء المُقدَّمة دون التحقّق من هيئة الإصدار ويجب عدم الوثوق بها. وفي بيئة الإنتاج يرفض المستمع بدء التشغيل حتى تُكوَّن حزمة — اضبط واحدة دائمًا.
سياسة نقطة النهاية بالحد الأدنى من الامتيازات
تحمل كل نقطة نهاية سياستها الخاصة. اضبط نطاقها على ما يحتاجه النظام المتّصل تحديدًا:
| Control | Recommendation |
|---|---|
| العمليات المسموح بها | امنح فقط العمليات التي يستخدمها العميل (مثل Create, Get, Activate, Encrypt/Decrypt). وتُعيد العمليات غير المسموح بها OperationNotSupported. |
| أنواع الكائنات المسموح بها | قيّدها إلى أنواع الكائنات المستخدَمة — عادةً SymmetricKey. |
| نقطة نهاية واحدة لكل غرض | وفّر نقاط نهاية منفصلة للأنظمة أو البيئات المنفصلة بدلًا من مشاركة نقطة نهاية واحدة واسعة النطاق. |
يخضع مشغّلو Cockpit لأذونات Operations.Kmip (عرض، إنشاء، تحديث، حذف، اختبار). امنح حقوق الإدارة فقط للأدوار التي تحتاجها.
التدقيق
فعّل تسجيل التدقيق على نقطة النهاية بحيث تُسجَّل كل عملية KMIP، وراجعه من علامة تبويب Operations لنقطة النهاية في قائمة KMIP. راقب حالات فشل المصادقة المتكرّرة والعمليات غير المتوقّعة.
نظافة المفاتيح
| Practice | Detail |
|---|---|
| استخدم AES-256 | حجم المفتاح المتماثل الافتراضي والموصى به. وينبغي أن تكون مفاتيح HMAC 256 بت أو أكبر. |
| فعّل بتروٍّ | يكون المفتاح PreActive حتى يُفعَّل. فعّله فقط عندما يكون جاهزًا للاستخدام. |
| دوّر باستخدام ReKey | دوّر المفاتيح بـ ReKey، التي تُنشئ مادّة جديدة تحت مُعرِّف جديد وتربطها بالمفتاح السابق بحيث يمكن فك تشفير البيانات الموجودة. |
| أبطِل قبل Destroy | انقل مفتاحًا مسحوبًا إلى Deactivated (أو Compromised) بـ Revoke قبل أن تُنفِّذ Destroy. فـ Destroy لا رجعة فيها. |
يولّد الخادم مفاتيح متماثلة (AES، HMAC). وهو لا يُنشئ أزواج مفاتيح RSA أو EC، ولا يوفّر عمليات توقيع أو أرشفة أو تصدير للمفاتيح — خطّط للتكاملات حول إدارة المفاتيح المتماثلة.
حماية مادّة المفتاح أثناء التخزين
تُخزَّن مادّة المفتاح مشفَّرة أثناء التخزين في قاعدة بيانات Cockpit، مختومة بـ AES-256-GCM تحت مفتاح تشفير المنصّة — وهي الحماية نفسها المستخدَمة لبيانات اعتماد الخزنة.
يعتمد أمان مفاتيح KMIP المخزَّنة على مفتاح تشفير المنصّة. احمِه، وقيّد الوصول إلى قاعدة بيانات Cockpit، وأدرِج كليهما في خطة النسخ الاحتياطي والاسترداد لديك. فقدان مفتاح المنصّة يعني تعذّر فك تشفير مادّة المفتاح المخزَّنة.
دورة حياة الشهادة
- يقدّم مستمع KMIP شهادة TLS نفسها التي تقدّمها نقطة نهاية HTTPS الخاصة بـ Cockpit — أدِر تجديد تلك الشهادة كجزء من عمليات Cockpit.
- دوّر شهادات العملاء وفق جدول منتظم، وأزِل الثقة بهيئات إصدار شهادات العملاء المسحوبة من الحزمة.
تحقّق قبل الإنتاج
استخدم Client Simulator المدمج لتشغيل دورة الحياة الكاملة (create ← activate ← get ← encrypt/decrypt ← revoke ← destroy) على نقطة نهاية قبل ربط نظام إنتاجي. ويُتحقَّق أيضًا من التشغيل البيني باستخدام العميل المرجعي من OASIS، وهو PyKMIP.
قائمة تحقق الإنتاج
| Area | Before go-live |
|---|---|
| mTLS | حزمة CA للعميل مُكوَّنة؛ require_client_cert مفعَّل؛ الوصول المجهول مُعطَّل. |
| السياسة | العمليات وأنواع الكائنات المسموح بها مضبوطة النطاق على العميل. |
| التدقيق | تسجيل التدقيق مفعَّل على نقطة النهاية. |
| المفاتيح | الخوارزمية الافتراضية AES-256؛ نهج التفعيل والتدوير متّفَق عليه. |
| النسخ الاحتياطي | قاعدة بيانات Cockpit ومفتاح تشفير المنصّة مُدرَجان في النسخ الاحتياطية. |
| التحقّق | نقطة النهاية مُختبَرة بـ Client Simulator؛ ونقطة النهاية Running. |