Brevet FR2923627A1 — publié le 20090515

La présente invention est relative à un procédé de déverrouillage du système antidémarrage d'un calculateur de contrôle moteur. Le calculateur de contrôle moteur est un des nombreux calculateurs présents dans un véhicule. Il permet de gérer, en temps réel, l'ensemble des paramètres de 5 fonctionnement du moteur. Le calculateur de contrôle moteur intègre classiquement un système antidémarrage électronique, spécifique au véhicule automobile dans lequel le calculateur est destiné à être monté et permettant d'empêcher l'utilisation du moteur du véhicule automobile par une personne non habilitée. Plus particulièrement, ledit dispositif anti-10 démarrage électronique inhibe une ou plusieurs fonctions indispensables au fonctionnement du moteur (coupure de l'alimentation en carburant par exemple, ou bien encore coupure de l'allumage sur un moteur à allumage piloté...) s'il ne reconnaît pas un utilisateur connu et habilité à démarrer le véhicule. Cette authentification est obtenue au moyen d'une clef d'allumage, d'un badge d'identification, ou tout autre moyen équivalent. 15 Tant que l'authentification n'a pas eu lieu, le dispositif anti-démarrage est actif, le calculateur est donc incapable de fonctionner normalement et le démarrage du moteur est impossible. Le verrouillage du calculateur est donc lié au statut fourni par le dispositif antidémarrage et son déverrouillage au moyen de la clef spécifique audit véhicule nécessite 20 qu'il soit monté sur le véhicule d'origine. Or, il existe un besoin de pouvoir déverrouiller le système anti-démarrage du calculateur de contrôle moteur et ainsi autoriser le fonctionnement du contrôle moteur quel que soit le statut donné par le la fonction anti-démarrage. Ce besoin existe par exemple pour les validations sur banc moteur nécessaires en fabrication ou encore dans 25 le cadre du retour après vente du calculateur à des fins de diagnostic. Dans ces situations, le calculateur étant automatiquement verrouillé par l'anti-démarrage, aucun accès audit calculateur n'est possible. Classiquement, une méthode d'accès à un calculateur moteur verrouillé qui n'est pas monté sur le véhicule d'origine consiste à reprogrammer le logiciel embarqué de 30 façon à inhiber la fonction anti-démarrage. Cette solution implique toutefois une modification irréversible du logiciel embarqué, ce qui rend impossible un diagnostic ultérieur de l'état du logiciel. En outre, le déverrouillage du calculateur est définitif, lequel peut alors être installé sur n'importe quel véhicule, ce qui pose des problèmes de sécurité et n'est donc pas acceptable. 35 Un but de l'invention est donc de résoudre ces problèmes. 2 A cet effet, l'invention a pour objet un procédé de déverrouillage du système antidémarrage d'un calculateur de pilotage du fonctionnement d'un moteur d'un véhicule automobile, comprenant les étapes suivantes: - à chaque mise sous tension du calculateur, la génération par le calculateur d'une 5 première valeur aléatoire et l'écriture de celle-ci dans une première zone d'une mémoire volatile du calculateur, - le téléchargement d'un programme de déverrouillage depuis un outil de téléchargement vers la mémoire volatile du calculateur, dont l'exécution sur le calculateur génère le calcul d'une deuxième valeur à partir de la première valeur 10 aléatoire et d'une relation déterminée stockée dans le programme de déverrouillage, et l'écriture de la deuxième valeur dans une seconde zone de la mémoire volatile du calculateur, - la réinitialisation logicielle du calculateur sans effacement des première et seconde zones de la mémoire volatile du calculateur, 15 - la comparaison des valeurs stockées dans les première et seconde zones de la mémoire volatile du calculateur, - le déverrouillage du système anti-démarrage du calculateur, en cas de succès de la comparaison. Ainsi la sécurité de l'accès est garantie tout en autorisant le déverrouillage du 20 calculateur. Selon une variante de l'invention, l'étape de téléchargement du programme de déverrouillage depuis l'outil de téléchargement vers la mémoire volatile du calculateur est précédée d'une étape d'autorisation de l'accès de l'outil de téléchargement au calculateur, basée sur un protocole d'authentification à clef publique. 25 Avantageusement, l'étape d'autorisation de l'accès de l'outil de téléchargement au calculateur comprend : - la génération par le calculateur d'un premier nombre aléatoire et le calcul par celui-ci, à l'aide d'une fonction cryptographique, d'un code chiffré à partir du premier nombre aléatoire et d'une première clef publique, 30 - l'émission du code chiffré par le calculateur à destination de l'outil de téléchargement, - le calcul par celui-ci d'une réponse correspondant au déchiffrement du code chiffré reçu, à l'aide de la fonction cryptographique et d'une clef privée correspondant à ladite première clef publique, stockée dans l'outil de téléchargement, 35 - transmission par l'outil de téléchargement de la réponse à destination du calculateur, -comparaison par le calculateur de la réponse et du premier nombre aléatoire, et 3 - en cas de succès de la comparaison, déverrouillage de l'accès du calculateur, pour permettre l'accès à celui-ci par l'outil de téléchargement. Avantageusement encore, l'exécution sur le calculateur du programme de déverrouillage est précédée d'une étape d'autorisation de l'exécution dudit programme 5 sur le calculateur, basée sur un protocole d'authentification à clef publique. L'étape d'autorisation de l'exécution du programme de déverrouillage sur le calculateur peut en outre comprendre : - la génération par le calculateur d'un deuxième nombre aléatoire et le calcul par celui-ci, à l'aide d'une fonction cryptographique, d'un code chiffré à partir du 10 deuxième nombre aléatoire et d'une seconde clef publique, - l'émission du code chiffré par le calculateur à destination de l'outil de téléchargement, - le calcul par celui-ci d'une réponse correspondant au déchiffrement du code chiffré reçu, à l'aide de la fonction cryptographique et d'une clef privée correspondant à 15 ladite seconde clef publique, stockée dans l'outil de téléchargement, transmission par l'outil de téléchargement de la réponse à destination du calculateur, - comparaison par le calculateur de la réponse et du deuxième nombre aléatoire et, - en cas de succès de la comparaison, autoriser l'exécution du programme de 20 déverrouillage sur le calculateur. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante donnée à titre d'exemple illustratif et non limitatif et faite en référence aux figures suivantes, dans lesquelles : - la figure 1 illustre schématiquement la structure d'un calculateur de contrôle 25 moteur, et la figure 2 illustre un mode de réalisation du procédé selon l'invention. Le procédé selon l'invention s'applique donc de préférence à un calculateur ECM de pilotage du fonctionnement du moteur d'un véhicule automobile, comme illustré à la figure 1, du type comportant une unité à microprocesseur 10 associée à des moyens de 30 mémorisation et intégrant un système anti-démarrage 14, permettant d'empêcher la commande de l'injection par le calculateur ECM de pilotage moteur tant qu'il n'est pas déverrouillé. Les moyens de mémorisation comprennent par exemple une mémoire non volatile 11, de type ROM (acronyme anglais de � Read-Only Memory �, � mémoire 35 morte � en français), EEPROM (acronyme anglais de � Electrically-Erasable Programmable Read-Only Memory �, � mémoire morte effaçable électriquement et programmable � en français), ou EEPROM de type � flash �, adaptée pour stocker un 4 programme de démarrage du calculateur ECM, une mémoire de type flash 12 adaptée pour stocker au moins un programme d'application du calculateur ECM, qui permet au calculateur ECM d'assurer la fonction pour laquelle il a été conçu et au moins une mérnoire volatile de données 13 de type RAM (acronyme anglais de � Random Access Mernory �, � mémoire à accès aléatoire � ou � mémoire vive � en Français). Un mode de réalisation du procédé selon l'invention va maintenant être décrit en référence à la figure 2. Afin d'être mis en oeuvre, ce procédé nécessite l'usage d'un outil de téléchargement 1 qui se connecte au calculateur ECM lors de la mise en oeuvre dudit 10 procédé. A chaque mise sous tension 20 du calculateur ECM, c'est-à-dire lors de chaque phase de démarrage ou de redémarrage � à froid � (� cold reset � selon la terminologie anglo-saxonne) du calculateur ECM, le lancement 30 du programme de démarrage du calculateur ECM est mis en oeuvre. 15 Ce programme de démarrage est prévu, entre autres actions, pour générer sur le calculateur ECM une valeur aléatoire � random � sur un nombre prédéterminé de bits et pour écrire 40 cette valeur dans une première zone de mémoire RAM_1 réservée à cet effet à une adresse fixe dans la mémoire RAM du calculateur ECM. Parallèlement, l'outil de téléchargement 1, connecté au calculateur ECM, vient 20 coopérer avec lui au cours de l'étape 50 d'autorisation, de manière à en sécuriser l'accès. Ainsi, l'outil doit s'identifier vis-à- vis du calculateur ECM afin d'obtenir un droit d'accès. Une méthode d'authentification pouvant être mise en oeuvre repose sur un protocole d'authentification à clef publique. Typiquement, le calculateur ECM créé un code chiffré et ne donne un accès à l'outil de téléchargement 1 que si ce dernier parvient à déchiffrer le 25 code chiffré avec sa clef privée correspondante. Le détail de cette étape est donné ci-dessous. Le calculateur ECM génère un nombre aléatoire et calcule, à l'aide d'une fonction cryptographique, un code chiffré, à partir du nombre aléatoire et d'une clef publique dédiée, stockée dans le calculateur ECM. 30 Le code chiffré est alors transmis par le calculateur ECM à de l'outil de téléchargement 1. Ce dernier calcule une réponse correspondant au déchiffrage du code chiffré reçu à l'aide de la même fonction cryptographique et d'une clef privée correspondant à ladite clef publique, stockée dans l'outil de téléchargement 1. 35 La réponse ainsi calculée est transmise au calculateur ECM, qui autorise alors, en cas de succès de la comparaison entre la réponse reçue et le nombre aléatoire, l'accès de l'outil de téléchargement 1 au calculateur ECM. Si la phase d'authentification est réussie, l'outil de téléchargement 1 va requérir le téléchargement dans la mémoire RAM du calculateur ECM du programme de déverrouillage du système anti-démarrage du calculateur. Le programme de déverrouillage est alors chargé 60 dans la mémoire RAM du 5 calculateur ECM et est prévu pour s'exécuter dans celui-ci. La première étape 72 de l'exécution sur le calculateur ECM du programme de déverrouillage 70 est une étape d'autorisation de l'exécution dudit programme sur le calculateur ECM, basée sur un protocole d'authentification à clef publique, de manière à ne permettre le déverrouillage du calculateur ECM qu'à des personnes dûment autorisées. Le processus d'authentification mis en oeuvre pour autoriser l'exécution du programme de déverrouillage sur le calculateur ECM, est en tout point similaire à celui décrit précédemment en liaison à l'accès de l'outil de téléchargement 1 au calculateur ECM en vue du chargement du programme de déverrouillage dans la mérnoire RAM de ce dernier. Cependant, le couple clef publique / clef privée utilisé pour autoriser l'exécution du programme de déverrouillage sur le calculateur ECM est avantageusement différent du couple clef publique / clef privée utilisé pour autoriser l'accès en RAM de l'outil de téléchargement 1, de manière à renforcer encore la sécurité. La finalité de l'exécution du programme de déverrouillage 70 dans le calculateur ECM est de permettre : 1. le calcul 74 d'une valeur fl (RAM_1) à partir : - de la valeur aléatoire � random �, préalablement stockée dans la première zone RAM_1 de la mémoire RAM du calculateur ECM, et d'une relation déterminée f1, confidentielle, stockée dans le programme de déverrouillage. 2. l'écriture 76 de la valeur f1 (RAM_1) ainsi calculée dans une seconde zone de mémoire RAM_2 dédiée à cet effet à une adresse fixe dans la mémoire RAM du calculateur ECM. Ainsi, suite à l'exécution du programme de déverrouillage sur le calculateur ECM, les deux zones de mémoire volatile du calculateur ECM, respectivement RAM_1 et RAM_2 sont remplies comme expliqué précédemment en liaison aux étapes 40 et 76. Puis, une étape 80 de réinitialisation logicielle du calculateur ECM est mise en oeuvre, sans réinitialisation des signaux d'alimentation du calculateur ECM (� warm reset � selon la terminologie anglo-saxonne). En outre, les zones RAM_1 et RAM_2 de la mémoire RAM du calculateur ECM sont avantageusement prévues dans une partie de la RAM qui n'est volontairement pas réinitialisée. Les deux zones de mémoire RAM_1 et RAM_2 ne sont donc pas effacées lors de la réinitialisation. Un tel redémarrage peut en particulier être commandé par programme spécifique prévu à cet effet dans le calculateur ECM. Au redémarrage 90, la première opération effectuée par le calculateur ECM est alors de comparer dans une étape 92 les valeurs stockées respectivement dans les zones de mémoire RAM_1 et RAM_2 de la mémoire RAM du calculateur ECM. En cas d'échec dans la comparaison, le calculateur ECM reste verrouillé 94. En cas de succès de la comparaison, le système anti-démarrage est déverrouillé 96, auquel cas le calculateur ECM sera alors à même de commander l'injection 100, y compris lorsqu'il n'est pas monté sur le véhicule d'origine. II est à noter que le déverrouillage du système anti-démarrage demeure seulement actif jusqu'à la prochaine coupure d'alimentation du calculateur ECM. En effet, dès lors que l'alimentation du calculateur ECM est coupée, le contenu de la RAM est perdu, en particulier les valeurs stockées dans les zones prédéfinies RAM_1 et RAM_2, empêchant ainsi d'assurer l'opération de déverrouillage, sauf à charger à nouveau le programme de déverrouillage selon les principes décrits ci-dessus. Un autre avantage de la solution de déverrouillage du système anti-démarrage qui vient d'être décrite réside dans la totale préservation de l'intégrité du logiciel embarqué du calculateur ECM, qui n'a pas besoin d'être modifié pour permettre le déverrouillage de l'anti-démarrage du calculateur ECM. Certaines étapes du procédé conforme à l'invention peuvent être interverties sans pour autant sortir de la portée de l'invention. Ainsi, à l'étape 20 de mise sous tension au cours de laquelle une valeur aléatoire "random" est générée, ladite génération peut survenir plus tard dans le procédé sans nuire à son efficacité. REVENDICATIONS 1. Procédé de déverrouillage du système anti-démarrage d'un calculateur (ECM) de pilotage du fonctionnement d'un moteur d'un véhicule automobile, comprenant : - à chaque mise sous tension (20) du calculateur, la génération par le calculateur 5 d'une première valeur aléatoire (random) et l'écriture (40) de celle-ci dans une première zone (RAM_1) d'une mémoire volatile (13) du calculateur, le téléchargement (60) d'un programme de déverrouillage depuis un outil de téléchargement (1) vers la mémoire volatile du calculateur, dont l'exécution (70) sur le calculateur génère le calcul (74) d'une deuxième valeur à partir de la 10 première valeur aléatoire et d'une relation déterminée stockée dans le programme de déverrouillage, et l'écriture (76) de la deuxième valeur dans une seconde zone (RAM_2) de la mémoire volatile du calculateur, - la réinitialisation logicielle (80) du calculateur sans effacement des première et seconde zones de la mémoire volatile du calculateur, 15 - la comparaison (92) des valeurs stockées dans les première et seconde zones de la mémoire volatile du calculateur, - le déverrouillage (96) du système anti-démarrage du calculateur, en cas de succès de la comparaison. 2. Procédé selon la revendication 1, dans lequel l'étape de téléchargement du 20 programme de déverrouillage depuis l'outil de téléchargement vers la mémoire volatile du calculateur est précédée d'une étape (50) d'autorisation de l'accès de l'outil de téléchargement au calculateur, basée sur un protocole d'authentification à clef publique. 3. Procédé selon la revendication 2, dans lequel l'étape d'autorisation de l'accès de l'outil de téléchargement au calculateur comprend : 25 la génération par le calculateur d'un premier nombre aléatoire et le calcul par celui-ci, à l'aide d'une fonction cryptographique, d'un code chiffré à partir du premier nombre aléatoire et d'une première clef publique, -l'émission du code chiffré par le calculateur à destination de l'outil de téléchargement, 30 - le calcul par celui-ci d'une réponse correspondant au déchiffrement du code chiffré reçu, à l'aide de la fonction cryptographique et d'une clef privée correspondant à ladite première clef publique, stockée dans l'outil de téléchargement, - transmission par l'outil de téléchargement de la réponse à destination du calculateur, 35 -comparaison par le calculateur de la réponse et du premier nombre aléatoire, et 8 - en cas de succès de la comparaison, déverrouillage de l'accès du calculateur, pour permettre l'accès à celui-ci par l'outil de téléchargement. 4. Procédé selon l'une quelconque des revendications précédentes, dans lequel l'exécution (70) sur le calculateur du programme de déverrouillage est précédée d'une étape d'autorisation de l'exécution dudit programme sur le calculateur, basée sur un protocole d'authentification à clef publique. 5. Procédé selon la revendication 4, dans lequel l'étape d'autorisation de l'exécution du programme de déverrouillage sur le calculateur comprend : la génération par le calculateur d'un deuxième nombre aléatoire et le calcul par 10 celui-ci, à l'aide d'une fonction cryptographique, d'un code chiffré à partir du deuxième nombre aléatoire et d'une seconde clef publique, l'émission du code chiffré par le calculateur à destination de l'outil de téléchargement, le calcul par celui-ci d'une réponse correspondant au déchiffrement du code chiffré 15 reçu, à l'aide de la fonction cryptographique et d'une clef privée correspondant à ladite seconde clef publique, stockée dans l'outil de téléchargement, transmission par l'outil de téléchargement de la réponse à destination du calculateur, - comparaison par le calculateur de la réponse et du deuxième nombre aléatoire et, 20 - en cas de succès de la comparaison, autoriser l'exécution du programme de déverrouillage sur le calculateur.