Le HSM : le coffre-fort dans le microcontrôleur
Sur un EDC17, toute la sécurité du logiciel vit dans le logiciel. Sur un calculateur de génération suivante, une partie de cette sécurité a déménagé : elle est dans un second processeur, à l'intérieur de la même puce, auquel le programme principal n'a pas accès. Ce module s'appelle un HSM, Hardware Security Module.
Ce que c'est, physiquement
Sur les microcontrôleurs Infineon AURIX des familles TC2xx puis TC3xx — que l'on trouve dans les plateformes Bosch MD1 et MG1 — le HSM est un sous-système de sécurité intégré au silicium, à côté des cœurs TriCore qui exécutent la gestion moteur.
Il dispose de ses propres ressources :
- un cœur de calcul dédié, distinct des cœurs applicatifs ;
- sa propre mémoire flash et sa propre mémoire vive, non adressables par le programme principal ;
- des accélérateurs cryptographiques matériels (chiffrement symétrique, calcul d'empreintes, et selon les variantes calcul asymétrique) ;
- un générateur d'aléa matériel.
La conséquence de cette architecture est la seule chose vraiment importante à retenir : même si le logiciel applicatif était intégralement connu, les clés protégées par le HSM ne le seraient pas. Elles ne transitent pas par les cœurs principaux ; elles ne sont pas lisibles par eux.
D'où vient l'idée
Le HSM automobile n'est pas une invention isolée d'un fondeur. Il s'inscrit dans une filiation :
- SHE (Secure Hardware Extension), spécification issue de l'industrie allemande, décrit un jeu minimal de fonctions : stockage de clés, chiffrement symétrique, vérification d'intégrité au démarrage.
- Les travaux du projet européen EVITA ont formalisé trois niveaux de HSM — souvent désignés light, medium, full — selon les fonctions et la puissance embarquées.
- Les fondeurs déclinent ensuite ces niveaux dans leurs gammes. C'est pour cela que « le calculateur a un HSM » ne dit pas grand-chose : encore faut-il savoir ce que ce HSM sait faire.
Ce qu'il protège concrètement
Quatre missions, à ne pas confondre.
1. Le stockage des clés. C'est la fonction fondatrice. Les clés cryptographiques du calculateur — celles qui servent à vérifier une signature, à authentifier un message, à sécuriser un échange — sont écrites dans le HSM et n'en sortent pas. Le programme principal ne peut pas les lire ; il peut seulement demander au HSM d'effectuer une opération avec.
2. Le démarrage sécurisé. Le HSM vérifie l'authenticité du logiciel applicatif avant qu'il ne prenne la main. C'est le sujet du démarrage sécurisé : le contrôle ne se fait plus par le programme, mais avant lui, par un composant qui ne dépend pas de lui.
3. L'authentification des communications. Lorsqu'un constructeur signe des trames réseau, c'est le HSM qui calcule et vérifie les empreintes d'authentification à la volée. Voir SecOC.
4. Les échanges d'authentification en diagnostic. Les mécanismes d'accès sécurisé les plus récents — authentification par certificats plutôt que simple question-réponse — s'appuient sur le HSM plutôt que sur un calcul embarqué dans le logiciel. Voir seed and key.
Pourquoi c'est un changement de nature, pas d'échelle
Le contraste avec un EDC17 est net.
| Génération EDC17 / MED17 | Génération à HSM | |
|---|---|---|
| Vérification | somme de contrôle, parfois signature | signature vérifiée par un module dédié |
| Emplacement du secret | dans le logiciel ou la mémoire du calculateur | dans un sous-système isolé du silicium |
| Portée d'une compromission logicielle | large | ne donne pas accès aux clés |
| Copie d'une puce à l'autre | déjà délicate | sans objet : les secrets ne se recopient pas |
C'est la même bascule que celle décrite pour la signature RSA : on passe d'une vérification — le contenu est-il intact ? — à une authentification — vient-il de qui de droit ? Une somme de contrôle se recalcule ; une clé se possède ou ne se possède pas.
Le HSM complète par ailleurs les protections déjà présentes dans le microcontrôleur — mémoire à programmation unique, identifiant de puce, verrouillage du débogage — décrites dans les protections du microcontrôleur et, pour les TriCore plus anciens, dans le verrouillage des TriCore.
Ce que cela implique en atelier
- Un calculateur à HSM actif ne se traite pas comme un calculateur ouvert. Ce n'est pas une question de puissance d'outil ni de compétence : c'est une frontière de conception.
- Le remplacement et le clonage se compliquent. Des éléments liés au composant lui-même ne se transfèrent pas d'une puce à l'autre. Voir le clonage de calculateur.
- La voie légitime existe. Selon les cas : passer par le constructeur, par le réseau, ou par un prestataire habilité. C'est le sens du service par envoi du calculateur lorsqu'il est proposé dans un cadre régulier.
- Un module de sécurité ne se force pas. Un fournisseur qui prétend le contraire vend autre chose que ce qu'il annonce.
Voir aussi le démarrage sécurisé, la gestion des clés constructeur et la famille Bosch MD1 et MG1.
Sur ANP Engineering — file service de reprogrammation moteur pour professionnels : file service ECU, correction de checksum, calculateurs pris en charge, tarifs.
