Dieser Kurs ist ein "Muss" für jeden Entwickler, der
eigene UEFI Firmware Software erstellen will. Dieser Kurs bietet die Gelegenheit, das Thema UEFI in der Tiefe kennenzulernen.
Neben den Grundlagen von UEFI (Phasen, Spezifikation, Shell) werden die erforderlichen Kenntnisse für die Entwicklung von
UEFI Software vermittelt.
UEFI (Unified Extensible Firmware Interface) ist eine standardmäßige
Firmwareschnittstelle für PCs, durch die das BIOS (Basic Input/Output System) ersetzt werden soll. Die Schnittstelle besteht
aus Datentabellen , die plattformbezogene Informationen sowie Boot- und Runtime-Service-Aufrufe enthalten, die für das
Betriebssystem und seine Bootloader zur Verfügung stehen. Zusammen bieten diese eine Standardumgebung für das Booten eines
Betriebssystems und in der Pre-Boot-Anwendungen ausgeführt werden können. Dieser Standard wurde von über 140
Technologieunternehmen im Rahmen des UEFI-Konsortiums geschaffen, dem auch Microsoft angehört. Er soll die Interoperabilität
von Software verbessern und die Einschränkungen des BIOS überwinden. UEFI-Firmware bietet unter anderem die folgenden
Vorteile: Höhere Sicherheit durch Schützen des Prozesses vor dem Start vor Bootkit-Angriffen, schnelleres Starten und
Fortsetzen nach dem Ruhezustand, Unterstützung für Laufwerke mit mehr als 2 TB, Unterstützung für moderne
64-Bit-Firmwaregerätetreiber, die vom System verwen-det werden können, um beim Start mehr als 17,2 Milliarden GB Speicher zu
adressieren und die Möglichkeit zur Verwendung des BIOS mit Hardware. Die UEFI Shell ist eine interaktive
BIOS-Erweiterung und bietet, ähnlich einem Betriebssystem, eine Umgebung für die laufenden Programme. Sie umfasst dabei einen
Scripting-Interpreter zum ausführen von Skript-Dateien, kann von externen Speichergeräten (z.B. USB) gebootet werden und ist
optional als Boot-Gerät im BIOS vorhanden. Die UEFI Shell besitzt ähnlich wie bei MS DOS oder Linux eine Befehlszeile, mit
einem Befehlssatz für Datei-Manipulation, Driver-Management, Gerätezugriff, Information, Speicherzugriff , BIOS-Status und
Scripting Kontrolle. Mit dem EFI Development Kit (EDK-2) wurde eine Entwicklungsumgebung für die UEFI Programmierung (Treiber
und Applikationen) geschaffen, die vieles erleichtert, aber auch neue Herausforderungen birgt.
UEFI Secure Boot wurde entwickelt, um die Sicherheit in der Pre-Boot-Umgebung zu verbessern. Secure Boot ist eine Technologie,
bei der die System-Firmware �berpr�ft, ob der System Bootloader mit einem kryptographischen Schl�ssel in einer Datenbank autorisiert
und in der Firmware signiert ist. Mit einer Signaturpr�fung im Bootloader der n�chsten Stufe ist es m�glich, die Ausf�hrung von
unsignierten Code zu verhindern. Deshalb ist Secure Boot eine Form des verifizierten Bootens. Boot-Pfad Validierung ist ebenfalls
ein Teil von weiteren Technologien, wie Trusted-Boot.
Windows 8 Systeme werden mit einem Zertifikat von Microsoft in der UEFI Firmware ausgeliefert, durch das der Boot-Loader und andere
Boot-Komponenten gepr�ft werden. Falls eine Boot-Komponente durch Malware infiziert wurde, wird das System nicht gestartet, sondern
stattdessen in einen sicheren Zustand zur�ckversetzt. Mit anderen Worten, UEFI sch�tzt das pre-OS environment. Dar�ber hinaus
�berpr�ft Windows 8 anschlie�end alle weiteren Komponenten beim Booten, um sicherzustellen, dass diese vertrauensw�rdig sind.
Falls Windows 8 nicht vertrauensw�rdige Dateien findet, werden diese ebenfalls durch sichere Versionen ersetzt.
Durch „Secure Boot” kommt noch ein weiteres neues Feature mit Windows 8: Early-Launch Anti-Malware (ELAM). Dies bietet die M�glichkeit,
einen Anti-Malware-Treiber als ersten vertrauensw�rdigen, kritischen Boot-Treiber zu registrieren. Dies ist der erste nicht-Microsoft Code,
der auf dem Computer ausgef�hrt wird. Der Anti-Malware-Treiber kann dann wiederum andere Treiber �berpr�fen, bevor sie initialisiert werden.
Durch Secure Boot wird verhindert, dass Malware vor dem Betriebssystem gestartet wird und durch den ELAM Treiber wird sichergestellt,
dass vor allen anderen Komponenten zuerst eine Anti-Malware Software l�uft, die danach alle weiteren Boot-Komponenten pr�ft.
Measured Boot ist ein anderes Boot Feature in Windows 8, das ebenfalls mit Anti-Malware zu tun hat. Dadurch wird dem ELAM Treiber
eine Log-Datei �bergeben, welche alle Komponenten, die vor und nach dem ELAM Treiber geladen wurden, enth�lt. Diese Datei wird im
TPM (Trusted Platform Module) Chip gespeichert und kann vom ELAM Treiber oder einem Administrator verwendet werden, um festzustellen,
ob sich irgendwelche Malware auf dem Computer befindet.
Das Ziel dieser Schulung ist es, die Hintergründe von UEFI aufzudecken und
eigene Treiber Projekte (DXE) zu realisieren. Mit praktischen Beispielen werden die u.a. Themen UEFI Shell, Shell script,
SMRAM, UEFI Services und Protocols, Open Virtual Machine Firmware (OVMF) Entwicklung mit QEMU und TIANOCORE, UEFI Treiber
Entwicklung (DXE Driver), SMM, Secure Boot behandelt. Die Schulung richtet sich somit an Hardware als auch Software
Entwickler, die mit dem Thema UEFI vertraut werden und UEFI Firmware Projekte entwickeln oder ergänzen müssen.
|