Implementace bezpečného bootování pomocí UEFI ve Fedoře hezky pokročila, takže je čas na krátké shrnutí novinek.

Článek původně vyšel v blogu Matthew Garretta jako UEFI Secure boot in Fedora: status update. Na fedora.cz vychází se svolením autora.

Na fedora.cz dříve vyšly o tomto tématu následující články:

Podepisování bootovacího procesu

Infrastruktura pro podepisování binárek bootloaderu je již implementovaná. pesign je v archivu a používá se k podepisování shim, GRUB2 a jádra. Zatím je vše podepisováno testovacími klíči a soukromý klíč je přímo v balíku pesign. Tak to samozřejmě nebude při ostrém nasazení – potřebujeme se pouze ujistit, že umíme sestavovat správně podepsané obrazy. Vyzkoušeli jsme také podepisování pomocí kryptografického hardwaru a zanedlouho uvedeme do provozu nové buildovací systémy pro sestavování podepsaných binárek. K těmto systémům nebude obecný přístup a jejich konfigurace bude pozměněná, aby byl šifrovací hardware k dispozici buildovacím chrootům, ale jinak na nich nebude nic zvláštního.

Co se týká podepisování s klíči od Microsoftu, dokončujeme právní kontrolu příslušných dohod a brzy budeme migrovat na verzi shim podepsanou jejich klíčem.

Úpravy jádra

Pro jádro máme dvě sady patchů. První zajistí automatické zamykání různých funkcí při zapnutém bezpečném bootování, aby se uživatelům (včetně roota) zabránilo upravovat za běhu jádro. Patche jsme zrovna poslali upstreamu a reakce nebyla nijak hrozná, i když asi změníme název této vlastnosti. Hlavní věc, které si uživatelé všimnou, bude to, že žádné ovladače pro X, které stále potřebují přímý přístup k hardwaru (jenž by na systémech s bezpečným bootem měl být nulový – implementovali jsme nativní jaderné ovladače pro všechen hardware, o kterém si myslíme, že by se mohl objevit), nebudou fungovat, stejně jako setpci. Je v plánu, aby kexec požadoval podepsané obrazy jádra, ale to si vyžádá větší přepracování kexec, než jsme čekali, takže prozatím bude kexec prostě zakázaný.

Další část jaderných funkcí je podpora podpisů u modulů. To se poněkud zablokovalo kvůli neshodám mezi autory patchů a upstreamem, ale minulý týden na Kernel Summitu bylo dosaženo dohody, takže bychom se brzy měli pohnout dál i v této oblasti. V tuto chvíli stále zvažujeme podepisování modulů jednorázovým klíčem, ale v plánu je i nadále importování klíčů v databázi (a MOKu, pokud by se použil způsob ze SUSE) do jaderné klíčenky. To však záleží na tom, jestli bude příslušný kód včas napsán. Pro F18 je to pořád naším cílem.

Správa klíčů

Plánujeme používat způsob vyvinutý v SUSE, tj. povolit lokální správu klíčů na úrovni shim. Minulý týden jsem o tom diskutoval s Vojtěchem. V kombinaci s výše zmíněným by to mělo poskytnout funkční mechanismus, který uživatelům umožní instalovat klíče pro podepisování modulů.

Obecná vylepšení podpory UEFI

Do GRUBu jsme přidali podporu používání funkcí pro nastavování UEFI zabudovaných v jádře, i když se s upstreamem stále diskutuje o tom, jak zařídit, aby to bylo implementováno přijatelným způsobem. Tento přístup nám také usnadňuje prostřednictvím UEFI získávat PCI ROM, což zlepšuje podporu radeonů na Macu. Kromě toho jsme opravovali některé zbývající chyby, takže jsme už tak daleko, že nás překvapí, když nějaký stroj nefunguje, kdežto ty, které fungují, už jsou nudná rutina. To je o mnoho lepší stav než v případě jakékoliv předchozí verze.

Dokumentace

Stále čeká na napsání – vypadá to, že tím strávím většinu následujícího měsíce.

Shrnutí

Vše jde zatím podle plánu, aby měla Fedora 18 zabudovanou plnou podporu „UEFI Secure Boot“. Beta by měla být plně podepsána, i když možná jen našimi testovacími klíči.

Pro ty z vás, které zaměstnavatel posílá na překvapivě drahé konference, příští úterý ráno budu o některých aspektech této problematiky mluvit v rámci prezentace o zlepšování linuxové podpory UEFI na Intel Developer Forum v San Francisku. Pokud budete poblíž, stavte se.