Linux Vakfı'nın teknik danışmanı James Bottomley'in , Linux'un önyüklenebilmesi için bir önyükleyici oluşturma çabalarını anlatan bu makalesini çevireceğim.
Önceki yazımda da açıkladığım gibi, Linux Vakfı önyükleyici koduna sahibiz. Ancak, Microsoft'un imzalama sistemine erişim sağlayana kadar bir gecikme yaşandı.
Öncelikle Verisign'a (şimdi Symantec) 99 dolarlık ücreti ödemeniz ve Verisign onaylı bir anahtar almanız gerekiyor. Bunu Linux Vakfı için yaptık ve tek istedikleri genel merkezle iletişime geçip doğrulamak. Anahtar, tarayıcınıza yüklenen bir URL üzerinden geri gönderiliyor, ancak standart Linux SSL araçları kullanılarak da çıkarılabilir ve normal bir PEM sertifikası ve anahtarı oluşturulabilir. UEFI imzalama ile hiçbir ilgisi yok, ancak Microsoft'un sysdev sistemine kim olduğunuzu doğrulamak için kullanılıyor. Bir sysdev hesabı oluşturmadan önce, sağladıkları bir yürütülebilir dosyayı imzalayıp yükleyerek test etmeniz gerekiyor . Belirli bir Windows platformunda imzalamanız konusunda katı gereksinimleri var, ancak sbsign en azından çalıştı ve işte, hesabımız oluşturuldu.
Hesap oluşturduktan sonra bile, önce yazılı bir sözleşme imzalamadan UEFI ikili dosyalarını imzalamak için yükleyemezsiniz . Anlaşmalar çok ağır ve birçok lisansı (sürücüler için tüm GPL'ler dahil, ancak önyükleyiciler için değil) kapsam dışı bırakıyor. En ağır yanı ise, anlaşmaların imzaladığınız UEFI nesnelerinin ötesine uzanıyor gibi görünmesi . Linux Vakfı'nın avukatları, ürün satmadığımız için bunun Linux Vakfı için çoğunlukla zararsız olduğunu, ancak diğer şirketler için kabul edilemez olabileceğini belirtti. Matthew Garrett'e göre, Microsoft bu sorunların bazılarını hafifletmek için dağıtımlarla özel anlaşmalar yapmaya istekli.
Anlaşmalar imzalandıktan sonra, asıl teknik eğlence başlıyor . Bir UEFI ikili dosyasını yükleyip imzalanmasını bekleyemezsiniz. Öncelikle, onu bir .cab dosyasına sarmalamanız gerekiyor . Neyse ki, lcab adı verilen ve .cab dosyaları oluşturabilen açık kaynaklı bir proje var. Ardından , .cab dosyasını Verisign anahtarıyla imzalamanız gerekiyor . Yine, bunu yapabilen başka bir açık kaynaklı proje var: osslsigncode. Bu araçlara ihtiyacı olan herkes için, bunlar benim openSUSE UEFI Build Service depomda mevcut. Son engel ise dosyayı yüklemek için Silverlight'a ihtiyaç duyulması . Ne yazık ki, Moonlight çalışmıyor gibi görünüyor ve 4. sürüm önizlemesiyle bile yükleme kutusu boş kalıyor, bu yüzden KVM (çekirdek tabanlı sanal makine) altında Windows 7 kullanma zamanı geliyor . Bu kısma geldiğinizde, ikili dosyanın "imzalanacaksa, GPLv3 veya benzeri açık kaynak lisansları altında lisanslanmamış olması " gerektiğini de onaylamanız gerekiyor. Bunun anahtarın ifşa edilmesinden duyulan korkudan kaynaklandığını tahmin ediyorum, ancak bu hiç de açık değil (aynı durum "benzer açık kaynak lisansları" için de geçerli).
Yükleme tamamlandıktan sonra, kabin dosyası yedi aşamadan geçiyor. Ne yazık ki, ilk test yüklemesi 6. aşamada (dosya imzalama aşaması) takılı kaldı. Altı gün sonra, ne olduğunu sorarak Microsoft desteğine e-posta gönderdim. Cevap: “İmzalama işlemi tarafından döndürülen hata kodu, dosyanızın geçerli bir Win32 uygulaması olmadığıdır . Geçerli bir Win32 uygulaması mı?” Cevap: Açıkçası değil, geçerli bir 64 bit UEFI ikili dosyası. Başka bir yanıt gelmedi …
Tekrar denedim. Bu sefer imzalı dosya için bir indirme e-postası aldım, ancak kontrol panelinde imzalama işleminin başarısız olduğu belirtildi . Dosyayı indirdim ve doğruladım. İkili dosya Güvenli Önyükleme platformunda çalışıyor ve anahtar ile imzalanmış durumda.
konu = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
veren = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011Destek ekibine, indirme işlemi geçerli olmasına rağmen neden hata verdiğini sordum. Bir sürü e-postadan sonra, "Bu dosyayı kullanmayın; yanlış imzalanmış . Size geri döneceğim." diye yanıt verdiler. Sorunun ne olduğundan hala emin değilim, ancak imzalama anahtarının Konu kısmına bakarsanız, anahtarda Linux Vakfı'nı gösteren hiçbir şey yok . Bu nedenle, sorunun, ikili dosyanın Linux Vakfı'na bağlı özel (ve geri alınabilir) bir anahtar yerine genel bir Microsoft anahtarıyla imzalanmış olmasından kaynaklandığını düşünüyorum.
Ancak durum şudur: Microsoft'un Linux Foundation'a imzalı ve doğrulanmış bir ön önyükleyici vermesini beklemeye devam edeceğiz. Bu olduğunda, herkesin kullanması için Linux Foundation sitesine yüklenecektir.
Kaynak: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/
Sonuçlarınızı çıkarın, ancak bu zaman alacak.