Brevet FR3100073A1 — publié le 20210226

Description Titre de l'invention : Procédé de sécurisation d'un calculateur de véhicule automobile Domaine technique [0001] L'invention se rapporte au domaine des équipements électriques embarqués dans un véhicule, notamment automobile, et concerne plus particulièrement un procédé de sécurisation d'un calculateur de véhicule, ainsi qu'un calculateur et un véhicule permettant la mise en oeuvre du procédé. [0002] L'invention permet notamment de s'assurer qu'une mémoire est authentique. Technique antérieure [0003] De nos jours, un véhicule, notamment automobile, comprend plusieurs calculateurs, permettant de mettre en oeuvre des fonctions du véhicule, comme par exemple la fonction d'injection du moteur du véhicule. [0004] Chaque calculateur comprend un microcontrôleur, lui-même comprenant une mémoire et au moins un coeur. Ladite mémoire comprend un programme, exécuté par l'au moins un coeur, permettant de mettre en oeuvre une application afin d'activer une fonction du véhicule. Une authentification de la mémoire doit être réalisée, pour vérifier que la mémoire n'a pas été modifiée illicitement, afin d'exécuter le logiciel en toute sécurité. [0005] Pour cela, une première solution consiste en l'utilisation d'une fonctionnalité appelée communément « secure boot » par l'homme du métier, dans laquelle, après chaque démanage du calculateur, l'authentification de la mémoire est réalisée par un coeur du microcontrôleur. C'est seulement lorsque l'authentification est terminée et réussie, que le coeur peut ensuite mettre en oeuvre l'application associée à la mémoire du calculateur. Cependant, le coeur est adapté pour authentifier environ un mégaoctet de données en une seconde, et ainsi en pratique, après le démarrage du calculateur, le coeur a besoin de plusieurs secondes pour authentifier la mémoire complète. Cependant, l'application devrait pouvoir être mise en oeuvre moins de 100 millisecondes après le démarrage du calculateur. [0006] Selon une deuxième solution, appelée communément « authenticated boot » par l'homme du métier, le calculateur comprend plusieurs coeurs, dont un est. exclusivement utilisé pour d'authentifier la mémoire après le démarrage du calculateur, les autres coeurs étant utilisés pour mettre en oeuvre l'application associée à la mémoire du calculateur. L'authentification de la mémoire et l'application associée à la mémoire sont mises en oeuvre simultanément. Cette deuxième solution permet de détecter une mémoire non authentique mais ne prévient, pas l'exécution d'une application associée à 2 une mémoire non authentique. En effet, ladite application est exécutée avant même que la mémoire associée soit authentifiée. [0007] Il existe donc le besoin d'une solution permettant de remédier au moins en partie à ces inconvénients. Exposé de l'invention [0008] L'invention concerne un procédé de sécurisation d'un calculateur de véhicule au- tomobile, ledit calculateur comprenant un microcontrôleur, comprenant une mémoire non volatile et au moins un coeur, ladite mémoire non volatile comprenant une zone mémoire de stockage dite « de contrôle » comprenant un ensemble d'instructions de démarrage, une zone mémoire de stockage dite « d'application » comprenant au moins un ensemble d'instructions d'application configure pour mettre en oeuvre une application du calculateur par Vau moins un coeur, le microcontrôleur étant éteint ou en état de veille, le procédé étant remarquable en ce qu'il comprend les étapes de : a. démarrage du microcontrôleur, b. détection, par la mise en oeuvre de l'ensemble d'instructions de démarrage stocké dans la zone mémoire de contrôle, de l'effacement d'une partie de la zone mémoire d'application de la mémoire non volatile entre la dernière extinction ou mise en veille et le démarrage du microcontrôleur, c. en l'absence d'effacement, exécution par le microcontrôleur d'au moins un ensemble d'instructions d'application. [0009] Par les termes « démarrer » ou « démarrage du microcontrôleur », on entend la mise sous tension ou la sortie d'un état de veille du microcontrôleur. [0010] Avantageusement, le procédé permet d'exécuter une authentification seulement en cas de besoin. En effet, à chaque démarrage, l'authentification n'est pas systématiquement réalisée et donc, dans le cas où l'authentification n'est pas réalisée car elle est considérée inutile, un gain de temps est réalisé entre le démarrage ou l'éveil du calculateur et la mise en oeuvre du programme compris dans la zone mémoire d'application. [0011] La mémoire non volatile comprend une pluralité de secteurs dans lesquels sont stockées une ou plusieurs applications sous forme de bits binaires, permettant d'activer une ou plusieurs fonctions du véhicule. [0012] Le plus petit effacement possible dans la zone mémoire d'application se traduit pai- l'effacement d'un secteur entier, c'est-à-dire dont les bits « tombent » à une valeur définie par défaut dans ladite zone mémoire d'application. [0013] La valeur par défaut dépend du type de la zone mémoire d'application et peut être égale à 0 ou à 1. [0014] De manière préférée, le procédé comprend, après l'étape de détection et en cas 3 d'effacement, une étape d'authentification de la zone mémoire d'application. [0015] Avantageusement, cette étape du procédé permet d'authentifier la zone mémoire d'application, seulement dans le cas où au moins un effacement d'un secteur de la zone mémoire d'application aurait eu lieu. [0016] De manière avantageuse, le calculateur comprend une zone mémoire de stockage dite « de détection ». Chaque effacement de secteur dans ladite zone mémoire d'application entraine la transformation d'un bit de la zone mémoire de détection. [0017] La transformation d'un bit désigne le passage d'un bit de sa valeur par défaut à la valeur inverse. [0018] Avantageusement, cette zone mémoire de détection permet d'indiquer s'il y a eu un effacement ou non, et également d'indiquer le nombre d'effacements réalisés dans la zone mémoire d'application. De plus, la transformation de bits dans la zone mémoire de détection, est engendrée de manière inexorable et inaltérable. [0019] De manière préférée, le procédé comprend, après l'étape d'authentification et lorsque celle-ci est réussie, une étape de mise à jour de la zone mémoire de contrôle, autrement dit, d'enregistrement dans la zone mémoire de contrôle de la valeur du nombre de bits transformés dans la zone mémoire de détection. [0020] De préférence, lors de l'étape de détection du procédé, un effacement d'une partie de la zone mémoire d'application est détecté lorsque le nombre de bits transformés dans la zone mémoire de détection diffère de la valeur enregistrée dans la zone mémoire de contrôle. [0021] Avantageusement, la valeur enregistrée a un rôle de référence lors de l'étape de détection et permet de savoir rapidement et simplement si une étape d'authentification doit être réalisée. [0022] L'invention concerne également un calculateur comprenant un microcontrôleur comprenant une zone de mémoire non volatile et au moins un coeur, ladite mémoire non volatile comprenant une zone mémoire de stockage dite « de contrôle » comprenant un ensemble d'instructions de démarrage, une zone mémoire de stockage dite « d'application » comprenant au moins un ensemble d'instructions d'application configuré pour mettre en oeuvre une application du calculateur par 1' au moins un coeur, le microcontrôleur étant éteint ou en état de veille, étant remarquable en ce qu'il est configuré pour : a. démarrer, b. mettre en oeuvre l'ensemble d'instructions de démarrage stocké dans la zone mémoire de contrôle, c. détecter, par la mise en oeuvre de l'ensemble d'instructions de démarrage, l'effacement d'une partie de la zone mémoire d'application de la mémoire non volatile entre la dernière extinction ou mise en veille et le démarrage du microcontrôleur, d. en l'absence d'effacement, exécuter l'au moins un ensemble d'instructions d'application. [0023] Avantageusement, le calculateur permet d'exécuter une authentification seulement en cas de besoin. En effet, à chaque démarrage, l'authentification n'est pas systématiquement réalisée et donc, dans le cas l'authentification n'est pas réalisée car elle est inutile, un gain de temps est réalisé entre le démarrage ou l'éveil du calculateur et la mise en oeuvre du programme compris dans la zone mémoire d'application. [0024] De préférence, la mémoire non volatile du calculateur est une mémoire flash. Autrement dit, elle désigne une mémoire possédant les caractéristiques d'une mémoire vive mais dont les données sont conservées en mémoire, même lors d'une mise hors tension, connue de l'homme du métier. [0025] De manière préférée, le calculateur, lorsqu'il détecte un effacement, est configure pour authentifier la zone mémoire d'application. [0026] Avantageusement, le calculateur permet d'authentifier la zone mémoire d'application, seulement dans le cas où au moins un effacement d'un secteur de la zone mémoire d'application aurait eu lieu. [0027] De manière avantageuse, le calculateur comprend une zone mémoire de stockage dite « de détection », chaque effacement de secteur dans ladite zone mémoire d'application engendre la transformation d'un bit dans la zone mémoire de détection. [0028] Avantageusement, le calculateur pet-met d'indiquer s'il y a eu un effacement ou non, et également d'indiquer le nombre d'effacements réalisés dans la zone mémoire d'application. [0029] De manière avantageuse, le calculateur est configuré pour, après avoir authentifié la zone mémoire d'application, mettre à jour la zone mémoire de contrôle, autrement dit, pour enregistrer dans la zone mémoire de contrôle la valeur du nombre de bits transformés dans la zone mémoire de détection. [0030] De manière préférée, le calculateur détecte un effacement d'une partie de la zone mémoire d'application lorsque le nombre de bits transformés dans la zone mémoire de détection diffère de la valeur enregistrée dans la zone mémoire de contrôle. [0031] Avantageusement, la valeur enregistrée a un rôle de référence lorsque le calculateur détecte un effacement et permet de savoir rapidement et simplement si une étape d'authentification doit être réalisée. [0032] L'invention concerne également un véhicule, comprenant un calculateur tel que présenté précédemment. Brève description des dessins [0033] D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels : Ifig.11: la figure 1 schématise une forme de réalisation du calculateur selon l'invention. Ifig.21: la figure 2 illustre un exemple de zone mémoire d'application utilisée dans l'invention. Ifig.31: la figure 3 représente le procédé selon l'invention. Description des modes de réalisation SYSTEME [0034] En référence à la figure I. il est représenté une forme de réalisation du calculateur comprenant un microcontrôleur 1 comprenant une mémoire 10 non volatile, autrement dit, une mémoire dont les données sont conservées même en l'absence d'alimentation électrique, et au moins un coeur 20. 11 est représenté en figure 1, un microcontrôleur 1 ne comprenant qu'un coeur 20, afin de simplifier la description. [0035] Mémoire 10 100361 Ladite mémoire 10 non volatile désigne notamment une mémoire dite « flash », connue de l'homme du métier, possédant les caractéristiques d'une mémoire vive mais dont les données sont conservées en mémoire, même lors d'une mise hors tension. 100371 Zl 100381 La mémoire 10 non volatile comprend une zone mémoire de stockage dite « de contrôle » Z1 comprenant un ensemble d'instructions de démarrage, lesdites instructions de démarrage devant être réalisées après le démarrage du calculateur. Cependant, ladite zone mémoire de contrôle Z1 peut également être située dans une autre mémoire non volatile du microcontrôleur I. 100391 La zone mémoire de contrôle Z1 comprend également un compteur, dont la fonction sera expliquée dans les paragraphes suivants. 100401 Z2 100411 La mémoire 10 non volatile comprend également une zone mémoire de stockage dite « d'application » Z2 comprenant au moins un ensemble d'instructions d'application configuré pour mettre en oeuvre une application du calculateur, par exemple la fonction d'injection du moteur du véhicule, par l'au moins un coeur 20. 100421 En référence à la figure 2, ladite zone mémoire d'application Z2 est composée d'au moins un secteur Sj2 comprenant une pluralité de pages Pr, chaque page 13/2 comprenant un ensemble de bits à 0 ou 1 constituant une application mise en oeuvre par le calculateur du véhicule. [0043] Le plus petit effacement possible dans la zone mémoire d'application Z2 se traduit par l'effacement d'un secteur S,2, et plus précisément par le passage à la valeur par 6 défaut de tous les bits dans un secteur Sz, entier. [0044] La valeur par défaut peut être 0 ou 1, et dépend du type de la zone mémoire d'application Z2. [0045] Ainsi, un secteur S22 « fface » ne comprend que des bits égaux à la valeur par défaut. Par ailleurs, dans le cas d'une réécriture dans un secteur S z2 dc la zone mémoire d'application Z2, un effacement est également mis en oeuvre pour ensuite écrire dans ce secteur Sr préalablement effacé. Il est évident que plusieurs secteurs Sr, peuvent être modifiés simultanément et/ou indépendamment. [0046] Z3 [0047] De nouveau en référence à la figure 1, la mémoire 10 non volatile comprend également une zone mémoire de stockage dite « de détection » Z3. Ladite zone mémoire de détection Z3 peut également être située dans une autre mémoire non volatile du microcontrôleur 1. [0048] La zone mémoire de détection Z3 est configurée pour avoir un bit qui se transforme pour chaque effacement d'un secteur 87, dans la zone mémoire d'application Z2. Un bit transformé désigne ici un bit qui passe de la valeur par défaut à la valeur inverse, c'est-à-dire, qui passe de 0 à 1 ou de 1 à 0. Il est d'ailleurs impossible de remettre les bits, dits « transformés », à la valeur par défaut. Chaque transformation de bit est réalisée de manière systématique et automatique soit en même temps que l'effacement soit entre une demande d'effacement et l'effacement lui-même. Le nombre total de bits transformés est inscrit dans le compteur de la zone mémoire de contrôle Z3. [0049] Coeur 20 [0050] Au moins un coeur 20 est configuré pour mettre en oeuvre l'ensemble d'instructions de démarrage stocké dans la zone mémoire de contrôle Z1 et l'ensemble d'instructions d'applications. [0051] Le microcontrôleur 1 étant éteint ou en état de veille, est configuré pour démarrer après mise sous tension du calculateur ou éveil et, grâce à la mise en oeuvre de l'ensemble d'instructions de démarrage, pour détecter s'il y a eu au moins un effacement dans la zone mémoire d'application Z2 de la mémoire 10 non volatile entre la dernière extinction ou mise en veille et le démarrage du calculateur. [0052] Le microcontrôleur 1 est ainsi configuré pour démarrer une authentification de la zone mémoire d'application Z2 si au moins un effacement a été détecté, et/ou pour exécuter l'au moins un ensemble d'instructions d'application, si aucun effacement n'est détecté, et donc si la zone mémoire d'application Z2 est désignée comme authentique. PROCEDE [0053] En référence à la figure 3, il est représenté un mode de réalisation du procédé de sé- curisation d'un calculateur de véhicule, mis en oeuvre par la forme de réalisation du 7 calculateur telle que présentée précédemment. [0054] Le calculateur, et donc le microcontrôlcur 1, est tout d'abord considéré éteint ou en état de veille. [0055] Le procédé comprend tout d'abord une étape de démarrage El du calculateur. Par exemple, dans le cas où le calculateur est embarqué dans un véhicule, à l'allumage du moteur ou au déverrouillage des ouvrants du véhicule, directement ou après un certain laps de temps défini, le calculateur démarre, autrement dit est mis sous tension ou sort de son état de veille. Par ailleurs, le calculateur peut également, de lui-même, redémarrer ou sortir de son état de veille régulièrement lors de l'utilisation du véhicule, notamment en cas de détection d'erreur dans son fonctionnement ou dans le fonctionnement du système auquel il appartient. [0056] Après le démarrage du calculateur, le procédé comprend une étape de détection E2 d'un effacement d'une partie de la zone mémoire d'application Z2 de la mémoire 10 non volatile entre la dernière extinction ou mise en veille et le démarrage du calculateur. Pour cela, le coeur 20 du microcontrôlcur 1 met en oeuvre l'ensemble d'instructions de démarrage stocké dans la zone mémoire de contrôle Zl. [0057] Ainsi, le nombre de bits transformés dans la zone mémoire de détection Z3 est compté, et est comparé avec le nombre préinscrit dans le compteur de la zone mémoire de contrôle Zl. [0058] Comme décrit précédemment, un effacement désigne plus particulièrement l'effacement d'un secteur S72 de la zone mémoire d'application Z2. En effet, la plus petite unité possiblement effaçable correspond à un secteur S72. [0059] Si le nombre de bits transformés dans la zone mémoire de détection Z3 est égal au nombre préinscrit dans le compteur, cela prouve qu'il n'y a pas eu d'effacement entre la dernière extinction ou mise en veille et le démarrage du calculateur. En l'absence d'effacement, la zone mémoire d'application Z2 reste authentique et le procédé comprend une étape d'exécution E3 par le coeur 20 du microcontrôleur 1 d'au moins un ensemble d'instructions d'application. [0060] Par ailleurs, si le nombre de bits transformés en zone mémoire de détection Z3 est différent du nombre préinscrit dans le compteur, cela signifie qu'il y a eu au moins un effacement entre la dernière extinction ou mise en veille et le démarrage du calculateur. [0061] En cas d'effacement, cela signifie que la zone mémoire d'application Z2 n'est peut- être plus authentique. Ledit effacement peut notamment être dû à une reprogrammation de la zone mémoire d'application Z2. En effet, lors d'une reprogrammation, licite, par une garagiste par exemple, ou illicite, ladite zone mémoire d'application Z2 a été au moins partiellement effacée, engendrant la transformation d'au moins un bit, précédemment à la valeur par défaut, dans la zone mémoire de détection Z3. 8 [0062] Ainsi, pour chaque secteur Sz, effacé, un bit dans la zone mémoire de détection Z3 est transformé. [0063] En raison du doute levé précédemment via la détection d'au moins un effacement, le procédé comprend une étape d'authentification E4 de la zone mémoire d'application Z2. [0064] Si l'étape d'authentification est « réussie », autrement dit, si le programme compris dans la zone mémoire d'application Z2 est désigné comme authentique, le procédé comprend une étape de mise à jour E5 de la valeur préinscrite dans le compteur, autrement dit, la valeur du nombre de bits transformés de la zone mémoire de détection Z3 est enregistrée dans la zone mémoire de contrôle Zl. [0065] Une fois l'étape de mise à jour E5 effectuée, le procédé peut comprendre une étape d'exécution E3 de l'au moins un ensemble d'instructions d'application. [0066] Sinon, si l'authentification n'est pas réussie, par exemple parce que la zone mémoire d'application Z2 n'est réellement pas authentique ou parce que le calculateur a été éteint prématurément pendant une reprograrnmation, le programme compris dans la zone mémoire d'application Z2 n'est pas considéré authentique et n'est pas exécuté. Dans un tel cas, seule une étape de reprogrammation E6 de la zone mémoire d'application Z2 est possible. [0067] Optionnellement, à la fin d'une étape de reprogrammation E6, le procédé peut comprendre une étape d'authentification E4 de la zone mémoire d'application Z2, sans même avoir à redémarrer le calculateur. [0068] Par ailleurs, le nombre préinscrit dans le compteur de la zone mémoire de contrôle Z1 est préalablement déterminé, lors de chaque étape de mise à jour E5 du procédé. [0069] Ainsi, le calculateur et le procédé mis en oeuvre par ledit calculateur, permettent d'éviter toute itération inutile de l'étape d'authentification E4 et donc toute perte de temps inutile entre le démarrage du calculateur et la mise en oeuvre du programme compris dans la zone mémoire d'application Z2. 9 [Revendication 1] REVENDICATIONSProcédé dc sécurisation d'un calculateur de véhicule automobile, ledit calculateur comprenant un microcontrôleur (1), comprenant une mémoire (10) non volatile et au moins un coeur (20), ladite mémoire (10) non volatile comprenant une zone mémoire de stockage dite « de contrôle » (Z1) comprenant un ensemble d'instructions de démarrage, une zone mémoire de stockage dite « d'application » (Z2) comprenant au moins un ensemble d'instructions d'application configure pour mettre en oeuvre une application du calculateur par l'au moins un coeur (20), le microcontrôleur (1) étant éteint ou en état de veille, le procédé étant caractérisé en ce qu'il comprend les étapes de : a. démarrage (El) du microcontrôleur (1), b. détection (E2), par la mise en oeuvre de l'ensemble d'instructions de démarrage stocké dans la zone mémoire de contrôle (Z1), de l'effacement d'une partie de la zone mémoire d'application (Z2) de la mémoire (10) non volatile entre la dernière extinction ou mise en veille et le démarrage du micro-contrôleur (1), c. en l'absence d'effacement, exécution (E3) par le micro-contrôleur (1) d'au moins un ensemble d'instructions d'application. [Revendication 2] [Revendication 3] [Revendication 4] Procédé selon la revendication 1, après l'étape de détection et en cas d'effacement, comprenant une étape d'authentification (E4) de la zone mémoire d'application (Z2). Procédé selon l'une quelconque des revendications 1 et 2, dans lequel, le calculateur comprenant une zone mémoire de stockage dite « de détection » (Z3), chaque effacement dans ladite zone mémoire d'application (Z2) entraine la transformation d'un bit de la zone mémoire de détection (Z3). Procédé, selon l'une quelconque des revendications 2 et 3, comprenant après l'étape d'authentification (E4) et lorsque celle-ci est réussie, une étape de mise à jour (ES) de la zone mémoire de contrôle (Z1), autrement dit, d'enregistrement dans la zone mémoire de contrôle (Z1) de la valeur du nombre de bits transformés dans la zone mémoire de détection (Z3). 10 [Revendication 5] [Revendication 6] Procédé, selon la revendication précédente, dans lequel, lors de l'étape de détection (E2), un effacement d'une partie de la zone mémoire d'application (Z2) est détecté lorsque le nombre de bits transformés dans la zone mémoire de détection (Z3) diffère de la valeur enregistrée dans la zone mémoire de contrôle (Z1). Calculateur comprenant un tnicrocontrôleur (1) comprenant une mémoire (10) non volatile et au moins un coeur (20), ladite mémoire (10) non volatile comprenant une zone mémoire de stockage dite « de contrôle » (Z1) comprenant un ensemble d'instructions de démarrage, une zone mémoire de stockage dite « d'application » (Z2) comprenant au moins un ensemble d'instructions d'application configure pour mettre en oeuvre une application du calculateur par l'au moins un coeur (20), le microcontrôleur (1) étant éteint ou en état de veille, étant caractérisé en ce qu'il est configure pour : a. démarrer, b. mettre en oeuvre l'ensemble d'instructions de démarrage stocké dans la zone mémoire de contrôle (Z1), c. détecter, par la mise en oeuvre de l'ensemble d'instructions de démarrage, l'effacement d'une partie de la zone mémoire d'application (Z2) de la mémoire (10) non volatile entre la dernière extinction ou mise en veille et le démarrage du micro-contrôleur (1), d. en l'absence d'effacement, exécuter l'au moins un ensemble d'instructions d'application. [Revendication 7] Calculateur, selon la revendication précédente, dans lequel la mémoire (10) non volatile est une mémoire flash. [Revendication 8] Calculateur selon l'une quelconque des revendications 6 et 7, configuré pour authentifier la Zone mémoire d'application (Z2) lorsqu'il a détecté un effacement. [Revendication 9] Calculateur, selon l'une quelconque des revendications 6 à 8, comprenant une zone mémoire de stockage dite « de détection » (Z3), chaque effacement dans ladite zone mémoire d'application (Z2) entraine la transformation d'un bit dans la zone mémoire de détection (Z3). [Revendication 10] Véhicule, comprenant un calculateur selon l'une quelconque des reven- dications 6 et 9.