KUBA : développement d’un BSP Linux sécurisé sur mesure sous Yocto

Table des matières

Les solutions de billettique électronique de Kuba accompagnent les utilisateurs des transports en commun dans plus de 500 villes et régions à travers le monde.

Contexte et enjeux

Pour accompagner le développement de ses systèmes de paiement et de validation de titres de transport, KUBA a confié à Openest le développement du BSP Linux de sa nouvelle carte électronique embarquée.  

Ce projet ambitieux, basé sur un SoC double cœur Cortex-A55 avec coprocesseur Cortex-M, combinait des défis techniques complexes de sécurisation, d’optimisation et de maintenance long terme.

Découvrez comment Openest a mis en œuvre un environnement Linux sous Yocto, sécurisé, fiable et taillé pour l’industrialisation.

Défis techniques et réponses apportées

Bring-up carte électronique sur mesure

Objectif :La plateforme étant un design spécifique, aucun support prêt-à-l’emploi n’existait.

Nous avons donc réalisé un bring-up complet du matériel, incluant :

  • Debug hardware intensif sur les bus RS485, I2C, DDR et interfaces UART​
  • Intégration des périphériques critiques : écran MIPI-DSI, codec audio, interfaces Ethernet, modem LTE.
  • Intégration de drivers propriétaires de prestataires externes sous la formes de modules noyaux

Solutions mises en œuvre :

  • Création du BSP sur mesure dans un layer Yocto spécifique tirant parti du BSP fourni par le fabricant du SoC cible
  • Définition de l’ensemble des périphériques de la carte dans le device-tree
  • Mise en place de tests bas-niveau (devmem2, scripts pour GPIO, RS485, I2C, etc ) pour la validation du hardware.
  • Automatisation du build et du flashage via des scripts Shell adaptés.

Sécurisation de la chaîne de démarrage et des données

Objectif :Assurer la protection du système contre toute compromission logicielle. 

Cela impliquait :

  • Mise en œuvre d’une Secure Boot chain : un mécanisme où chaque logiciel impliqué dans le démarrage est vérifié avant son exécution
  • Chiffrement des données sensibles stockées sur eMMC.

Solutions mises en œuvre :

  • Secure Boot par chaîne de confiance :
    • Signature du bootloader et vérification par la ROM du SoC
    • Signature de l’image de Linux et vérification par U-Boot
    • Vérification de l’intégrité de la partition de boot avec dm-verity
    • Chiffrement des partitions critiques par dm-crypt
    • Documentation de la solution et des outils disponibles pour le passage d’audits de sécurité et en vue de l’industrialisation
  • Rootfs monté en lecture seule pour éviter toute modification non autorisée et renforcer la résilience du système
  • Gestion des partitions et services via systemd 

Communication entre Inter-processeur avec RPMSG

Objectif :Assurer une communication fiable et rapide entre le noyau Linux tournant sur Cortex-A55 et un logiciel développé sur mesure sur un cœur Cortex-M.

Solution mise en œuvre :

  • Configuration du mécanisme RPMSG (Remote Processor Messaging) pour permettre la communication inter-cœurs​ directement dans des recettes Yocto
  • Validation du fonctionnement et mise à disposition de documentation et d’exemples permettant la prise en main de la solution par l’équipe de développement de Kuba

Mise en place d’un système de mise à jour sécurisé (OTA)

Défi :Le système devait pouvoir être mis à jour de manière sécurisée, sans risque de corruption, et permettre un retour à la version antérieure en cas d’échec.

Solutions mises en œuvre :

  • Intégration de RAUC pour la gestion de mises à jour atomiques A/B.
  • Système de validation automatique au redémarrage (rollback si nécessaire).
  • Signatures et chiffrement des paquets de mise à jour​

Résultats techniques obtenus

  • Prototype Linux/Yocto sécurisé et fonctionnel avec boot complet
  • Chaîne de démarrage sécurisée avec mise en oeuvre des fonctionnalités hardware intégrés au SoC
  • Communication inter-processeur Cortex-A55/Cortex-M opérationnelle pour les échanges de commandes.
  • Mise en place d’un environnement Yocto documenté et transféré à l’équipe R&D de KUBA.

La transmission de connaissances a été réalisée tout au long du projet par Openest auprès de l’équipe projet de Kuba.

Cette étude de cas illustre la capacité d’Openest à prendre en charge des projets embarqués complexes mêlant carte sur mesure, BSP Yocto, Linux sécurisé, et communication inter-processeur dans un environnement certifié critique.

Quel SoC a été utilisé dans ce projet ?

Le projet repose sur un SoC double cœur ARM Cortex-A55 associé à un coprocesseur Cortex-M plus proche d’un microcontrôleur. Le fabricant exact tu SoC est confidentiel

Quelles technologies de sécurité ont été mises en œuvre ?

Secure Boot (TF-A), chiffrement des partitions critiques (dm-crypt) et rootfs monté en lecture seule pour maximiser la résilience.

Comment les mises à jour système sont-elles gérées ?

Grâce à l’intégration de RAUC, le système permet des mises à jour atomiques avec rollback automatique en cas d’échec.

Partager cet article

Articles connexes
IoT & objet connectés

Edge computing & IoT

Pour tout comprendre sur l’impact de l’Edge computing sur l’IoT.

Besoin d'aide pour accélérer votre projet?