The Secure Boot Journey

Slides:



Advertisements
Similar presentations
1 ABCs of PKI TAG Presentation 18 th May 2004 Paul Butler.
Advertisements

ROOTKIT VIRUS by Himanshu Mishra Points to be covered Introduction History Uses Classification Installation and Cloaking Detection Removal.
Sony White House Anthem Lockheed Aramco Bushehr nuclear reactor NSA Hacked Facebook Hacked Apple,Google,Microsoft,
CS CS 5150 Software Engineering Lecture 5 by Stephen Purpura Matching Process to Risk.
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE USC CSci599 Trusted Computing Lecture Three.
Page 1 Sandboxing & Signed Software Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Windows XP Migration Jumpstart Offering Offering Datasheet The Challenges With less than one year until the end of support for Windows XP, customer are.
Module 2 Part I Introduction To Windows Operating Systems Intro & History Introduction To Windows Operating Systems Intro & History.
Session Agenda Designed to address BIOS Limitations Needed for the larger server platforms (Intel-HP Itanium) First called Intel Boot Initiative.
MANAGEMENT ANTIMALWARE PLATFORM Microsoft Malware Protection Center Dynamic Signature Svc Available only in Windows 8 Endpoint Protection Management.
Configuring and Troubleshooting Identity and Access Solutions with Windows Server® 2008 Active Directory®
Compatibility and Interoperability Requirements
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
Module 2 Part I Introduction To Windows Operating Systems Intro & History Introduction To Windows Operating Systems Intro & History.
Security Vulnerabilities in A Virtual Environment
Trusted Computing and the Trusted Platform Module Bruce Maggs (with some slides from Bryan Parno)
National Energy Research Scientific Computing Center (NERSC) CHOS - CHROOT OS Shane Canon NERSC Center Division, LBNL SC 2004 November 2004.
Troubleshooting Windows Vista Lesson 11. Skills Matrix Technology SkillObjective DomainObjective # Troubleshooting Installation and Startup Issues Troubleshoot.
Trusted Component Deployment Trusted Components Bernd Schoeller January 30 th, 2006.
Compilers and Security
Harvesting Free Windows CPU Cycles for Linux Applications using Sandboxing Rasmus Andersen Dept. of Computer Science, University of Copenhagen, Denmark.
Digital Certificates Presented by: Matt Weaver. What is a digital certificate? Trusted ID cards in electronic format that bind to a public key; ex. Drivers.
TUF: Secure Software Updates Justin Cappos NYU Poly Computer Science and Engineering.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com SSH Thomas Petazzoni Free.
Opening Windows to a Wider World Why Samba moved to GPLv3 Jeremy Allison Samba Team
UEFI The Great Satan and you Adam Williamson Presented by
Installing Windows 7 Lesson 2.
TAG Presentation 18th May 2004 Paul Butler
GNU and Linux.
Virtual Roundtable Discussion
Debian’s support for Secure Boot on x86 and ARM
Chapter 6: Securing the Cloud
Trusted Computing and the Trusted Platform Module
Branching Error (a.k.a. the VM Program Instruction Break Error)
Apache web server Quick overview.
Security+ All-In-One Edition Chapter 1 – General Security Concepts
Computer System Laboratory
LINUX WINDOWS Vs..
Selected topic in computer science (1)
AC C E S S DATA B A S E T U TO R I A L
Building a Trustworthy Computer
Protecting Memory What is there to protect in memory?
TAG Presentation 18th May 2004 Paul Butler
Lesson Objectives Aims Key Words
Trusted Computing and the Trusted Platform Module
Outline What does the OS protect? Authentication for operating systems
A Fast Track into Device Guard
^ About the.
Linux Not in textbook.
Outline What does the OS protect? Authentication for operating systems
Introduction to Computers
LINUX WINDOWS Vs..
Device Guard: AppLocker on steroids
TERRA Authored by: Garfinkel, Pfaff, Chow, Rosenblum, and Boneh
Nessus Vulnerability Scanning
Practical Rootkit Detection with RAI
Building hardware-based security with a Trusted Platform Module (TPM)
IS3440 Linux Security Unit 9 Linux System Logging and Monitoring
Chapter 2: The Linux System Part 1
Option ROM Designs for UEFI
Windows Virtual PC / Hyper-V
Intel Active Management Technology
TPM, UEFI, Trusted Boot, Secure Boot
Aimee Coughlin, Greg Cusack, Jack Wampler, Eric Keller, Eric Wustrow
Erica Burch Jesse Forrest
16. Account Monitoring and Control
O.S. Security.
PerformanceBridge Application Suite and Practice 2.0 IT Specifications
Outline The spoofing problem Approaches to handle spoofing
Chapter 3 Software.
Presentation transcript:

The Secure Boot Journey Matthew Garrett <matthew.garrett@nebula.com>

2006 UEFI 2.0 describes a method for signing drivers

2008 UEFI 2.2 describes a method for image validation

August 2011

August 2011 Microsoft release Windows 8 hardware certification requirements All Windows 8 client hardware must default to enforcing UEFI Secure Boot

August 2011 Microsoft release Windows 8 hardware certification requirements All Windows 8 client hardware must default to enforcing UEFI Secure Boot (I am far too hungover to deal with this)

What is UEFI Secure Boot? Generate a cryptographic hash of a binary Sign hash with a private key On boot, check that the hash matches the binary And check that the signature was made with a trusted key Refuse to boot it if these fail

But why? Attackers are getting more sophisticated If you can run code before the OS, it's impossible for the OS to trust the hardware Perfectly designed malware could be virtually impossible to detect Controlling people's computers is becoming more and more financially rewarding

What are our options?

What are our options? (Drink)

What are our options? (Drink) (No, really, drink)

What are our options? (Drink) (No, really, drink) (Break RSA, taking down HTTPS with it)

What are our options? (Drink) (No, really, drink) (Break RSA, taking down HTTPS with it) (Ha no drink)

Upon sober reflection When in doubt, cause trouble (I am good at causing trouble)

September 2011 I blog about the Windows 8 requirements

“It's probably not worth panicking yet. But it is worth being concerned.”

September 2011 2 days later, Microsoft respond.

“Secure boot is a UEFI protocol not a Windows 8 feature“

STANAG 4172

Aren't you glad it's a standard?

“Microsoft does not mandate or control the settings on PC firmware that control or enable secured boot from any operating system other than Windows”

(Translation: Blame the system vendors)

Now what?

Now what? (Stop drinking due to strange liver pains)

Now what? Effective strategies involve multiple components

Now what? Effective strategies involve multiple components Don't just run around

Now what? Effective strategies involve multiple components Don't just run around Run around and scream

Start thinking about technical options Can we convince vendors to ship a Linux key? Who would control a Linux key? Who would get access to a Linux key? What are the licensing issues around shipping objects signed with a Linux key?

Other options Can we convince vendors to ship a Red Hat key? Who would get access to a Red Hat key? What would the PR issues of having a Red Hat key be?

Other options Can we get access to Microsoft's key? Would other people also be able to get access to Microsoft's key? What would the PR issues of working with Microsoft be?

Other options Can we avoid this idea of pre-installed keys completely? Can we define a mechanism for installing OS keys at install time? Can we convince people to adopt this mechanism?

Other options Give up on this Linux thing, take up goat farming (Oddly tempting)

Late 2011 Red Hat and Canonical became active in the UEFI specification community Proposals made regarding key management Little acceptance from the wider UEFI community (for reasonable reasons)

December 2012 Microsoft update Windows 8 requirements Vendors must provide a mechanism to disable Secure Boot Vendors must provide a mechanism for users to install their own keys

Did we win? No standardised way of handling key management No standardised way of disabling Secure Boot No way of handling this for remote deployments Documentation nightmare

February 2012 Sunnyvale

Sunnyvale Makes LAX seem like a great place to be

Sunnyvale Makes LAX seem like a great place to be Location of the Spring 2012 UEFI plugfest

Sunnyvale Makes LAX seem like a great place to be Location of the Spring 2012 UEFI plugfest Our first opportunity for face-to-face discussion of the issues

Success!

Microsoft play ball Commitment to provide open access to the UEFI signing service Signatures are contingent upon not being used to attack Windows Potential outcomes include revocation of existing signatures

Solved? Ha ha ha no.

Licenses Everyone knows that GPLv3 requires you to release signing keys

Licenses Everyone knows that GPLv3 requires you to release signing keys (everyone is wrong)

“Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. GPLv3

Two getouts If it's possible to replace it, you don't need to ship the keys If it's not a User Product, you don't need to ship the keys (Software isn't a User Product)

What, really? We asked the copyright holders We asked the license authors

What, really? We asked the copyright holders We asked the license authors (They were the same people)

User control User freedom is important Users need to be able to perform key management Distributions need to have options

Machine Operator Key Variables can be limited to pre-boot environment Keys stored in them can't be modified by the running OS Key installation can be limited to physically present users Code written and contributed by Suse

Some measure of success Ubuntu 12.10 released in October Fedora 18 released in January Ubuntu 12.04.2 released in February Several smaller distributions

Pre-signed Shim Signed binary with no intrinsic trust Install distribution key as first step of install Don't have to deal with Microsoft No real risk of revocation Reasonable compromise?

What's left?

Third party modules Linux Foundation offered to set up a working group

Third party modules Linux Foundation offered to set up a working group (crickets)

Third party modules Embed a key in a PE-COFF binary Get Microsoft to sign it Have the kernel load keys if signed by a trusted key

Third party modules Embed a key in a PE-COFF binary Get Microsoft to sign it Have the kernel load keys if signed by a trusted key (Linus unenthusiastic)

Linus' proposal Same as before, but extract the signed key and re- sign it as an X.509 certificate Requires a trusted body to perform this role Requires a trusted key in the kernel by default

Linux Foundation loader Initially intended to be a simple physical-presence test Scope creep means significant overlap with shim Perceived by many as an “official” solution Aim is to merge the two loaders

So, where did we end up? Linux distributions can be installed on systems without disabling Secure Boot or changing other firmware settings Users can install and manage their own keys Microsoft are still the root of trust

What did we learn? Even commercial Linux distributions can work well together

What did we learn? Even commercial Linux distributions can work well together And they can even work with Microsoft

What did we learn? Even commercial Linux distributions can work well together And they can even work with Microsoft Improved communication with vendors

What did we learn? Even commercial Linux distributions can work well together And they can even work with Microsoft Improved communication with vendors Even when things look bad, we can find solutions