SlideShare a Scribd company logo
Bootloaders and
Trusted Firmware
David Brown
2019 April 24
Overview
● Signature introduction
● Two worlds: Cortex A and Cortex M
● Trusting your code: The root of trust
● Secure vs Non-secure
● Bootloaders, trusted firmware, and secure code, oh my
A Digital Signature
Image SHA256 Image Hash
32 bytes
EC Private Key
ECDSA
Sign Signature
32 bytes
Verify a Signature
Image
SHA256
Image Hash
32 bytes
EC Public Key
ECDSA
Verify
Signature
32 bytes
Good?
Cortex A vs Cortex M
Cortex A:
● “Big” CPUs
● Typically have:
○ GBs of RAM
○ GBs of storage: SSD/MMC/NAND
○ GHz CPU
○ Multiple cores common
● Think Raspberry Pi, Phones,
96Boards, Android, Linux, etc
Cortex M:
● “Small” CPUs
● Typically have:
○ KBs of RAM
○ MBs of ROM
○ 10-100s of MHz
○ Usually 1 core, some 2
● Think IoT: light bulbs, water meters
● Key here is to reduce cost and power
consumption
Root of trust
● How do we trust the code that is running?
● Chain of trust from first executed code on the system
Chain of Trust
Internal
boot code
Bootloader Trusted Firmware
Non-secure
Operating System
Trusted OS Application
Secure
Non-Secure
Optional
Internal
boot code
Bootloader
Trusted Firmware
Non-secure
Operating System
Trusted OS
Application
Secure Non-secure
Secure, Non-secure Interaction
● Strong memory protection
● Memory protection even of DMA
● Well defined and restricted communication
● Limits code that needs to be trusted
Bootloaders, Cortex-A
● Code resides in file or partition in a large device
● Each stage responsible for verifying the next state
○ BL1: Rom loader in SoC
○ BL2: Trusted firmware
○ BL3-1: Trusted OS/Platform
○ BL3-3: Non-trusted: U-Boot/UEFI
○ : Non-secure OS: Linux
○ : Apps
Bootloaders: Cortex-M
● Lives in a single flash space
● May execute right out of flash
● Fixed partitions and rigid upgrades
● Boot order:
○ Possible on-SoC init ROM
○ MCUboot: Validates 2 images
○ TF-M: Secure application
○ Application
Thank you
Join Linaro to accelerate deployment of your Arm-
based solutions through collaboration
contact@linaro.org

More Related Content

PDF
LAS16 100 K1 - Keynote George Grey
PDF
LAS16-100K1: Welcome Keynote
PPTX
BLE Talk
PPTX
Cat info mgt
PDF
Iot development from prototype to production
PPSX
Computer specifications.ppsx
PDF
2 system-unit.ppt-compatibility-mode
PPTX
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
LAS16 100 K1 - Keynote George Grey
LAS16-100K1: Welcome Keynote
BLE Talk
Cat info mgt
Iot development from prototype to production
Computer specifications.ppsx
2 system-unit.ppt-compatibility-mode
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...

Similar to OpenHours Bootloaders and Secure Firmware (20)

PPTX
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
PPSX
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
PDF
LAS16 109 - The status quo and the future of 96Boards
PDF
LAS16-109: LAS16-109: The status quo and the future of 96Boards
PDF
HKG15: Opening Keynote - George Grey, Linaro CEO
PDF
Caching for Performance Masterclass: The In-Memory Datastore
PDF
IoT Development from Prototype to Production
PDF
Feasibility of Security in Micro-Controllers
PDF
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
PDF
BKK16-110~---3892hnfi2r8ru94jofmcw8ujd.pdf
PPTX
Light Weight Cryptography for IOT.pptx
PDF
Internet Of Things: Hands on: YOW! night
PDF
DevSecCon Boston 2018: Busted computing by Conor Walsh
PPTX
HKG18-223 - Trusted FirmwareM: Trusted boot
PDF
Hardware hacking
PDF
9 semiconductor memory
PPTX
PPT
Peter Gutmann Presentation - CSO Perspectives Roadshow Auckland 9th Mar 2015
PDF
Reverse engineering
PDF
Mob modcon 2015-android rom cooking tutorial
An Introduction to AV1 - The Next-Gen Royalty-Free Codec From the Alliance fo...
09. Memory, Storage (RAM, Cache, HDD, ODD, SSD, Flashdrives)
LAS16 109 - The status quo and the future of 96Boards
LAS16-109: LAS16-109: The status quo and the future of 96Boards
HKG15: Opening Keynote - George Grey, Linaro CEO
Caching for Performance Masterclass: The In-Memory Datastore
IoT Development from Prototype to Production
Feasibility of Security in Micro-Controllers
BKK16-110 A Gentle Introduction to Trusted Execution and OP-TEE
BKK16-110~---3892hnfi2r8ru94jofmcw8ujd.pdf
Light Weight Cryptography for IOT.pptx
Internet Of Things: Hands on: YOW! night
DevSecCon Boston 2018: Busted computing by Conor Walsh
HKG18-223 - Trusted FirmwareM: Trusted boot
Hardware hacking
9 semiconductor memory
Peter Gutmann Presentation - CSO Perspectives Roadshow Auckland 9th Mar 2015
Reverse engineering
Mob modcon 2015-android rom cooking tutorial
Ad

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Machine Learning_overview_presentation.pptx
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Big Data Technologies - Introduction.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
Assigned Numbers - 2025 - Bluetooth® Document
Reach Out and Touch Someone: Haptics and Empathic Computing
20250228 LYD VKU AI Blended-Learning.pptx
Machine Learning_overview_presentation.pptx
A comparative analysis of optical character recognition models for extracting...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
Review of recent advances in non-invasive hemoglobin estimation
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Big Data Technologies - Introduction.pptx
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
Approach and Philosophy of On baking technology
Programs and apps: productivity, graphics, security and other tools
Advanced methodologies resolving dimensionality complications for autism neur...
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
Ad

OpenHours Bootloaders and Secure Firmware

  • 2. Overview ● Signature introduction ● Two worlds: Cortex A and Cortex M ● Trusting your code: The root of trust ● Secure vs Non-secure ● Bootloaders, trusted firmware, and secure code, oh my
  • 3. A Digital Signature Image SHA256 Image Hash 32 bytes EC Private Key ECDSA Sign Signature 32 bytes
  • 4. Verify a Signature Image SHA256 Image Hash 32 bytes EC Public Key ECDSA Verify Signature 32 bytes Good?
  • 5. Cortex A vs Cortex M Cortex A: ● “Big” CPUs ● Typically have: ○ GBs of RAM ○ GBs of storage: SSD/MMC/NAND ○ GHz CPU ○ Multiple cores common ● Think Raspberry Pi, Phones, 96Boards, Android, Linux, etc Cortex M: ● “Small” CPUs ● Typically have: ○ KBs of RAM ○ MBs of ROM ○ 10-100s of MHz ○ Usually 1 core, some 2 ● Think IoT: light bulbs, water meters ● Key here is to reduce cost and power consumption
  • 6. Root of trust ● How do we trust the code that is running? ● Chain of trust from first executed code on the system
  • 7. Chain of Trust Internal boot code Bootloader Trusted Firmware Non-secure Operating System Trusted OS Application Secure Non-Secure Optional
  • 8. Internal boot code Bootloader Trusted Firmware Non-secure Operating System Trusted OS Application Secure Non-secure
  • 9. Secure, Non-secure Interaction ● Strong memory protection ● Memory protection even of DMA ● Well defined and restricted communication ● Limits code that needs to be trusted
  • 10. Bootloaders, Cortex-A ● Code resides in file or partition in a large device ● Each stage responsible for verifying the next state ○ BL1: Rom loader in SoC ○ BL2: Trusted firmware ○ BL3-1: Trusted OS/Platform ○ BL3-3: Non-trusted: U-Boot/UEFI ○ : Non-secure OS: Linux ○ : Apps
  • 11. Bootloaders: Cortex-M ● Lives in a single flash space ● May execute right out of flash ● Fixed partitions and rigid upgrades ● Boot order: ○ Possible on-SoC init ROM ○ MCUboot: Validates 2 images ○ TF-M: Secure application ○ Application
  • 12. Thank you Join Linaro to accelerate deployment of your Arm- based solutions through collaboration contact@linaro.org