TPM, UEFI, Trusted Boot, Secure Boot
How Does a PC Boot? First: History http://en.wikipedia.org/wiki/Booting Code entered on Hand Switches Non-Volatile Memory; infrequent cold boot Development of ROM-based IPL PC developed multi-stage boot process
Power Up Sequence POST – Power On Self Test First code that runs http://en.wikipedia.org/wiki/Power-on_self-test First code that runs Part of the BIOS Checks hardware to prevent boot failure Runs BIOS/POST code in other devices BIOS must know how to operate devices Each BIOS crafted for each motherboard
Initial Program Load - IPL Original PC booted each device in fixed order Floppy, CD, HDD, Net Newer BIOS now can change boot order Loads boot code from device Secondary boot loader Stored in particular track of FDD/HDD Independent of software architecture
Boot Loader Knows about device architecture HDD – Partition tables, block size, File Structure: FAT16, FAT32, NTFS etc Finds the OS boot program MS Boot loader From a particular named file Linux loader
OS Loader What you see when the Operating System Starts Launches and configures the OS for the hardware Installs relevant device drivers Checks license and file system Gets network operating etc
Security BIOS is in Flash – can be changed User code can write to flash memory Attacker can control machine from 1st power HDD Boot sector can be changed (boot sector virus) OS Loader can be changed
TPM and BIOS BIOS is in control from POST BIOS asks TPM for verification BIOS can still be attacked OS/CPU must protect BIOS BIOS chip could still be changed BIOS asks TPM to verify Boot Loader BIOS could still boot something if verify failed Hardware still usable if BIOS permits
Secure Boot BIOS will only boot authenticated boot loader Boot loader only boots authentic OS BitLocker must be enabled to secure disk BIOS cannot then override TPM signing BIOS could still boot another device unless locked BIOS could be replaced to use another disc Original disc still cryptographically secured
TPM Weakness Should be tamperproof Used in Games Console Gamers motivated to break-in Hardware attack details publish Split chip open and collect key from Bus Use brute force decryption for game keys Manufacture problem not design problem?
UEFI Duplication between BIOS and OS Both need device drivers BIOS – TPM secure boot is optional UEFI addresses this UEFI is part of BIOS Performs Boot Loader function Checks OS signature without TPM Will refuse to boot Knows file structure Drivers come from OS disk
Features Larger disks / Newer Hardware Eliminates boot virus attacks Secures OS Gives manufactures' control of hardware use Can still work with BitLocker/TPM Still vulnerable Contains buffer overflow error (Samsung) BIOS reflashable/rechipable
Unified Extensible Firmware Interface
Fully Trustworthy? Anti-Evil Maid method Store signatures of BIOS etc in TPM User checks TPM signature using: Password Physical device (USB stick with crypto key) All signatures checked Detects any non-authentic code BitLocker not needed Detects compromise on any component