SlideShare a Scribd company logo
Secure Boot on Arm systems
Matteo Carlini (Arm)
ENGINEERS
AND DEVICES WORKING
TOGETHER
Agenda
● Introduction & Scope of work
● Arm Trusted Board Boot (PKI, CoT, Authentication Flow)
● Arm Trusted Firmware implementation
● UEFI Secure Boot (PKI, CoT, Authentication Flow)
● UEFI Secure Boot on Arm – EDK2 recap
● Complete CoT
● Secure Variable Storage
● Other OSS Solutions (Android, U-Boot)
● Next steps
ENGINEERS AND DEVICES
WORKING TOGETHER
Introduction
● Secure Boot  a mechanism to build (and maintain!) a complete Chain of Trust
on all the software layers executed in a system, preventing malicious code to be
stored and loaded in place of the authenticated one
● Security through existing specifications, industry standards & OSS
○ Interoperability (same OS/Software on different Platforms/Firmware)
○ Common Secure Boot and Secure Firmware Update Interfaces  Reduced integration effort
○ Stability, frequent updates, wide usage  Reduced maintenance cost
Enterprise/Networking
Embedded
Mobile/Client
UEFI Secure Boot
Secure/Verified Boot
(UEFI?)
Verified Boot
ENGINEERS AND DEVICES
WORKING TOGETHER
Scope of Work
Apps
OS/RTOS
Trusted Software
TrustZone
Extended Root of Trust
iROT
TrustZone
CryptoCell
Keys Hardware
Arm Trusted Firmware
Trusted OS
UEFI
Firmware
OS
Apps
Trusted
Apps
TBSA &
RoT
TBBR
UEFI
TrustZone-
basedTEE
ARMv8-A Architecture
ENGINEERS AND DEVICES
WORKING TOGETHER
Scope of Work
Apps
OS/RTOS
Trusted Software
TrustZone
Extended Root of Trust
iROT
TrustZone
CryptoCell
Keys Hardware
Arm Trusted Firmware
Trusted OS
OS
Apps
Trusted
Apps
TBSA &
RoT
TBBR
TrustZone-
basedTEE
ARMv8-A Architecture
UEFI
Firmware
UEFI
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Board Boot vs UEFI Secure Boot
● TWO DISTINCT MECHANISMS :
different Key/Certificates & PKI
● SAME GOAL : verifying the
authenticity and integrity of a
software/firmware image before
allowing its runtime execution
● DIFFERENT TARGET IMAGES
● Combined together they enable a
full Secure Boot establishing a
complete Chain Of Trust (despite
different PKI) from the very first
firmware executed up to the OS
HARDWARE
UEFI Firmware (BL33)
OS
Arm TF (BLx stages)
BL1
UEFI
Driver
UEFI
App
OS
Loader
UEFI
Secure
Boot
Arm
TBB
App1 App2 App3
RoT
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Board Boot
● Based on Arm TBSA/TBRR documents (available under NDA)
○ TBBR-Client specification (DEN0006C) reference for Arm Trusted Firmware
implementation
● Arm TBB: a reference example on how to build a CoT from the very first ROM
firmware executed (BL1) up to the first normal world firmware (BL33)
● SBBR recent implications (ARMServerAC):
○ v1.1 will generically mandate the use of a “complete cascading Chain of Trust
from the initial firmware up to the first normal world firmware”
○ Arm TBB and Arm Trusted Firmware provide a reference implementation
○ Other 3rd party solutions (BL1/BL2) will also be accepted as long as they start from an
HW RoT and allow a complete verification up to the UEFI compliant firmware (BL33)
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Firmware TBB – PKI Details
● 2 implicitly trusted components (tamper proof)
1. Root Of Trust Public Key (ROTPK) with SHA-256 hash stored on trusted registers
2. Boot Loader Stage 1 (BL1) stored on trusted ROM
● 2 Certificates pairs for each BL3x image
1. Key Certificate
■ Holds the BL3xpub key needed to validate the corresponding Content Certificate
2. Content Certificate
■ Holds the BL3x image hash to be verified against the hash of the loaded image
● 2 Key pairs used to sign/validate Key Certificates
1. Trusted World Key pair (TWpub/priv) used for BL31 & BL32 Key Certificates
2. Normal World Key pair (NWpub/priv) used for BL33 Key Certificate
● Public Keys and hashes are included as extensions to X.509 certificates
● Certificates are self-signed: no need for a valid CA
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Firmware TBB – Authentication Flow
● BL1 responsible for authenticating BL2 stage
1. BL1 verifies ROTPK in BL2 Content Certificate against ROTPK stored hash
2. BL1 verifies BL2 Content Certificate using enclosed ROTPK
3. BL1 loads BL2 and performs its hash verification
4. Execution is transferred to BL2
● BL2 responsible for authenticating BL3x stages (BL31, BL32, BL33)
1. BL2 verifies ROTPK in Trusted Key Certificate against ROTPK stored hash
2. BL2 verifies Trusted Key Certificate using enclosed ROTPK and saves TWpub /NTWpub
3. BL2 verifies BL3x (BL31/BL32) Key Certificate using TWpub
4. BL2 verifies BL3x (BL31/BL32) Content certificate using enclosed BL3xpub key
5. BL2 extracts and saves BL3x hash used for BL3x (BL31/BL32) image verification
6. BL2 verifies BL33 Key Certificate using NTWpub
7. BL2 verifies BL33 Content certificate using enclosed BL33pub key
8. BL2 extracts and saves BL33 hash used for BL33 image verification
○ Execution is transferred to verified BL3x  BL33 images
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Firmware TBB – How it works (BL1)
Secure ROM
ROTPKSHA-256
BL1
Implicitly
Trusted
components
BL3xpriv
Secure world Images
BLKeyPub
BLxHASH
Key Certs
Content
Certs
Reset
BL3x
ROTpriv
ROTPK
BL2HASH
ROTpriv
TWpriv
BL3xpub
NWpriv
BL33pub
BL3xHASH
BL2
Normal world
BL33priv
BL33HASH
2
3
4
Exec
Legenda
Hash check
EL3 Execution
S-EL1 Execution BL images
EL2 Execution
BL33
1
Trusted Key Cert
ROTPK
TWpub
NWpub
ENGINEERS AND DEVICES
WORKING TOGETHER
TWpriv
BL3xpub
Arm Trusted Firmware TBB – How it works (BL2)
Secure ROM
ROTPKSHA-256
BL1
Implicitly
Trusted
components
Trusted Key Cert
BL3xpriv
Secure world Images
BLKeyPub
BLxHASH
Key Certs
Content
Certs
Reset
ROTPK
TWpub
NWpub
BL3x
ROTpriv
ROTpriv
BL3xHASH
BL2
For each BL3x stage
Normal world
Exec2
4
3
5
Legenda
Hash check
EL3 Execution
S-EL1 Execution BL images
EL2 Execution
BL33
BL33priv
BL33HASH
NWpriv
BL33pub
ROTPK
BL2HASH
1
ENGINEERS AND DEVICES
WORKING TOGETHER
Trusted Key Cert
ROTPK
TWpub
NWpub
NWpriv
BL33pub
BL33priv
BL33HASH
Arm Trusted Firmware TBB – How it works (BL2)
Secure ROM
ROTPKSHA-256
BL1
Implicitly
Trusted
components
BL3xpriv
Secure world Images
EL3 Execution
BLKeyPub
BLxHASH
Legenda
S-EL1 Execution BL images
Key Certs
Content
Certs
BL33
Normal world
Reset
EL2 Execution
BL3x
ROTpriv
ROTpriv
BL3xHASH
BL2
Exec
6 8
Hash check
TWpriv
BL3xpub
7
ROTPK
BL2HASH
ENGINEERS AND DEVICES
WORKING TOGETHER
Trusted Key Cert
ROTPK
TWpub
NWpub
Arm Trusted Firmware TBB – How it works (BL3x)
Secure ROM
ROTPKSHA-256
BL1
Implicitly
Trusted
components
BL3xpriv
Secure world Images
BLKeyPub
BLxHASH
Key Certs
Content
Certs
Normal world
Reset
BL3x
ROTpriv
ROTpriv
BL3xHASH
BL2
Exec
Legenda
Hash check
EL3 Execution
S-EL1 Execution BL images
EL2 Execution
BL33
BL33priv
BL33HASH
NWpriv
BL33pub
TWpriv
BL3xpub
ROTPK
BL2HASH
ENGINEERS AND DEVICES
WORKING TOGETHER
Trusted Key Cert
ROTPK
TWpub
NWpub
Arm Trusted Firmware TBB – How it works (BL33)
Secure ROM
ROTPKSHA-256
BL1
Implicitly
Trusted
components
BL3xpriv
Secure world Images
BLKeyPub
BLxHASH
Key Certs
Content
Certs
Normal world
Reset
BL3x
ROTpriv
ROTpriv
BL3xHASH
BL2
Exec
Legenda
Hash check
EL3 Execution
S-EL1 Execution BL images
EL2 Execution
BL33
BL33priv
BL33HASH
NWpriv
BL33pub
TWpriv
BL3xpub
ROTPK
BL2HASH
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Firmware Implementation Overview
● TBB working properly on BL1/BL2 on both AArch64 & AArch32!
○ JUNO and FVP Platforms TBB example running in AArch32 state on GitHub!
● Build flags (summary)
○ TRUSTED_BOARD_BOOT=1 to enable BL1+BL2 TBB support
○ GENERATE_COT=1 build and execute cert_create tool (see below)
○ XXX_KEYS=[path] used to specify location of keys in PEM format
○ Have a look at the user guide(1)!
● Tools:
○ cert_Create too: BL images and Keys as input  Certificates as output
○ Fiptool: Certificates as input  FIP (Firmware Image Package)
● Pre-integration of TBB with the Arm TrustZone CryptoCell product (CC-712) to
take advantage of its HW RoT and crypto acceleration services
ENGINEERS AND DEVICES
WORKING TOGETHER
UEFI Secure Boot
1. A platform ownership model for establishing a trust relationship among:
■ Platform Owner (ODM/OEM/EndUser) – PO
■ Platform Firmware (EDK2 / U-Boot / 3rd party BIOS) – PF
■ OS / 3rd party software vendors – OSV/ISV  SV
○ Uses standard PKI, X.509 certificates and PE images digital signature, based on PE
digest/hash calculation described in Microsoft Authenticode PE Signature Format
○ Signature database (white/black list) update mechanism from trusted sources
2. A generic framework, based on the above model, to allow:
1. The firmware to authenticate UEFI executable images before allowing their
execution, preventing pre-boot malwares to be run
2. The Platform Owner and/or SV to securely update the signature databases into PF
with new/known allowed/forbidden image signatures
ENGINEERS AND DEVICES
WORKING TOGETHER
UEFI Firmware
UEFI Secure Boot – PKI details
● 2 asymmetric key pairs:
1. Platform Key (PK): Trust
relationship between PO & PF
■ PKpriv owned by the PO
■ PKpub enrolled into PF
2. Key Exchange Key (KEK): Trust
relationship between SV & PF
■ Different KEKpriv for each SV
■ Each SV enrolls KEKpub into PF
● Platform firmware NV variables (on
tamper proof storage) to hold:
○ PKpub / KEKpub list
○ Signatures DBs: signatures
white/black lists (db/dbx)
Enrollment
Process
SetupMode
PF NV variables
PO
SV
PKpriv
PKpub KEK1pub
SV
KEK1priv
KEK2priv
Signature_DBs:
db {} / dbx {}
KEK2pub
ROT
ENGINEERS AND DEVICES
WORKING TOGETHER
UEFI Firmware
UEFI Secure Boot – PKI details (2)
● Using PKpriv/KEKpriv , Signature_DB
is updated from trusted sources
with allowed/forbidden image
signatures, by means of UEFI
SetVariable() Runtime service
Enrollment
Process
UserMode
PKpriv
KEK2priv
SetVariable()
KEK1priv
Signature_DBs:
db {} / dbx {}
Signature_DBs:
db: {Sign1, Sign3}
dbx: {Sign2, Sign4}
PO
SV
SV
PKpub KEK1pub KEK2pub
PF NV variables
ENGINEERS AND DEVICES
WORKING TOGETHER
UEFI Firmware
Sign
check
Sign
check
UEFI Secure Boot – How it works
● UEFI executable images are verified
against Signature_DBs found in the
firmware
Enrollment
Process
DeployedMode
PKpriv
KEK2priv
KEK1priv
Signature_DBs:
db {} / dbx {}
Signature_DBs:
db: {Sign1, Sign3}
dbx: {Sign2, Sign4}
UEFI Executable Images
OS Loader+
OS Kernel
OS Loader+
OS Kernel 2
Sign1 Sign2
UEFI App1 UEFI App2
Sign3 Sign5
Exec
PO
SV
SV
PF NV variables
ENGINEERS AND DEVICES
WORKING TOGETHER
UEFI Secure Boot on Arm – EDK2 recap
● LCA14 (from Ard Biesheuvel)(2) ● LAS16 (Ard Biesheuvel)(3)
ENGINEERS AND DEVICES
WORKING TOGETHER
Arm Trusted Firmware – BL31
Complete CoT – Putting all together
UEFI FIRMWARE – BL33
Linux Kernel A Linux Kernel B
Secure
App1
Secure
App2
Guest App1 Guest App2
PKpub
KEKpub db / dbx
ROTPK
SHA-256
CC
KC
KC
CC
Normal World Secure World
Sign1 Sign2
EL0
EL1
EL2
S-EL0
EL3
TBB
BL1
S-EL1TBB
BL2
CC
S-EL1 payload (BL32)
ENGINEERS AND DEVICES
WORKING TOGETHER
Secure Variable access
Arm Trusted Firmware – BL31
Linux Kernel A Linux Kernel B
Secure Partition
Variable access
Guest App1 Guest App2
KEKpub
db / dbx
TBB
BL2
Normal World Secure World
TBB
BL1
EL0
EL1
EL2
EL3
PKpub
ROTPK
SHA-256
Secure Partition Manager
SVC Trampoline – BL31
SetVariable()
UEFI FIRMWARE – BL33
Arm MM Interface
S-EL0
S-EL1
Secure Storage
ENGINEERS AND DEVICES
WORKING TOGETHER
Other OSS Solutions
● Android Verified Boot(4) on AOSP:
○ De-facto industry standard for Mobile secure boot path since Android 4.4/5.0
○ CoT starting from OEM public key (tamper proof) to verify android boot image
○ Device State (LOCKED/UNLOCKED) must be protected not to break the CoT
○ On newer versions (8.0) also Rollback protection available(5)
● U-Boot Verified Boot(6)
○ CoT starting from trusted U-Boot image (BL33) carrying initial public key (tamper proof)
○ Usual image verification chain then follows
○ No specified platform ownership model for updating keys in field
● U-Boot Secure Boot?
○ Leveraging “UEFI on Top on U-Boot”(7) work, with SetVariable extension?
○ Plugging shim over UEFI-enabled U-Boot to handle key management?
 Convergence of Embedded and Enterprise secure boot flows!
ENGINEERS AND DEVICES
WORKING TOGETHER
Plans & Next Steps
● Software side:
○ Arm open-source reference platform software of TBB+UEFI Secure Boot with Secure
Variable storage access from Secure Partition
○ Investigate U-Boot based solution for Embedded/Mobile
○ Future: Secure Firmware Update (FWU vs UEFI Signed Capsule Update)
● Specification side:
○ TBBR/SBBR updates & possible Server side TBBR/TBSA
○ Interactions with TCG TPM & Measured Boot
○ What level of standardization required on the Firmware side for a TBB solution?
■ A guidance on which authentication steps to be executed at each ELx/BLx to
avoid arbitrary code execution at EL3(8)?
● Different HW solutions for the initial RoT ( SFO17-304)
ENGINEERS AND DEVICES
WORKING TOGETHER
References
1) ARM Trusted Firmware TBB Documentation, Design Guide, User Guide
○ https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/trusted-board-boot.rst
○ https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/auth-framework.rst
○ https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/user-guide.rst
2) LCA14-105: UEFI secure boot
○ http://connect.linaro.org/resource/lca14/lca14-105-uefi-secure-boot/
3) LAS16-200: UEFI Secure Boot
○ http://s3.amazonaws.com/connect.linaro.org/las16/Presentations/Tuesday/LAS16-200%20-
%20Firmware%20Summit%20-%20UEFI%20Secure%20Boot.pdf
4) Android Verified Boot: https://source.android.com/security/verifiedboot/
5) AVB Codebase and latest updates: https://android.googlesource.com/platform/external/avb/
6) U-Boot Verified Boot: https://lwn.net/Articles/571031/
7) UEFI on Top of U-Boot:
○ https://www.suse.com/docrep/documents/a1f0ledpbe/UEFI%20on%20Top%20of%20U-Boot.pdf
8) UCSB Mobile Boot Loaders Analysis and TEE implementation flaws
○ https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/redini
Thank You
(matteo.carlini@arm.com)
#SFO17
BUD17 keynotes and videos on: connect.linaro.org
For further information: www.linaro.org

More Related Content

What's hot

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
BeagleBone Black Bootloaders
BeagleBone Black BootloadersBeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
Linaro
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
Houcheng Lin
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
Emertxe Information Technologies Pvt Ltd
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
Satpal Parmar
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
Thomas Petazzoni
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
Kernel TLV
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
Linaro
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
Dalton Valadares
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
Wave Digitech
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
Linaro
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
RuggedBoardGroup
 
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
Manish Jaggi
 
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
Linaro
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEEBKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
Linaro
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE
Linaro
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
GlobalLogic Ukraine
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_BootingRashila Rr
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solution
Linaro
 

What's hot (20)

Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
BeagleBone Black Bootloaders
BeagleBone Black BootloadersBeagleBone Black Bootloaders
BeagleBone Black Bootloaders
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
Linux Internals - Part II
Linux Internals - Part IILinux Internals - Part II
Linux Internals - Part II
 
U Boot or Universal Bootloader
U Boot or Universal BootloaderU Boot or Universal Bootloader
U Boot or Universal Bootloader
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
 
TEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source securityTEE - kernel support is now upstream. What this means for open source security
TEE - kernel support is now upstream. What this means for open source security
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
PCI Passthrough and ITS Support in Xen / ARM :Xen Dev Summit 2015 Presentation
 
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)SFO15-TR9: PSCI, ACPI (and UEFI to boot)
SFO15-TR9: PSCI, ACPI (and UEFI to boot)
 
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEEBKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_Booting
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solution
 

Viewers also liked

Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Linaro
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Linaro
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
Linaro
 
Preventing Linux in your car from killing you: The L4Re Open Source Microviso...
Preventing Linux in your car from killing you: The L4Re Open Source Microviso...Preventing Linux in your car from killing you: The L4Re Open Source Microviso...
Preventing Linux in your car from killing you: The L4Re Open Source Microviso...
Linaro
 
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
Linaro
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108
Linaro
 

Viewers also liked (6)

Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100Internet of Tiny Linux (IoTL): Episode IV  - SFO17-100
Internet of Tiny Linux (IoTL): Episode IV - SFO17-100
 
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112Using SoC Vendor HALs in the Zephyr Project - SFO17-112
Using SoC Vendor HALs in the Zephyr Project - SFO17-112
 
Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102Deploy STM32 family on Zephyr - SFO17-102
Deploy STM32 family on Zephyr - SFO17-102
 
Preventing Linux in your car from killing you: The L4Re Open Source Microviso...
Preventing Linux in your car from killing you: The L4Re Open Source Microviso...Preventing Linux in your car from killing you: The L4Re Open Source Microviso...
Preventing Linux in your car from killing you: The L4Re Open Source Microviso...
 
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113New Zephyr features: LWM2M / FOTA Framework - SFO17-113
New Zephyr features: LWM2M / FOTA Framework - SFO17-113
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108
 

Similar to Secure Boot on ARM systems – Building a complete Chain of Trust upon existing industry standards using open-source firmware - SFO17-201

Secure boot general
Secure boot generalSecure boot general
Secure boot general
Prabhu Swamy
 
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Neil Armstrong
 
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
 
U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0
GlobalLogic Ukraine
 
FIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclaveFIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure Enclave
wolfSSL
 
Sw update elce2017
Sw update elce2017Sw update elce2017
Sw update elce2017
Stefano Babic
 
Configure ssh cell
Configure ssh cellConfigure ssh cell
Configure ssh cell
Andre Septian
 
TC and TPM.ppt
TC and TPM.pptTC and TPM.ppt
TC and TPM.ppt
yhaxpsos
 
Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013
Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013
Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013Fatma Ceylan
 
We will charge you. How to [b]reach vendor’s network using EV charging station.
We will charge you. How to [b]reach vendor’s network using EV charging station.We will charge you. How to [b]reach vendor’s network using EV charging station.
We will charge you. How to [b]reach vendor’s network using EV charging station.
DefCamp
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
Vladimir Shakhov
 
ELC_NA-2015-AFT_for_CI-Igor.Stoppa
ELC_NA-2015-AFT_for_CI-Igor.StoppaELC_NA-2015-AFT_for_CI-Igor.Stoppa
ELC_NA-2015-AFT_for_CI-Igor.StoppaIgor Stoppa
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
Linaro
 
Bkk16 309B Enterprise Firmware - The gold standard and how to get there
Bkk16 309B Enterprise Firmware - The gold standard and how to get thereBkk16 309B Enterprise Firmware - The gold standard and how to get there
Bkk16 309B Enterprise Firmware - The gold standard and how to get there
Linaro
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
Robert Bohne
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
NETWAYS
 
Tkos secure boot_lecture_20190605
Tkos secure boot_lecture_20190605Tkos secure boot_lecture_20190605
Tkos secure boot_lecture_20190605
benavrhm
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
RuggedBoardGroup
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
Emertxe Information Technologies Pvt Ltd
 

Similar to Secure Boot on ARM systems – Building a complete Chain of Trust upon existing industry standards using open-source firmware - SFO17-201 (20)

Secure boot general
Secure boot generalSecure boot general
Secure boot general
 
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
Elc Europe 2020 : u-boot- porting and maintaining a bootloader for a multimed...
 
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...
 
U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0U-boot and Android Verified Boot 2.0
U-boot and Android Verified Boot 2.0
 
FIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclaveFIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure Enclave
 
Sw update elce2017
Sw update elce2017Sw update elce2017
Sw update elce2017
 
Configure ssh cell
Configure ssh cellConfigure ssh cell
Configure ssh cell
 
TC and TPM.ppt
TC and TPM.pptTC and TPM.ppt
TC and TPM.ppt
 
Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013
Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013
Dw1601 dw1702 dw1703_dw1705_and_dw1901_release_notes_rc_win7_combo_07_15_2013
 
We will charge you. How to [b]reach vendor’s network using EV charging station.
We will charge you. How to [b]reach vendor’s network using EV charging station.We will charge you. How to [b]reach vendor’s network using EV charging station.
We will charge you. How to [b]reach vendor’s network using EV charging station.
 
Slimline Open Firmware
Slimline Open FirmwareSlimline Open Firmware
Slimline Open Firmware
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
 
ELC_NA-2015-AFT_for_CI-Igor.Stoppa
ELC_NA-2015-AFT_for_CI-Igor.StoppaELC_NA-2015-AFT_for_CI-Igor.Stoppa
ELC_NA-2015-AFT_for_CI-Igor.Stoppa
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
 
Bkk16 309B Enterprise Firmware - The gold standard and how to get there
Bkk16 309B Enterprise Firmware - The gold standard and how to get thereBkk16 309B Enterprise Firmware - The gold standard and how to get there
Bkk16 309B Enterprise Firmware - The gold standard and how to get there
 
OpenShift 4 installation
OpenShift 4 installationOpenShift 4 installation
OpenShift 4 installation
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
Tkos secure boot_lecture_20190605
Tkos secure boot_lecture_20190605Tkos secure boot_lecture_20190605
Tkos secure boot_lecture_20190605
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 

More from Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Linaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Linaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Linaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
Linaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
Linaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
Linaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 

More from Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Recently uploaded

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 

Recently uploaded (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 

Secure Boot on ARM systems – Building a complete Chain of Trust upon existing industry standards using open-source firmware - SFO17-201

  • 1. Secure Boot on Arm systems Matteo Carlini (Arm)
  • 2. ENGINEERS AND DEVICES WORKING TOGETHER Agenda ● Introduction & Scope of work ● Arm Trusted Board Boot (PKI, CoT, Authentication Flow) ● Arm Trusted Firmware implementation ● UEFI Secure Boot (PKI, CoT, Authentication Flow) ● UEFI Secure Boot on Arm – EDK2 recap ● Complete CoT ● Secure Variable Storage ● Other OSS Solutions (Android, U-Boot) ● Next steps
  • 3. ENGINEERS AND DEVICES WORKING TOGETHER Introduction ● Secure Boot  a mechanism to build (and maintain!) a complete Chain of Trust on all the software layers executed in a system, preventing malicious code to be stored and loaded in place of the authenticated one ● Security through existing specifications, industry standards & OSS ○ Interoperability (same OS/Software on different Platforms/Firmware) ○ Common Secure Boot and Secure Firmware Update Interfaces  Reduced integration effort ○ Stability, frequent updates, wide usage  Reduced maintenance cost Enterprise/Networking Embedded Mobile/Client UEFI Secure Boot Secure/Verified Boot (UEFI?) Verified Boot
  • 4. ENGINEERS AND DEVICES WORKING TOGETHER Scope of Work Apps OS/RTOS Trusted Software TrustZone Extended Root of Trust iROT TrustZone CryptoCell Keys Hardware Arm Trusted Firmware Trusted OS UEFI Firmware OS Apps Trusted Apps TBSA & RoT TBBR UEFI TrustZone- basedTEE ARMv8-A Architecture
  • 5. ENGINEERS AND DEVICES WORKING TOGETHER Scope of Work Apps OS/RTOS Trusted Software TrustZone Extended Root of Trust iROT TrustZone CryptoCell Keys Hardware Arm Trusted Firmware Trusted OS OS Apps Trusted Apps TBSA & RoT TBBR TrustZone- basedTEE ARMv8-A Architecture UEFI Firmware UEFI
  • 6. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Board Boot vs UEFI Secure Boot ● TWO DISTINCT MECHANISMS : different Key/Certificates & PKI ● SAME GOAL : verifying the authenticity and integrity of a software/firmware image before allowing its runtime execution ● DIFFERENT TARGET IMAGES ● Combined together they enable a full Secure Boot establishing a complete Chain Of Trust (despite different PKI) from the very first firmware executed up to the OS HARDWARE UEFI Firmware (BL33) OS Arm TF (BLx stages) BL1 UEFI Driver UEFI App OS Loader UEFI Secure Boot Arm TBB App1 App2 App3 RoT
  • 7. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Board Boot ● Based on Arm TBSA/TBRR documents (available under NDA) ○ TBBR-Client specification (DEN0006C) reference for Arm Trusted Firmware implementation ● Arm TBB: a reference example on how to build a CoT from the very first ROM firmware executed (BL1) up to the first normal world firmware (BL33) ● SBBR recent implications (ARMServerAC): ○ v1.1 will generically mandate the use of a “complete cascading Chain of Trust from the initial firmware up to the first normal world firmware” ○ Arm TBB and Arm Trusted Firmware provide a reference implementation ○ Other 3rd party solutions (BL1/BL2) will also be accepted as long as they start from an HW RoT and allow a complete verification up to the UEFI compliant firmware (BL33)
  • 8. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Firmware TBB – PKI Details ● 2 implicitly trusted components (tamper proof) 1. Root Of Trust Public Key (ROTPK) with SHA-256 hash stored on trusted registers 2. Boot Loader Stage 1 (BL1) stored on trusted ROM ● 2 Certificates pairs for each BL3x image 1. Key Certificate ■ Holds the BL3xpub key needed to validate the corresponding Content Certificate 2. Content Certificate ■ Holds the BL3x image hash to be verified against the hash of the loaded image ● 2 Key pairs used to sign/validate Key Certificates 1. Trusted World Key pair (TWpub/priv) used for BL31 & BL32 Key Certificates 2. Normal World Key pair (NWpub/priv) used for BL33 Key Certificate ● Public Keys and hashes are included as extensions to X.509 certificates ● Certificates are self-signed: no need for a valid CA
  • 9. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Firmware TBB – Authentication Flow ● BL1 responsible for authenticating BL2 stage 1. BL1 verifies ROTPK in BL2 Content Certificate against ROTPK stored hash 2. BL1 verifies BL2 Content Certificate using enclosed ROTPK 3. BL1 loads BL2 and performs its hash verification 4. Execution is transferred to BL2 ● BL2 responsible for authenticating BL3x stages (BL31, BL32, BL33) 1. BL2 verifies ROTPK in Trusted Key Certificate against ROTPK stored hash 2. BL2 verifies Trusted Key Certificate using enclosed ROTPK and saves TWpub /NTWpub 3. BL2 verifies BL3x (BL31/BL32) Key Certificate using TWpub 4. BL2 verifies BL3x (BL31/BL32) Content certificate using enclosed BL3xpub key 5. BL2 extracts and saves BL3x hash used for BL3x (BL31/BL32) image verification 6. BL2 verifies BL33 Key Certificate using NTWpub 7. BL2 verifies BL33 Content certificate using enclosed BL33pub key 8. BL2 extracts and saves BL33 hash used for BL33 image verification ○ Execution is transferred to verified BL3x  BL33 images
  • 10. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Firmware TBB – How it works (BL1) Secure ROM ROTPKSHA-256 BL1 Implicitly Trusted components BL3xpriv Secure world Images BLKeyPub BLxHASH Key Certs Content Certs Reset BL3x ROTpriv ROTPK BL2HASH ROTpriv TWpriv BL3xpub NWpriv BL33pub BL3xHASH BL2 Normal world BL33priv BL33HASH 2 3 4 Exec Legenda Hash check EL3 Execution S-EL1 Execution BL images EL2 Execution BL33 1 Trusted Key Cert ROTPK TWpub NWpub
  • 11. ENGINEERS AND DEVICES WORKING TOGETHER TWpriv BL3xpub Arm Trusted Firmware TBB – How it works (BL2) Secure ROM ROTPKSHA-256 BL1 Implicitly Trusted components Trusted Key Cert BL3xpriv Secure world Images BLKeyPub BLxHASH Key Certs Content Certs Reset ROTPK TWpub NWpub BL3x ROTpriv ROTpriv BL3xHASH BL2 For each BL3x stage Normal world Exec2 4 3 5 Legenda Hash check EL3 Execution S-EL1 Execution BL images EL2 Execution BL33 BL33priv BL33HASH NWpriv BL33pub ROTPK BL2HASH 1
  • 12. ENGINEERS AND DEVICES WORKING TOGETHER Trusted Key Cert ROTPK TWpub NWpub NWpriv BL33pub BL33priv BL33HASH Arm Trusted Firmware TBB – How it works (BL2) Secure ROM ROTPKSHA-256 BL1 Implicitly Trusted components BL3xpriv Secure world Images EL3 Execution BLKeyPub BLxHASH Legenda S-EL1 Execution BL images Key Certs Content Certs BL33 Normal world Reset EL2 Execution BL3x ROTpriv ROTpriv BL3xHASH BL2 Exec 6 8 Hash check TWpriv BL3xpub 7 ROTPK BL2HASH
  • 13. ENGINEERS AND DEVICES WORKING TOGETHER Trusted Key Cert ROTPK TWpub NWpub Arm Trusted Firmware TBB – How it works (BL3x) Secure ROM ROTPKSHA-256 BL1 Implicitly Trusted components BL3xpriv Secure world Images BLKeyPub BLxHASH Key Certs Content Certs Normal world Reset BL3x ROTpriv ROTpriv BL3xHASH BL2 Exec Legenda Hash check EL3 Execution S-EL1 Execution BL images EL2 Execution BL33 BL33priv BL33HASH NWpriv BL33pub TWpriv BL3xpub ROTPK BL2HASH
  • 14. ENGINEERS AND DEVICES WORKING TOGETHER Trusted Key Cert ROTPK TWpub NWpub Arm Trusted Firmware TBB – How it works (BL33) Secure ROM ROTPKSHA-256 BL1 Implicitly Trusted components BL3xpriv Secure world Images BLKeyPub BLxHASH Key Certs Content Certs Normal world Reset BL3x ROTpriv ROTpriv BL3xHASH BL2 Exec Legenda Hash check EL3 Execution S-EL1 Execution BL images EL2 Execution BL33 BL33priv BL33HASH NWpriv BL33pub TWpriv BL3xpub ROTPK BL2HASH
  • 15. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Firmware Implementation Overview ● TBB working properly on BL1/BL2 on both AArch64 & AArch32! ○ JUNO and FVP Platforms TBB example running in AArch32 state on GitHub! ● Build flags (summary) ○ TRUSTED_BOARD_BOOT=1 to enable BL1+BL2 TBB support ○ GENERATE_COT=1 build and execute cert_create tool (see below) ○ XXX_KEYS=[path] used to specify location of keys in PEM format ○ Have a look at the user guide(1)! ● Tools: ○ cert_Create too: BL images and Keys as input  Certificates as output ○ Fiptool: Certificates as input  FIP (Firmware Image Package) ● Pre-integration of TBB with the Arm TrustZone CryptoCell product (CC-712) to take advantage of its HW RoT and crypto acceleration services
  • 16. ENGINEERS AND DEVICES WORKING TOGETHER UEFI Secure Boot 1. A platform ownership model for establishing a trust relationship among: ■ Platform Owner (ODM/OEM/EndUser) – PO ■ Platform Firmware (EDK2 / U-Boot / 3rd party BIOS) – PF ■ OS / 3rd party software vendors – OSV/ISV  SV ○ Uses standard PKI, X.509 certificates and PE images digital signature, based on PE digest/hash calculation described in Microsoft Authenticode PE Signature Format ○ Signature database (white/black list) update mechanism from trusted sources 2. A generic framework, based on the above model, to allow: 1. The firmware to authenticate UEFI executable images before allowing their execution, preventing pre-boot malwares to be run 2. The Platform Owner and/or SV to securely update the signature databases into PF with new/known allowed/forbidden image signatures
  • 17. ENGINEERS AND DEVICES WORKING TOGETHER UEFI Firmware UEFI Secure Boot – PKI details ● 2 asymmetric key pairs: 1. Platform Key (PK): Trust relationship between PO & PF ■ PKpriv owned by the PO ■ PKpub enrolled into PF 2. Key Exchange Key (KEK): Trust relationship between SV & PF ■ Different KEKpriv for each SV ■ Each SV enrolls KEKpub into PF ● Platform firmware NV variables (on tamper proof storage) to hold: ○ PKpub / KEKpub list ○ Signatures DBs: signatures white/black lists (db/dbx) Enrollment Process SetupMode PF NV variables PO SV PKpriv PKpub KEK1pub SV KEK1priv KEK2priv Signature_DBs: db {} / dbx {} KEK2pub ROT
  • 18. ENGINEERS AND DEVICES WORKING TOGETHER UEFI Firmware UEFI Secure Boot – PKI details (2) ● Using PKpriv/KEKpriv , Signature_DB is updated from trusted sources with allowed/forbidden image signatures, by means of UEFI SetVariable() Runtime service Enrollment Process UserMode PKpriv KEK2priv SetVariable() KEK1priv Signature_DBs: db {} / dbx {} Signature_DBs: db: {Sign1, Sign3} dbx: {Sign2, Sign4} PO SV SV PKpub KEK1pub KEK2pub PF NV variables
  • 19. ENGINEERS AND DEVICES WORKING TOGETHER UEFI Firmware Sign check Sign check UEFI Secure Boot – How it works ● UEFI executable images are verified against Signature_DBs found in the firmware Enrollment Process DeployedMode PKpriv KEK2priv KEK1priv Signature_DBs: db {} / dbx {} Signature_DBs: db: {Sign1, Sign3} dbx: {Sign2, Sign4} UEFI Executable Images OS Loader+ OS Kernel OS Loader+ OS Kernel 2 Sign1 Sign2 UEFI App1 UEFI App2 Sign3 Sign5 Exec PO SV SV PF NV variables
  • 20. ENGINEERS AND DEVICES WORKING TOGETHER UEFI Secure Boot on Arm – EDK2 recap ● LCA14 (from Ard Biesheuvel)(2) ● LAS16 (Ard Biesheuvel)(3)
  • 21. ENGINEERS AND DEVICES WORKING TOGETHER Arm Trusted Firmware – BL31 Complete CoT – Putting all together UEFI FIRMWARE – BL33 Linux Kernel A Linux Kernel B Secure App1 Secure App2 Guest App1 Guest App2 PKpub KEKpub db / dbx ROTPK SHA-256 CC KC KC CC Normal World Secure World Sign1 Sign2 EL0 EL1 EL2 S-EL0 EL3 TBB BL1 S-EL1TBB BL2 CC S-EL1 payload (BL32)
  • 22. ENGINEERS AND DEVICES WORKING TOGETHER Secure Variable access Arm Trusted Firmware – BL31 Linux Kernel A Linux Kernel B Secure Partition Variable access Guest App1 Guest App2 KEKpub db / dbx TBB BL2 Normal World Secure World TBB BL1 EL0 EL1 EL2 EL3 PKpub ROTPK SHA-256 Secure Partition Manager SVC Trampoline – BL31 SetVariable() UEFI FIRMWARE – BL33 Arm MM Interface S-EL0 S-EL1 Secure Storage
  • 23. ENGINEERS AND DEVICES WORKING TOGETHER Other OSS Solutions ● Android Verified Boot(4) on AOSP: ○ De-facto industry standard for Mobile secure boot path since Android 4.4/5.0 ○ CoT starting from OEM public key (tamper proof) to verify android boot image ○ Device State (LOCKED/UNLOCKED) must be protected not to break the CoT ○ On newer versions (8.0) also Rollback protection available(5) ● U-Boot Verified Boot(6) ○ CoT starting from trusted U-Boot image (BL33) carrying initial public key (tamper proof) ○ Usual image verification chain then follows ○ No specified platform ownership model for updating keys in field ● U-Boot Secure Boot? ○ Leveraging “UEFI on Top on U-Boot”(7) work, with SetVariable extension? ○ Plugging shim over UEFI-enabled U-Boot to handle key management?  Convergence of Embedded and Enterprise secure boot flows!
  • 24. ENGINEERS AND DEVICES WORKING TOGETHER Plans & Next Steps ● Software side: ○ Arm open-source reference platform software of TBB+UEFI Secure Boot with Secure Variable storage access from Secure Partition ○ Investigate U-Boot based solution for Embedded/Mobile ○ Future: Secure Firmware Update (FWU vs UEFI Signed Capsule Update) ● Specification side: ○ TBBR/SBBR updates & possible Server side TBBR/TBSA ○ Interactions with TCG TPM & Measured Boot ○ What level of standardization required on the Firmware side for a TBB solution? ■ A guidance on which authentication steps to be executed at each ELx/BLx to avoid arbitrary code execution at EL3(8)? ● Different HW solutions for the initial RoT ( SFO17-304)
  • 25. ENGINEERS AND DEVICES WORKING TOGETHER References 1) ARM Trusted Firmware TBB Documentation, Design Guide, User Guide ○ https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/trusted-board-boot.rst ○ https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/auth-framework.rst ○ https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/user-guide.rst 2) LCA14-105: UEFI secure boot ○ http://connect.linaro.org/resource/lca14/lca14-105-uefi-secure-boot/ 3) LAS16-200: UEFI Secure Boot ○ http://s3.amazonaws.com/connect.linaro.org/las16/Presentations/Tuesday/LAS16-200%20- %20Firmware%20Summit%20-%20UEFI%20Secure%20Boot.pdf 4) Android Verified Boot: https://source.android.com/security/verifiedboot/ 5) AVB Codebase and latest updates: https://android.googlesource.com/platform/external/avb/ 6) U-Boot Verified Boot: https://lwn.net/Articles/571031/ 7) UEFI on Top of U-Boot: ○ https://www.suse.com/docrep/documents/a1f0ledpbe/UEFI%20on%20Top%20of%20U-Boot.pdf 8) UCSB Mobile Boot Loaders Analysis and TEE implementation flaws ○ https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/redini
  • 26. Thank You (matteo.carlini@arm.com) #SFO17 BUD17 keynotes and videos on: connect.linaro.org For further information: www.linaro.org