Unified Extensible Firmware Interface

Z Wikipedie, otevřené encyklopedie
Role Extensible Firmware Interface ve struktuře počítače

Unified Extensible Firmware Interface (UEFI, v překladu jednotné rozšiřitelné firmwarové rozhraní) definuje softwarové rozhraní (API) mezi operačním systémem a firmwarem obsluhujícím hardware v osobním počítači. UEFI je nástupcem původního rozhraní BIOS, které bylo používáno od prvních IBM PC kompatibilních počítačů.[1] Specifikace UEFI je spravována aliancí Unified EFI Forum, avšak původně byla vyvinuta společností Intel pod kratším názvem EFI.

Charakteristika[editovat | editovat zdroj]

UEFI je nový standard, který je oficiálně zaváděn z několika důvodů. Prvním a nejdůležitějším důvodem je podpora Secure boot (viz dále). Druhým důvodem je využití schopností nových procesorů a ukončení zpětné kompatibility s 16bitovými procesory 8086, které byly v prvních IBM PC kompatibilních počítačích. Třetím důvodem pak je podpora GPT, která umožňuje zavést operační systém z diskových oddílů (resp. pevných disků) větších než 2 TiB (což je limit původního MBR).

Druhý a třetí výše uvedený důvod nemá reálný základ, protože již delší dobu existují varianty BIOSu, které tyto důvody řeší bez nutnosti zavádět zcela nekompatibilní UEFI standard (existuje 32bitový BIOS a existují BIOSy, které umí systém zavést z disků obsahujících GPT tabulku). Faktickým důvodem tak zřejmě je snaha prosadit Secure boot a zavést do startu počítače podporu binárních ovladačů, kdy výrobce hardware nemusí nikomu sdělovat podrobnosti ovládání a nastavení hardware, což umožňuje lépe vynucovat DRM (Digital rights management) kvůli ochraně autorsky chráněného obsahu proti kopírování (písničky, filmy). Vedlejším efektem je jisté omezení alternativních operačních systémů (Linux, FreeBSD apod.).

Secure boot[editovat | editovat zdroj]

Na tuto kapitolu je přesměrováno heslo Secure boot.

UEFI Secure boot je ověřovací mechanismus, který umožňuje zajistit, že software spouštěný při startu počítače (bootování) je důvěryhodný. Je navržen tak, aby mohl zabránit aktivaci škodlivého kódu (malware) ještě před zavedením operačního systému. Secure boot pracuje na pricipu kontrolních součtů (otisk) a elektronického podpisu, který dokládá důvěryhodnost kódu, který zavaděč hodlá spustit. Pokud není důvěryhodnost kódu ověřena, je zabráněno jeho spuštění (aktivaci).[2] Tímto způsobem je zabezpečen celý řetězec spouštění počítače včetně samotného operačního systému, který navíc znemožní přístup k funkcím, které by mohly zabezpečení obejít.[3]

Většina stolních počítačů (IBM PC kompatibilních na platformě x86) obsahuje z výroby veřejný klíč firmy Microsoft, což znamená, že firma Microsoft funguje jako certifikační autorita pro Secure boot a tyto počítače automaticky důvěřují kódu, který obsahuje elektronický podpis Microsoftu. Veřejný klíč pro ověřování je uložen v BIOS/UEFI nebo v TPM čipu. Většina systémů je prodávána s aktivovanou funkcí Secure boot, takže může být zaveden jen Microsoftem podepsaný kód, ale obsahují možnost deaktivovat Secure boot nebo přidat vlastní klíče Platform key (PK).[4] Některé dovolují odstranit veřejný klíč vložený výrobcem a systém pak bude zavádět pouze kód podepsaný dodatečně doplněným klíčem a nikoliv klíčem Microsoftu.[2]

Firma Microsoft podepíše zavaděč (po splnění určitých podmínek a zaplacení poplatku) firmám i jednotlivcům (zavaděč se pak již nemůže měnit). Původní podmínky jsou však postupně zpřísňovány, takže v roce 2022 je téměř nemožné, aby jednotlivec tento podpis získal, což diskvalifikuje nezávislé vývojáře otevřeného software.

Většina UEFI kódu (tj. programů umístěných ve speciálním UEFI oddílu pevného disku) jsou podepsané zavaděče, ale mohou zde být i specializované programy (nástroje pro aktualizaci firmware počítače, nástroje pro kontrolu a výpis hardware počítače, diagnostiky závad a podobně).[2]

V řadě Windows NT byla zavedena podpora secure bootu ve Windows 8 z roku 2012. Fedora podporuje Secure boot od verze 18 z roku 2013,[3] Debian od verze 10 (Buster z roku 2019).[2]

Shim[editovat | editovat zdroj]

Shim je malý open source zavaděč, který je dobře zdokumentovaný a kód je auditovaný, a je tak bez problémů podepsán Microsoftem. Slouží jako prvostupňový zavaděč alternativních systémů, takže individuální vývojáři nemusí žádat o elektronický podpis Microsoftu. Shim obsahuje veřejný klíč příslušné linuxové distribuce a umožňuje tak zachovat důvěryhodný řetězec při bootování a aktivování operačního systému (GRUB, jádro a jeho moduly/ovladače atd.).[2]

Omezení secure bootu[editovat | editovat zdroj]

Secure boot nedokáže zamezit softwarovým chybám v operačním systému, a tak nezajišťuje 100% bezpečnost.[5] Obsahuje zadní vrátka.[6]

Historie[editovat | editovat zdroj]

Původní záměr vytvořit EFI vznikl v počátcích vývoje prvních systémů Intel-HP Itanium v polovině 90. let 20. století. Pro platformu větších serverů, na které se Itanium zaměřovalo, byla považována omezení PC BIOSu (16bitový režim procesoru, 1 MB adresovatelného místa aj.) za nepřijatelná. Pokus o řešení těchto problémů se nejprve nazýval Intel Boot Initiative a později byl přejmenován na Extensible Firmware Interface.[7]

EFI specifikace verze 1.02 byla vydána Intelem 12. prosince 2000. (Původní vydání 1.01 obsahovalo nesprávné právní údaje a informace o ochranné známce a bylo rychle staženo.[8])

EFI specifikace verze 1.10 byla vydána Intelem 1. prosince 2002. Oproti 1.02 zahrnovala ovladačový model EFI a mnoho menších vylepšení.

V roce 2005 Intel poskytl specifikaci UEFI Foru, které je nyní zodpovědné za vývoj[9] a propagaci EFI. To bylo přejmenováno na Unified EFI (UEFI), ale ve většině dokumentace jsou oba termíny zaměnitelné.

UEFI Forum vydalo 7. ledna 2007 UEFI specifikaci verze 2.1. Ta přidala a vylepšila šifrování, síťovou autentizaci a architekturu uživatelského rozhraní.

Implementace[editovat | editovat zdroj]

Intel Platform Innovation Framework pro EFI[editovat | editovat zdroj]

Intel Platform Innovation Framework pro EFI (známé také jako „Framework“) je soubor specifikací vyvinutých Intelem v souvislosti s EFI. Zatímco EFI specifikuje rozhraní operačního systému a firmwaru, Framework specifikuje strukturu používanou k vytvoření firmwaru pod rozhraním EFI.

Platformy používající UEFI nebo Framework[editovat | editovat zdroj]

První pracovní stanice a servery Itanium od Intelu, uvedené v roce 2000, podporovaly EFI 1.02.

První systémy Itanium 2 od Hewlett-Packard, uvedené v roce 2002, podporovaly EFI 1.10. Bylo na nich možné provozovat Windows, Linux, FreeBSD a HP-UX, v červnu 2003 byla doplněna podpora v OpenVMS.

V listopadu 2003 uvedla firma Gateway svůj počítač Gateway 610 Media Center. Šlo o první počítačový systém platformy x86 s Windows, který používal firmware založené na Frameworku – InsydeH2O od Insyde Software. Bootování Windows stále záviselo na BIOSu, implementovaném jako compatibility support module (CSM, modul pro podporu kompatibility).

V lednu 2006 začala společnost Apple Inc. prodávat své první počítače Macintosh s procesory Intel. Ty používají EFI a Framework namísto Open Firmware, který byl používán na předchozích Macích s procesory PowerPC.[10] 5. dubna 2006 vydal Apple aplikaci Boot Camp, která umožňuje instalaci Windows XP nebo Vista bez nutnosti přeinstalovat Mac OS X. Také byla vydána aktualizace firmwaru doplňující k EFI podporu BIOSu. Pozdější modely Maců ji již obsahují. Všechny nyní prodávané Macintoshe (mimo Xserve) tedy umožňují provoz operačních systémů vyžadujících BIOS jako například Windows XP nebo Vista.

Převážná většina základních desek Intelu se prodává s firmwarem založeným na Frameworku. Během roku 2005 bylo prodáno více než milion systémů od Intelu obsahujících Framework.[11] V roce 2006 se začaly prodávat nové mobilní, desktopové a serverové produkty používající Framework, například desky obsahující čipovou sadu řady Intel 945. Jejich firmware ovšem neobsahuje podporu EFI a je omezen použitím BIOSu.[12]

Od roku 2005 se EFI implementuje také na jiné architektury než IBM PC jako například vestavěné systémy založené na jádrech XScale.[13]

V roce 2007 uvedla společnost Hewlett-Packard multifunkční tiskárny série 8000 s firmwarem vyhovujícím specifikaci EFI.[14]

V roce 2008 přešlo na technologii UEFI mnoho systémů platformy x64. Ačkoli některé z nich stále podporují pouze bootování systémů vyžadujících BIOS pomocí CSM, jiné začaly podporovat bootování operačních systémů založených na UEFI. Jsou to například: server IBM x3450, základní desky MSI s ClickBIOSem, všechny notebooky a Microsoft Tablet PC řady HP EliteBook nebo novější notebooky HP Compaq (6730b, 6735b aj.) Plánuje se, že na přelomu let 2009 a 2010 bude více než 50 % počítačů platformy x86-64 založeno na UEFI.

Operační systémy[editovat | editovat zdroj]

Operační systém, který podporuje bootování z (U)EFI, je podle (U)EFI specifikace nazýván (U)EFI-aware OS (tj. OS uvědomující si UEFI). Termín bootování z (U)EFI označuje přímé bootování systému s použitím (U)EFI OS loaderu uloženého na jakémkoli nosiči dat.

Grafické funkce[editovat | editovat zdroj]

EFI podporuje grafická menu a funkce. Tyto možnosti využívá například Aptio nebo Great Wall UEFI.[19]

Pro grafický výstup jsou v EFI specifikovány dva protokoly. První z nich je UGA, Universal Graphic Adapters. Druhý je GOP, Graphic Output Protocol. Tyto protokoly jsou si podobné. UGA je podporován pouze v EFI verze 1.1 a starší. EFI nedefinuje, jak má systém vypadat. To zcela závisí na implementaci jednotlivých výrobců. Zatím má většina strojů používajících EFI uživatelské rozhraní podobné klasickému BIOSu, výjimku tvoří počítače Macintosh.

Kritika[editovat | editovat zdroj]

EFI je kritizováno kvůli tomu, že zavádí do systému větší komplikovanost, aniž by přineslo významné výhody[20] a staví se zcela proti open-source náhradám BIOSu jako OpenBIOS a Coreboot.[21]

První malware infikující UEFI byl nalezen a popsán na konci roku 2018.[22]

Odkazy[editovat | editovat zdroj]

Související články[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Extensible Firmware Interface na anglické Wikipedii.

  1. Michael Kinney. “Solving BIOS Boot Issues with EFI”. Intel DeveloperUPDATEMagazine. September 2000, p. 1.
  2. a b c d e WISE, Paul. SecureBoot - Debian Wiki. wiki.debian.org [online]. 2015-10-02 [cit. 2022-10-15]. Dostupné online. 
  3. a b FENZI, Kevin. Secureboot. fedoraproject.org [online]. Fedora Project, 2012-06-04 [cit. 2022-10-15]. Dostupné online. 
  4. Windows Secure Boot Key Creation and Management Guidance. learn.microsoft.com [online]. Microsoft, 2022-05-19 [cit. 2022-10-20]. Dostupné online. (anglicky) 
  5. https://www.novinky.cz/internet-a-pc/bezpecnost/411712-chyba-ohrozuje-stovky-milionu-uzivatelu-windows-oprava-je-v-nedohlednu.html - Chyba ohrožuje stovky miliónů uživatelů Windows. Oprava je v nedohlednu
  6. http://appleinsider.com/articles/16/08/10/oops-microsoft-leaks-its-golden-key-unlocking-windows-secure-boot-and-exposing-the-danger-of-backdoors - Oops: Microsoft leaks its Golden Key, unlocking Windows Secure Boot and exposing the danger of backdoors
  7. Dong Wei, Beyond BIOS (foreword), Intel Press, 2006, ISBN 978-0-9743649-0-2
  8. See the Revision History section of specification version 1.10
  9. Unified EFI Forum. “UEFI - About UEFI"
  10. Apple Computer. “Universal Binary Programming Guidelines, Second Edition: Extensible Firmware Interface (EFI)"
  11. Intel, Framework Overview
  12. An Intel pdf with information about EFI on their boards [1]
  13. Overview of the Intel Platform Innovation Framework
  14. HP Printer’s site [2][nedostupný zdroj]
  15. EFI version of Grub (Debian Linux) - Retrieved on 1 May 2008.
  16. HP OpenVMS Release History Archivováno 5. 1. 2009 na Wayback Machine. - Retrieved on 16 September 2008
  17. rEFIt - Windows Vista and EFI. refit.sourceforge.net [online]. [cit. 2009-02-28]. Dostupné v archivu pořízeném z originálu dne 2008-09-05. 
  18. Microsoft Windows Server TechCenter. “Extensible Firmware Interface Archivováno 30. 8. 2006 na Wayback Machine."
  19. Intel shows PC booting Windows with UEFI firmware. apcmag.com [online]. [cit. 28-02-2009]. Dostupné v archivu pořízeném dne 20-12-2007. 
  20. Linux: Linus On The Extensible Firmware Interface. kerneltrap.org [online]. [cit. 29-05-2012]. Dostupné v archivu pořízeném dne 29-05-2012. 
  21. Interview: Ronald G Minnich. archive.fosdem.org [online]. [cit. 2009-02-28]. Dostupné v archivu pořízeném dne 2011-01-29. 
  22. Objeven první malware infikující BIOS počítače. Perzistentní rootkit Lojax je z Ruska. www.cnews.cz [online]. 2019-01-03 [cit. 2019-01-05]. Dostupné online. 

Externí odkazy[editovat | editovat zdroj]