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

الشهادة تؤدي وظيفتين يُخلط بينهما

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

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

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

أين تستحق CA عامة رسمها

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

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

ما لا تفعله الشهادة العامة هو مصادقة مستخدميك. هوية العميل قرار منفصل، يُتخذ بشهادات العميل أو كلمات المرور أو عامل ثانٍ، والـ CA التي توقّع الخادم لا تقول شيئًا عن من يجوز له الاتصال به.

أين تناسب CA خاصة شبكة VPN

بالنسبة إلى VPN خاصة بمجموعة معروفة من العملاء، فإن تشغيل CA الخاصة بك هو الخيار التقليدي. تنشئ CA مرة واحدة، وتوقّع شهادة الخادم باسم سيستخدمه العملاء، وتوزع شهادة CA داخل كل ملف شخصي. ثم يتحقق كل عميل من الخادم مقابل جهتك، ولا يعرف أي طرف خارجي اسم المضيف.

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

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

مفتاح CA الخاص يحدد ما يمكنك فعله لاحقًا

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

فخّان أصغر يسكنان الإقليم نفسه. تفترض نصوص easy-rsa أنك تقف في الدليل الذي يحتويها، لذا يعني خطأ الملف المفقود عادةً الموقع الخطأ لا تثبيتًا تالفًا. والتصميم القائم على الشهادات فقط مشروع تمامًا: يمكنك اشتراط شهادات العميل دون مفتاح مشترك مسبقًا، بشرط أن يملك كل عميل واحدة ويتحقق الخادم من السلسلة.

أصدر شهادة واحدة لكل جهاز بدلًا من شهادة عميل مشتركة واحدة للفريق كله. حينها يكلفك حاسوب محمول مفقود إبطالًا واحدًا بدلًا من إعادة إصدار للجميع.

تحقق مما ورثته

قبل التخطيط لأي تغيير، اقرأ الشهادة التي لديك بالفعل:

$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov  3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK

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

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

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