La mise-à-jour de firmwares "Over-The-Air" sur microcontrôleur a toujours été un sujet ambitieux et pourtant primordial pour sécuriser une application IoT. Le système d'exploitation RIOT (https://riot-os.org) fournit désormais les briques logicielles pour réaliser des mise-à-jour de firmware en utilisant des protocoles standards et sécurisés de bout-en-bout.
3. Internet
A multitude of
smaller, cheaper
microcontroller-
based devices
IoT: Cyber-Physical Deployments
Low-end IoT devices
- 1000x less energy
than RaspberryPi
- kBytes instead of
GBytes of memory
4. IoT: Device & Usecase Polymorphism
Extremely varied use-cases, in almost all verticals
Various vendors & architectures (8-bit, 16-bit, 32-bit)
Various low-power communication technologies (BLE, 802.15.4, LoRa…)
iotworm.com
5. Software on Low-end IoT Devices
IoT software before
rudimentary embedded software, vendor-specific (vendor-locked?)
IoT software now
Cybersecurity, interoperability, device management requirements…
increase complexity + drive the need for a real OS
Middleware integration and
Application
RTOS
ApplicationOS and Middleware
Development time
Development time
This slide is partly borrowed from Hannes Tschofenig, ARM
6. IoT Software: Current Trends
O. Hahm et al. "Operating Systems for Low-End
Devices in the Internet of Things: a Survey,"
IEEE Internet of Things Journal, 2016.
ARM Cortex-M0+
8. What is RIOT?
✓An operating system for IoT devices too small for Linux
✓A free, open source software platform & ecosystem
✓A world-wide community of developers
9. Large Open-Source Community
2013: started as French-German research project
2018: more than 200 contributors worldwide
~ 20,000 commits and ~10,000 Pull Requests
Academics, makers, industry (SME & bigger companies)
Hundreds of related scientific publications
Products shipping with RIOT in US, Europe, Russia
Yearly RIOT Summit conferences (summit.riot-os.org)
next in Helsinki Sept. 5-6
Source:www.openhub.net/p/RIOT-OS
Monthly contributors
github.com/RIOT-OS/RIOT
E. Baccelli et al. ‘RIOT: an Open Source Operating System for Low-end
Embedded Devices in the IoT,’ IEEE Internet of Things Journal, 2018.
10. Modularity around a micro-kernel –
building blocks, to be combined in all
thinkable ways; Caters for versatile use
cases & memory constraints;
Unified APIs – across all hardware,
even for hardware-accessing APIs;
Enables code reuse and minimizes
code duplication;
Vendor & techno. independence –
Vendor libraries: avoided; Design
decisions don’t tie RIOT to a particular
technology;
General-Purpose OS for low-end IoT
120+ boards supported
8-bit, 16-bit, 32bit MCUs
Minimal
config.
2,6kB RAM
3,2kB Flash
(Cortex-M)
11. Numerous Libraries
Packages: bundling 3rd-party libraries
Integrated on-the-fly at build–time
Easy to add: just requires 2 Makefiles
Patches (if needed) are typically minimal
C, C++ (JavaScript, Rust)
12. Network-level Interoperability
Wired & Bus
CAN
Ethernet
Low-power wireless LAN & WAN
IEEE 802.15.4
LoRa package
BLE (work-in-progress)
IP Protocols Stacks
Default stack (GNRC)
Thread (package)
lwIP (package)
OpenWSN (in progress)
Experimental stacks
CCN-lite (package)
NDN-RIOT (package)
14. RIOT-FP : Aiming for IoT cyber-security
RIOT-FP is an Inria project launched May 2019 combining RIOT with:
Next generation IoT crypto primitives: small, fast and future-proof
Secure IoT networking, object security, secure bootstrapping
Formally verified IoT software modules within RIOT
Secure IoT software updates, in practice, on most devices supported by RIOT
RIOT-fp on the web: https://future-proof-iot.github.io/
15. IoT Devices
Access point /
Border router
Low-power radio
IDE
Continuous
Integration
System
IoT Firmware
Update Repo
INTERNET 6LoWPAN, CoAP, SUIT
IoT
Software
Maintainer
(e.g. OEM)
DevOps for microcontroller-based IoT