شهادة واحدة لكل جهاز لا تجعل المفتاح مرتبطًا بالجهاز
شهادة لكل جهاز هي خيار إداري، وليست ربطًا بالجهاز. ما يحدد الربط هو مكان وجود المفتاح الخاص، من ملف قابل للنسخ إلى شريحة TPM.
أنت تصدر شهادة منفصلة لكل حاسوب محمول، لذلك تفترض أن شبكة VPN قادرة على التمييز بينها. وهي ليست كذلك. شهادة العميل تثبت أن من يتصل يحمل المفتاح الخاص المطابق، وملف التعريف المنسوخ يحمل ذلك أيضًا.
شهادة لكل جهاز لا تزال فكرة جيدة. لكنها تؤدي مهمة مختلفة عمّا يتوقعه معظم الناس.
ما تثبته شهادة العميل فعليًا
أثناء المصافحة يوقّع العميل بالمفتاح الخاص المطابق لشهادته، ويتحقق الخادم من ذلك التوقيع مقابل الجهة المصدرة التي يثق بها. لا شيء في ذلك التبادل يصف الجهاز. أي جهاز يحمل الشهادة والمفتاح معًا ينتج توقيعًا مطابقًا، لذلك ملف تعريف نُسخ إلى حاسوب محمول ثانٍ يبدو تمامًا كالأصلي. الشهادة تسمّي هوية؛ ولا تسمّي عتادًا.
تفرد كل جهاز لا يزال يستحق وجوده، لأنه يجعل الإبطال دقيقًا. إنه خاصية إدارية، وليس قفلًا تقنيًا.
ثلاثة مستويات لتخزين المفتاح
المستوى الأول ملف مفتاح على القرص. وهو محمول بحكم التصميم، وهناك تعيش معظم ملفات تعريف OpenVPN.
المستوى الثاني مفتاح يعلّمه نظام التشغيل بأنه غير قابل للتصدير. يستطيع Windows توليد مفتاح جهاز في مخزن شهاداته ويرفض التصدير العادي، مما يمنع النسخ العابر. وهو غير مدعوم بالعتاد، ومع وصول كافٍ إلى الجهاز يمكن استعادة مثل هذه المفاتيح، لذا فهو يرفع الجهد بدلًا من بناء جدار.
المستوى الثالث مفتاح يُولّد داخل عتاد أمني: شريحة TPM أو بطاقة ذكية أو بطاقة SIM أو رمز PIV. تفتقر تلك الوحدات إلى الدوائر اللازمة لتصدير المفتاح الذي تولّده، ويحدث التوقيع داخل الوحدة. لا يصبح المفتاح أبدًا ملفًا يمكن لأحد نسخه.
| Where the key lives | Copyable | What it buys you |
|---|---|---|
| Key file inside the profile | Trivially | Revocation granularity, nothing more |
| OS non-exportable key store | Hard, not impossible | Stops casual profile sharing |
| TPM or PIV token | No | Binding the server can rely on |
هذا الجدول هو الحجة كاملة في ثلاثة صفوف.
ما تستطيعه easy-rsa وما لا تستطيعه
إصدار شهادات لكل جهاز أمر مباشر. أنشئ اسمًا شائعًا مميزًا لكل جهاز مقابل الجهة المصدرة نفسها، مثل ./easyrsa build-client-full laptop-a nopass، وكرّر ذلك لكل جهاز. سجّل أي اسم شائع يخص أي شخص وأي جهاز.
الإبطال مباشر بالقدر نفسه: ./easyrsa revoke laptop-a، أعد توليد قائمة CRL باستخدام ./easyrsa gen-crl، وتأكد من أن الخادم يقرأها فعليًا عبر crl-verify.
ما لا تستطيعه الجهة المصدرة هو التحقق من مكان وجود المفتاح الخاص بعد ذلك. إذا ولّدت المفتاح على مضيف الجهة المصدرة ونسخته إلى الجهاز، فقد أنشأت نسخة ثانية عند الإصدار. يجب توليد مفتاح غير قابل للتصدير على الجهاز، أو استيراده إلى عتاد لا يسلّمه.
ضوابط تصمد أمام ملف تعريف منسوخ
افترض أن ملف التعريف قابل للنسخ وصمّم على هذا الأساس. اربط الحساب بعامل ثانٍ حتى لا تكفي الشهادة وحدها. امنح كل جهاز سياسته الخاصة حتى يبقى نطاق هوية واحدة محدودًا. وراقب الاسم الشائع نفسه متصلًا من عنوانين في الوقت نفسه، فهذا ما يبدو عليه ملف تعريف مشترك في سجل الاتصالات.
الإبطال السريع والموثّق هو الضابط الذي يظل يعمل بعد حدوث النسخ. وكل ما عدا ذلك وقاية.
الادعاء الذي يمكن للخادم الاعتماد عليه فعليًا
التفرد يأتي من الجهة المصدرة. وربط الجهاز يأتي من تخزين المفتاح. فقط العتاد الذي لا يستطيع تصدير مفتاحه يحوّل شهادة لكل جهاز إلى بيان يفرضه الخادم، بدلًا من سياسة يوافق الجميع على اتباعها.