المغامرات في توقيع Microsoft UEFI

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

كما أوضحت في رسالتي السابقة ، لدينا رمز أداة تحميل التمهيد المسبق لمؤسسة Linux Foundation. ومع ذلك ، كان هناك ملف تأخير بينما كان لدينا حق الوصول إلى نظام توقيع Microsoft.

أول شيء فعله هو دفع 99 دولارًا إلى Verisign (الآن Symantec) وتحقق من مفتاح بواسطة Verisign. لقد فعلنا ذلك لمؤسسة Linux Foundation ، وكل ما يريدون فعله هو الاتصال بالمقر الرئيسي للتحقق. يعود المفتاح إلى عنوان URL مثبت في متصفحك ، ولكن يمكن استخدام أدوات Linux SSL القياسية لاستخراجه وإنشاء شهادة ومفتاح PEM معتاد. لا علاقة له بتوقيع UEFI ، ولكنه يستخدم للتحقق من صحة النظام com.sysdev مايكروسوفت أنك من تقول أنت. قبل أن تتمكن من إنشاء حساب sysdev ، يجب عليك اختباره التوقيع على ملف قابل للتنفيذ يعطونك وتحميله. إنهم يضعون متطلبات صارمة بأن تقوم بالتوقيع عليها على نظام أساسي معين من Windows ، ولكن sbsign نجح على الأقل وتم إنشاء حسابنا البنغو.

بمجرد إنشاء الحساب ، لا يزال يتعذر عليك تحميل ثنائيات UEFI للتوقيع بدون أولاً توقيع عقد ورقي. الاتفاقيات مرهقة للغاية ، بما في ذلك الكثير من التراخيص المستبعدة (بما في ذلك جميع تراخيص GPL للسائقين ، ولكن ليس لمحمل الإقلاع). الجزء الأكثر صعوبة هو أنه يبدو أن الاتفاقات قد وصلت خارج كائنات UEFI التي توقعها. خلص محامو مؤسسة Linux إلى أن هذا غير ضار في الغالب لشركة LF لأننا لا نبيع المنتجات ، ولكن يمكن أن يكون ذلك مثيرًا للاشمئزاز للشركات الأخرى. وفقًا لماثيو جاريت ، فإن Microsoft على استعداد للتفاوض بشأن صفقات خاصة مع التوزيعات للتخفيف من بعض هذه المشكلات.

بمجرد التوقيع على الاتفاقات ، تصبح حقيقية متعة تقنية. لا يمكنك فقط تحميل ثنائي UEFI وتوقيعه. أولا عليك لفه في ملف .cab. لحسن الحظ ، هناك مشروع مفتوح المصدر يمكنه إنشاء ملفات خزانة تسمى lcab. ثم عليك أن قم بتوقيع ملف .cab باستخدام مفتاح Verisign. مرة أخرى ، هناك مشروع آخر مفتوح المصدر يمكنه القيام بذلك: osslsigncode. بالنسبة لأي شخص يحتاج إلى هذه الأدوات ، فهي متوفرة في مستودع OpenSuse Build Service UEFI الخاص بي. المشكلة الأخيرة هي أن رفع الملف يتطلب سيلفر لايت. لسوء الحظ ، يبدو أن ضوء القمر لا يعمل ، وحتى مع معاينة الإصدار 4 ، يصبح مربع التحميل فارغًا ، لذا حان الوقت لاستخدام Windows 7 تحت kvm (آلة افتراضية تعتمد على kernel). عندما تصل إلى هذا الجزء ، عليك أيضًا أن تصدق على أن الثنائي "سيتم التوقيع عليه ، يجب ألا يكون مرخصًا بموجب GPLv3 أو تراخيص مفتوحة المصدر مماثلة". أفترض أن هذا خوفًا من الكشف عن المفتاح ولكنه ليس واضحًا على الإطلاق (نفس الشيء مع "تراخيص مفتوحة المصدر مماثلة").

بمجرد اكتمال التحميل ، يتوقف ملف الخزانة خلال سبع مراحل. لسوء الحظ ، بقي أول اختبار تسلق مغلق في المرحلة 6 (توقيع الملفات). بعد 6 أيام ، أرسلت بريدًا إلكترونيًا للدعم إلى Microsoft يسأل عما يحدث. الإجابة: "رمز الخطأ الناتج عن عملية التوقيع هو أن الملف ليس تطبيق Win32 صالحًا. هل هو تطبيق Win32 صالح؟ ". الإجابة: من الواضح أنها لا ، فهي نسخة ثنائية صالحة لـ UEFI 64 بت. لم يكن هناك المزيد من الإجابات...

حاولت مرة أخرى. هذه المرة تلقيت رسالة بريد إلكتروني للتنزيل للملف الموقع ويقول المجلس ذلك فشل التوقيع. قمت بتنزيله والتحقق منه. يعمل البرنامج الثنائي على نظام التشغيل الآمن ويتم توقيعه باستخدام المفتاح

الموضوع = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
المُصدر = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011

سألت الدعم لماذا أشارت العملية إلى فشل ولكن كان لدي تنزيل صالح وبعد سلسلة من رسائل البريد الإلكتروني ، أجابوا "لا تستخدم هذا الملف الذي كان وقع خطأ. سوف اعود اليك. " ما زلت غير متأكد من المشكلة ، ولكن إذا نظرت إلى موضوع مفتاح التوقيع ، لا يوجد شيء في المفتاح للإشارة إلى مؤسسة Linux، لذلك أظن أن المشكلة تكمن في أن الثنائي قد تم توقيعه بمفتاح Microsoft عام بدلاً من مفتاح محدد (وقابل للإلغاء) مرتبط بمؤسسة Linux Foundation.

ومع ذلك ، فهذه هي الحالة: سنستمر في انتظار Microsoft لمنح Linux Foundation برنامج تحميل مسبق تم توقيعه والتحقق من صحته. عندما يحدث ذلك ، سيتم تحميله على موقع Linux Foundation ليستخدمه الجميع.

مصدر: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/

ارسم استنتاجاتك ، لكن هذا سيستغرق وقتًا.


أضف كمصدر مفضل في جوجل