James Bottomley'in blogunda aldığı iki gönderinin çevirileridir. İlk gönderi 1 Şubat'ta yapıldı ve adı "LCA2013 ve Güvenli Önyüklemeyi Yeniden Yapılandırma"
Bir süre sessiz kaldım, bu yüzden Linux Foundation'ın Güvenli Önyükleme Yükleyicisi'nde neler olup bittiğini (özellikle LCA2013'te tanıtıldığını) güncelleme zamanı. (Slaytlara bağlantı)
Sorunun özü, GregKH'nin (çekirdek geliştiricisi Greg Kroah-Hartman) Aralık ayı başlarında önerilen Pre-BootLoader'ın Gummiboot ile mevcut haliyle çalışmayacağını keşfetmesidir. Bu biraz ürkütücüydü, çünkü Linux Vakfı'nın tüm önyükleyicileri etkinleştirme misyonunu yerine getirmediği anlamına geliyordu. Araştırmada neden basitti: Gummiboot, GRUB gibi devasa bir bağlantı yükleyici olmak yerine UEFI platformunda bulunan tüm hizmetlerden yararlanacak küçük, basit bir önyükleyici yapabileceğinizi göstermek için oluşturuldu. Ne yazık ki bu, çekirdeklerinizi BootServices-> LoadImage () işlevini kullanarak başlattığınız anlamına gelir; bu, önyüklenecek çekirdeğin UEFI platformundaki güvenli önyükleme kontrollerinden geçmesi gerektiği anlamına gelir. Başlangıçta Pre-BootLoader gibi layner (Mathew Garrett'ın önyükleyicisi), güvenli önyükleme denetimlerini yenmek için PE / Coff bağlantı yüklemesini kullanmak üzere yazılmıştır. Ne yazık ki, Pre-BootLoader tarafından çalıştırılan bir şeyin, yüklemek istediği her şeyde güvenli önyükleme kontrollerini yenmek için bağlantı yüklemeyi kullanması gerektiği ve bu nedenle kasıtlı olarak bir bağlantı yükleyici olmayan Gummiboot'un bunun altında çalışmayacağı anlamına gelir. düzeni.
Bu yüzden yeniden yapılandırmak ve yeniden yazmak zorunda kaldım: Sorun artık "Microsoft tarafından imzalanan ve politikalarına uyan bir bağlantı yükleyicinin nasıl oluşturulacağından" "önyükleyicinin tüm alt öğelerinin BootServices-> LoadImage () işlevini kullanmasının nasıl sağlanacağına politikalarına uymanın yolu. Neyse ki, kendi mimari güvenlik protokolünüzü kurarak UEFI platform imzalama altyapısını engellemenin bir yolu var. Ne yazık ki, platform başlatma spesifikasyonu aslında UEFI spesifikasyonunun bir parçası değildir, ancak neyse ki bulabileceğiniz her Windows 8 sistemi tarafından uygulanmaktadır. Yeni mimari bu protokolü yakalar ve kendi güvenlik kontrolünü ekler. Bununla birlikte, ikinci bir sorun var: Mimari güvenlik protokolü geri aramasındayken, UEFI sistem ekranına sahip olmamız gerekmiyor, bu da ikilinin yürütülmesine izin vermek için bir kullanıcı testi yapmayı tamamen imkansız hale getiriyor. Neyse ki, bunu yapmanın etkileşimli olmayan bir yolu var ve bu SUSE Makine Sahibi Anahtarı (MOK) mekanizmasıdır. Bu nedenle, Linux Foundation Pre-BootLoader artık yetkili ikili karmaları depolamak için standart MOK değişkenlerini kullanacak şekilde gelişti.
Tüm bunların sonucu, artık Pre-BootLoader'ı Gummiboot ile kullanabilmenizdir (aynen LCA2013'teki demoda yapıldığı gibi). Önyüklemek için 2 hash eklemeniz gerekir: biri Gummiboot'un kendisi için ve diğeri önyüklemek istediğiniz çekirdek için, ama aslında bu iyi bir şey çünkü artık tüm önyükleme sırasını kontrol eden tek bir güvenlik politikanız var. Gummiboot'un kendisi de güvenli önyükleme nedeniyle bir çökmeyi algılayacak şekilde yamalanmış ve size hangi karmanın kaydedileceğini bildiren bir mesaj görüntüler.
Yeni mimarinin nasıl çalıştığını açıklayan ayrı bir yazı yapacağım ama geçen ay olanları açıklamanın daha iyi olacağını düşündüm.
Ve dün yaptığı bu ikinci gönderinin adı "Linux Vakfı Güvenli Önyükleme Sistemini Başlattı"
Söz verdiğimiz gibi, işte Linux Foundation Secure Boot System. Aslında Microsoft tarafından 6 Şubat'ta yayınlandı, ancak seyahatler, konferanslar ve toplantılarla bugüne kadar her şeyi doğrulamak için zamanım olmadı. Dosyalar şunlardır:
PreLoader.efi (md5sum 4f7a4f566781869d252a09dc84923a82)
HashTool.efi (md5sum 45639d23aa5f2a394b03a65fc732acf2)
Ayrıca önyüklenebilir bir mini USB görüntüsü oluşturun; (Dd kullanarak USB'ye yüklemeniz gerekir; görüntünün GPT bölümleri vardır, bu nedenle tüm diski kullanır). Çekirdeğin olması gereken yerde bir EFI kabuğuna sahiptir ve onu yüklemek için gummiboot kullanır. Burada bulabilirsin (md5sum 7971231d133e41dd667a184c255b599f).Mini-USB görüntüsünü kullanmak için, loader.efi (\ EFI \ BOOT klasöründe) ve shell.efi (kök klasörde) için karmalar girmelisiniz. Ayrıca KeyTool.efi'nin bir kopyasını da içerir, çalıştırmak için karma değeri girmeniz gerekir.
KeyTool.efi'ye ne oldu? Başlangıçta imzalı setimizin bir parçası olacaktı. Bununla birlikte, test sırasında Microsoft, UEFI platformlarından birindeki bir hata nedeniyle platform anahtarını programlı olarak kaldırmak için kullanılabileceğini ve bunun UEFI güvenlik sistemini bozacağını keşfetti. Bunu çözene kadar (döngüde özel satıcı var), KeyTool.efi'yi imzalamayı reddettiler, ancak çalıştırmak istiyorlarsa MOK değişkenleri ekleyerek yetkilendirebilirler.
Bunun nasıl gittiğini bana bildirin çünkü neyin işe yarayıp neyin yaramadığına dair geri bildirim toplamakla ilgileniyorum. Özellikle, güvenlik protokolünü geçersiz kılmanın bazı platformlarda çalışmayacağından endişe duyuyorum, bu nedenle özellikle onlar için çalışıp çalışmadığını bilmek istiyorum.
kaynaklar:
http://blog.hansenpartnership.com/lca2013-and-rearchitecting-secure-boot/
http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/
İyi mi yoksa kötü mü olduğuna karar verin.