SlideShare a Scribd company logo
Mirza Krak
Embedded Solutions Architect
Mender.io
Integrate IoT cloud analytics and over-the-air (OTA) updates with Google and Mender.io
● Over-the-air software updates for IoT and Mender introduction
● Yocto Project introduction
● Google IoT Core and Cloud IoT introduction
● Device authentication integration between Cloud IoT and Mender
Session overview
● Mirza Krak
○ 8 years in Embedded Linux
■ U-boot and Linux kernel
■ Yocto/Buildroot
○ mirza.krak@northern.tech
About me
● mender.io
○ Open-source update manager for
embedded devices
○ Open source (Apache License, v2)
○ Supports a variation of update styles
■ Dual A/B rootfs layout
■ Update Modules (beta)
○ Remote deployment management (server)
○ Under active development
https://northern.tech/careers
We are hiring
Internet of Things (IoT)
The Internet of things (IoT) is the extension of
Internet connectivity into physical devices
and everyday objects. Embedded with
electronics, Internet connectivity, and other
forms of hardware (such as sensors), these
devices can communicate and interact with
others over the Internet, and they can be
remotely monitored and controlled
Source: WikipediaIt means taking all the things in the world and
connecting them to the internet
Connected devices must be remotely updatable
● There will be bugs, vulnerabilities
○ 1-25 per 1000 lines of code*
○ Botnets w/ millions of devices:
Mirai, Hajime, Brickerbot
● 
 and new features
● 
 after device is deployed to the field
*Source: Steve McConnell, Code Complete
Source: Ars Technica
IoT devices are in a harsh environment
● Remote
○ Expensive to reach physically
● Long expected lifetime
○ 5 - 10 years
● Unreliable power
○ Battery
○ Suddenly unplugged
● Unreliable network
○ Intermittent connectivity
○ Low bandwidth
○ Insecure
What can
go wrong?
Criteria for IoT software update management
● Robust and secure
● Atomic installation & consistent across
devices
● Secure transport and codesigning
● Integrates with existing development
environment
● Easy to get started
● Bandwidth consumption
● Downtime during update
What can
go wrong?
General IoT update manager workflow
Detect update
(secure channel)
Download
(secure channel)
Integrity
(e.g. checksum)
Authenticate
(e.g. signature)
DecryptExtract
Install Failure recovery
(e.g. roll back)
Compatibility
check
Sanity checks
Post-install
actions
Pre-install
actions
Must-have
Environment-specific
(Re)Start*
*E.g. reboot, restart service, start container
Mender provides both client and server
● Client-server model
○ Apache 2.0
○ Mender provides both, including web UI
○ No need to “glue” several projects
○ Server can integrate with 3rd party
clients through its REST API
● Supports updating
○ File system images
○ Update Modules (beta)
■ Application updates
■ Containers
■ nd more
Mender uses a dual A/B system layout
● Very robust
○ Fully atomic and consistent
● Integrates well
○ OS, kernel, apps unchanged
○ Needs bootloader “flip” support
○ Partition layout, requires 2x
rootfs storage
● Fairly short downtime (minute)
○ 1 reboot
OS A
(active)
Bootloader
Device/System
OS B
(inactive)
Kernel Kernel
● Mender deploys to inactive partition, then
reboots into it
○ Common design for IoT
○ Used in newer Androids (‘N’ and later)
Mender - server
Mender Devices
Users
API Gateway
TCP 443
DeviceAdm
DeviceAuth
UserAdm
Inventory
Deployments
GUI
Conductor
Storage
Proxy
TCP 9000
Minio
MongoDB
ElasticSearch
Redis
Filesystem
external clients stateless application layer persistent storage
● Microservices
● Only port 433 and 9000
● RESTful API
○ Device API
○ Management API
/api/management/v1/deployments
/api/management/v1/admission
/api/management/v1/devauth/

.
https://docs.mender.io/apis/overview
Yocto Project is a Linux build system
“It's not an embedded Linux
Distribution, It creates a custom one
for you.”
● Structured way to build a Linux
distribution from source, using
software “meta layers”
● Flexible and very portable
between hardware
○ Requires some learning
● Probably the most popular Linux “OS” for
IoT devices
○ Major board manufacturers provide
BSPs as Yocto meta layers
● Mender provides meta-mender for
integrating the Mender client
● Google provides meta-gcp-iot for integrating
Mender and MQTT telemetry application
Google IoT Core
“Cloud IoT Core is a fully managed service that allows you to easily and securely
connect, manage, and ingest data from millions of globally dispersed devices”
● MQTT and HTTP protocols
● scales automatically in response to real-time changes
● industry-standard security protocols protect your data.
Google Cloud IoT (example)
Google IoT Core
Protocol bridge
MQTT protocol endpoint
Automatic load balancing
Global data access with
Pub/Sub
Device manager
Configure individual devices
Update and control devices
Role level access control
Console and APIs for device
deployment and monitoring
Device authentication is complex
● To securely authenticate to cloud services, devices need an identity and credential
tuple
○ Typically a serial number and public/private keypair
● Different cloud services use different identity and credential tuples
● Result: Identity and key management becomes very complex and error-prone
Device authentication in Google IoT Core
Device identity is based on an asymmetric key-pair of
two supported formats:
○ RSA 256 public key wrapped in a X.509v3
certificate
○ Elliptic curve (ECDSA) algorithm using
P-256 and SHA-256 [more efficient,
better suited for small devices]
Credentials may optionally have an expiration
timestamp
A device can have up to 3 credentials associated with
it at a time, allowing for rotation
The service should never need the private key
The sequence shown here is only one way to handle
device provisioning
Device authentication in Google IoT Core
MQTT/HTTP
broker
Verify JWT signature with
public key
Run API Script with
public key files
Create JWT
Secure Sign
JWT
Save device
public key
association
Device Key pair securely
generated in
Microchip ATECC608A or NXP
A71CH
Provisioner Device manager
OK
Create device (deviceid, public key)
OK
Connect (device id, signed JWT)
Connected
Secure element w/
private keys soldered
to the device
Public keys
passed as file
Device authentication in Mender
Unique
client
identity
Unique
client
key pair
Mender
client
IoT device
Trusted
server
cert
Root
certs
Mender server
Mender
config Trusted
server
cert
API
gateway
(nginx)
RSA key unique to this client. Used to sign client
identity in auth requests. Will be tied to client
identity in server.
TLS (https)
1. Auth request:
client identity, signed(client identity)
2. Reject (if client unknown/pending) or issue
JWT auth token to client.
Clients get JWT auth token if:
A. They are preauthorized, or
B. Accepted (once pending) by user/script
Identity attributes (key-value). Identity scheme is
customizable, typically serial number or MAC
address is used. More info: Identity in Mender
Device authentication integration workflow
Device authentication integration workflow
Device authentication integration workflow
Device authentication integration workflow
Device authentication integration workflow
Integration based on common private key
Identity tied to Private Key
(secure on disk or in secure element)
MQTT Client Mender Agent
Mender OTA
Server
Google Cloud
IoT Core
OTA and Firmware ManagementTelemetry and Data plane
Reference integration
Step-by-step tutorial available
bit.ly/mender-google
Thank you
Questions?

More Related Content

PDF
Configuring wifi in open embedded builds
PDF
A million ways to provision embedded linux devices
PDF
Embedded linux build systems
PDF
Mender: The open-source software update solution
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
PDF
Mender; the open-source software update solution
PDF
The ultimate guide to software updates on embedded linux devices
PDF
Mender.io | Develop embedded applications faster | Comparing C and Golang
Configuring wifi in open embedded builds
A million ways to provision embedded linux devices
Embedded linux build systems
Mender: The open-source software update solution
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender; the open-source software update solution
The ultimate guide to software updates on embedded linux devices
Mender.io | Develop embedded applications faster | Comparing C and Golang

What's hot (20)

PDF
Software update for embedded systems - elce2014
PDF
Userspace drivers-2016
PDF
Build your own embedded linux distributions by yocto project
PDF
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
PDF
Emanuele Faranda - Creating network overlays with IoT devices using N2N
PDF
Qubes os presentation_to_clug_20150727
PDF
libreCMC : The Libre Embedded GNU/Linux Distro
PPTX
Eclipse IDE Yocto Plugin
 
PDF
The Yocto Project
PDF
Automotive Grade Linux and systemd
PDF
MikroTik User Guide
PDF
Software update for IoT: the current state of play
PDF
Yocto project and open embedded training
 
ODP
Embedded Android : System Development - Part III
PDF
Kernel Recipes 2013 - Viewing real time ltt trace using gtkwave
PDF
Linux field-update-2015
PDF
SBC 2012 - Malware Memory Forensics (Nguyễn Cháș„n Việt)
PDF
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
PDF
Embedded Android: Android beyond the smartphone
PDF
Run Qt on Linux embedded systems using Yocto
Software update for embedded systems - elce2014
Userspace drivers-2016
Build your own embedded linux distributions by yocto project
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Emanuele Faranda - Creating network overlays with IoT devices using N2N
Qubes os presentation_to_clug_20150727
libreCMC : The Libre Embedded GNU/Linux Distro
Eclipse IDE Yocto Plugin
 
The Yocto Project
Automotive Grade Linux and systemd
MikroTik User Guide
Software update for IoT: the current state of play
Yocto project and open embedded training
 
Embedded Android : System Development - Part III
Kernel Recipes 2013 - Viewing real time ltt trace using gtkwave
Linux field-update-2015
SBC 2012 - Malware Memory Forensics (Nguyễn Cháș„n Việt)
Needle In An Encrypted Haystack: Forensics in a hardened environment (with Fu...
Embedded Android: Android beyond the smartphone
Run Qt on Linux embedded systems using Yocto
Ad

Similar to Integrate IoT cloud analytics and over the-air (ota) updates with google and mender.io (20)

PDF
Iot development from prototype to production
PDF
IoT Development from Prototype to Production
PDF
Secure IOT Gateway
PDF
Developing Interoperable Components for an Open IoT Foundation
PDF
Survey of Operating Systems for the IoT Environment
PDF
Software Updates for Connected Devices - OSCON 2018
PDF
how to implement an IoT architecture
PDF
Software update for IoT Embedded World 2017
PPTX
Creating the open source building blocks for IoT
PDF
WSO2Con EU 2015: IoT in Finance
 
PDF
Successful Industrial IoT Patterns
 
PDF
BKK16-500K2 CTO talk - The End to End Story
 
PDF
Platform for a Connected World
PPTX
Eclipse IoT slide deck [MASTER DECK].pptx
PDF
OSGi and Java in Industrial IoT
PDF
IoT Prototyping using BBB and Debian
PDF
IoT and Embedded OS Lecture - Cristian Toma and George Iosif
PPTX
How to build iot applications with google cloud
PPTX
IoT Developer Survey 2017
PPTX
3 Software Stacks for IoT Solutions
Iot development from prototype to production
IoT Development from Prototype to Production
Secure IOT Gateway
Developing Interoperable Components for an Open IoT Foundation
Survey of Operating Systems for the IoT Environment
Software Updates for Connected Devices - OSCON 2018
how to implement an IoT architecture
Software update for IoT Embedded World 2017
Creating the open source building blocks for IoT
WSO2Con EU 2015: IoT in Finance
 
Successful Industrial IoT Patterns
 
BKK16-500K2 CTO talk - The End to End Story
 
Platform for a Connected World
Eclipse IoT slide deck [MASTER DECK].pptx
OSGi and Java in Industrial IoT
IoT Prototyping using BBB and Debian
IoT and Embedded OS Lecture - Cristian Toma and George Iosif
How to build iot applications with google cloud
IoT Developer Survey 2017
3 Software Stacks for IoT Solutions
Ad

More from Mender.io (8)

PDF
Why the yocto project for my io t project elc_edinburgh_2018
PDF
Strategies for developing and deploying your embedded applications and images
PDF
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
PDF
Embedded Linux Build Systems - Texas Linux Fest 2018
PDF
Linux IoT Botnet Wars - ESC Boston 2018
PDF
Securing the Connected Car - SCaLE 2018
PDF
Mender.io | Securing the Connected Car
PDF
Linux IoT Botnet Wars and the lack of basic security hardening
Why the yocto project for my io t project elc_edinburgh_2018
Strategies for developing and deploying your embedded applications and images
Linux IOT Botnet Wars and the Lack of Basic Security Hardening - OSCON 2018
Embedded Linux Build Systems - Texas Linux Fest 2018
Linux IoT Botnet Wars - ESC Boston 2018
Securing the Connected Car - SCaLE 2018
Mender.io | Securing the Connected Car
Linux IoT Botnet Wars and the lack of basic security hardening

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PPT
Introduction Database Management System for Course Database
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
ai tools demonstartion for schools and inter college
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Understanding Forklifts - TECH EHS Solution
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administraation Chapter 3
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
Introduction to Artificial Intelligence
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
Design an Analysis of Algorithms II-SECS-1021-03
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Introduction Database Management System for Course Database
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
ai tools demonstartion for schools and inter college
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Understanding Forklifts - TECH EHS Solution
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administraation Chapter 3
Online Work Permit System for Fast Permit Processing
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Introduction to Artificial Intelligence
PTS Company Brochure 2025 (1).pdf.......
How to Migrate SBCGlobal Email to Yahoo Easily
L1 - Introduction to python Backend.pptx
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Which alternative to Crystal Reports is best for small or large businesses.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Upgrade and Innovation Strategies for SAP ERP Customers

Integrate IoT cloud analytics and over the-air (ota) updates with google and mender.io

  • 1. Mirza Krak Embedded Solutions Architect Mender.io Integrate IoT cloud analytics and over-the-air (OTA) updates with Google and Mender.io
  • 2. ● Over-the-air software updates for IoT and Mender introduction ● Yocto Project introduction ● Google IoT Core and Cloud IoT introduction ● Device authentication integration between Cloud IoT and Mender Session overview
  • 3. ● Mirza Krak ○ 8 years in Embedded Linux ■ U-boot and Linux kernel ■ Yocto/Buildroot ○ mirza.krak@northern.tech About me ● mender.io ○ Open-source update manager for embedded devices ○ Open source (Apache License, v2) ○ Supports a variation of update styles ■ Dual A/B rootfs layout ■ Update Modules (beta) ○ Remote deployment management (server) ○ Under active development
  • 5. Internet of Things (IoT) The Internet of things (IoT) is the extension of Internet connectivity into physical devices and everyday objects. Embedded with electronics, Internet connectivity, and other forms of hardware (such as sensors), these devices can communicate and interact with others over the Internet, and they can be remotely monitored and controlled Source: WikipediaIt means taking all the things in the world and connecting them to the internet
  • 6. Connected devices must be remotely updatable ● There will be bugs, vulnerabilities ○ 1-25 per 1000 lines of code* ○ Botnets w/ millions of devices: Mirai, Hajime, Brickerbot ● 
 and new features ● 
 after device is deployed to the field *Source: Steve McConnell, Code Complete Source: Ars Technica
  • 7. IoT devices are in a harsh environment ● Remote ○ Expensive to reach physically ● Long expected lifetime ○ 5 - 10 years ● Unreliable power ○ Battery ○ Suddenly unplugged ● Unreliable network ○ Intermittent connectivity ○ Low bandwidth ○ Insecure What can go wrong?
  • 8. Criteria for IoT software update management ● Robust and secure ● Atomic installation & consistent across devices ● Secure transport and codesigning ● Integrates with existing development environment ● Easy to get started ● Bandwidth consumption ● Downtime during update What can go wrong?
  • 9. General IoT update manager workflow Detect update (secure channel) Download (secure channel) Integrity (e.g. checksum) Authenticate (e.g. signature) DecryptExtract Install Failure recovery (e.g. roll back) Compatibility check Sanity checks Post-install actions Pre-install actions Must-have Environment-specific (Re)Start* *E.g. reboot, restart service, start container
  • 10. Mender provides both client and server ● Client-server model ○ Apache 2.0 ○ Mender provides both, including web UI ○ No need to “glue” several projects ○ Server can integrate with 3rd party clients through its REST API ● Supports updating ○ File system images ○ Update Modules (beta) ■ Application updates ■ Containers ■ nd more
  • 11. Mender uses a dual A/B system layout ● Very robust ○ Fully atomic and consistent ● Integrates well ○ OS, kernel, apps unchanged ○ Needs bootloader “flip” support ○ Partition layout, requires 2x rootfs storage ● Fairly short downtime (minute) ○ 1 reboot OS A (active) Bootloader Device/System OS B (inactive) Kernel Kernel ● Mender deploys to inactive partition, then reboots into it ○ Common design for IoT ○ Used in newer Androids (‘N’ and later)
  • 12. Mender - server Mender Devices Users API Gateway TCP 443 DeviceAdm DeviceAuth UserAdm Inventory Deployments GUI Conductor Storage Proxy TCP 9000 Minio MongoDB ElasticSearch Redis Filesystem external clients stateless application layer persistent storage ● Microservices ● Only port 433 and 9000 ● RESTful API ○ Device API ○ Management API /api/management/v1/deployments /api/management/v1/admission /api/management/v1/devauth/ 
. https://docs.mender.io/apis/overview
  • 13. Yocto Project is a Linux build system “It's not an embedded Linux Distribution, It creates a custom one for you.” ● Structured way to build a Linux distribution from source, using software “meta layers” ● Flexible and very portable between hardware ○ Requires some learning ● Probably the most popular Linux “OS” for IoT devices ○ Major board manufacturers provide BSPs as Yocto meta layers ● Mender provides meta-mender for integrating the Mender client ● Google provides meta-gcp-iot for integrating Mender and MQTT telemetry application
  • 14. Google IoT Core “Cloud IoT Core is a fully managed service that allows you to easily and securely connect, manage, and ingest data from millions of globally dispersed devices” ● MQTT and HTTP protocols ● scales automatically in response to real-time changes ● industry-standard security protocols protect your data.
  • 15. Google Cloud IoT (example)
  • 16. Google IoT Core Protocol bridge MQTT protocol endpoint Automatic load balancing Global data access with Pub/Sub Device manager Configure individual devices Update and control devices Role level access control Console and APIs for device deployment and monitoring
  • 17. Device authentication is complex ● To securely authenticate to cloud services, devices need an identity and credential tuple ○ Typically a serial number and public/private keypair ● Different cloud services use different identity and credential tuples ● Result: Identity and key management becomes very complex and error-prone
  • 18. Device authentication in Google IoT Core Device identity is based on an asymmetric key-pair of two supported formats: ○ RSA 256 public key wrapped in a X.509v3 certificate ○ Elliptic curve (ECDSA) algorithm using P-256 and SHA-256 [more efficient, better suited for small devices] Credentials may optionally have an expiration timestamp A device can have up to 3 credentials associated with it at a time, allowing for rotation The service should never need the private key The sequence shown here is only one way to handle device provisioning
  • 19. Device authentication in Google IoT Core MQTT/HTTP broker Verify JWT signature with public key Run API Script with public key files Create JWT Secure Sign JWT Save device public key association Device Key pair securely generated in Microchip ATECC608A or NXP A71CH Provisioner Device manager OK Create device (deviceid, public key) OK Connect (device id, signed JWT) Connected Secure element w/ private keys soldered to the device Public keys passed as file
  • 20. Device authentication in Mender Unique client identity Unique client key pair Mender client IoT device Trusted server cert Root certs Mender server Mender config Trusted server cert API gateway (nginx) RSA key unique to this client. Used to sign client identity in auth requests. Will be tied to client identity in server. TLS (https) 1. Auth request: client identity, signed(client identity) 2. Reject (if client unknown/pending) or issue JWT auth token to client. Clients get JWT auth token if: A. They are preauthorized, or B. Accepted (once pending) by user/script Identity attributes (key-value). Identity scheme is customizable, typically serial number or MAC address is used. More info: Identity in Mender
  • 26. Integration based on common private key Identity tied to Private Key (secure on disk or in secure element) MQTT Client Mender Agent Mender OTA Server Google Cloud IoT Core OTA and Firmware ManagementTelemetry and Data plane
  • 27. Reference integration Step-by-step tutorial available bit.ly/mender-google