Le démarrage sécurisé : la chaîne de confiance du calculateur

Un calculateur moderne ne se contente plus de vérifier que son logiciel est intact. Avant de le lancer, il vérifie qu'il est le bon. Ce mécanisme s'appelle le démarrage sécurisésecure boot — et c'est lui qui explique qu'un fichier parfaitement cohérent puisse être refusé sans le moindre message.

La notion a été introduite dans signature RSA et calculateurs verrouillés. Cette fiche en détaille le déroulement, les variantes et les conséquences.

Le principe : une chaîne, pas un contrôle

L'idée centrale est celle de chaîne de confiance. Au lieu d'un contrôle unique, on enchaîne des vérifications où chaque maillon valide le suivant avant de lui passer la main.

Le premier maillon pose un problème logique : qui vérifie le vérificateur ? La réponse est la racine de confianceroot of trust. C'est un élément que l'on ne peut pas modifier :

Cette racine est le postulat du système : on la considère fiable parce qu'elle est physiquement immuable.

Le déroulement typique

Sur une architecture à module de sécurité matériel, la séquence à la mise sous tension ressemble à ceci :

1. Le composant démarre le module de sécurité en premier, avant les cœurs applicatifs.

2. Le module calcule une empreinte cryptographique des zones mémoire à protéger : chargeur d'amorçage, logiciel applicatif, parfois une partie des données de calibration.

3. Il compare cette empreinte à une référence, ou vérifie une signature avec une clé publique qu'il détient.

4. Si tout concorde, il libère les cœurs principaux, qui exécutent le chargeur d'amorçage.

5. Le chargeur d'amorçage vérifie à son tour l'élément suivant avant de lui transférer le contrôle.

Chaque étape ne fait confiance qu'à ce qu'elle a elle-même vérifié. Un maillon qui ne passe pas arrête la chaîne à cet endroit précis.

Deux familles de démarrage sécurisé

Il faut distinguer deux comportements, car ils n'ont pas les mêmes conséquences en atelier.

Certaines architectures combinent les deux : blocage sur le noyau critique, mesure sur le reste.

Ce qui se passe quand la vérification échoue

Le comportement dépend du constructeur et de la fonction concernée. Les cas observés couvrent un spectre large :

Un bon chargeur d'amorçage de production ne s'efface jamais lui-même et valide l'application à chaque démarrage : c'est ce qui fait qu'un échec de vérification ne détruit pas le calculateur. Voir bootloader et BSL.

Pourquoi ce n'est pas un checksum

C'est la confusion la plus fréquente, et elle coûte cher en temps.

Somme de contrôleDémarrage sécurisé
Question poséele contenu est-il intact ?ce contenu vient-il bien du constructeur ?
Calculpublic, reproductible par n'importe quiexige un secret détenu par le constructeur
Momentà l'écriture, puis en fonctionnementavant l'exécution du programme
Élément qui vérifiele programme lui-mêmeun composant indépendant du programme
En cas d'échecdéfaut, mode dégradé, refus de démarragele programme n'est pas lancé du tout

Une somme de contrôle se recalcule. Une signature se possède ou ne se possède pas. Ce n'est pas une différence de difficulté, c'est une différence de nature. Voir qu'est-ce qu'un checksum.

Ce qu'un reprogrammateur en retient

Voir aussi le HSM, signature RSA et secure boot et bootloader et BSL.


Sur ANP Engineering — file service de reprogrammation moteur pour professionnels : file service ECU, correction de checksum, calculateurs pris en charge, tarifs.

ANP Wiki
ANPFile Service · reprog en ligne
Chargement…