Prenons l'exemple d'une unité de commande électronique (ECU) utilisant un logiciel intégré statique traditionnel. Bootloader est un composant logiciel utilisé à la fois pour lancer le démarrage du logiciel principal de l'ECU, y compris la copie du logiciel dans la RAM, et pour effectuer des vérifications sur le logiciel avant le démarrage. Le bootloader est également responsable de la mise à jour du logiciel, de la réception, de la vérification et de l'écriture du logiciel mis à jour en mémoire, généralement de la mémoire Flash. Par conséquent, le terme Flash Bootloader est également couramment utilisé.
Les mêmes bootloaders sont-ils utilisés dans le développement et la production ?
Généralement, le même bootloader peut être utilisé dans le développement de véhicules et des calculateurs associés et en production normale, avec des protections pour s'assurer que les calculateurs de production ont de nombreuses capacités de développement ou d'ingénierie désactivés. Pendant le développement de véhicules, il est souvent souhaitable de supprimer les mécanismes de sécurité des bootloaders de production pour permettre le déploiement rapide des logiciels de développement.
Bootloader sécurisé
De plus en plus, tous les bootloaders doivent être sécurisés. Cependant, traditionnellement, c'était une distinction, généralement mise en œuvre pour protéger les fonctionnalités concernées par la sécurité, la sûreté et parfois la performance.
Les bootloaders vérifient généralement la mémoire logicielle de l'ECU au démarrage et les logiciels reçus avant une mise à jour logicielle et en mémoire après.
Les mécanismes comprennent généralement :
- Authentification du logiciel reçu et/ou présent en mémoire au démarrage, en utilisant souvent un hachage du binaire logiciel pour vérifier l'exactitude générée à partir d'un processus de compilation sécurisé des versions de logiciels officiellement publiées.
- Authentification de l'expéditeur à l'aide d'une graine et d'une clé, protection des données sécurisées au sein de l'ECU à l'aide de la mémoire sécurisée et des cartes mémoire pour définir les zones accessibles/réinscriptibles.
Double chargeur de bootloader
Certaines implémentations de bootloaders sont en deux parties, d'où le terme double bootloader. Dans ce cas, le bootloader principal ne peut pas être mis à jour, dans le cadre de la sécurisation du bootloader. Cela concerne le démarrage du module et la mise à jour du bootloader secondaire. Le chargeur de démarrage secondaire peut être mis à jour, via un processus sécurisé, permettant de modifier le processus de mise à jour logicielle, par exemple, la carte mémoire, permettant à ceux-ci d'être normalement verrouillés. Ce type de bootloader est moins courant maintenant en raison des nouvelles méthodes de sécurisation du processus de mise à jour à l'aide de matériel sécurisé embarqué, par exemple, HSM (Hardware Secure Module).
Remarque, ce terme est comme le double démarrage, où des blocs de deux démarrages, ou des mémoires complètes sont disponibles, permettant une mise à jour d'avoir lieu sur la version inutilisée alors qu'une version est active. Cela nécessite de la mémoire supplémentaire dans chaque ECU prenant en charge cette méthode de mise à jour.
Capital Embedded Bootloader
Capital Embedded Bootloader prend en charge les mises à jour fiables de l'ECU pendant le développement, dans la production du véhicule et pendant la durée de vie du véhicule, via des outils de diagnostic connectés ou des méthodologies en direct. Le protocole UDS ISO 14229 normalisé est utilisé sur une gamme de bus réseau de véhicules courants, Ethernet, CAN/CAN-FD, LIN, FlexRay, et il est également possible d'utiliser d'autres méthodes telles que les protocoles d'étalonnage ASAM. Cybersecurity est un aspect clé du flux de mise à jour logicielle et les fonctionnalités permettant l'authentification logicielle, et les options de démarrage sécurisé font partie de la solution. Pour satisfaire les exigences spécifiques des OEM (fabricants d'équipement d'origine) et des MCU, un large support est disponible pour une large gamme de projets d'ECU.
Quelle est la différence entre OTA et FOTA ?
La mise à jour OTA (en direct), ou FOTA (firmware en direct), est une méthode pour réaliser la réception de nouveaux logiciels pour un appareil embarqué, par exemple, l'ECU automobile, à distance, et non via un outil de service directement connecté dans un atelier. Cela peut nécessiter une certaine capacité de testeur de diagnostic embarqué dans un ECU coordonné et/ou des capacités de récupération et d'autotest dans le bootloader lui-même.