Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Unified Extensible Firmware Interface

Das Unified Extensible Firmware Interface (kurz UEFI, englisch für einheitliche erweiterbare Firmware-Schnittstelle) ist eine von Intel 1998 veröffentlichte …

Inhalt5 Abschnitte
  1. 1. Aufgabe und Grundprinzip
  2. 2. Technische Möglichkeiten
  3. 3. Entwicklung und Verbreitung
  4. 4. Secure Boot und Implementierungen
  5. 5. Betriebssysteme, Alternativen und Risiken

Aufgabe und Grundprinzip

Unified Extensible Firmware Interface (UEFI; englisch „einheitliche erweiterbare Firmware-Schnittstelle“) ist eine 1998 von Intel veröffentlichte Schnittstellen-Definition für Computer-Firmware; Intel stellte zugleich eine Referenzimplementierung vor. Die ursprünglich für die 64-Bit-Itanium-Architektur entwickelte Firmware hieß zunächst Extensible Firmware Interface (EFI). Seit Version 2.0 lautet die korrekte Bezeichnung UEFI.

UEFI hat sich als Nachfolger des PC-BIOS etabliert. Es ist die zentrale Schnittstelle zwischen Plattform-Firmware und Betriebssystem: Es stellt dem Betriebssystemlader und danach dem Betriebssystem Schnittstellen, Datentabellen mit Plattforminformationen sowie Boot- und Laufzeitdienste bereit. Weil es auf IBM-PC-kompatiblen Rechnern das BIOS abgelöst hat, werden UEFI-Firmware und ihr Setup umgangssprachlich weiterhin oft „UEFI-BIOS“ beziehungsweise „BIOS-Setup“ genannt.

Wichtige Merkmale sind die GUID-Partitionstabelle (GPT), framebuffer-basierte Grafik, Netzwerkfunktionen und Secure Boot ab UEFI 2.3.1. GPT bleibt zum vom BIOS verwendeten Master Boot Record (MBR) teilkompatibel. Secure Boot beschränkt das Starten auf zuvor signierte Bootloader, um das Starten von Schadsoftware oder anderen unerwünschten Programmen zu erschweren.

Technische Möglichkeiten

UEFI ist vom CPU-Typ unabhängig und kann unter anderem Arm- und x64-Systeme starten. Es unterstützt große Festplatten über 2 TB. Die dafür eingeführte GPT erlaubt das Booten von Festplatten über 2 TB sowie das Anlegen und Verwalten von Partitionen über 2 TB. GPT kann auch außerhalb von UEFI verwendet werden: Mit einem geeigneten Bootloader wie GRUB kann ein PC-BIOS von einer GPT-Festplatte starten. Windows bricht diesen Start jedoch mit einem Fehler ab, während Linux auch im BIOS- oder CSM-Modus auf GPT-Partitionen installiert und verwendet werden kann.

UEFI-Daten und -Programme liegen als gewöhnliche Dateien auf einer eigenen VFAT-Partition. Anders als beim BIOS müssen Betriebssystemlader oder Treiber nicht in festgelegten, unveränderlichen Speicherbereichen wie dem MBR liegen. Einstellungen wie die Boot-Reihenfolge können dauerhaft im NVRAM, einem nichtflüchtigen Speicher, abgelegt werden.

Die Architektur ist modular und erweiterbar. Eine UEFI-Shell ähnlich einer Unix-Shell kann während des Bootvorgangs gestartet werden und EFI-Anwendungen mit der Endung *.efi aufrufen. Treiber können als Module in die Firmware integriert werden; dadurch sind systemunabhängige Treiber möglich und sie müssen nicht erst vom Betriebssystem geladen werden. UEFI kann außerdem hochauflösende Grafik bereits beim Start bereitstellen, ein eingebettetes Netzwerkmodul zur Fernwartung enthalten und direkt über ein universelles Netzwerkbootsystem starten. Ein Sandbox-Modus kann Netzwerk- und Speicherverwaltung auf der Firmware statt auf dem Betriebssystem ausführen. UEFI kann installierte Betriebssysteme auswählen und starten, sodass vorgeschaltete Bootloader überflüssig sein können.

Für die Übergangszeit enthielt das Compatibility Support Module (CSM) eine BIOS-Emulation für Betriebssysteme, die BIOS voraussetzen. Hersteller ließen diesen BIOS-Kompatibilitätsmodus seit etwa 2020 weg.

Entwicklung und Verbreitung

Intel entwickelte EFI im 1998 gegründeten Intel-Boot-Initiative-Programm als BIOS-Ersatz für Itanium (IA-64). Das ursprüngliche PC-BIOS stammte aus dem Jahr 1981, vom ersten IBM PC. Trotz Erweiterungen genügte es moderner Hardware und Betriebssystemen nicht mehr, insbesondere weil es hinsichtlich Treibern weder 32- noch 64-Bit-tauglich ist. Anfang der 2000er Jahre galten Übergangslösungen den Hardwareherstellern nicht mehr als tragbar.

2005 wurde zur Weiterentwicklung und Werbung das Unified EFI Forum gegründet. Neben Intel wirken AMD, Microsoft, Hewlett-Packard sowie weitere PC- und BIOS-Hersteller mit. Im Januar 2006 wurden EFI-Spezifikation 2.0 und ihr Quelltext als UEFI freigegeben. Auf x86 erschien EFI etwa zugleich mit x64 beziehungsweise x86-64. Zunächst gab es dort jedoch nur 32-Bit-Firmware, etwa EFI 1.10 auf Intel-Macs ab 2006; ab UEFI 2.0 existiert offiziell eine 64-Bit-Implementierung.

Die Einführung im PC-Bereich scheiterte anfangs am Widerstand von Computer- und BIOS-Herstellern. Apple nutzte auf Intel-Macs ab 2006 ausschließlich EFI. MSI veröffentlichte für bestimmte Mainboards 2008 lediglich eine öffentliche EFI-Beta statt einer werksseitigen Installation. 2009 bekannten sich unter anderem Insyde, Intel und Phoenix zu UEFI; als Gründe werden x86-64-Kompatibilität und kürzere Ladezeiten genannt. Ende 2010 lieferte Asus erste Sockel-1155-Mainboards mit EFI aus. Seit etwa 2010 ersetzte UEFI das BIOS schrittweise; dieses wurde als „Legacy“ bezeichnet.

Itanium-Systeme verwendeten von Anfang an ausschließlich EFI. Windows für IA-64-Server mit EFI gibt es seit Windows 2000. Windows Vista (x64) unterstützt ab SP1 UEFI 2.0, ebenso Windows Server 2008, aber nicht den älteren EFI-Standard 1.3 auf Intel-Macs bis etwa 2012. Apple-EFI wurde ab 2013 mehr oder weniger mit UEFI 2.0 kompatibel; bei der Grafikschnittstelle bestand diese Kompatibilität bereits etwa seit Ende 2008.

Secure Boot und Implementierungen

Mit Windows 8 wurde 2012 UEFI 2.3.1 mit Secure Boot verstärkt eingeführt. Die Funktion soll eine unterbrechungsfreie Vertrauenskette von der Hardware-Firmware bis zur Benutzeranwendung ermöglichen. Nicht passend signierte Schadsoftware kann damit grundsätzlich nicht in den Boot-Prozess eingreifen. Secure Boot verhindert aber nicht, dass ein Glied dieser Kette nicht vertrauenswürdige Software nachlädt.

Ein Beispiel ist Shim: Dieser von Microsoft signierte Bootloader kann einen nicht zertifizierten GRUB und über ihn beliebige andere Binaries laden. Shim wurde nötig, weil viele Hauptplatinenhersteller nur Microsoft-Signaturen mitliefern und das Einrichten eigener Signaturen, etwa für einen Linux-Kernel, nicht oder nicht allein mit UEFI-Bordmitteln ermöglichen. Praktisch alle aktuellen Linux-Distributionen verwenden deshalb Shim, um bei aktiviertem Secure Boot zu starten.

2014 wurde in der Intel-Referenzimplementierung eine fehlerhafte Update-Funktion mit Integer-Overflows bekannt, die dauerhaftes Einschleusen und Ausführen von Malware ermöglichen kann. Viele UEFI-Implementierungen beruhen auf diesem Referenzcode. 2016 wurde zudem eine Lücke im Microsoft-Bootloader bekannt, die den Schutz umgehen konnte. Das 2017 gegründete UEFI Security Response Team (USRT) vermittelt zwischen Sicherheitsexperten, etwa White-Hat-Hackern, und Herstellern UEFI-basierter Hardware, damit Sicherheitslücken schneller gemeldet und gepatcht werden.

TianoCore EDK2 ist eine auf einer früheren Intel-Entwicklung basierende Referenzimplementierung unter BSD-Lizenz. Der Universal Boot Loader Das U-Boot bietet seit 2017 die UEFI-API. Auf Armv8-A verwenden Linux-Distributionen diese U-Boot-UEFI-Implementierung zusammen mit GNU GRUB; auch OpenBSD kann über die UEFI-API von U-Boot starten.

Betriebssysteme, Alternativen und Risiken

Meist kann ein 64-Bit-Kernel nur 64-Bit-Treiber einschließlich (U)EFI-Treibern und ein 32-Bit-Kernel nur 32-Bit-Treiber verwenden. Daher startet eine 32-Bit-Firmware oft nur ein 32-Bit- und eine 64-Bit-Firmware nur ein 64-Bit-Betriebssystem. Dies ist nicht grundsätzlich zwingend: Der Fedora-Bootloader kann ein 64-Bit-Linux auf einem System mit nur 32-Bit-UEFI installieren und starten.

Auf Itanium unterstützen unter anderem die IA-64-Versionen von FreeBSD, HP-UX, Linux, NetBSD, OpenVMS und Windows von Windows 2000 bis Server 2008 R2 EFI zumindest zum Laden des Betriebssystems. Auf x86 unterstützen Windows-Versionen für Endanwender (U)EFI vor allem als 64-Bit-Varianten ab Windows Vista mit SP1 beziehungsweise Windows Server 2008; einige 32-Bit-Versionen unterstützen UEFI-32-Bit. Für Windows 8 wird UEFI 2.x empfohlen; bei Systemplatten über 2 Terabyte und Arm-Prozessoren ist es zwingend. Ältere x86-Windows-Versionen vor Vista benötigen auf UEFI-Mainboards ein CSM. Linux unterstützt EFI auf x86 im stabilen Kernelzweig ab Version 2.6.25 (2008); GRUB 2 unterstützt EFI-PCs, Fedora ab Version 17 und Debian ab Version 7.0 Wheezy.

Intel-basierte Macs ab Januar 2006 verwenden EFI. Das anfängliche Fehlen von CSM verhinderte Windows XP; Apple rüstete den BIOS Layer später nach. Boot Camp ermöglichte bis Mitte Oktober 2007 kostenlos und seit Mac OS X Leopard 10.5 (2007) standardmäßig Dualboot von Mac OS X und Windows XP. Für andere PCs werden EFi-X, Chameleon, Clover und Ozmosis als Lösungen genannt.

Alternativen sind Open Firmware (IEEE-1275), 1994 für PowerPC- und SPARC-Unix-Workstations und -Server spezifiziert, sowie das GPL-lizenzierte coreboot. Coreboot initialisiert Hardware nur so weit, dass es ein Payload startet, etwa Linux-Kernel, GRUB, SeaBIOS, Open Firmware oder UEFI mittels TianoCore. Weitere, meist Nischen-Alternativen sind LinuxBoot und m1n1.

Kritik betrifft vor allem zusätzliche Komplexität, fehlende nennenswerte Vorteile und die erschwerte vollständige Ablösung durch Open-Source-Alternativen. Der integrierte, unterhalb des Betriebssystems laufende Netzwerkstack kann laut Kritik Manipulation, Infektion, Überwachung oder DRM-Kontrolle ermöglichen, ohne dass das Betriebssystem dies kontrollieren kann. Fehlerhafte UEFI-Implementierungen blockierten beim schreibenden Linux-Zugriff auf die Firmware Samsung-Notebooks im Juni 2013, Lenovo-Geräte Anfang 2014 und Asus-Geräte Ende 2015 irreparabel. DXERuntime kann während des Betriebssystembetriebs aktiv bleiben und schafft ein zusätzliches Angriffsrisiko. Auch Fehler in EFI-Software oder im System Management Mode (SMM) können BIOS-Rootkits ermöglichen. Sicherheitsupdates hängen davon ab, dass Hersteller sie bereitstellen, was nicht immer zeitnah geschieht.

Weiterlesen

BIOS Als BIOS (IPA: [ˈbaɪɔs],) – von englisch basic input/output system – wird im Allgemeinen die Firmware eines Personal Computer bezeichnet („PC-Firmware“), … 64-Bit-Architektur Unter 64-Bit-Architektur versteht man in der EDV eine Prozessorarchitektur, deren Verarbeitungsbreite 64 Bit beträgt. Durch 64 Bit große Adressregister sind … Betriebssystem Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start … GUID Partition Table GUID Partition Table. Standard für das Format von Partitionstabellen auf Festplatten oder anderen Datenträgern. Artikel · Diskussion. Master Boot Record Der Master Boot Record (kurz MBR) enthält ein Startprogramm für BIOS-basierte Computer (IBM-PC-kompatible Computer) und eine Partitionstabelle. X64 In der Informatik ist x64 eine 64-Bit-Befehlssatzarchitektur, die auf der x86-Architektur basiert und bei PCs seit 2003 Verbreitung findet. Preboot Execution Environment Das Preboot Execution Environment (PXE, oft silbisch ausgesprochen Pixie) ist ein ursprünglich vom Unternehmen Intel entwickeltes Client-Server-Modell, … Netzwerkkarte Ihre primäre Aufgabe ist die Herstellung einer physikalischen Verbindung zum Netzwerk über ein geeignetes Zugriffsverfahren (z. B. CSMA/CD) und die … Quelltext Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer … Hardware Unterteilung · Ausgabegeräte (Drucker, Bildschirm, Beamer, Lautsprecher …) · Eingabegeräte (Tastatur, Maus, Joystick …) · Einlesegeräte (Mikrofone, … Hauptplatine Die Hauptplatine (englisch Mainboard; auch Motherboard oder system board, im Apple-Umfeld Logicboard) ist die zentrale Platine eines Computers. Das U-Boot Das U-Boot (The Universal Boot Loader) ist eine Bootstrap-Software, die auf unterschiedlichen Prozessoren, insbesondere auf Mikrocontrollern, lauffähig ist …