Verified functional programming of an IoT operating system's bootloader - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Conference Papers Year : 2021

Verified functional programming of an IoT operating system's bootloader

Abstract

The fault of one device on a grid may incur severe economical or physical damages. Among the many critical components in such IoT devices, the operating system's bootloader comes first to initiate the trusted function of the device on the network. However, a bootloader uses hardware-dependent features that make its functional correctness proof difficult. This paper uses verified programming to automate the verification of both the C libraries and assembly boot-sequence of such a, real-world, bootloader in an operating system for ARM-based IoT devices: RIOT. We first define the ARM ISA specification, semantics and properties in F to model its critical assembly code boot sequence. We then use Low , a DSL rendering a Clike memory model in F , to implement the complete bootloader library and verify its functional correctness and memory safety. Other than fixing potential faults and vulnerabilities in the source C and ASM bootloader, our evaluation provides an optimized and formally documented code structure, a reasonable specification/implementation ratio, a high degree of proof automation and an equally efficient generated code.
Fichier principal
Vignette du fichier
memocode21.pdf (3.07 Mo) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-03343002 , version 1 (13-09-2021)
hal-03343002 , version 2 (22-09-2021)

Identifiers

  • HAL Id : hal-03343002 , version 2

Cite

Shenghao Yuan, Jean-Pierre Talpin. Verified functional programming of an IoT operating system's bootloader. MEMOCODE 2021 - 19th ACM-IEEE International Conference on Formal Methods and Models for System Design, Nov 2021, Beijing, China. pp.1-16. ⟨hal-03343002v2⟩
137 View
356 Download

Share

Gmail Facebook X LinkedIn More