تسمّي الحروف في شرح RSA حقولًا داخل كائن واحد، لا ملفات توزّعها أداة PKI. يحمل ملف المفتاح الخاص بنيةً حقولها الأولى علنية وحقولها اللاحقة يجب ألا تغادر أبدًا الجهاز الذي ينهي النفق. وبين هاتين الحقيقتين تقع معظم الأسئلة العملية عن أي ملف يجيب عن أي سؤال. يقرأ هذا الدليل البنية أولًا، ثم الأوامر التي تفحصها دون أن تسكبها.

تأكد أن المفتاح من نوع RSA قبل البحث عن الأعداد الأولية

تثبت الشهادة أن مفتاحًا ما موجود وقد وُقّع؛ لكنها لا تثبت أن المفتاح من نوع RSA. يمكن بناء أنظمة على المنحنيات الإهليلجية أو Ed25519، وتخدم بنية الدليل نفسها جميعها. تحقق من الخوارزمية قبل أن تبدأ البحث عن عوامل أولية لم تكن موجودة أصلًا.

تؤدي هذه الأوامر الثلاثة للقراءة فقط الغرض وتُسجّل إصدار الأداة.

openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text

الإصدار مهم لأن أسماء الخيارات انتقلت بين الإصدارات الرئيسية. في خرج الشهادة، ابحث عن سطر خوارزمية المفتاح العام وحجم المفتاح؛ وفي خرج المفتاح، يطبع مفتاح RSA معاملًا وأُسًّا عامًّا. أما مفتاح المنحنى الإهليلجي فيطبع منحنى مسمّى بدلًا من ذلك، ولن ينتج أي قدر من البحث n أو q منه.

اقرأ البنية بدلًا من base64

PEM هو base64 مغلّف بأسطر ترويسة، وفك ترميزه يعطي DER، وهو بنية مسلسلة لا عددًا صحيحًا هائلًا واحدًا. تنتقل مفاتيح RSA الخاصة في حاويتين شائعتين، PKCS#1 وPKCS#8، وكلتاهما تُحلّان إلى المجموعة نفسها من الأعداد.

في حالة العددين الأوليين تحمل البنية الخاصة تسعة حقول: إصدارًا، والمعامل n، والأُس العام e، والأُس الخاص d، والعددين الأوليين p وq، وأُسّي CRT، ومعامل CRT. يعرّف RFC 8017 القسم A.1 تلك المكوّنات وتخطيط ASN.1، ويسمح أيضًا بأكثر من عددين أوليين، ولهذا يستطيع محلل عام طباعة مدخلات أولية إضافية. لاحظ الترتيب، لأنه يفسّر خطأً شائعًا: النصف العام مخزّن داخل الملف الخاص، فوجود حقل عام لا يجعل ذلك الملف آمنًا للمشاركة. وكل ما يأتي بعده هو المادة التي يجب أن تبقى على المضيف.

تضيف الترميز طبقة يسهل الخلط بينها وبين المحتوى. يرسم openssl asn1parse البنية كشجرة فيصبح ترتيب الحقول مرئيًا، وهو لا يفك تشفير أي شيء ولا يخبرك إن كان المفتاح صالحًا للاستخدام.

طابق الشهادة بمفتاح دون طباعة المفتاح

السؤال الذي يتبع عادةً هو هل الشهادة والمفتاح ينتميان معًا. مقارنة المعاملين تجيب عن ذلك، لكنها تنسخ أيضًا مادة قريبة من الخاصة إلى نص طرفية قد ينتهي في تذكرة. ومقارنة النصفين العامين تجيب عن السؤال نفسه دون شيء حساس على الشاشة.

openssl pkey -in vpn-client.key -pubout -out /tmp/key.pub
openssl x509 -in vpn-client.crt -pubkey -noout > /tmp/cert.pub
cmp /tmp/key.pub /tmp/cert.pub && echo MATCH

الملفات المتطابقة تعني أن الشهادة تحمل النصف العام لذلك المفتاح، والاختلاف يعني أنك تحمل الزوج الخطأ. هذا عدم التطابق هو السبب الأكثر شيوعًا لنفق يتفاوض بارتياح ثم يرفض المصادقة. أزل الملفين المؤقتين بعد ذلك؛ فليس فيهما شيء سري، لكن دليل عمل نظيف أسهل في التبرير في منتصف حادثة.

اعرف ما ليست عليه الملفات المجاورة

الشهادة ليست مفتاحًا عامًّا مشفّرًا يفتحه النظير بمفتاح شهادة CA؛ إنها ارتباط موقّع بين مفتاح عام وبيانات هوية. يبقى مفتاح التوقيع الخاص بجهة CA منفصلًا عن شهادتها وعن كل مفتاح عميل. والطلب ليس شهادة أيضًا: فهو يحمل المعلومات المطلوبة والمفتاح العام مع توقيع على الطلب، ما يجعله مدخل تسجيل لا إثبات استحقاق.

FileAnswersDoes not prove
vpn-client.keyPossession of the private keyThat the identity is enrolled
vpn-client.crtA signed binding of public key to identityThat the client holds the matching key
vpn-client.csrThe requested binding and public keyThat access was granted
dh2048.pemGroup parameters for key exchangeAny RSA component
crl.pemRevocation status for certificatesAnything about a private key

يُخلط بين اثنين من تلك المدخلات ومعاملات RSA بما يكفي لتسميتهما مرتين. ملف معاملات Diffie-Hellman يحتوي معاملات مجموعة لإنشاء المفتاح ولا يحتوي أعدادًا أولية RSA، رغم أنه يطبع أيضًا كعدد أولي كبير. وقائمة الإلغاء تنشر حالة الشهادات وليست مكانًا يمكن أن يختبئ فيه أُسّ خاص.

لذلك ينبغي لكل سطر جرد أن يسجّل أربعة أشياء: نوع الكائن والمالك والغرض وهل المادة الخاصة مضمنة. والعمود الأخير يقرر أين يجوز نسخ الملف، وهو العمود الذي يتخطاه الناس.

سجّل الاقتران ثم تحقق من المصافحة

قبل تغيير أي شيء، احفظ خرج التحقق مع التاريخ وإصدار OpenSSL. عندها يمكن مقارنة أي تدوير لاحق بدليل لا بذاكرة.

openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates

بعد مقارنة المفتاح العام، جرّب المسار الذي يستهلك الزوج: ارفع النفق، وأكد أن الشهادة تُقدَّم وتُقبل، وافحص أي هوية سجّلها البوابة. إن تطابق المفتاح والشهادة وفشلت المصادقة مع ذلك، فالخطأ في الثقة أو ربط الهوية أو سياسة الوصول لا في الاقتران.

للتراجع، احفظ المفتاح والشهادة السابقين في دليل مؤرخ وأعد كليهما معًا، لا واحدًا منهما. المفتاح بلا شهادته والشهادة بلا مفتاحها يفشلان بالطريقة نفسها من الخارج، ما يجعل الأزواج المستعادة جزئيًا مكلفة الفك في الثانية فجرًا.

مقالات ذات صلة