Nombre d’objets connectés ont une caractéristique commune : disposer de simples microcontrôleurs pour fonctionner, et n’avoir que peu de puissance de calcul et peu de ressource en énergie. C’est le cas de beaucoup de dispositifs comme les capteurs communicants qui délivrent une information ou interagissent avec un serveur de stockage (cloud) ou, plus localement, avec le système de chauffage d’une maison par exemple.
Comment combiner les contraintes de frugalité de ces dispositifs avec des fonctionnalités haute vitesse, haute sécurité, dans des programmes ouverts à tous, pour donner confiance dans les objets connectés ?
Une communauté grandissante de programmeurs et d’utilisateurs répondrait en chœur « RIOT ! », un système d'exploitation (ou OS - operating system) destiné à l'internet des objets (IoT) qui rassemble plusieurs centaines de développeurs du monde entier — dont plus de 200 contribuent à la branche principale de cette « boîte à outils » libre —), sous licence partagée avec possibilité d’y ajouter des codes annexes propriétaires.
« RIOT se veut l’équivalent de Linux pour n’importe quel type d’objet connecté qui fonctionne sur microcontrôleurs, donc avec une puissance de calcul bien moindre et un millionième de la mémoire, comparé à des microprocesseurs », explique Emmanuel Baccelli, chercheur de l’équipe-projet TRIBE au centre Inria Saclay qui coordonne la communauté de développeurs depuis sa création en 2013.
Le but de ce « Linux des objets » est ambitieux : il veut unifier la programmation sécurisée d’objets hétérogènes, sur la base du langage C, et proposer des briques de programmes en open source, consultables et modifiables par chacun, pour faire du cœur de code RIOT un système adaptable, ultraléger et sécurisé. « Notre modèle open source est un gage de pérennité d’un bien commun, constamment amélioré par ses contributeurs : des universitaires, des industriels et d’autres utilisateurs tels les ‘makers’ », commente Emmanuel Baccelli.
C’est aussi une réponse à une exigence de sécurité et à la transparence que réclament les utilisateurs d’objets connectés suite aux révélations d’Edward Snowden et aux différentes fuites d’informations via ces objets.
Un projet d’envergure en forme de défi !
Dans cette optique, Inria a lancé un projet d’envergure (Défi Inria) destiné à soutenir les développements de RIOT par les forces vives de plusieurs de ses équipes-projets (EVA, GRACE, PROSECCO, TEA et TRIBE) et à la Freie Universität de Berlin, où enseigne Emmanuel Baccelli, coordinateur de cet IPL nommé RIOT-fp.
« fp signifie ici ‘future proof’ car nous avons placé la barre très haut et nous prenons donc évidemment le risque de ne pas l’atteindre », précise Emmanuel Baccelli. « Tout d’abord, comme dans toute recherche, le risque d’échec existe. Nous avons des défis majeurs à relever. Peut-on concilier sécurité et économie d’énergie ? Par exemple, est-il possible d’élaborer des algorithmes de cryptographie efficaces avec la puissance de calcul modeste d’un microcontrôleur et d’être au même niveau que le reste du réseau internet ? Peut-on concilier sécurité et souveraineté de l’utilisateur ? Ainsi, par exemple, serait-il possible de permettre à tout un chacun l’installation et les mises à jours de nouveaux logiciels, sans invalider la sécurité préexistante ? »
Et c’est là un autre défi que se donne RIOT-fp : donner des preuves formelles de la robustesse d’exécution pour permettre ces mises à jour sécurisées, via un réseau sans fil à basse énergie, tant pour le système d’exploitation lui-même que pour les différents modules qu’il peut agréger. Dans cette partie de l’aventure, une inconnue demeure : sur quelle proportion de code une preuve formelle sera-t-elle possible sans compromis sur la généralité du code ou sa performance, notamment sa taille ou sa vitesse ?
Une motivation à toute épreuve
Le projet très ambitieux qu’est RIOT-fp répondra à certaines de ces questions et mêlera résultats académiques et publication de codes open source, mis à jour et intégrés dans l’écosystème libre autour de RIOT. Depuis 2018, certaines fonctionnalités sont déjà possibles et mises en œuvre dans des objets connectés utilisant RIOT.
Toutefois, même si certains industriels sont parties prenantes de la communauté RIOT, il n’est pas évident de modifier le système d’exploitation de n’importe quel objet connecté. « Dans l’absolu, c’est possible, précise Emmanuel Baccelli. Mais il y a plusieurs verrous à dépasser. Tout d’abord, il faut que le fabricant n’ait pas « verrouillé » son objet comme cela est parfois le cas quand ce sont des objets incluant des services liés. Ces fournisseurs sont alors évidemment peu enclins à laisser l’utilisateur libre de charger des services complémentaires en open source. D’autre part, la sécurité de l’utilisateur constitue un autre verrou, tout à fait légitime. Bien que RIOT soit compatible (ou facilement adaptable) avec une grande variété de matériels, on ne peut pas faire n’importe quoi sur n’importe quel objet, par exemple, le logiciel d’un dispositif médical de type pace-maker... Nous voulons, à travers RIOT-fp, prendre en compte cet aspect en formalisant une solution à la fois versatile – couvrant tout type d’objets via un socle commun adaptable au niveau de la sécurité d’utilisation – et performante, avec des preuves formelles sur la sécurité. »
Dans un contexte aussi complexe que l’internet des objets, RIOT-fp devrait permettre d’ici à trois ans d’y voir bien plus clair sur la possibilité de disposer d’un « Linux des objets ». Avec ce que comporte de promesses un tel « bien commun » en termes de choix de l’utilisateur qui pourra alors adopter le système d’exploitation qu’il souhaite, pour une alarme connectée en liaison avec un centre de surveillance par exemple, indépendamment du fabricant de l’objet, voire du fournisseur de service. À cela s’ajoute un intérêt majeur en termes d’environnement et de ressources : la possibilité de disposer d’un système à la fois performant, évolutif et ne nécessitant que peu d’énergie, permettra de favoriser la longévité du matériel, d’une part en économisant les batteries, et d’autre part en adaptant au fur et à mesure le logiciel déployé et sa sécurité, dans un contexte où besoins et normes changent très vite.
Emmanuel Baccelli, l’IoT en partage
Ce n’est pas un hasard si Emmanuel Baccelli est à la tête du projet d’envergure d’Inria RIOT-fp pour la mise au point d’une plate-forme logicielle sécurisée et d’un système de communication sans fil ultra-performant pour les objets connectés. Ce chercheur de l’équipe TRIBE au centre Inria Saclay depuis 2006, également enseignant en Allemagne à la Freie Universität de Berlin, est cofondateur et coordinateur de la communauté open source qui développe le système d’exploitation RIOT.
Après avoir travaillé aux États-Unis, d’abord à AT&T Labs (New Jersey) puis pour Metro Optix Inc. (Silicon Valley) en tant qu’ingénieur logiciel jusqu’en 2002, il a rejoint Hitachi Europe comme ingénieur de recherche et y a préparé une thèse de doctorat conjointement avec l’École polytechnique de Paris jusqu’en 2006.
Ses recherches concernent les réseaux sans fil, la conception et l’analyse des algorithmes et protocoles réseau, ainsi que le logiciel pour l’Internet des objets. Auteur de nombreuses publications scientifiques, il contribue aussi à la conception de normes au sein de l’IETF (Internet Engineering Task Force).