SlideShare a Scribd company logo
1 of 23
Download to read offline
IoT devices:
secure boot and sw maintenance.
Open IoT Summit
Igor Stoppa
Ostro Project The topics and solutions discussed in
this presentation stem from the
Development of the Ostro Project.
Each topic is meaningful also per-se,
applied to a generic Linux distro.
However, they coalesce and find
mutual support under the broader
umbrella of creating the Ostro OS.
https://ostroproject.org/
What is an “IoT device”?
“Physical object that features an IP address for
internet connectivity and communicates with
other similar objects and/or other
internet-enabled devices and systems.”
IoT devices - old and new challenges
Usual maintenance tasks:
● Deploy a device
● Install/Remove/Update sw components.
● Manage its configuration.
Reliably and safely.
What makes the difference
Growing disparity between number of devices and administrators.
Critical services must work reliably, unattended ...
… but new functionality / interactions must be easy to add.
As the same time, systems become more complex,what was
running an RTOS, now runs Linux, their attack surface grows.
There is need for a simplified mechanisms to
deliver/update SW components frequently.
SW Management - “SW Update”
“SW Update” is the sw management solution used by Clear Linux.
Clear Linux:
● Linux distribution maintained by Intel
● focused on Cloud
● showcase for new technologies
● specifically tweaked for Intel HW
https://clearlinux.org/
http://www.phoronix.com/scan.php?page=article&item=10-way-2016&num=6
SW Management - Packages
What’s wrong with packages?
● Typically, Linux distributions rely on SW packages
● Packages have fine granularity:
It takes several packages for deploying a macro functionality.
● Opens up possibility for package clashes or mismatches
Doable, but not trivial and requires expertise.
SW Management - Bundles
What is a Bundle?
● A set of files, taken from an installation.
It provides a high-level functionality, handled in one logical unit.
● Each Bundles is defined through a manifests.
Each manifest contains a reference and a checksum,
for each file that belongs to the bundle.
● Bundles can partially overlap, for example when including
shared libraries.
Example of Bundles
Core OS
Bundle
(Unremovable)
A1
A3 A4
A5
B
C2
D
C1
A2
Ai
= cannot be removed
D, Cj
= optional bundles
(removable)
B = purged when
both D, and Cj
are
removed
Bundle 3
Bundle 1
Bundle 2
SW Management - Bundles vs Files
● Files are hashed and handled through all the update process
with their hash.
● The hash calculation depends also on the timestamp of the file
and its attributes: both plain and extended.
● When a Bundle includes a file, the reference is placed in the
manifest corresponding to the bundle.
● Using information from the manifests, it is possible to verify and
restore the files belonging to the bundles installed.
SW Management - SW Updates
● Given two releases of the same SW, a binary diff-ing phase
generates a set of deltas, containing all the changes detected.
● There is always an update available, from the “version 0”
baseline. It means a full update and assumes that everything
must be deployed anew.
● For each release, it is possible to define which others can update
to it through binary delta updates.
Lack of binary delta update means having to download the full
version of those files that have changed.
SW Management - Example
Version 0 Version
N - 2
Version
N - 1
Version N
Version
N - 3
Version
N - 4
● Each version provides a direct upgrade path from the previous 2
● Each version can also be achieved with a full update from “Version 0”
The Ostro Spin of SW Update
● Ostro provides:
○ Tools, sources, SSTATE cache to OEMs/ODMs for creating and signing
own distro - Ex: Home automation system, Home Gateway, etc.
○ Reference set of images, for evaluation/early development.
These images are built by Intel and are not meant for direct deployment
to consumer devices.
○ The SSTATE from Ostro is not signed, so the OEM/ODM can reuse it and
apply own signature to the swupd stream.
Disk Image Layout
GPT
EFI
Alternate EFI
RootFS
Backup GPT
Partition Table
Active Boot Partition
(Recognised by the BIOS)0xEF00
0x2700
0x8300
Alternate Boot Partition
(NOT recognised by the BIOS)
Active Boot Partition
(Recognised by the BIOS)
Single EFI application: Typical System
EFI BIOS
EFI BootLoader
Kernel Command Line Initramfs Kernel
Rootfs
Load, Validate & Execute
Load, Validate & ExecuteLoad & Validate
Load & Validate
Pivot
Root
Execute
Single EFI application (Ostro)
EFI BIOS
EFI Stub
Kernel Command Line
Initramfs
Kernel
Rootfs
Load, Validate & Execute
Single, signed UEFI
application
Pivot
Root
Disk Image Layout - EFI App update - 1
GPT
EFI
Alternate EFI
RootFS
Backup GPT
Partition Table
0xEF00
0x2700
0x8300
Contains the EFI application file
tracked by swupd
Disk Image Layout - EFI App update - 2
GPT
EFI
Alternate EFI
RootFS
Backup GPT
Partition Table
Still old EFI App
0xEF00
0x2700
0x8300
After SW Update pass, new App
Disk Image Layout - EFI App update - 3
GPT
EFI
EFI
RootFS
Backup GPT
Partition Table
0x2700
0xEF00
0x8300
After SW Update pass, new App
1) New App copied to Alternate EFI
2) Swap types of Alternate and “real”
EFI partitions
3) reboot
Next Steps
● Consolidate and merge upstream
○ Ostro image layout handling (to OE)
○ SW Update (separate layer in OE)
○ Handling of EFI single binary (to Clear Linux)
● Additional hardening (recover rootfs from initramfs)
Q/A
Thank You!

More Related Content

What's hot

Trusted Virtual Domains on OpenSolaris: Usable Secure Desktop Environments
Trusted Virtual Domains on OpenSolaris: Usable Secure Desktop EnvironmentsTrusted Virtual Domains on OpenSolaris: Usable Secure Desktop Environments
Trusted Virtual Domains on OpenSolaris: Usable Secure Desktop Environments
Marcel Winandy
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmware
Linaro
 
Microprocessor.ppt
Microprocessor.pptMicroprocessor.ppt
Microprocessor.ppt
safia kalwar
 

What's hot (10)

Swiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCSSwiss National Supercomputing Centre CSCS
Swiss National Supercomputing Centre CSCS
 
High Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux KernelHigh Performance Storage Devices in the Linux Kernel
High Performance Storage Devices in the Linux Kernel
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
Trusted Virtual Domains on OpenSolaris: Usable Secure Desktop Environments
Trusted Virtual Domains on OpenSolaris: Usable Secure Desktop EnvironmentsTrusted Virtual Domains on OpenSolaris: Usable Secure Desktop Environments
Trusted Virtual Domains on OpenSolaris: Usable Secure Desktop Environments
 
Multi core processor
Multi core processorMulti core processor
Multi core processor
 
Hardware Probing in the Linux Kernel
Hardware Probing in the Linux KernelHardware Probing in the Linux Kernel
Hardware Probing in the Linux Kernel
 
BUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmwareBUD17-510: Power management in Linux together with secure firmware
BUD17-510: Power management in Linux together with secure firmware
 
Microprocessor.ppt
Microprocessor.pptMicroprocessor.ppt
Microprocessor.ppt
 
IBM publishes leadership 4-processor score for SPECvirt_sc2010 benchmark. IBM...
IBM publishes leadership 4-processor score for SPECvirt_sc2010 benchmark. IBM...IBM publishes leadership 4-processor score for SPECvirt_sc2010 benchmark. IBM...
IBM publishes leadership 4-processor score for SPECvirt_sc2010 benchmark. IBM...
 
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecksKernel Recipes 2015: Solving the Linux storage scalability bottlenecks
Kernel Recipes 2015: Solving the Linux storage scalability bottlenecks
 

Viewers also liked

Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57
Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57
Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57
Resgate Cambuí
 
Rapid IoT Application Development with IBM Bluemix - Mikko Poutanen
Rapid IoT Application Development with IBM Bluemix - Mikko PoutanenRapid IoT Application Development with IBM Bluemix - Mikko Poutanen
Rapid IoT Application Development with IBM Bluemix - Mikko Poutanen
WithTheBest
 

Viewers also liked (20)

Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57
Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57
Resultado de julgamento_de_habilitacao_2013-10-25_22_56_57
 
去年的树
去年的树去年的树
去年的树
 
Diafragma, exposición e iso
Diafragma, exposición e isoDiafragma, exposición e iso
Diafragma, exposición e iso
 
成长的秘密
成长的秘密成长的秘密
成长的秘密
 
Rick's Abs Article
Rick's Abs ArticleRick's Abs Article
Rick's Abs Article
 
Hsi mgf 310815
Hsi   mgf 310815Hsi   mgf 310815
Hsi mgf 310815
 
Aud mgf 020915
Aud   mgf 020915Aud   mgf 020915
Aud mgf 020915
 
MDDOP Certificate
MDDOP CertificateMDDOP Certificate
MDDOP Certificate
 
Aud mgf 180915
Aud   mgf 180915Aud   mgf 180915
Aud mgf 180915
 
Dengue
Dengue Dengue
Dengue
 
【UDC2015】アーバンデータチャレンジ2015 - 牛島清豪
【UDC2015】アーバンデータチャレンジ2015 - 牛島清豪【UDC2015】アーバンデータチャレンジ2015 - 牛島清豪
【UDC2015】アーバンデータチャレンジ2015 - 牛島清豪
 
Iso, apertura y velocidad
Iso, apertura y velocidadIso, apertura y velocidad
Iso, apertura y velocidad
 
Blc u7l28 interrog&demonstrpronouns
Blc u7l28 interrog&demonstrpronounsBlc u7l28 interrog&demonstrpronouns
Blc u7l28 interrog&demonstrpronouns
 
George morris
George morrisGeorge morris
George morris
 
Os ritmos circadianos e a melatonina uma luz na escuridão
Os ritmos circadianos e a melatonina uma luz na escuridãoOs ritmos circadianos e a melatonina uma luz na escuridão
Os ritmos circadianos e a melatonina uma luz na escuridão
 
イノベート・ハブ九州 Bluemix勉強会(第2回)
イノベート・ハブ九州 Bluemix勉強会(第2回)イノベート・ハブ九州 Bluemix勉強会(第2回)
イノベート・ハブ九州 Bluemix勉強会(第2回)
 
Rapid IoT Application Development with IBM Bluemix - Mikko Poutanen
Rapid IoT Application Development with IBM Bluemix - Mikko PoutanenRapid IoT Application Development with IBM Bluemix - Mikko Poutanen
Rapid IoT Application Development with IBM Bluemix - Mikko Poutanen
 
A somatotropina (hormônio do crescimento, o gh) por r dna tem proporcionado s...
A somatotropina (hormônio do crescimento, o gh) por r dna tem proporcionado s...A somatotropina (hormônio do crescimento, o gh) por r dna tem proporcionado s...
A somatotropina (hormônio do crescimento, o gh) por r dna tem proporcionado s...
 
medico social problems of elderly in india
medico social problems of elderly in indiamedico social problems of elderly in india
medico social problems of elderly in india
 
Spinal poisons
Spinal poisonsSpinal poisons
Spinal poisons
 

Similar to -OpenIoT Summit - IoT devices- secure boot and sw maintenance_0

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
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
Pascal Rapicault
 
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
Igor Stoppa
 

Similar to -OpenIoT Summit - IoT devices- secure boot and sw maintenance_0 (20)

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...
 
IRJET - Development of Embedded Linux System from Bare Board
IRJET - Development of Embedded Linux System from Bare BoardIRJET - Development of Embedded Linux System from Bare Board
IRJET - Development of Embedded Linux System from Bare Board
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
 
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
开放原码手机操作系统 Ubuntu Phone 架构、移植与刷机
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineering
 
Managing Your Runtime With P2
Managing Your Runtime With P2Managing Your Runtime With P2
Managing Your Runtime With P2
 
Developing TI RTOS Applications and BLE Profiles
Developing TI RTOS Applications and BLE ProfilesDeveloping TI RTOS Applications and BLE Profiles
Developing TI RTOS Applications and BLE Profiles
 
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
Bsp customization and porting of linux on arm cortex based i.mx6 processor wi...
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
 
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
 
Developing, testing and distributing elasticsearch beats in a complex, heter...
Developing, testing and distributing elasticsearch beats in  a complex, heter...Developing, testing and distributing elasticsearch beats in  a complex, heter...
Developing, testing and distributing elasticsearch beats in a complex, heter...
 
MSI / Windows Installer for NGN 'Dummies'
MSI / Windows Installer for NGN 'Dummies'MSI / Windows Installer for NGN 'Dummies'
MSI / Windows Installer for NGN 'Dummies'
 
Software update for embedded systems - elce2014
Software update for embedded systems - elce2014Software update for embedded systems - elce2014
Software update for embedded systems - elce2014
 
p2, modular provisioning for OSGi
p2, modular provisioning for OSGip2, modular provisioning for OSGi
p2, modular provisioning for OSGi
 
Inptools Manual
Inptools ManualInptools Manual
Inptools Manual
 
Tegra 250 hw_setup
Tegra 250 hw_setupTegra 250 hw_setup
Tegra 250 hw_setup
 
Slimline Open Firmware
Slimline Open FirmwareSlimline Open Firmware
Slimline Open Firmware
 
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)
Study notes for CompTIA Certified Advanced Security Practitioner  (ver2)Study notes for CompTIA Certified Advanced Security Practitioner  (ver2)
Study notes for CompTIA Certified Advanced Security Practitioner (ver2)
 
Sys cat i181e-en-07+sysmac studio
Sys cat i181e-en-07+sysmac studioSys cat i181e-en-07+sysmac studio
Sys cat i181e-en-07+sysmac studio
 
Why you should use the Yocto Project
Why you should use the Yocto ProjectWhy you should use the Yocto Project
Why you should use the Yocto Project
 

-OpenIoT Summit - IoT devices- secure boot and sw maintenance_0

  • 1. IoT devices: secure boot and sw maintenance. Open IoT Summit Igor Stoppa
  • 2.
  • 3. Ostro Project The topics and solutions discussed in this presentation stem from the Development of the Ostro Project. Each topic is meaningful also per-se, applied to a generic Linux distro. However, they coalesce and find mutual support under the broader umbrella of creating the Ostro OS. https://ostroproject.org/
  • 4. What is an “IoT device”? “Physical object that features an IP address for internet connectivity and communicates with other similar objects and/or other internet-enabled devices and systems.”
  • 5. IoT devices - old and new challenges Usual maintenance tasks: ● Deploy a device ● Install/Remove/Update sw components. ● Manage its configuration. Reliably and safely.
  • 6. What makes the difference Growing disparity between number of devices and administrators. Critical services must work reliably, unattended ... … but new functionality / interactions must be easy to add. As the same time, systems become more complex,what was running an RTOS, now runs Linux, their attack surface grows. There is need for a simplified mechanisms to deliver/update SW components frequently.
  • 7. SW Management - “SW Update” “SW Update” is the sw management solution used by Clear Linux. Clear Linux: ● Linux distribution maintained by Intel ● focused on Cloud ● showcase for new technologies ● specifically tweaked for Intel HW https://clearlinux.org/ http://www.phoronix.com/scan.php?page=article&item=10-way-2016&num=6
  • 8. SW Management - Packages What’s wrong with packages? ● Typically, Linux distributions rely on SW packages ● Packages have fine granularity: It takes several packages for deploying a macro functionality. ● Opens up possibility for package clashes or mismatches Doable, but not trivial and requires expertise.
  • 9. SW Management - Bundles What is a Bundle? ● A set of files, taken from an installation. It provides a high-level functionality, handled in one logical unit. ● Each Bundles is defined through a manifests. Each manifest contains a reference and a checksum, for each file that belongs to the bundle. ● Bundles can partially overlap, for example when including shared libraries.
  • 10. Example of Bundles Core OS Bundle (Unremovable) A1 A3 A4 A5 B C2 D C1 A2 Ai = cannot be removed D, Cj = optional bundles (removable) B = purged when both D, and Cj are removed Bundle 3 Bundle 1 Bundle 2
  • 11. SW Management - Bundles vs Files ● Files are hashed and handled through all the update process with their hash. ● The hash calculation depends also on the timestamp of the file and its attributes: both plain and extended. ● When a Bundle includes a file, the reference is placed in the manifest corresponding to the bundle. ● Using information from the manifests, it is possible to verify and restore the files belonging to the bundles installed.
  • 12. SW Management - SW Updates ● Given two releases of the same SW, a binary diff-ing phase generates a set of deltas, containing all the changes detected. ● There is always an update available, from the “version 0” baseline. It means a full update and assumes that everything must be deployed anew. ● For each release, it is possible to define which others can update to it through binary delta updates. Lack of binary delta update means having to download the full version of those files that have changed.
  • 13. SW Management - Example Version 0 Version N - 2 Version N - 1 Version N Version N - 3 Version N - 4 ● Each version provides a direct upgrade path from the previous 2 ● Each version can also be achieved with a full update from “Version 0”
  • 14. The Ostro Spin of SW Update ● Ostro provides: ○ Tools, sources, SSTATE cache to OEMs/ODMs for creating and signing own distro - Ex: Home automation system, Home Gateway, etc. ○ Reference set of images, for evaluation/early development. These images are built by Intel and are not meant for direct deployment to consumer devices. ○ The SSTATE from Ostro is not signed, so the OEM/ODM can reuse it and apply own signature to the swupd stream.
  • 15. Disk Image Layout GPT EFI Alternate EFI RootFS Backup GPT Partition Table Active Boot Partition (Recognised by the BIOS)0xEF00 0x2700 0x8300 Alternate Boot Partition (NOT recognised by the BIOS) Active Boot Partition (Recognised by the BIOS)
  • 16. Single EFI application: Typical System EFI BIOS EFI BootLoader Kernel Command Line Initramfs Kernel Rootfs Load, Validate & Execute Load, Validate & ExecuteLoad & Validate Load & Validate Pivot Root Execute
  • 17. Single EFI application (Ostro) EFI BIOS EFI Stub Kernel Command Line Initramfs Kernel Rootfs Load, Validate & Execute Single, signed UEFI application Pivot Root
  • 18. Disk Image Layout - EFI App update - 1 GPT EFI Alternate EFI RootFS Backup GPT Partition Table 0xEF00 0x2700 0x8300 Contains the EFI application file tracked by swupd
  • 19. Disk Image Layout - EFI App update - 2 GPT EFI Alternate EFI RootFS Backup GPT Partition Table Still old EFI App 0xEF00 0x2700 0x8300 After SW Update pass, new App
  • 20. Disk Image Layout - EFI App update - 3 GPT EFI EFI RootFS Backup GPT Partition Table 0x2700 0xEF00 0x8300 After SW Update pass, new App 1) New App copied to Alternate EFI 2) Swap types of Alternate and “real” EFI partitions 3) reboot
  • 21. Next Steps ● Consolidate and merge upstream ○ Ostro image layout handling (to OE) ○ SW Update (separate layer in OE) ○ Handling of EFI single binary (to Clear Linux) ● Additional hardening (recover rootfs from initramfs)
  • 22. Q/A