Prenons l'exemple d'une unité de contrôle électronique (ECU) utilisant un logiciel embarqué statique traditionnel. Le chargeur d'amorçage 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 chargeur d'amorçage 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 dans la mémoire, généralement dans la mémoire Flash. Par conséquent, le terme Flash Bootloader est également couramment utilisé.
Les mêmes chargeurs d'amorçage sont-ils utilisés dans le développement et la production ?
Généralement, le même chargeur d'amorçage peut être utilisé dans le développement des véhicules et des ECU associés et pour la production normale, avec des protections pour garantir que les ECU de production ont de nombreuses capacités de développement ou d'ingénierie des chargeurs d'amorçage désactivées. Au cours du développement d'un véhicule, il est souvent souhaitable de supprimer les mécanismes de sécurité des chargeurs d'amorçage de production pour permettre un déploiement rapide des logiciels de développement.
Chargeur d'amorçage sécurisé
De plus en plus, tous les chargeurs d'amorçage doivent être sécurisés. Cependant, il s'agit traditionnellement d'une distinction, généralement mise en place pour protéger les fonctionnalités liées à la sécurité, à la sûreté et parfois à la performance.
Les chargeur d'amorçage 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 :
- L'authentification du logiciel reçu et/ou présent en mémoire au démarrage, souvent à l'aide d'un hachage du binaire du logiciel pour vérifier l'exactitude générée par un processus de compilation sécurisé des versions logicielles officiellement publiées.
- L'authentification de l'expéditeur à l'aide d'un élément source et d'une clé, la protection des données sécurisées au sein de l'ECU à l'aide d'une mémoire sécurisée et d'une carte mémoire pour définir des zones accessibles/réinscriptibles.
Double amorçage
Certaines implémentations de chargeurs d'amorçage sont en deux parties, d'où le terme de double amorçage. Dans ce cas, dans le cadre de la sécurisation du chargeur d'amorçage, le chargeur d'amorçage principal ne peut pas être mis à jour. Cela concerne le démarrage du module et de la mise à jour du chargeur d'amorçage secondaire. Le chargeur d'amorçage secondaire peut être mis à jour, via un processus sécurisé, ce qui permet de modifier le processus de mise à jour logicielle, par exemple, la carte mémoire, permettant de les verrouiller normalement. Ce type de chargeur d'amorçage est moins courant aujourd'hui en raison des nouvelles méthodes de sécurisation du processus de mise à jour à l'aide de matériel sécurisé intégré, par exemple, HSM (module de sécurité matériel).
Notez que ce terme est comme le double amorçage, où deux blocs de chargeur, ou mémoires complètes, sont disponibles, permettant une mise à jour sur la version inutilisée pendant 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 des mises à jour d'ECU fiables pendant le développement, la production et la durée de vie du véhicule via des outils de diagnostic connectés ou des méthodologies over-the-air. Le protocole UDS normalisé ISO 14229 est utilisé sur une gamme de bus de 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. La cybersécurité est un aspect clé du flux et des fonctions technologiques de mise à jour logicielle, permettant l'authentification logicielle et les options de démarrage sécurisé comme faisant 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 un large éventail de projets d'ECU.
Quelle est la différence entre l'over-the-air et l'over-the-air pour micrologiciel ?
La mise à jour over-the-air, ou over-the-air pour micrologiciel, est une méthode permettant de réaliser la réception d'un nouveau logiciel pour un dispositif embarqué, par exemple, une ECU automobile, à distance, et non via un outil de service directement connecté dans un atelier. Cela peut nécessiter une capacité de test de diagnostic embarquée dans une ECU de coordination et/ou des capacités de récupération et d'auto-test dans le chargeur de démarrage lui-même.