Sú to preklady dvoch príspevkov, ktoré vzal na svoj blog James Bottomley. Prvý príspevok bol zverejnený 1. februára a má názov „LCA2013 a reštrukturalizácia zabezpečeného spustenia“.
Chvíľu som bol ticho, takže je čas na aktualizáciu o tom, čo sa deje s Secure Boot Loaderom od Linux Foundation (najmä od jeho predstavenia na LCA2013). ( Odkaz na slajdy )
Podstata problému spočíva v tom, že GregKH (Greg Kroah-Hartman, vývojár jadra) začiatkom decembra zistil, že navrhovaný Pre-BootLoader nebude v súčasnej podobe fungovať s Gummibootom. To bolo odrádzajúce, pretože to znamenalo, že nenapĺňal poslanie Linux Foundation, ktorým bolo umožnenie všetkých bootloaderov. Dôvod bol po preskúmaní jednoduchý: Gummiboot bol vytvorený s cieľom demonštrovať, že je možné vytvoriť malý, jednoduchý bootloader, ktorý by využíval všetky služby dostupné na platforme UEFI, namiesto toho, aby bol masívnym linkloaderom ako GRUB. Bohužiaľ, to znamená, že bootuje jadrá pomocou funkcie BootServices->LoadImage(), čo znamená, že jadro, ktoré sa má bootovať, musí prejsť bezpečnými bootovacími kontrolami na platforme UEFI. Pôvodne bol Pre-BootLoader, podobne ako shim (bootloader Mathewa Garretta), napísaný tak, aby používal link loading PE/Coff na obídenie bezpečných bootovacích kontrol. Bohužiaľ to znamená, že čokoľvek spustené programom Pre-BootLoader musí tiež použiť načítanie odkazov na prekonanie kontrol zabezpečeného zavádzania všetkého, čo chce načítať, a preto Gummiboot, ktorý zámerne nie je zavádzačom odkazov, nebude v rámci tejto schémy fungovať.
Takže som musel reštrukturalizovať a prepísať: Problém teraz prešiel od „ako vytvoriť načítač odkazov podpísaný spoločnosťou Microsoft, ktorý sa riadi ich politikami“ až po „ako umožniť všetkým potomkom zavádzača používať funkciu BootServices-> LoadImage () ich politík. Našťastie existuje spôsob, ako zachytiť podpisovú infraštruktúru platformy UEFI inštaláciou vlastného bezpečnostného protokolu architektúry. Špecifikácia inicializácie platformy bohužiaľ v skutočnosti nie je súčasťou špecifikácie UEFI, ale našťastie je implementovaná každým systémom Windows 8, ktorý nájdete. Nová architektúra zachytáva tento protokol a pridáva vlastnú kontrolu bezpečnosti. Existuje však druhý problém: Aj keď sa nachádzame v spätnom volaní bezpečnostného protokolu architektúry, nevyhnutne nevlastníme obrazovku systému UEFI, takže je úplne nemožné vykonať používateľský test na autorizáciu vykonania binárneho súboru. Našťastie existuje neinteraktívny spôsob, ako to dosiahnuť, a tým je mechanizmus SUSE Machine Owner Key (MOK). Preto sa program Linux Foundation Pre-BootLoader teraz vyvinul tak, aby na ukladanie autorizovaných binárnych hashov používal štandardné premenné MOK.
Výsledkom toho všetkého je, že program Pre-BootLoader je teraz možné používať s programom Gummiboot (rovnako ako sa to stalo v ukážke na LCA2013). Ak chcete zaviesť, musíte pridať 2 hashe: jeden pre samotný Gummiboot a druhý pre jadro, ktoré chcete zaviesť, ale v skutočnosti je to dobrá vec, pretože teraz máte jednu bezpečnostnú politiku, ktorá riadi celú postupnosť zavádzania. Samotný Gummiboot bol tiež opravený tak, aby rozpoznal haváriu v dôsledku bezpečného spustenia, a zobrazí správu s informáciou, ktorý hash sa má zaregistrovať.
Urobím samostatný príspevok s vysvetlením fungovania novej architektúry, ale myslel som si, že bude lepšie vysvetliť, čo sa stalo minulý mesiac.
A tento druhý príspevok, ktorý včera urobil, sa volá „Spustil systém bezpečného spustenia systému Linux Foundation“.
Ako sme sľúbili, tu je systém Linux Foundation Secure Boot System. Vlastne nám ju vydal Microsoft 6. februára, ale pri cestách, konferenciách a stretnutiach som do dnešného dňa nemal čas všetko overiť. Súbory sú:
PreLoader.efi (md5sum 4f7a4f566781869d252a09dc84923a82)
HashTool.efi (md5sum 45639d23aa5f2a394b03a65fc732acf2)
Vytvorte tiež bootovateľný obraz mini-USB; (Musíte ho nainštalovať na USB pomocou dd; obraz má oddiely GPT, takže využíva celý disk). Má shell EFI, kde by malo byť jadro, a na načítanie ho používa gummiboot. Nájdete ho tu (md5sum 7971231d133e41dd667a184c255b599f).Ak chcete použiť obrázok mini-USB, musíte zadať hodnoty hash pre loader.efi (v priečinku \ EFI \ BOOT) a shell.efi (v koreňovom priečinku). Zahŕňa tiež kópiu súboru KeyTool.efi, ktorý je potrebné spustiť zadaním hodnoty hash.
Čo sa stalo s KeyTool.efi? Pôvodne to malo byť súčasťou našej podpísanej súpravy. Počas testovania však spoločnosť Microsoft zistila, že kvôli chybe na jednej z platforiem UEFI by mohla byť použitá na programové odstránenie kľúča platformy, čo by zničilo bezpečnostný systém UEFI. Kým to nevyriešime (máme v slučke súkromného dodávateľa), odmietli podpísať KeyTool.efi, hoci ho môžu autorizovať pridaním premenných MOK, ak ho chcú spustiť.
Dajte mi vedieť, ako to ide, pretože ma zaujíma spätná väzba o tom, čo funguje a čo nie. Obávam sa najmä toho, že prepísanie bezpečnostného protokolu nebude na niektorých platformách fungovať, takže by som chcel vedieť najmä to, či to nefunguje pre ne.
Zdroje:
http://blog.hansenpartnership.com/lca2013-and-rearchitecting-secure-boot/
http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/
Rozhodnite sa, či sú to dobré alebo zlé správy.