Určitě jste už na Root.cz něco o Secure Boot četli. Několik krátkých zpráviček a útržků aktuálního dění, ale za Secure Boot se toho skrývá víc a jak už to bývá, za bezpečnost se zde platí určitá cena.
Microsoft a secure boot
Secure Boot je vlastnost standardu Unified Extensible Firmware Interface (UEFI), které počítačích pomalu nahrazuje BIOS. Uživatel vcelku nic nepozná, některé počítače mají hezčí bootování, možná bootují i rychleji a dokonce se jejich základní vlastnosti dají naklikat myší. Pomineme-li některé příjemné detaily, jako třeba tabulku rozdělení disku GPT, dá se říct, že uživatelům UEFI nic zásadního nepřináší. Secure Boot do základních desek doplní novou bezpečnostní složku, degradující možnosti úpravy systému, ale zvedající zabezpečení bootovacího procesu. Důsledkem toho nepůjde váš nový počítač certifikovaný pro Windows 8 přeinstalovat alternativním operačním systémem tak snadno.
Základem Secure Bootu jsou certifikáty. Microsoft jeden takový má a jeho veřejnou variantu předá výrobci. Ten ho uloží do základní desky a Microsoft se svou částí podepíše jádro, zavaděč a některé ovladače v systému. Podepsáno musí být vše, co nějakým způsobem komunikuje s hardwarem. To znamená, že si nespustíte svou oblíbenou live distribuci, nenabootujete žádný instalátor a o spuštění alternativního systému nemůže být ani řeč. Na druhou stranu jde o dobrou ochranu proti různému škodlivému softwaru, který by se chtěl ukrýt někde v bootovacím procesu, případně proti zásahům do jádra systému či zavaděče.
Problém pro Linux představuje především jeho nejednotnost. Máme tu hromadu distribucí a některé nemají peníze na certifikaci u Microsoftu nebo na honění se za výrobci, zda by nechtěli přidat na desku i jejich certifikát. Podle požadavků Microsoftu na certifikaci počítačů pro Windows 8 půjde naštěstí Secure Boot vypnout na platformách x86/amd64. To znamená, že po přepnutí přepínače někde v setupu základní desky na ní půjde spustit i něco jiného, než kód posvěcený Microsoftem. Bohužel to je krok navíc, který by mohl odradit nového potenciálního linuxového uživatele.
Horší už to je s ARM architekturou, kde Microsoft vyžaduje, aby Secure Boot vypnout nešel. Na ARM se tedy dostaneme tam, kde jsme dnes s chytrými mobilními telefony, kde si také nemůžeme dělat co chceme. V telefonech to pak ještě komplikují zamčené části paměti a žádná superuživatelská práva. Na mnoha přístrojích padla ochrana během dnů, týdnů, maximálně měsíců, ale sami možná víte, že to není nic, co by běžný uživatel dělal či vyhledával. Situaci možná zachrání dohoda další strany s výrobci. To může být třeba Red Hat, Canonical nebo i Linux Foundation. Microsoft totiž neuvádí, že na zařízení musí být klíč pouze od něj.
Požadavek pro ARM architekturu se dá vysvětlovat ledasčím. Osobně si myslím, že Microsoft ví, že trh se stolními počítači a notebooky je jeho a alternativní operační systémy ho jen tak neohrozí. Apple si vyrábí hardware sám a ostatní by měly malý podíl, i kdyby to bylo 5 %. ARM je ale jiná liga a je vcelku možné, že se ARM procesorů prodá víc než těch x86/amd64. Microsoft trh s ARM zařízeními (tablety a chytré telefony) neovládl z žádné významné části a nevypadá to, že by se Windows Phone začalo nějak razantně rozmáhat. Není to trh, kde si Microsoft může dovolit takové věci, jako možnost instalace operačních systémů třetích stran. Surface vypadá jako krásný tablet a Microsoft by určitě nepotěšilo, kdyby si ho lidi kupovali kvůli komunitní podpoře Androida.
Všechny problémy, které nás se Secure Boot čekají, leží v jednom dokumentu Windows Hardware Certification Requirements. Jsou to požadavky na hardware, které musí být splněny, pokud má tento nést nálepku Windows 8. Bohužel jeho licence povoluje použití pouze pro vývoj hardwaru, takže není možné z něj citovat. Nicméně se do toho pustil Glyn Moody na svém blogu. Když jsem narazil na problém s licencí, chtěl jsem, aby se mi k věci vyjádřil někdo z Microsoftu. Bohužel komunikace s Microsoftem není tak jednoduchá a protože se termín vydání článku ani náznakem nevejde do termínu reakce, bude doplněna dodatečně.
Microsoft má v této oblasti všechna esa v rukávu a v případě ARM architektury prakticky zamezil výraznějšímu rozšíření Linuxu. Výrobci budou chtít prodávat zařízení s Windows 8 a budou muset za Microsoftem přijít. Ten jim v jedné ruce podá knihu s požadavky na certifikaci a v druhé ověřovací certifikát. Výrobce bude rád, že za tu licenci Microsoft nechtěl ani moc peněz a všichni budou spokojení. Linux má mnohem horší postavení. Nikdo nepřijde do Linux Foundation a neřekne „potřebujeme váš certifikát“. Komunita tohle musí vyřešit sama a donutit výrobce, aby i její certifikáty přijali. To s sebou nese problémy. Linux je schovaný za kdečím a je těžké určit, kdo se bude o certifikaci starat.
Secure boot a Linux
Jednu z nejdůležitější obtíží Secure Bootu pro Linux jsme si už řekli, ale jsou tu i jiné. Se Secure Boot bude mít problém především licence GPL, která ve své třetí verzi nutí vývojáře zveřejnit klíč. Za to vděčíme firmě Tivo. Ta používala certifikáty, kterými bránila spouštění modifikovaného softwaru na svém hardwaru. Licence GPLv3 toto chování výrobců hardwaru řeší a obecně ho nepovoluje. Pro Linux to pak dává ze hry zavaděč GRUB2, který je uvolněn pod licencí GPLv3. GRUB2 je bezpochyby výborný zavaděč se spoustou užitečných funkcí, ale GPLv3 nutí distributory zveřejnit ho spolu s podpisovými klíči, což nemusí být vždy reálné. Ani GPLv2 není z tohoto úhlu podhledu úplně čistá. Dají se najít názory, že podpisový klíč musí být uvolněn, protože je použit v kompilačním skriptu.
Secure Boot by se dalo s malou nadsázkou nazvat pouze doporučením, jak se má software chovat a ne bezpečnostní politikou. Vše je totiž závislé na UEFI, zavaděči, jádře a ovladačích. UEFI spustí pouze podepsaný zavaděč, na podepsaném zavaděči pak je, aby spustil pouze podepsané jádro a jádro má pracovat pouze s podepsanými ovladači. V praxi pak stačí jednoduchý podepsaný zavaděč, který spustí třeba GRUB2 nezávisle na jeho podpisu a vše jede tak, jak jsme zvyklí.
Vývojáři distribucí jsou nuceni situaci řešit a ne všem to půjde dobře. U Gentoo je například situace téměř neřešitelná, ale to neznamená, že jinde to je snadné. Secure Boot nahlodává myšlenku svobodného softwaru, který může kdokoli upravit či šířit. I když si stáhnu zdrojový kód jádra, na systému s plně funkčním Secure Boot si ho už nespustím.
Za poslední týdny jsme měli možnost sledovat, jak se některé firmy, organizace či distribuce se Secure Boot poprali. Své k tomu řeklo mnoho lidí a Fedora, Ubuntu a Linux Foundation představili i nějaké řešení. Zajímavý postoj zaujali vývojáři Fedory, kteří se rozhodli použít podpisového klíče Microsoftu.
Canonical se k problému postavil více čelem a pokouší se s výrobci dohodnout, aby byl přítomen i jeho certifikát. Canonical na tohle má sílu a jelikož podmínky Microsoftu o certifikátech jiných firem nemluví, mohla by to být cesta, jak se ze zajetí Secure Bootu dostat. O Secure Boot a Canonicalu si můžete něco přečíst v dokumentu Ubuntu BIOS/UEFI Requirements, kde je popsáno, co Canonical po výrobcích požaduje, aby na jejich hardwaru mohlo běžet Ubuntu.
- Výrobce do svého hardwaru vloží certifikát Canonicalu
- Umožní přidat certifikát uživatele
- Umožní Secure Boot kompletně vypnout a znovu zapnout
Snahu Canonicalu zkritizoval Matthew Garrett z firmy Red Hat. Podle něj není jisté, zda bude Canonical nabízet nějakou podepisovací službu jakou provozuje Microsoft za 99 USD nebo zda si nechá certifikáty pro sebe: „V podstatě jde o stejné požadavky, které má Microsoft, jen se místo jeho klíčů použijí klíče pro Ubuntu.“ Garrett také vyjádřil obavu, že systém Canonicalu by mohl být nakonec více uzavřený než ten Microsoftu.
Linux Foundation k Secure Boot vydalo krátký dokument, ve kterém popisuje, že i otevřené systémy mohou ze Secure Boot profitovat. Největší problém standardu je absence autority, která by klíče spravovala. Standard jako takový je navržen dobře, ale uvedení do praxe nemusí být bez komplikací. Podle Linux Foundation by měli výrobci dodat uživateli hardware v tzv. setup módu, kde bude moci uživatel doplnit klíče platforem, které hodlá používat. Dále je v dokumentu řešeno, že určení autority by použití Secure Bootu zjednodušilo, ale není to nezbytné k tomu, aby mohl na nových počítačích běžet svobodný operační systém.
Shrnutí
Vazby mezi výrobci hardwaru a vývojáři softwaru se teprve tvoří. Problémy se pravděpodobně nebudou týkat základních desek koupených samostatně a možná ani notebooků koupených bez operačního systému. U architektur x86/amd64 navíc půjde Secure Boot vždy vypnout. Celá technologie může působit spíše jako překážka, přes kterou se je potřeba dostat, než jako bezpečnostní mechanizmus pro ochranu operačního systému uživatele. Secure Boot určitě řeší bezpečnostní problémy například s úpravou jádra, která by mohla na uživatele nahlásit šifrovací klíče útočníkovi, ale kolik lidí to opravdu využije a pro kolik to bude překážkou?