يصلك طلب شهادة في البريد: مورّد يحتاج إلى شهادة العميل (client certificate) التي تصادق بها، وموازن أحمال جديد يحتاج إلى شهادة wildcard، وزميل يحتاج إلى شهادة التوقيع ليبني إصدارًا. قد يكون الملف المطلوب غير ضار، وقد يكون المفتاح الخاص الذي يتيح لأي شخص انتحال صفة خدمتك، وكثيرًا ما ينتقل الاثنان في الحزمة نفسها.
لمشاركة شهادة خاصة عبر رابط آمن دون مخاطرة، حدد أولًا أي النصفين مطلوب فعلًا، ثم غلّف المفتاح الخاص بحيث لا يفيد شيئًا دون كلمة مرور، وأرسل الملف عبر رابط لمرة واحدة يُحذف نهائيًا بعد تنزيل واحد، وأرسل كلمة المرور من مكان آخر. ويشرح هذا الدليل كل خطوة مع أوامرها.
الشهادة عامة والمفتاح ليس كذلك
تحتوي الشهادة على مفتاح عام والجهة التي صدرت لها والجهة المصدِرة وتواريخ الصلاحية. وهي مصممة لتُوزَّع، فكل متصفح يتصل بموقعك يتلقاها. أما المفتاح الخاص فسر منفصل يثبت أنك تملك الشهادة، ومن يحوزه يستطيع فك تشفير البيانات الموجهة إليك، أو التوقيع باسمك، أو تشغيل خادم يدّعي أنه أنت.
لذا فالسؤال الأول: هل يحتاج المستلم إلى المفتاح أصلًا؟
| يريد المستلم أن | يحتاج إلى | حساس؟ |
|---|---|---|
| يثق بخدمتك أو يتحقق من توقيع | الشهادة (وربما سلسلة شهادات CA) | لا |
| يثبّت TLS على خادم أو جهاز يديره | الشهادة والسلسلة والمفتاح الخاص | نعم |
| يوقّع الشيفرة أو المستندات باسم مؤسستك | الشهادة والمفتاح الخاص | نعم، وبدرجة عالية |
| يصادق على نظام بشهادة عميل | الشهادة والمفتاح الخاص | نعم |
إذا كانت الإجابة في الصف الأول، فأرسل ملف .crt أو .cer بأي طريقة تريد وتوقف عن القراءة هنا. كل ما يلي يخص الصفوف التي يجب أن ينتقل فيها المفتاح.
التحقق من محتوى الملف قبل إرساله
الامتدادات تخدع. فقد يحتوي ملف .pem على شهادة أو مفتاح أو كليهما، وملف .pfx أو .p12 يجمع عادةً الشهادة والسلسلة والمفتاح خلف كلمة مرور. افحص الملف قبل إرساله:
# what is in this PEM?
openssl x509 -in cert.pem -noout -subject -issuer -dates
grep -c "PRIVATE KEY" cert.pem # 0 means no key inside
# what is in this PFX? (prompts for the password)
openssl pkcs12 -in bundle.pfx -info -noout
تأكد من أن الجهة المذكورة في الشهادة تطابق ما طلبه المستلم، وأن تاريخ انتهاء الصلاحية لم يحن بعد. إرسال شهادة خاطئة أمر شائع، أما إرسال شهادة خاطئة مع مفتاحها فاختراق أمني.
تغليف المفتاح بحيث لا يفيد وحده
إذا كان لا بد من نقل المفتاح، فلا ترسله دون حماية أبدًا. ضعه في صيغة مشفرة بكلمة مرور ترسلها منفصلة.
# bundle certificate, chain and key into a password-protected PFX
openssl pkcs12 -export -out service.pfx \
-inkey service.key -in service.crt -certfile chain.crt
# or encrypt a PEM key on its own
openssl pkey -in service.key -aes-256-cbc -out service.enc.key
استخدم كلمة مرور طويلة يولّدها مدير كلمات المرور. فكلمة المرور هي العامل الثاني: من يحصل على الملف لا يستطيع استخدامه، ومن يحصل على كلمة المرور لا يجد ما يطبقها عليه.
إرسال الملف عبر رابط آمن لمرة واحدة
الرابط هو خطوة التسليم، والهدف ألا تبقى أي نسخة من الملف في أي رسالة بعد ذلك.
- تحقق من المستلم بمقارنته بمصدر تثق به أصلًا: التذكرة، أو جهة اتصال المورد المسجلة لديك، أو مكالمة. وطلب الشهادة الذي يأتي من عنوان غير متوقع يستحق مكالمة هاتفية، لا ردًا.
- أنشئ رابطًا سريًا وأرفق به الملف. من حساب LinkPilot بعد تسجيل الدخول، افتح «Secret Links» واختر «New» وأرفق ملف PFX أو ملف PEM المشفر. الحد الأقصى لكل ملف 9 ميغابايت، وهذا أكبر بآلاف المرات من أي حزمة مفاتيح. ويُشفَّر المرفق في متصفحك قبل رفعه، ويُحذف عند أول تنزيل له.
- اضبط انتهاء الصلاحية على المهلة الفعلية. ساعة إذا كان المستلم ينتظر، أو 24 ساعة إذا اختلفت المناطق الزمنية. التنزيل الواحد هو الضابط الرئيسي، وانتهاء الصلاحية احتياط لرابط لا يفتحه أحد.
- اضبط حد المشاهدات على مرة واحدة. إذا احتاج مهندسان كلاهما إلى الحزمة، فلكل منهما رابطه.
- أضف عبارة مرور إلى الرابط في حساب Pro إذا كان سيمر عبر قناة يراها آخرون.
- أرسل الرابط مع سطر واحد يوضح السياق: أي شهادة، ولأي نظام، ومتى تنتهي صلاحية الرابط.
- أرسل كلمة مرور الملف عبر قناة أخرى. رسالة نصية، أو مكالمة، أو رابط سري ثانٍ يُرسل بطريق مختلف. ولا تضعها أبدًا في الرسالة التي تحمل رابط الملف، ولا في اسم الملف.
إذا كان المفتاح نص PEM صغيرًا، فيمكنك لصقه مباشرة في أداة الروابط السرية المجانية بدل إرفاق ملف. يُشفَّر النص في متصفحك ويُحذف نهائيًا عند فتحه أول مرة بالطريقة نفسها.
إخبار المستلم بما يفعله بالملف
أرسل تعليمات التثبيت مع رسالة السياق، لا مع كلمة المرور:
- الملف الذي سيصله، وصيغته، والنظام الذي يُثبَّت عليه.
- مكان حفظه: مجلد الشهادات على الخادم مع صلاحيات مقصورة على حساب الخدمة، أو مخزن الشهادات في نظام التشغيل. لا مجلد التنزيلات، ولا محرك أقراص مشترك.
- حذف النسخة المنزّلة بعد استيرادها، وعدم إيداعها في أي مستودع أبدًا.
- تأكيد الاستلام باسم الملف وبصمته، لا بإعادة إرسال الملف أبدًا:
openssl x509 -in service.crt -noout -fingerprint -sha256
بعد الإرسال
تأكد من أن حالة الرابط تظهر «revealed» (أُظهر) وأن المستلم يؤكد تطابق البصمة. وتعرض حسابات Pro سجل التدقيق مع الوقت الدقيق للتنزيل. إذا فُتح الرابط قبل أن يصل إليه المستلم، أو ذهب الملف إلى عنوان خاطئ، فلا تنتظر دليلًا على إساءة الاستخدام: أبطل الشهادة لدى الجهة المصدِرة (CA)، وأنشئ زوج مفاتيح جديدًا، وأعد إصدار الشهادة، واستبدلها في كل مكان ثُبّتت فيه.
سجّل من استلم أي شهادة ومتى، واحتفظ بهذا السجل. فمكان الملف هو الأنظمة التي تحتاج إليه، ولا مكان له في أي موضع بينها.
