
مصادقة TPM عن بُعد خفيفة الوزن وسهلة الاستخدام عبر البلوتوث
أولترابلو (خادم تصديق TPM خفيف وسهل الاستخدام عبر البلوتوث) هو حل يتيح للمستخدمين الأفراد إجراء تصديق على حالة الإقلاع باستخدام هواتفهم. يتكون من خادم يعمل على حاسوب بدور المُصدِّق، وتطبيق عميل رسومي يعمل على هاتف موثوق بدور المُتحقِّق.
حالة الاستخدام النموذجية هي التحقق من سلامة سلسلة الإقلاع قبل فتح قفل حاسوبك، لمنع الهجمات دون اتصال على حاسوب محمول غير مراقَب. ويمكنه أيضًا أن يكون أداة تصحيح أخطاء لمشاكل الإقلاع الآمن بعد ترقيات البرامج الثابتة أو عاملًا ثانيًا لتشفير القرص.
بمجرد التثبيت، يتكون مسار التحكم الكلاسيكي لأولترابلو من عدة خطوات:
يتطلب استخدام أولترابلو حاسوبًا يعمل بنظام لينكس تريد التصديق على حالة إقلاعه، ويحتوي على TPM وواجهة بلوتوث (عادةً حاسوب محمول)، بالإضافة إلى هاتف محمول.
لتسجيل هاتف كمُتحقِّق، ابدأ الخادم في وضع التسجيل:
sudo ultrablue-server -enroll -pcr-extend
سيؤدي ذلك إلى عرض رمز QR على الطرفية. من الهاتف، شغّل تطبيق العميل، وانقر على أيقونة + في الزاوية العلوية اليمنى لإظهار ماسح رمز QR. عند المسح، سيتم إنشاء قناة بلوتوث منخفض الطاقة، وسيتم تنفيذ التسجيل تلقائيًا. عند النجاح، ستظهر بطاقة جهاز على الصفحة الرئيسية لتطبيق العميل.
يمكن لـأولترابلو توسيع TPM2 PCR9 باستخدام قيمة مولّدة عشوائيًا في وقت التسجيل. وهذا مفيد إذا أردت، على سبيل المثال، ربط تشفير القرص بـ ختم TPM2. في هذه الحالة، سيقوم أولترابلو بتوسيع سجل PCR9 مرة أخرى أثناء زمن الإقلاع إذا كان التصديق ناجحًا وموثوقًا. يتم تكوين توسيع PCR وقت التسجيل (لا تأثير للعلامة في وضع التصديق):
sudo ultrablue-server -enroll -pcr-extend
إذا كنت تريد أن يتم تنفيذ أولترابلو كجزء من مسار الإقلاع، فيجب عليك إعادة توليد initramfs لدمجه فيه. نسهّل ذلك من خلال توفير تكامل مع Dracut وsystemd. انظر أيضًا البرامج النصية لـ VM المقدمة التي توفر طريقة أسهل لاختبار ذلك.
أولاً، ثبّت server/dracut/90ultrablue في دليل الوحدات /usr/lib/dracut/modules.d/،
يمكنك بعد ذلك تشغيل أمر dracut التالي:
dracut --add ultrablue /path/to/initrd --force
إذا استخدمت خيار --pcr-extend أثناء مرحلة التسجيل، فستحتاج
إلى إضافة وحدة dracut النمطية crypt، ونسخserver/dracut/90crypttab.conf في /etc/dracut.conf.d (للتحايل على خطأ dracut #751640):
cp server/dracut/90crypttab.conf /etc/dracut.conf.d
dracut --add "crypt ultrablue" /path/to/initrd --force
لاحظ أن هذه الخيارات ليست دائمة وسيتم إزالة أولترابلو من initramfs عند توليده التالي. راجع صفحة الدليل dracut.conf(5) للتكوين الدائم.
إذا قمت بخطوة تكوين initramfs، فسيعمل خادم أولترابلو تلقائيًا أثناء الإقلاع. بخلاف ذلك، ابدأ الخادم يدويًا في وضع التصديق:
sudo ultrablue-server
بمجرد البدء، سينتظر الخادم اتصال مُتحقِّق (الهاتف). من الهاتف، انقر على أيقونة ▶️ في بطاقة الجهاز. سيؤدي ذلك إلى تشغيل التصديق. عند الانتهاء، سيعرض تطبيق العميل نتيجة التصديق.
الهدف الرئيسي من تشغيل أولترابلو وقت الإقلاع هو استخدامه لفك تشفير القرص. يتم توفير مثال عن كيفية القيام بذلك وتوثيقه في بيئة اختبار الخادم.
تم تطوير مشروع أولترابلو في ANSSI (ssi.gouv.fr) بواسطة Loïc Buckwell، تحت إشراف Nicolas Bouchinet وGabriel Kerneis.
إذا كان لديك أي سؤال، تواصل عبر issue في Github، أو مباشرة مع Gabriel Kerneis [email protected].