SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Secure Boot and Linux




Frédéric Crozat
Senior Software Engineer
fcrozat@suse.com
Secure Boot: an introduction
UEFI ?
     •   For some years now, BIOS is being replaced by
         firmware following UEFI (Unified Extensible
         Firmware Interface) specification.
     •   It allows manufacturers to better cope with modern
         hardware and OS vendors to have a better interface
         to manage it.
     •   BIOS compatibility can still be available with CSM
         (Compatibility Support Module) but this will
         disappear in the near future.
     •   Some UEFI implementations even have a shell :)



3
Secure Boot: what is it ? Why now ?
     •   It is a way to prevent pre-OS attack (before
         bootloader is started), to ensure bootloader and
         kernel are trusted and not run by a Bootkit
     •   We don't envision Secure Boot as a requirement for
         servers within the next 3 years
     •   We expect a majority (if not all) of new desktop
         systems to be shipped with Secure Boot enabled by
         default (requirement for Windows 8 Desktop)
     •   Secure Boot can be useful for secure servers
         against boot viruses but not a panacea



4
What Secure Boot implies
     •   OS must be signed and its signature accepted by
         UEFI firmware
     •   To get OS “signature” accepted by UEFI firmware,
         we need to either:
          ‒   Inject manually key in firmware (not user friendly)
          ‒   Use a distribution whose key has been integrated by
              hardware vendor or signed by UEFI Signing Service
              (Microsoft is acting as this service).
     •   To ensure Secure Boot can't be easily circumvented,
         some kernel features can be disabled when running
         under Secure Boot (distribution policy, to be
         discussed <insert your troll here>).

5
Secure Boot: SUSE solution
Our solution to Secure Boot 1/2
     •   Secure Boot enforces signature on the pre-OS boot
         environment.
     •   This signature process should still be in the hands of
         distribution (SUSE/openSUSE) and users.
     •   To allow this modularity, SUSE expanded shim
         loader (EFI application, created by Matthew Garrett
         to handle Secure Boot for Linux) to give back
         freedom to users and prevent locked-in.




7
Our solution to Secure Boot 2/2
     •   Shim loader is signed by UEFI
         Signing Service and SUSE
     •   It will verify grub2 is signed by SUSE
         or a key enrolled by user, called
         Machine Owner Key (MOK)
     •   Then grub2 will boot and do similar
         check on kernel
     •   And kernel will do the same on
         modules


8
Machine Owner Key (MOK)
     •   Enroll key from the OS (with a password for MOK
         list), using mokutils tool.
     •   Rebooted is required, where shim will check
         password: ensure physical user is present.
     •   This key is added to MOK list, saved into in an UEFI
         Boot Service Only Variable and will be used for
         future boots to ensure key is not modified.
     •   MOK list can only be modified in Secure Boot phase
         (before kernel is started).
     •   Enroll can also be done at boot time if key is
         available on EFI System Partition.


9
Restrictions in Secure Boot mode
     (SP3 only, not relevant for openSUSE)
      •   A controversial topic, at minimal :)
      •   SP3 will have basic enablement for Secure Boot, but
          will have some gaps (mostly for servers):
            ‒   Kexec / Kdump are disabled
      •   No direct access to IO port, must use kernel
          interface
            ‒   KMS drivers are required for graphics card
      •   No direct access to memory
            ‒   No /dev/mem, no /dev/rmem
      •   Not possible to load unsigned 3rd party modules


10
Implementing Secure Boot support for
<insert your favorite distro name here>
Kernel bits 1/2
      •   Convert kernel as a EFI executable (EFI Stub) =>
          UEFI firmware could boot kernel without bootloader
      •   UEFI variables access from kernel
      •   UEFI clock support (not required)
      •   UEFI getvideomode (flicker-free boot) (not required)
      •   UEFI reboot (not required)
      •   KMS drivers (already done in openSUSE)




12
Kernel bits 2/2
      •   Sign main kernel
      •   Sign all in-tree kernel modules
      •   Generate a “per build” kernel private key to sign out
          of tree kernel modules
      •   Kexec / kdump must be Secure Boot aware
      •   Xen hypervisor need to be Secure Boot aware
      •   Kernel should check its signature (and modules
          signature against bootloader)




13
Bootloaders
      •   Shim loader
      •   Grub2 needs to talk to shim loader
          check kernel signature




14
Build Service
      •   Secure store private key to sign shim loader
      •   Store private kernel build key outside build tree for
          later user
           ‒   Allow this private per-build key to be used for out of tree
               modules




15
Userspace
      •   xf86-video-modesettings (for non accelerated KMS
          drivers, like cirrus, aspeed, mga g200)
      •   Modutils / kmod supports for signature on kernel
          modules (display them, verify them)
      •   Tool to sign kernel / modules (pesign)
      •   Tool to manipulate UEFI keys and variables




16
Installer
      •   Installer DVD image should be Secure Boot aware
          (shim + grub2 should be used)
      •   Installer should also have some kind of signature
          checking (for stage 1, 2..) ?
      •   When started, installer should warn user it will install
          in Secure Boot mode, and what it implies




17
Into the key business
      •   Kernel and bootloader must be signed :
           ‒   <distro> Certificate Authority (best to separate it from the
               one used for package signature). Will be embedded in
               shim loader, to validate signature
           ‒   signing key (not a GPG one but a X.509 RSA 2048). This
               key will be used to sign bootloader (grub2) and kernel




18
“Legal paperwork”
     •   What is required to be signed by Microsoft (acting as UEFI Signing Service):
           ‒   Developer account at https://sysdev.microsoft.com/
           ‒   AuthentiCode certificate (discount at $99 for the first year), which will be used to sign binary to
               Microsoft (might requires some notarised ID)
           ‒   Sign (electronically) Microsoft Logo Program Testing Agreement v3 + UEFI Firmware Agreement
           ‒   Sign a test .exe with AuthentiCode certificate and send it to Microsoft
     •   Once it is done, you will be able to send .efi file (ie shim.efi) to Microsoft for signature:
           ‒   Create a .cab file containing shim.efi (with lcab)
           ‒   Sign it with your AuthentiCode certificate (with osslsigncode)
           ‒   Upload it on Microsoft website (with Silverlight :(
           ‒   Wait
           ‒   … Wait..
           ‒   Retrieved a new .cab file containing signed shim.efi




19
Efitools: the “ultimate” solution ?
Efitools
      •   James Bottomley, under Linux Foundation umbrella, has
          been working on another solution for Secure Boot:
          efitools.
      •   Current solution aka PreBootloader (shim) is bypassing
          most of UEFI services (BootService->LoadImage) and
          do not work with new generation of bootloader
          (gummiboot)
      •   James is proposing an “plugin” which will add its own
          security check.
           ‒   Pro: It had MOK support with this : only hash based, not
               certificate based
           ‒   Con: rely on Platform Infrastructure Spec, which is not part of
               UEFI spec (but is present in all tested Windows 8 systems
               around) ; only hash based, not certificate based

21
Summary
     •   With shim, we are able to get Linux running on today
         shipped systems, without compromising security.


     •   MOK handling allows flexibility for testing, upgrading
         and 3rd party support


     •   In the long term, shim and efitools will merge
         (already announced by both parties)




22
Questions ?




     Thank you.



23

Contenu connexe

Tendances

Implementing a UEFI BIOS into an Embedded System
Implementing a UEFI BIOS into an Embedded SystemImplementing a UEFI BIOS into an Embedded System
Implementing a UEFI BIOS into an Embedded Systeminsydesoftware
 
Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)k33a
 
XPDDS17: EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
XPDDS17:  EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...XPDDS17:  EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
XPDDS17: EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...The Linux Foundation
 
Modern Bootkit Trends: Bypassing Kernel-Mode Signing Policy
Modern Bootkit Trends: Bypassing Kernel-Mode Signing PolicyModern Bootkit Trends: Bypassing Kernel-Mode Signing Policy
Modern Bootkit Trends: Bypassing Kernel-Mode Signing PolicyAlex Matrosov
 
firmware hacking, slash the pineapple for fun (codebali 2015)
firmware hacking, slash the pineapple for fun (codebali 2015)firmware hacking, slash the pineapple for fun (codebali 2015)
firmware hacking, slash the pineapple for fun (codebali 2015)Rama Nanda
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016Chris Simmonds
 
Firmware hacking, slash the pineapple for fun
Firmware hacking, slash the pineapple for funFirmware hacking, slash the pineapple for fun
Firmware hacking, slash the pineapple for funidsecconf
 
Upgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with SecurebootUpgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with SecurebootJonathan MICHEL-VILLAZ
 
Cigarette VS Bubble Gum
Cigarette VS Bubble GumCigarette VS Bubble Gum
Cigarette VS Bubble GumNaruenart
 
C122 a015-en
C122 a015-enC122 a015-en
C122 a015-enTommy Lee
 
MikroTik User Guide
MikroTik User GuideMikroTik User Guide
MikroTik User Guideseolangit4
 
Data protection in windows
Data protection in windowsData protection in windows
Data protection in windowsVijay Kumar
 
UEFI Firmware Rootkits: Myths and Reality
UEFI Firmware Rootkits: Myths and RealityUEFI Firmware Rootkits: Myths and Reality
UEFI Firmware Rootkits: Myths and RealitySally Feller
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of playChris Simmonds
 
List of Software tools for encryption
List of Software tools for encryptionList of Software tools for encryption
List of Software tools for encryptionCliford John Reandino
 

Tendances (20)

Implementing a UEFI BIOS into an Embedded System
Implementing a UEFI BIOS into an Embedded SystemImplementing a UEFI BIOS into an Embedded System
Implementing a UEFI BIOS into an Embedded System
 
Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)
 
Uefi and bios
Uefi and biosUefi and bios
Uefi and bios
 
XPDDS17: EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
XPDDS17:  EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...XPDDS17:  EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
XPDDS17: EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
 
Modern Bootkit Trends: Bypassing Kernel-Mode Signing Policy
Modern Bootkit Trends: Bypassing Kernel-Mode Signing PolicyModern Bootkit Trends: Bypassing Kernel-Mode Signing Policy
Modern Bootkit Trends: Bypassing Kernel-Mode Signing Policy
 
firmware hacking, slash the pineapple for fun (codebali 2015)
firmware hacking, slash the pineapple for fun (codebali 2015)firmware hacking, slash the pineapple for fun (codebali 2015)
firmware hacking, slash the pineapple for fun (codebali 2015)
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
Firmware hacking, slash the pineapple for fun
Firmware hacking, slash the pineapple for funFirmware hacking, slash the pineapple for fun
Firmware hacking, slash the pineapple for fun
 
Windows thin pc
Windows thin pcWindows thin pc
Windows thin pc
 
Upgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with SecurebootUpgrade Ubuntu 18.04 Security with Secureboot
Upgrade Ubuntu 18.04 Security with Secureboot
 
Bios vs uefi
Bios vs uefiBios vs uefi
Bios vs uefi
 
Cigarette VS Bubble Gum
Cigarette VS Bubble GumCigarette VS Bubble Gum
Cigarette VS Bubble Gum
 
C122 a015-en
C122 a015-enC122 a015-en
C122 a015-en
 
MikroTik User Guide
MikroTik User GuideMikroTik User Guide
MikroTik User Guide
 
Data protection in windows
Data protection in windowsData protection in windows
Data protection in windows
 
3494 Enterprise Tape Library
3494 Enterprise Tape Library3494 Enterprise Tape Library
3494 Enterprise Tape Library
 
Cis222 2
Cis222 2Cis222 2
Cis222 2
 
UEFI Firmware Rootkits: Myths and Reality
UEFI Firmware Rootkits: Myths and RealityUEFI Firmware Rootkits: Myths and Reality
UEFI Firmware Rootkits: Myths and Reality
 
Software update for IoT: the current state of play
Software update for IoT: the current state of playSoftware update for IoT: the current state of play
Software update for IoT: the current state of play
 
List of Software tools for encryption
List of Software tools for encryptionList of Software tools for encryption
List of Software tools for encryption
 

En vedette

Boots: #FlywithBoots Social Media
Boots: #FlywithBoots Social MediaBoots: #FlywithBoots Social Media
Boots: #FlywithBoots Social MediaInhouseRecruitment
 
Safe and secure programming practices for embedded devices
Safe and secure programming practices for embedded devicesSafe and secure programming practices for embedded devices
Safe and secure programming practices for embedded devicesSoumitra Bhattacharyya
 
Secureboot Survival Guide
Secureboot Survival GuideSecureboot Survival Guide
Secureboot Survival Guidelcplcp1
 
Design Audit - Boots Pharmacy
Design Audit - Boots PharmacyDesign Audit - Boots Pharmacy
Design Audit - Boots PharmacySami Hmaidan
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 
Epp tipos de botas de seguridad
Epp  tipos de botas de seguridadEpp  tipos de botas de seguridad
Epp tipos de botas de seguridadDayana Sepulveda
 

En vedette (6)

Boots: #FlywithBoots Social Media
Boots: #FlywithBoots Social MediaBoots: #FlywithBoots Social Media
Boots: #FlywithBoots Social Media
 
Safe and secure programming practices for embedded devices
Safe and secure programming practices for embedded devicesSafe and secure programming practices for embedded devices
Safe and secure programming practices for embedded devices
 
Secureboot Survival Guide
Secureboot Survival GuideSecureboot Survival Guide
Secureboot Survival Guide
 
Design Audit - Boots Pharmacy
Design Audit - Boots PharmacyDesign Audit - Boots Pharmacy
Design Audit - Boots Pharmacy
 
Spring boot
Spring bootSpring boot
Spring boot
 
Epp tipos de botas de seguridad
Epp  tipos de botas de seguridadEpp  tipos de botas de seguridad
Epp tipos de botas de seguridad
 

Similaire à Distro Recipes 2013: Secure Boot and Linux: several issues, one solution

SUSE shim and things related to it
SUSE shim and things related to itSUSE shim and things related to it
SUSE shim and things related to itSUSE Labs Taipei
 
Bootkits step by-step-slides-final-v1-release
Bootkits step by-step-slides-final-v1-releaseBootkits step by-step-slides-final-v1-release
Bootkits step by-step-slides-final-v1-releaseEric Koeppen
 
Linux booting process, Dual booting, Components involved
Linux booting process, Dual booting, Components involvedLinux booting process, Dual booting, Components involved
Linux booting process, Dual booting, Components involveddivyammo
 
Hypervisor and VDI security
Hypervisor and VDI securityHypervisor and VDI security
Hypervisor and VDI securityDenis Gundarev
 
XPDS14 - Xen in EFI World - Daniel Kiper, Oracle
XPDS14 - Xen in EFI World - Daniel Kiper, OracleXPDS14 - Xen in EFI World - Daniel Kiper, Oracle
XPDS14 - Xen in EFI World - Daniel Kiper, OracleThe Linux Foundation
 
Windows 7 professional Vs Windows 7 enterprise
Windows 7 professional Vs Windows 7 enterpriseWindows 7 professional Vs Windows 7 enterprise
Windows 7 professional Vs Windows 7 enterprise247infotech
 
Bootkits: past, present & future
Bootkits: past, present & futureBootkits: past, present & future
Bootkits: past, present & futureAlex Matrosov
 
Opening last bits of the infrastructure
Opening last bits of the infrastructureOpening last bits of the infrastructure
Opening last bits of the infrastructureErwan Velu
 
TC and TPM.ppt
TC and TPM.pptTC and TPM.ppt
TC and TPM.pptyhaxpsos
 
Secret of Intel Management Engine by Igor Skochinsky
Secret of Intel Management Engine  by Igor SkochinskySecret of Intel Management Engine  by Igor Skochinsky
Secret of Intel Management Engine by Igor SkochinskyCODE BLUE
 
Case study on chrome os in detail.History, architecture,process
Case study on chrome os in detail.History, architecture,processCase study on chrome os in detail.History, architecture,process
Case study on chrome os in detail.History, architecture,processskb212733
 
Secure boot general
Secure boot generalSecure boot general
Secure boot generalPrabhu Swamy
 
docslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.pptdocslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.pptPrasannaDeSilva7
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat Security Conference
 

Similaire à Distro Recipes 2013: Secure Boot and Linux: several issues, one solution (20)

SUSE shim and things related to it
SUSE shim and things related to itSUSE shim and things related to it
SUSE shim and things related to it
 
Bootkits step by-step-slides-final-v1-release
Bootkits step by-step-slides-final-v1-releaseBootkits step by-step-slides-final-v1-release
Bootkits step by-step-slides-final-v1-release
 
Linux booting process, Dual booting, Components involved
Linux booting process, Dual booting, Components involvedLinux booting process, Dual booting, Components involved
Linux booting process, Dual booting, Components involved
 
Hypervisor and VDI security
Hypervisor and VDI securityHypervisor and VDI security
Hypervisor and VDI security
 
XPDS14 - Xen in EFI World - Daniel Kiper, Oracle
XPDS14 - Xen in EFI World - Daniel Kiper, OracleXPDS14 - Xen in EFI World - Daniel Kiper, Oracle
XPDS14 - Xen in EFI World - Daniel Kiper, Oracle
 
Windows 8 Client Part 1 "The OS internals for IT-Pro's"
Windows 8 Client Part 1 "The OS internals for IT-Pro's"Windows 8 Client Part 1 "The OS internals for IT-Pro's"
Windows 8 Client Part 1 "The OS internals for IT-Pro's"
 
EFI Secure Key
EFI Secure KeyEFI Secure Key
EFI Secure Key
 
Windows 7 professional Vs Windows 7 enterprise
Windows 7 professional Vs Windows 7 enterpriseWindows 7 professional Vs Windows 7 enterprise
Windows 7 professional Vs Windows 7 enterprise
 
Bootkits: past, present & future
Bootkits: past, present & futureBootkits: past, present & future
Bootkits: past, present & future
 
Linux kernel booting
Linux kernel bootingLinux kernel booting
Linux kernel booting
 
Opening last bits of the infrastructure
Opening last bits of the infrastructureOpening last bits of the infrastructure
Opening last bits of the infrastructure
 
BIOS AND OS
BIOS AND OSBIOS AND OS
BIOS AND OS
 
TC and TPM.ppt
TC and TPM.pptTC and TPM.ppt
TC and TPM.ppt
 
Secret of Intel Management Engine by Igor Skochinsky
Secret of Intel Management Engine  by Igor SkochinskySecret of Intel Management Engine  by Igor Skochinsky
Secret of Intel Management Engine by Igor Skochinsky
 
Case study on chrome os in detail.History, architecture,process
Case study on chrome os in detail.History, architecture,processCase study on chrome os in detail.History, architecture,process
Case study on chrome os in detail.History, architecture,process
 
S4 sig-check-lpc-20130918
S4 sig-check-lpc-20130918S4 sig-check-lpc-20130918
S4 sig-check-lpc-20130918
 
Secure boot general
Secure boot generalSecure boot general
Secure boot general
 
docslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.pptdocslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.ppt
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiled
 
Boot process: BIOS vs UEFI
Boot process: BIOS vs UEFIBoot process: BIOS vs UEFI
Boot process: BIOS vs UEFI
 

Plus de Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelAnne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Anne Nicolas
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxAnne Nicolas
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconAnne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureAnne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerAnne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Anne Nicolas
 

Plus de Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Dernier (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Distro Recipes 2013: Secure Boot and Linux: several issues, one solution

  • 1. Secure Boot and Linux Frédéric Crozat Senior Software Engineer fcrozat@suse.com
  • 2. Secure Boot: an introduction
  • 3. UEFI ? • For some years now, BIOS is being replaced by firmware following UEFI (Unified Extensible Firmware Interface) specification. • It allows manufacturers to better cope with modern hardware and OS vendors to have a better interface to manage it. • BIOS compatibility can still be available with CSM (Compatibility Support Module) but this will disappear in the near future. • Some UEFI implementations even have a shell :) 3
  • 4. Secure Boot: what is it ? Why now ? • It is a way to prevent pre-OS attack (before bootloader is started), to ensure bootloader and kernel are trusted and not run by a Bootkit • We don't envision Secure Boot as a requirement for servers within the next 3 years • We expect a majority (if not all) of new desktop systems to be shipped with Secure Boot enabled by default (requirement for Windows 8 Desktop) • Secure Boot can be useful for secure servers against boot viruses but not a panacea 4
  • 5. What Secure Boot implies • OS must be signed and its signature accepted by UEFI firmware • To get OS “signature” accepted by UEFI firmware, we need to either: ‒ Inject manually key in firmware (not user friendly) ‒ Use a distribution whose key has been integrated by hardware vendor or signed by UEFI Signing Service (Microsoft is acting as this service). • To ensure Secure Boot can't be easily circumvented, some kernel features can be disabled when running under Secure Boot (distribution policy, to be discussed <insert your troll here>). 5
  • 6. Secure Boot: SUSE solution
  • 7. Our solution to Secure Boot 1/2 • Secure Boot enforces signature on the pre-OS boot environment. • This signature process should still be in the hands of distribution (SUSE/openSUSE) and users. • To allow this modularity, SUSE expanded shim loader (EFI application, created by Matthew Garrett to handle Secure Boot for Linux) to give back freedom to users and prevent locked-in. 7
  • 8. Our solution to Secure Boot 2/2 • Shim loader is signed by UEFI Signing Service and SUSE • It will verify grub2 is signed by SUSE or a key enrolled by user, called Machine Owner Key (MOK) • Then grub2 will boot and do similar check on kernel • And kernel will do the same on modules 8
  • 9. Machine Owner Key (MOK) • Enroll key from the OS (with a password for MOK list), using mokutils tool. • Rebooted is required, where shim will check password: ensure physical user is present. • This key is added to MOK list, saved into in an UEFI Boot Service Only Variable and will be used for future boots to ensure key is not modified. • MOK list can only be modified in Secure Boot phase (before kernel is started). • Enroll can also be done at boot time if key is available on EFI System Partition. 9
  • 10. Restrictions in Secure Boot mode (SP3 only, not relevant for openSUSE) • A controversial topic, at minimal :) • SP3 will have basic enablement for Secure Boot, but will have some gaps (mostly for servers): ‒ Kexec / Kdump are disabled • No direct access to IO port, must use kernel interface ‒ KMS drivers are required for graphics card • No direct access to memory ‒ No /dev/mem, no /dev/rmem • Not possible to load unsigned 3rd party modules 10
  • 11. Implementing Secure Boot support for <insert your favorite distro name here>
  • 12. Kernel bits 1/2 • Convert kernel as a EFI executable (EFI Stub) => UEFI firmware could boot kernel without bootloader • UEFI variables access from kernel • UEFI clock support (not required) • UEFI getvideomode (flicker-free boot) (not required) • UEFI reboot (not required) • KMS drivers (already done in openSUSE) 12
  • 13. Kernel bits 2/2 • Sign main kernel • Sign all in-tree kernel modules • Generate a “per build” kernel private key to sign out of tree kernel modules • Kexec / kdump must be Secure Boot aware • Xen hypervisor need to be Secure Boot aware • Kernel should check its signature (and modules signature against bootloader) 13
  • 14. Bootloaders • Shim loader • Grub2 needs to talk to shim loader check kernel signature 14
  • 15. Build Service • Secure store private key to sign shim loader • Store private kernel build key outside build tree for later user ‒ Allow this private per-build key to be used for out of tree modules 15
  • 16. Userspace • xf86-video-modesettings (for non accelerated KMS drivers, like cirrus, aspeed, mga g200) • Modutils / kmod supports for signature on kernel modules (display them, verify them) • Tool to sign kernel / modules (pesign) • Tool to manipulate UEFI keys and variables 16
  • 17. Installer • Installer DVD image should be Secure Boot aware (shim + grub2 should be used) • Installer should also have some kind of signature checking (for stage 1, 2..) ? • When started, installer should warn user it will install in Secure Boot mode, and what it implies 17
  • 18. Into the key business • Kernel and bootloader must be signed : ‒ <distro> Certificate Authority (best to separate it from the one used for package signature). Will be embedded in shim loader, to validate signature ‒ signing key (not a GPG one but a X.509 RSA 2048). This key will be used to sign bootloader (grub2) and kernel 18
  • 19. “Legal paperwork” • What is required to be signed by Microsoft (acting as UEFI Signing Service): ‒ Developer account at https://sysdev.microsoft.com/ ‒ AuthentiCode certificate (discount at $99 for the first year), which will be used to sign binary to Microsoft (might requires some notarised ID) ‒ Sign (electronically) Microsoft Logo Program Testing Agreement v3 + UEFI Firmware Agreement ‒ Sign a test .exe with AuthentiCode certificate and send it to Microsoft • Once it is done, you will be able to send .efi file (ie shim.efi) to Microsoft for signature: ‒ Create a .cab file containing shim.efi (with lcab) ‒ Sign it with your AuthentiCode certificate (with osslsigncode) ‒ Upload it on Microsoft website (with Silverlight :( ‒ Wait ‒ … Wait.. ‒ Retrieved a new .cab file containing signed shim.efi 19
  • 21. Efitools • James Bottomley, under Linux Foundation umbrella, has been working on another solution for Secure Boot: efitools. • Current solution aka PreBootloader (shim) is bypassing most of UEFI services (BootService->LoadImage) and do not work with new generation of bootloader (gummiboot) • James is proposing an “plugin” which will add its own security check. ‒ Pro: It had MOK support with this : only hash based, not certificate based ‒ Con: rely on Platform Infrastructure Spec, which is not part of UEFI spec (but is present in all tested Windows 8 systems around) ; only hash based, not certificate based 21
  • 22. Summary • With shim, we are able to get Linux running on today shipped systems, without compromising security. • MOK handling allows flexibility for testing, upgrading and 3rd party support • In the long term, shim and efitools will merge (already announced by both parties) 22
  • 23. Questions ? Thank you. 23