UEFI Secure Boot

The strength of Linux security has long been one of the driving factors in its adoption. Maintaining leadership security capabilities is an ongoing work area that Red Hat is involved in and aimed at increasingly providing defensive capabilities in many dimensions. One security threat that has been getting a lot of interest lately is the ability to ensure the integrity of the early boot sequence - the handoff of control from the lowest level system firmware (traditionally provided by the hardware vendor) through to the operating system kernel. This is important because there have increasingly been real-world exploits where fraudulently modified early boot code has introduced vulnerabilities into the operating system.

To confront this challenge, the upcoming generation of system firmware, referred to as Unified Extensible Firmware Interface (UEFI) secure boot, has capabilities in the system startup sequence designed to only pass control to operating system software that can be confirmed to be not tampered with. The mechanism used to confirm the integrity of operating system software is not novel, rather it uses traditional key signing and variations of checksumming. While these mechanisms have traditionally been used higher up in the software stack and later in the startup sequence - what is new is the fact that these validation checks are expected to now be available at the earliest points in the system startup sequence. Performing the checks early is crucial as it provides a safe, verified starting point.

A major shortcoming of the initial UEFI secure boot implementation was the lack of easy to use accommodations for operating systems other than Microsoft Windows, including the many variants of Linux. Red Hat has worked for many months, in conjunction with industry consortium The Linux Foundation, hardware partners, and Microsoft to collaboratively develop a UEFI secure boot mechanism that allows user/customer choice and ease of use. Red Hat’s objective was to provide user freedom - to accommodate not just Red Hat Enterprise Linux and Fedora, but also to enable other Linux distributions, including roll-your-own. This was not an easy process, there were many tradeoffs and challenges. This is typically the case when it comes to security - balancing effectiveness of the defenses vs ease of use.

To summarize the implementation in simplified terms: the UEFI secure boot mechanism requires pairing of trusted keys with low-level operating system software (bootloaders) signed with the respective key. The big challenge is how to both initially ship and later update the set of trusted keys stored in the system firmware. Requiring all users to manually perform this task would not meet the ease of use objectives. After all, with any security feature if it's too hard to enable it, few will bother to use it and leave themselves exposed.

The resulting mechanism planned for getting the keys automatically distributed is to utilize Microsoft key signing and registry services. This obviates the need for every customer to have to round up a collection of keys for multiple operating systems and device drivers. Microsoft will provide keys for Windows and Red Hat will provide keys for Red Hat Enterprise Linux and Fedora. Similarly other distributions can participate at a nominal cost of $99 USD - allowing them to register their own keys for distribution to system firmware vendors.

A healthy dynamic of the Linux open source development model is the ability to roll-your-own. For example, users take Fedora and rebuild custom variants to meet personal interest or experiment in new innovations. Such creative individuals can also participate by simply enrolling in the $99 one time fee to license UEFI. For users performing local customization, they will have the ability to self-register their own trusted keys on their own systems at no cost.

In the interest of freedom of choice, some users may not want to utilize this secure boot capability. In the UEFI system menu, they are able to disable the feature and things should operate like they do currently.

Some conspiracy theorists bristle at the thought of Red Hat and other Linux distributions using a Microsoft initiated key registration scheme. Suffice it to say that Red Hat would not have endorsed this model if we were not comfortable that it is a good-faith initiative.

In keeping with Red Hat’s development model of upstream development first, followed by integration into Fedora, our first UEFI secure boot implementation is expected to appear in the upcoming Fedora 18 release. Details of this technology announcement can be found in a technical blog by Red Hat’s Matthew Garrett. Based on Fedora 18 experiences and subsequent adaptations needed in the road to enterprise readiness the gameplan for Red Hat Enterprise Linux will be solidified.