Brevet FR2898564A1 — publié le 20070921

La présente invention concerne un procédé de contrôle de la modification de la configuration d'une unité de traitement d'informations configura-ble embarquée dans un véhicule automobile, au moyen d'un outil de configuration connecté à celle-ci. Plus particulièrement, la présente invention concerne une unité de traitement d'informations présentant au moins un état verrouillé dans lequel elle ne peut pas être configurée et un état déverrouillé dans lequel elle peut être configurée. Un véhicule automobile est aujourd'hui équipé d'une ou plusieurs uni-tés électroniques de commande de certains de ses organes (moteur, freinage, chauffage, etc...) et/ou de diagnostic du fonctionnement de ceux-ci. Chacune de ces unités comprend un microprocesseur, ou calculateur, dont le fonctionnernent est régi par un ensemble de paramètres et d'instructions de fonctionnement, cet ensemble étant mémorisé dans une mémoire associée au microprocesseur et défini en vue de la tâche affectée à l'unité de traitement d'informations. Toutefois, il n'existe pas à l'heure actuelle de mécanisme efficace de protection de l'intégrité de la configuration de l'unité qui empêche une modification non autorisée de sa configuration par un outil connecté à celle-ci. Ainsi, on constate que certains utilisateurs de véhicules procèdent à une modification de la configuration de l'unité embarquée en charge du contrôle du moteur pour augmenter la puissance de celui-ci (phénomène désigné sous le nom anglais chiptuning ) ou inhiber tout ou partie du diagnostic mis en oeuvre par certaines unités embarquées. Le but de la présente invention est de résoudre le problème susmentionné en proposant une telle unité de traitement d'informations protégée d'une modification de sa configuration par un mécanisme de verrouil- lage/déverrouillage efficace. A cet effet, la présente invention a pour objet un procédé de contrôle de la modification de la configuration d'une unité de traitement d'informations configurable embarquée dans un véhicule automobile, au moyen d'un outil de configuration connecté à celle-ci, ladite unité de traite-ment d'informations présentant au moins un état verrouillé dans lequel elle ne peut pas être configurée et un état déverrouillé dans lequel elle peut être configurée, caractérisé en ce qu'il comprend : - une étape d'émission par l'outil, et à destination de l'unité, d'une re- quête en déverrouillage de celle-ci ; - en réponse à la réception de cette requête par l'unité, une étape d'émission par l'unité, et à destination de l'outil, d'une première information de déverrouillage, et une étape de génération par l'unité d'une deuxième information de déverrouillage en fonction de la première information de déverrouillage, - en réponse à la réception par l'outil de la première information de déverrouillage, une étape de génération par l'outil d'une troisième information de déverrouillage en fonction de ladite première information reçue, et une étape d'émission par l'outil, et à destination de l'unité, de la troisième information de déverrouillage ; - en réponse à la réception par l'unité de la troisième information de déverrouillage, une étape de comparaison par l'unité des deuxième et troisième informations de déverrouillage ; et - une étape de déverrouillage de l'unité pour la configuration de celle- ci par l'outil si les deuxième et troisième informations de déverrouillage correspondent. Selon d'autres caractéristiques : - préalablement à l'étape d'émission de la première information de déverrouillage, le procédé comporte une étape de génération de celle-ci par l'unité selon un processus aléatoire ; - l'étape de génération de la deuxième information de déverrouillage est réalisée selon un algorithme de chiffrement se fondant sur une clef numérique mémorisée dans l'unité ; - l'étape de génération de la troisième information de déverrouillage par l'outil est réalisée selon le même algorithme que celui utilisé par l'unité, et en se fondant sur une clé numérique mémorisée dans l'outil et identique à celle mémorisée dans l'unité ; - il comporte en outre une étape d'inhibition du déverrouillage de l'unité pendant au moins une durée prédéterminée si les deuxième et troisième informations de déverrouillage ne sont pas identiques ; - si une variable mémorisée dans l'unité est égale à une première va- leur prédéterminée, la configuration de l'unité est libre d'accès quelque soit l'état de verrouillage de celle-ci ; - une étape de modification de la valeur de la variable est déclenchée si l'unité est reconfigurée par l'outil ; et - si une seconde variable dans l'unité est égale à une seconde valeur prédéterminée, une étape de déverrouillage de l'unité est déclenchée quel-que soit le résultat de la comparaison des deuxième et troisième informations de déverrouillage. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en relation avec les dessins annexés, dans lesquels : - la figure 1 est une vue schématique d'une unité de traitement d'informations embarquée dans un véhicule automobile et connectée à un outil de configuration de celle-ci au moyen d'un bus CAN du véhicule ; et - la figure 2 est un organigramme du procédé de verrouil- lage/déverrouillage de l'unité de la figure 1. Sur la figure 1, il est représenté schématiquement, sous la référence générale 10, une unité de traitement d'informations embarquée dans un véhicule automobile. Cette unité 10 est en charge de la commande et/ou du diagnostic du fonctionnement d'organes du véhicule, par exemple d'un système 12 d'injection de carburant dans un moteur thermique du véhicule, d'un système 14 de freinage du véhicule, etc... L'unité 10 est connectée au moyen d'un bus CAN 18 (acronyme anglais de controller area network ) à ces organes 12, 14 ainsi qu'à, le cas échéant, un ensemble de capteurs 16 délivrant des informations nécessaires à la commande ou au diagnostic mis en oeuvre par l'unité 10, comme cela est connu en soi dans l'état de la technique. L'unité 10 comporte un microprocesseur 20 associé à une mémoire 22 stockant un ensemble de paramètres et d'instructions de fonctionnement de celui-ci, lesquels sont configurables au moyen d'un outil 24 de configuration connecté de façon amovible au bus CAN 18. L'unité 10 présente un état verrouillé dans lequel la configuration du calculateur 20 et de la mémoire 22 ne peut être modifiée et un état déverrouillé dans lequel cette configuration peut être modifiée. De manière avantageuse, le basculement de l'état verrouillé à l'état déverrouillé est supervisé simultanément par des modules 26 et 28 de contrôle d'accès à la configuration de l'unité 10, agencés respectivement dans l'unité 10 et l'outil 24. Les modules 26 et 28 sont par exemple mis en oeuvre par voie logicielle par le microprocesseur 20 de l'unité 10 et un microprocesseur 30 compris dans l'outil 24 respectivement. En variante, au moins un des deux modules 26, 28 de contrôle d'accès est rnis en oeuvre par un circuit dédié indépendant du calculateur 20, 30 correspondant. La figure 2 est un organigramme d'un procédé de contrôle des états verrouillé et déverrouillé de l'unité 10, mis en oeuvre par les modules 26 et 28. Dans une première étape 40, l'outil 24 de configuration est connecté au bus CAN 18 et établit une communication avec l'unité 10. Dans une étape 42 suivante, le module 26 de l'unité 10 teste si une de ses variables internes NUM est réglée sur une première valeur NUM1. Si tel est le cas, le module 26 autorise, dans une étape 44, l'outil 24 à accéder librement à la configuration de l'unité 10, quelque soit l'état de verrouillage de celle-ci. Ceci est particulièrement avantageux lorsque l'unité 10 n'a jamais été configurée. En effet, du temps est ainsi gagné lors de la première configuration de l'unité 10 sur la ligne de montage du véhicule, ou lors de la première configuration chez un concessionnaire agrée d'une nouvelle unité de traitement d'informations remplaçant une ancienne unité défectueuse. De manière préférentielle, la variable NUM est réglée sur la valeur NUM1 par défaut par le constructeur de l'unité 10 de traitement d'informations. Si la valeur de la variable NUM mémorisée dans le module 26 de l'unité 10 n'est pas égale à NUM1, l'étape 42 se poursuit alors par une étape 46 dans laquelle le module 28 de l'outil 24 émet à destination de l'unité 10 une requête en déverrouillage de celle-ci. Dans une étape 48 suivante, le module 26 de l'unité 10 teste si cette requête doit être rejetée ou acceptée. Le module 26 met en effet en oeuvre une fonction anti-balayage, ou anti-scanning , autorisant un nombre limité de tentatives de connexions à l'unité 10 par unité de temps, et/ou obligeant qu'une période de temps minimale s'écoule entre deux connexions successives à l'unité 10. Si la requête en déverrouillage est rejetée, l'étape 48 boucle alors sur l'étape 46 pour une tentative ultérieure de connexion. Si la requête en déverrouillage est acceptée, le module 26 de l'unité 10 génère, lors d'une étape 50, un nombre aléatoire par tout générateur de nombres aléatoires approprié connu en soi dans l'état de la technique, et émet le nombre aléatoire généré à destination de l'outil 24 de confi- guration. Dans une étape 52 suivante, le module 26 de l'unité 10 met en oeuvre un algorithme de chiffrement du nombre aléatoire généré en fonction d'une clé numérique CLEF_U mémorisée dans une mémoire spécifique du module 26. Parallèlement, dans une étape 54, le module 28 de l'outil 24 met également en oeuvre le même algorithme de chiffrement du nombre aléatoire qu'il a reçu de l'unité 10, en fonction d'une clé numérique CLEF_O. Cette clef numérique CLEF_O est mémorisée dans une mémoire spécifique du module 28 de l'outil 24, et est égale à la clef numérique CLEF_U pour un outil de configuration autorisé à modifier la configuration de l'unité 10. Tou-jours en 54, le module 28 de l'outil 24 émet à destination de l'unité 10 le résultat de son chiffrement. Dans une étape 56 suivante, le module 26 de l'unité 10 compare le résultat de son chiffrement avec les données qu'il vient de recevoir de l'outil 24, ici le résultat du chiffrement réalisé par le module 28 de l'outil 24. Si le résultat du chiffrement du module 26 de l'unité 10 est identique à ces données, le rnodule 26 de l'unité 10 déverrouille, en 58, l'accès à la configuration de l'unité 10. Sinon, le module 26 teste en 60 si la clé numérique CLEF_O qu'il mémorise est réglée sur une valeur CLEF_01 prédéterminée. Si tel est le cas, l'étape 60 boucle sur l'étape 58 pour le déver- rouillage de l'accès à la configuration de l'unité 10 et ainsi permettre à l'outil 24 de modifier cette configuration. Ceci est particulièrement avantageux lors de phases de développement de l'unité 10 pour permettre l'étude et à la vérification du fonctionnement d'une unité d'essai. Si la clé numérique CLEF_O du module 26 de l'unité 10 n'est pas égale à la valeur CLEF_01, l'étape 60 se poursuit par une étape 62 dans laquelle le module 26 modifie le fonctionnement de l'anti-balayage qu'il met en oeuvre. Plus particulièrement, le module 26 de l'unité 10 diminue le nombre de tentatives autorisées de déverrouillage de l'unité 10 par unité de temps et/ou allonge la période de temps devant s'écouler entre deux connexions successives à l'unité 10. En variante, le module 26 bloque le verrouillage de l'unité 10 si un nombre prédéterminé de tentatives infructueuses de déverrouillage a été effectué successivement. Les étapes 44 et 58 précédemment décrites se poursuivent cha- cune par une étape 64 dans laquelle le module 26 de l'unité 10 teste si la configuration de l'unité 10 a été modifiée par l'outil 24 depuis son autorisation d'accès à celle-ci. Si tel est le cas, le module 26 modifie, en 66, la variable NUM pour la régler sur une valeur différente de NUM1. L'étape 66 boucle ensuite sur l'étape 46. Enfin, si la configuration de l'unité 10 n'a pas été modifiée par l'outil 24, l'étape de test 64 boucle sur l'étape 66. En variante, un voyant lumineux est associé à l'unité 10 et est activé tant que la variable NUM du module 26 de l'unité 10 est égale à la va-leur NUM1 pour informer l'opérateur en charge de la configuration initiale de l'unité 10 que cette configuration n'a toujours pas été effectuée. Comme on peut le constater, le procédé de déverrouillage de l'unité 10 est efficace car, à la fois l'outil 24 de configuration et l'unité 10 participent au déverrouillage. Ainsi, un outil 24 ne comportant pas de module 28 tel que précédemment décrit ne peut accéder à la configuration de l'unité 10. De plus, quant bien même un outil de configuration connecté au bus CAN 18 comprendrait un tel module, cet outil doit nécessairement comprendre une clé numérique identique à celle mémorisée dans l'unité 10. La clef de l'unité 10 n'étant pas accessible, ni modifiable en de-hors de phases d'études d'unités d'essai qui ne sont pas commercialisées, une personne souhaitant configurer sans autorisation une unité de traite- ment d'informations embarquée dans un véhicule automobile ne pourra donc pas déverrouiller celle-ci puisqu'elle ne possède pas, et ne peut obtenir de cette unité, la clef numérique l'y autorisant. De plus, le résultat de chiffrement du nombre aléatoire par le module 26 de l'unité 10 est une donnée interne à celle-ci non accessible par un outil de configuration. Elle ne peut donc pas être piratée pour être utilisée par un outil de configuration non autorisé. Bien entendu, d'autres modes de réalisation sont possibles. REVENDICATIONS 1. Procédé de contrôle de la modification de la configuration d'une unité (10) de traitement d'informations configurable embarquée dans un véhicule automobile, au moyen d'un outil (24) de configuration connecté à celle-ci, ladite unité (10) de traitement d'informations présentant au moins un état verrouillé dans lequel elle ne peut pas être configurée et un état déverrouillé dans lequel elle peut être configurée, caractérisé en ce qu'il comprend : - une étape (42) d'émission par l'outil (24), et à destination de l'unité (10), d'une requête en déverrouillage de celle-ci ; - en réponse à la réception de cette requête par l'unité (10), une étape (50) d'émission par l'unité (10), et à destination de l'outil (24), d'une première information de déverrouillage, et une étape (52) de génération par l'unité (10) d'une deuxième information de déverrouillage en fonction de la première information de déverrouillage, - en réponse à la réception par l'outil (24) de la première information de déverrouillage, une étape (54) de génération par l'outil (24) d'une troisième information de déverrouillage en fonction de ladite première information reçue, et, une étape (54) d'émission par l'outil (24), et à destination de l'unité (10), de la troisième information de déverrouillage ; - en réponse à la réception par l'unité (10) de la troisième information de déverrouillage, une étape (56) de comparaison par l'unité (10) des deuxième et troisième informations de déverrouillage ; et - une étape (58) de déverrouillage de l'unité (10) pour la configuration de celle-ci par l'outil (24) si les deuxième et troisième informations de déverrouillage correspondent. 2. Procédé selon la revendication 1, caractérisé en ce que, préalablement à l'étape (50) d'émission de la première information de déverrouillage, le procédé comporte une étape de génération de celle-ci par l'unité (10) selon un processus aléatoire. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que l'étape (52) de génération de la deuxième information de déverrouillage estréalisée selon un algorithme de chiffrement se fondant sur une clef numérique mémorisée dans l'unité (10). 4. Procédé selon la revendication 3, caractérisé en ce que l'étape (54) de génération de la troisième information de déverrouillage par l'outil (24) est réalisée selon le même algorithme que celui utilisé par l'unité (10), et en se fondant sur une clé numérique mémorisée dans l'outil (24) et identique à celle mémorisée dans l'unité (10). 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte en outre une étape (62) d'inhibition du dé- verrouillage de l'unité pendant au moins une durée prédéterminée si les deuxième et troisième informations de déverrouillage ne sont pas identiques. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, si une variable mémorisée dans l'unité (10) est égale à une première valeur prédéterminée, la configuration de l'unité (10) est libre d'accès quelque soit l'état de verrouillage de celle-ci. 7. Procédé selon la revendication 5, caractérisé en ce qu'une étape (66) de modification de la valeur de la variable est déclenchée si l'unité (10) est reconfigurée par l'outil (24). 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, si une seconde variable dans l'unité (10) est égale à une seconde valeur prédéterminée, une étape (58) de déverrouillage de l'unité est déclenchée quelque soit le résultat de la comparaison des deuxième et troisième informations de déverrouillage.