Brevet FR3060806A1 — publié le 20180622

DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne la vérification de l'intégrité des programmes mémorisés et exécutables au sein d'un appareil électronique. Elle concerne plus particulièrement un procédé de vérification de l'intégrité de données, une entité électronique associée et un appareil électronique comprenant une telle entité électronique. L'invention s'applique particulièrement avantageusement dans le cas où l'entité électronique est intégrée (par exemple soudée) à l'appareil électronique. ARRIERE-PLAN TECHNOLOGIQUE Dans le but de vérifier l'intégrité d'un programme mémorisé dans une mémoire d'un appareil électronique et exécutable par un processeur de l'appareil électronique, il a déjà été proposé qu'un serveur distant transmette un nombre aléatoire à l'appareil électronique afin que celui-ci retourne une preuve d'intégrité déterminée en fonction du nombre aléatoire et des données constituant le programme mémorisé. Une telle solution est par exemple décrite dans l'article "FPGA-Based Remote-Code Integrity Verification of Programs in Distributed Embedded Systems", de C. Basile, S. Di Carlo et A. Scionti, in "IEEE Transactions on Systems, Man, and Cybernetics - Part C: Applications and Reviews", Vol. 42, No. 2, March 2012". OBJET DE L'INVENTION Dans ce contexte, la présente invention propose un procédé de vérification de l'intégrité de données mémorisées dans une mémoire d'un appareil électronique, caractérisé en ce qu'il comprend les étapes suivantes : - réception, par l'appareil électronique, d'au moins une partie de programme, d'une pluralité d'éléments de diversification et de condensats respectivement associés auxdits éléments de diversification ; - mémorisation desdits éléments de diversification et desdits condensats dans une entité électronique équipant l'appareil électronique et distincte de ladite mémoire ; - vérification, par l'entité électronique et au moyen d'un condensat donné parmi lesdits condensats, de l'intégrité d'une partie au moins de la mémoire mise 3060806 2 à jour au moyen du programme. La vérification est ainsi effectuée par l'entité électronique, et donc éventuellement hors ligne. L'étape de vérification peut comprendre par exemple les sous-étapes 5 suivantes : - transmission d'un élément de diversification associé au condensat donné de l'entité électronique à un processeur de l'appareil électronique (l'entité électronique étant également distincte dudit processeur) ; - détermination d'un condensat par le processeur en fonction de 10 l'élément de diversification et desdites données mémorisées dans la mémoire ; - comparaison du condensat déterminé et du condensat donné mémorisé dans l'entité électronique, ce qui permet la vérification éventuelle (en cas de comparaison positive) de l'intégrité des données. Le condensat peut être déterminé en pratique par le processeur par 15 application d'une fonction de hachage à la concaténation de l'élément de diversification et desdites données mémorisées dans la mémoire. En variante, le condensat peut être déterminé par le processeur par application d'une fonction cryptographique utilisant l'élément de diversification auxdites données mémorisées dans la mémoire. 20 Selon un premier mode de réalisation, en cas d'échec à l'étape de vérification, le procédé comprend une étape de traitement d'erreur, mise en oeuvre par l'entité électronique. Une telle étape de traitement d'erreur entraîne par exemple le blocage de certaines fonctionnalités de l'appareil électronique. Selon un second mode de réalisation, éventuellement combinable avec 25 le premier mode de réalisation mentionné ci-dessus, le procédé peut comprendre en outre les étapes suivantes : - réception, en provenance d'un serveur distant, d'une valeur de défi par l'entité électronique ; - en cas de succès à l'étape de vérification, détermination, par l'entité 30 électronique, d'une valeur de réponse en fonction de la valeur de défi et d'une clé mémorisée dans l'entité électronique ; - émission de la valeur de réponse à destination du serveur distant. Une telle valeur de réponse est par exemple déterminée par application, à la valeur de défi reçue, d'un algorithme cryptographique utilisant la clé 3060806 3 mémorisée dans l'entité électronique. L'entité électronique est par exemple un élément sécurisé ; l'entité électronique peut être intégrée à l'appareil électronique. L'invention propose également une entité électronique destinée à 5 équiper un appareil électronique comprenant une mémoire, et conçue pour mettre en oeuvre les étapes suivantes : - réception d'au moins une partie de programme, d'une pluralité d'éléments de diversification et de condensats respectivement associés auxdits éléments de diversification ; 10 - mémorisation desdits éléments de diversification et desdits condensats ; - vérification, au moyen d'un condensat donné parmi lesdits condensats, de l'intégrité d'une partie au moins de la mémoire mise à jour au moyen du programme. 15 Lorsque l'entité électronique comprend un processeur et une mémoire, la mémoire de l'entité électronique mémorise par exemple des instructions de programme exécutables par le processeur de l'entité électronique et conçues de sorte que l'entité électronique mette en oeuvre les étapes de réception, de mémorisation, et de vérification mentionnées ci-dessus lorsque ces instructions 20 sont exécutées par le processeur. L'invention propose enfin un appareil électronique comprenant une mémoire (ainsi qu'éventuellement un processeur) et une entité électronique telle que définie ci-dessus. DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION 25 La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. Sur les dessins annexés : - la figure 1 représente schématiquement les éléments principaux d'un 30 système dans lequel peut être mise en oeuvre l'invention ; - la figure 2 est un logigramme représentant un procédé de chargement d'un programme dans un appareil électronique ; - la figure 3 est un logigramme représentant un premier exemple de procédé de vérification de l'intégrité d'un tel programme ; et 3060806 4 - la figure 4 est un logigramme représentant un second exemple de procédé de vérification de l'intégrité d'un tel programme. La figure 1 représente schématiquement les éléments principaux d'un système dans lequel peut être mise en oeuvre l'invention. 5 Dans un tel système, un appareil électronique 2 comprend un processeur 4 (par exemple un microprocesseur), une mémoire 6, un circuit de communication 8 et une entité électronique 10. La mémoire 6 est une mémoire non-volatile réinscriptible, par exemple de type mémoire flash. 10 Comme cela sera expliqué plus en détail dans la suite, la mémoire 6 mémorise des données, et notamment des instructions d'un programme P, exécutables par le processeur 4. Par mesure de concision, on écrira ainsi dans la suite que le programme P, est exécutable par le processeur 4. Lorsqu'il est exécuté par le processeur 4, le programme P, permet la 15 mise en oeuvre de fonctionnalités par l'appareil électronique 2, par exemple des fonctionnalités prévues dans le cadre du fonctionnement normal de cet appareil électronique 2. Le programme P, peut en outre permettre la mise en oeuvre, par le processeur 4 de l'appareil électronique 2, de l'un au moins des procédés décrits ci-dessous en référence aux figures 2 à 4. 20 Le circuit de communication 8 est conçu de manière à établir une connexion de l'appareil électronique 2 à un réseau de communication, ici un réseau de communication public I tel que le réseau Internet. Par souci de simplification, on a représenté sur la figure 1 une connexion directe entre le circuit de communication 8 et le réseau de communication I. On 25 peut toutefois prévoir en pratique que cette connexion s'établisse par l'intermédiaire d'autres dispositifs électroniques. Par ailleurs, la connexion entre le circuit de communication 8 et le réseau de communication I pourra se faire au moyen de liaisons de différents types, par exemple des liaisons sans fil et/ou des liaisons filaires. 30 Du fait de la connexion établie par le circuit de communication 8 au réseau de communication I, le processeur 4 peut échanger des données avec d'autres équipements connectés au réseau de communication I, en particulier avec un serveur distant 20, comme décrit dans la suite. Dans l'exemple décrit, l'entité électronique 10 est une entité électronique 3060806 5 sécurisée, en l'occurrence un élément sécurisé (ou SE pour "Secure Element"), réalisé ici sous la forme d'un microcontrôleur. Un tel élément sécurisé peut éventuellement être intégré à l'appareil électronique 2, par exemple en étant soudé au sein de l'appareil électronique : l'entité électronique 10 est alors de type 5 eSE (pour "embedded Secure Element"). En variante, l'entité électronique 10 pourrait être une carte à microcircuit (par exemple une carte à microcircuit universelle ou UICC pour "Universal Integrated Circuit Card', telle que visée dans la spécification technique ETSI TS 102 221), ou une carte à microcircuit universelle soudée ou eUICC pour 10 "embedded Universal Circuit Card (telle que décrite dans la norme ETSI TS 103 383). L'entité électronique 10 comprend un processeur (par exemple un microprocesseur) et au moins une mémoire, notamment ici une mémoire non-volatile réinscriptible. Cette mémoire mémorise en particulier des instructions 15 conçues de telle sorte que l'entité électronique 10 puisse mettre en oeuvre l'un au moins des procédés décrits ci-dessous en références aux figures 2 à 4 lorsque ces instructions sont exécutées par le processeur de l'entité électronique 10. La mémoire de l'entité électronique 10 mémorise également des données utilisées au cours de son fonctionnement, en particulier une clé publique 20 PKs associée au serveur 20, une clé secrète de déchiffrement SDEC et, comme cela sera décrit ci-après, des éléments de diversification ri et des condensats Ho associés. Dans certains modes de réalisation, la mémoire de l'entité électronique mémorise aussi une clé privée SK spécifique à l'entité électronique 10. Comme déjà indiqué, l'entité électronique 10 est ici sécurisée, c'est-à- 25 dire que cette entité électronique 10 est conçue, du fait de sa construction physique et de la conception des programmes d'ordinateur qu'elle mémorise, de façon à rendre très difficile, voire impossible, pour un attaquant l'accès (par lecture et/ou modification) aux données confidentielles qu'elle mémorise. Ainsi, l'entité électronique 10 présente un niveau de sécurité conforme aux critères communs 30 EAL (pour "Evaluation Assurance Lever), correspondant à la norme ISO 15408, avec un niveau supérieur ou égal à 4, ou à la norme FIPS (pour "Federal Information Processing Standard') 140-2. Lors d'une phase de préparation de l'appareil électronique 2 en vue de son fonctionnement (ou phase de personnalisation), une version initiale Po du 3060806 6 programme embarqué dans l'appareil électronique 2 est écrite dans la mémoire 6 et un condensat correspondant Ho est écrit dans la mémoire de l'entité électronique 10. Le condensat Ho est par exemple produit par application d'une fonction 5 de hachage G à la version initiale Po : Ho = G(P0). Cette fonction de hachage G peut être par exemple une fonction de la famille SHA-2 (NIST FIPS 180-4), ou de la famille SHA-3 (NIST FIPS 202). On pourrait également utiliser une fonction de type MAC (acronyme pour "Message Authentication Code"), par exemple de type HMAC (NIST FIPS 198-1) ou CMAC (NIST SP800-38B). Une telle fonction de type 10 MAC utilise alors dans ce cas une clé secrète mémorisée dans l'entité électronique 10 La figure 2 est un logigramme représentant un procédé de chargement d'un programme P, dans l'appareil électronique 2 afin de mettre à jour le programme Pu_i embarqué dans cet appareil électronique 2. 15 Ce procédé débute à l'étape El par la détermination, au sein du serveur 20, d'élément de diversification ri (par exemple par tirage aléatoire) et de condensats Ho respectivement associés à ces éléments de diversification ri. Chaque condensat Ho est déterminé en fonction de l'élément de diversification ri concerné et du contenu prévu de la mémoire 6 après 20 mémorisation du programme Pm par exemple en appliquant une fonction de hachage F à la concaténation de l'élément de diversification associé ri et du contenu de la mémoire (incluant le programme Inn) : Ho = F(ri II M), où II est l'opérateur de concaténation et M le contenu (ou image mémoire) de la mémoire 6. 25 La fonction F est ici résistante aux attaques par recherche de second antécédent (en anglais "second-preimage resistant"), c'est-à-dire que connaissant x, il est impossible en pratique de trouver un x' différent de x et tel que F(x) = F(x'). La fonction de hachage F peut être par exemple une fonction de la famille SHA-2 (NIST FIPS 180-4), ou de la famille SHA-3 (NIST FIPS 202). On 30 pourrait également utiliser une fonction de type MAC (acronyme pour "Message Authentication Code"), par exemple de type HMAC (NIST FIPS 198-1) ou CMAC (NIST SP800-38B). En variante, le condensat Ho peut être déterminé en appliquant au contenu M de la mémoire 6 une fonction de hachage F' de type MAC, par exemple 3060806 7 de type HMAC (NIST FIPS 198-1) ou CMAC (NIST SP800-38B), au programme P, concerné en utilisant l'élément de diversification r; concerné en tant que clé sécrète dans cette fonction de type MAC : Ho = F'h(M). Le serveur 20 peut ainsi émettre à destination du processeur 4 de 5 l'appareil électronique 2 le programme P,, les paires élément de diversification ri - condensat Ho et une signature (électronique) S, de ces éléments (étape E2). Une telle signature S, est par exemple générée au niveau du serveur 20 par application d'un algorithme cryptographique de signature (utilisant une clé privée associée à la clé publique PKs déjà mentionnée) aux données représentant 10 (éventuellement sous forme chiffrée comme indiqué ci-dessous) le programme P, et les paires élément de diversification ri - condensat Ho. Les paires élément de diversification ri - condensats Ho (ainsi qu'éventuellement le programme P,) sont ici transmises sous forme chiffrée, par exemple par application (au niveau du serveur 20) d'un algorithme 15 cryptographique de chiffrement utilisant la clé publique associée à la clé secrète de déchiffrement SDEC (dans le cas où cette clé secrète de déchiffrement SDEC est une clé privée de chiffrement asymétrique ; en variante, la clé secrète de déchiffrement SDEC pourrait être une clé symétrique partagée entre l'entité électronique 10 et le serveur 20, auquel cas l'algorithme cryptographique de 20 chiffrement précité utiliserait lui aussi cette clé secrète de déchiffrement SDEC). Le processeur 4 reçoit le programme P,, les paires élément de diversification ri - condensat Ho et la signature S, et les transmet à l'entité électronique 10 à l'étape E4. L'entité électronique 10 reçoit ainsi le programme P,, les paires élément 25 de diversification ri - condensat Ho et la signature S, à l'étape E6. L'entité électronique 10 vérifie la signature S, à l'étape E8 : pour ce faire, l'entité électronique 10 met en oeuvre un algorithme cryptographique de vérification de signature impliquant les données reçues (représentant le programme P, et les paires ri, Ho) la signature reçue S, et la clé publique PKs 30 mémorisée dans la mémoire de l'entité électronique 10 (comme déjà indiqué). Si la vérification de signature échoue à l'étape E8, le procédé se poursuit par une étape E10 de traitement d'erreur : l'entité électronique 10 renvoie par exemple un message d'erreur au processeur 4 et le processeur 4 (sur lequel s'exécute le programme embarqué P,_1) ne procède pas dans ce cas à 3060806 8 l'installation du programme P, reçu. Si la vérification de signature réussit à l'étape E8, les paires ri, Ho reçues (ainsi qu'éventuellement le programme P,) sont déchiffrées par l'entité électronique 10 au moyen d'un algorithme cryptographique de déchiffrement 5 utilisant la clé secrète de déchiffrement SpEc, puis mémorisées dans la mémoire de l'entité électronique 10 (étape E12). Lorsque les condensats Ho sont mémorisés dans l'entité électronique 10, l'entité électronique 10 transmet à l'étape E14 le programme P, (éventuellement déchiffré) au processeur 4 (accompagné éventuellement d'un 10 message indicatif de bon fonctionnement). Le processeur 4 reçoit le programme P, (et éventuellement le message indicatif de bon fonctionnement) à l'étape E16 et procède alors à la mise à jour du programme embarqué au moyen du programme reçu P, (étape E18), par exemple en mémorisant le programme reçu P, dans la mémoire 6 susmentionnée. 15 La figure 3 est un logigramme représentant un premier exemple de procédé de vérification de l'intégrité du programme P, embarqué dans l'appareil électronique 2. L'entité électronique 10 initie à l'étape E20 le processus de vérification d'intégrité du programme embarqué P, en transmettant l'un des éléments de 20 diversification ri au processeur 4. Cette étape d'initiation E20 peut être en pratique déclenchée (de manière automatique) périodiquement par l'entité électronique 10 (par exemple à l'expiration d'un compteur qui est réinitialisé à une valeur prédéterminée dès que l'étape d'initiation E20 est déclenchée). 25 L'élément de diversification ri envoyé à l'étape E20 peut être choisi à chaque itération de l'étape E20 (et parmi les divers éléments de diversification ri mémorisés dans l'entité électronique 10) selon un ordre prédéfini ou, en variante, par sélection aléatoire. Le processeur 4 reçoit ainsi cet élément de diversification ri à l'étape 30 E22. Le processeur 4 détermine alors à l'étape E24 le condensat H'ro associé à cet élément de diversification ri et au contenu courant M' (ou image mémoire) de la mémoire 6 (tel que mis à jour par le programme P, selon le procédé décrit ci-dessus en référence à la figure 2). Dans l'exemple décrit ici, le condensat H'ro est 3060806 9 déterminé en utilisant la fonction de hachage F mentionnée plus haut (dans le cadre de la détermination du condensat correspondant Ho mémorisé dans l'entité électronique 10), par exemple selon la formule : = F(ri II M'). Le processeur 4 transmet alors à l'entité électronique 10 le condensat 5 no ainsi déterminé (étape E26). L'entité électronique 10 reçoit à l'étape E28 le condensat 1-1'ro déterminé par le processeur 4 et compare à l'étape E30 ce condensat 1-1'ro au condensat Ho mémorisé (lors de l'étape E12 décrite plus haut) dans la mémoire de l'entité électronique 10 en association avec l'élément de diversification ri (choisi à l'étape 10 E20). Si le condensat 1-1'0 reçu par l'entité électronique 10 est identique au condensat Ho mémorisé dans l'entité électronique 10, c'est que le contenu courant M' de la mémoire 6 est identique au contenu prévu M pour la mémoire 6 (après mise à jour par le programme 13n) et l'intégrité de la mémoire 6 est donc 15 vérifiée. On procédera alors ultérieurement à une autre vérification d'intégrité, initiée par une nouvelle mise en oeuvre de l'étape E20 comme déjà indiqué. Si le condensat reçu par l'entité électronique 10 diffère du condensat Ho mémorisé dans l'entité électronique 10, cela indique que le contenu de la mémoire 6 a été altéré et on procède alors à un traitement d'erreur à l'étape E32. 20 Un tel traitement d'erreur E32 comprend par exemple l'émission d'un message destiné au processeur 4 et interdisant la mise en oeuvre par le processeur 4 de certaines fonctionnalités (jugées critiques, telles que par exemple des fonctionnalités de paiement). En variante, dans les modes de réalisation où le processeur 4 nécessite 25 une autorisation ou une action de l'entité électronique 10 pour effectuer toute fonctionnalité critique, le traitement d'erreur de l'étape E32 peut comprendre une inhibition de la délivrance de telles autorisations ou de la mise en oeuvre de telles actions par l'entité électronique 10. Le processeur 4 peut commander en outre à l'étape E34 l'affichage, sur 30 une interface utilisateur (non représentée) de l'appareil électronique 2, d'un message (ou autre indication) signalant un risque d'attaque. On remarque que de telles mesures de protection sont mises en oeuvre même lorsqu'aucune connexion n'est établie par le circuit de communication 8. On peut prévoir en outre que, dès lors qu'une connexion est établie sur 3060806 10 un réseau de communication par le circuit de communication 8, l'entité électronique commande au processeur 4 l'émission d'un message d'erreur ERR à destination du serveur 20 (étape E36). Un tel message d'erreur est ainsi émis par l'appareil électronique 2 (sous 5 la commande du processeur 4 et via le circuit de communication 8) à destination du serveur 20 (étape E38). Le serveur 20 reçoit ce message d'erreur et peut ainsi mettre en oeuvre une étape de traitement du défaut d'intégrité (étape E40), qui peut comprendre par exemple une ou plusieurs des actions suivantes selon les circonstances : 10 - lancement d'une mise à jour du programme embarqué (comme décrit ci-dessus à la figure 2) ; - annulation de droits ou autorisations associé(s) à l'appareil électronique 2. La figure 4 est un logigramme représentant un second exemple de 15 procédé de vérification de l'intégrité du programme P, embarqué dans l'appareil électronique 2. Ce procédé débute à l'étape E50 à laquelle le serveur 20 envoie une valeur de défi CH à destination de l'appareil électronique 2. Le serveur 20 envoie par exemple la valeur de défi CH au sein d'une requête de vérification d'intégrité 20 du programme embarqué P, destinée au processeur 4. Le processeur 4 reçoit cette requête et la valeur de défi CH et initie alors le processus de vérification d'intégrité du programme embarqué P, en transmettant la valeur de défi reçue CH à l'entité électronique 10 (étape E52). L'entité électronique 10 reçoit la valeur de défi CH à l'étape E54. 25 de L'entité électronique 10 choisit alors (étape E55) un élément diversification ri parmi la pluralité d'éléments de diversification mémorisés dans la mémoire de l'entité électronique (lors de l'étape E12). L'élément de diversification r; est par exemple choisi aléatoirement parmi les éléments de diversification mémorisés. En variante, les éléments de 30 diversification sont successivement choisis au fur et à mesure des différentes mises en oeuvre du procédé de vérification d'intégrité décrit ici. L'entité électronique 10 transmet l'élément de diversification choisi ri au processeur 4 à l'étape E56. Le processeur 4 reçoit l'élément de diversification ri à l'étape E58 et peut 3060806 11 ainsi déterminer à l'étape E60 le condensat H'n,1 associé à cet élément de diversification ri et au contenu courant M' (ou image mémoire courante) de la mémoire 6. Dans l'exemple décrit ici, le condensat H'1 est déterminé comme suit en utilisant la fonction de hachage F mentionnée plus haut (dans le cadre de la 5 détermination du condensat correspondant Ho mémorisé dans l'entité électronique 10) : H'1 = F(r; II M'). Le processeur 4 transmet alors à l'entité électronique 10 le condensat H'n,1 ainsi déterminé (étape E62). 10 L'entité électronique 10 reçoit à l'étape E64 le condensat H'o déterminé par le processeur 4 et compare à l'étape E66 ce condensat H'1 au condensat Ho mémorisé (lors de l'étape E12 décrite plus haut) dans la mémoire de l'entité électronique 10 en association avec l'élément de diversification ri (choisi à l'étape E55). 15 Si le condensat 1-1'0 reçu par l'entité électronique 10 diffère du condensat Ho mémorisé dans l'entité électronique 10, cela indique que le programme P, a été altéré et on procède alors à un traitement d'erreur à l'étape E68, par exemple en renvoyant un message d'échec au processeur 4. Le processeur 4 peut éventuellement transmettre à son tour dans ce cas un message d'erreur au 20 serveur 20 (ce qui n'est toutefois pas nécessaire, puisqu'en l'absence de réception d'une réponse correcte à l'étape E76 décrite ci-dessous, le serveur 20 considère qu'un problème est survenu). Si le condensat Fro reçu par l'entité électronique 10 est identique au condensat Ho mémorisé dans l'entité électronique 10, l'entité électronique 10 25 détermine une valeur de réponse R en fonction de la valeur de défi CH (reçue à l'étape E54) et d'une clé secrète mémorisée dans l'entité électronique 10, ici la clé privée SK. La valeur de réponse R est par exemple obtenue par application à la valeur de défi CH d'un algorithme cryptographique (ici de signature) utilisant la clé secrète (ici la clé privée SK). 30 On remarque que cette solution permet une vérification d'intégrité du contenu de la mémoire 6 par l'entité électronique 10 sans avoir à transférer ce contenu à l'entité électronique 10. L'entité électronique 10 transmet à l'étape E72 la valeur de réponse R au processeur 4. Le processeur 4 peut ainsi envoyer à l'étape E74 la valeur de 3060806 12 réponse R (ici en tant que réponse à la requête de vérification mentionnée plus haut) au serveur 20. Le serveur 20 reçoit la valeur de réponse R à l'étape E76. Le serveur 20 peut donc vérifier que cette valeur de réponse R a bien été 5 émise par l'entité électronique 10 sur la base de la valeur de défi CH (étape E78), ici en appliquant à la valeur de défi CH et à la valeur de réponse R un algorithme de vérification de signature utilisant la clé publique associée à la clé privée SK. Si la valeur de réponse R est la réponse attendue (i.e. associée à la valeur de défi CH envoyée à l'étape E50), ceci indique que l'entité électronique 10 10 a effectivement vérifié l'intégrité du programme P, à l'étape E66 et l'appareil électronique 2 peut donc continuer à être utilisé sans risque. Le serveur 20 peut ultérieurement lancer (à l'étape E50) une nouvelle vérification de l'intégrité du programme embarqué P. Si la valeur de réponse R n'est pas la valeur attendue (ou si aucune 15 réponse n'est reçue de l'appareil électronique 20 après un laps de temps donné par rapport à l'étape E50), ceci indique que l'entité électronique 10 n'a pas vérifié l'intégrité du programme embarqué P, et on considère donc alors que le programme embarqué P, est altéré (que ce soit fortuitement ou suite à une attaque). 20 On procède donc dans ce cas à une étape E80 de traitement du défaut d'intégrité, qui peut comprendre une ou plusieurs des actions suivantes selon les circonstances : - lancement d'une mise à jour du programme embarqué (comme décrit ci-dessus à la figure 2) ; 25 - annulation de droits ou autorisations associé(s) à l'appareil électronique 2; - signalisation d'un risque d'attaque à un utilisateur de l'appareil électronique 2. REVENDICATIONS1. Procédé de vérification de l'intégrité de données mémorisées dans une mémoire (6) d'un appareil électronique (2), caractérisé en ce qu'il comprend les étapes suivantes : - réception (E4), par l'appareil électronique (2), d'au moins une partie de programme (Pu), d'une pluralité d'éléments de diversification (ri) et de condensats (Ho) respectivement associés auxdits éléments de diversification ; - mémorisation (E12) desdits éléments de diversification (r1) et desdits condensats (Ho) dans une entité électronique (10) équipant l'appareil électronique (2) et distincte de ladite mémoire (6) ; - vérification (E20, E24, E30 ; E56, E60, E66), par l'entité électronique (10) et au moyen d'un condensat donné (Ho) parmi lesdits condensats, de l'intégrité d'une partie au moins de la mémoire (6) mise à jour au moyen du programme (Pu). 2. Procédé de vérification selon la revendication 1, dans lequel l'étape de vérification comprend les sous-étapes suivantes : - transmission (E20 ; E56) d'un élément de diversification (r1) associé au condensat donné (r1) de l'entité électronique (10) à un processeur (4) de l'appareil électronique (2) ; - détermination (E24 ; E60) d'un condensat (H'',;) par le processeur (4) en fonction de l'élément de diversification (ri) et desdites données mémorisées dans la mémoire (6) ; - comparaison (E30 ; E66) du condensat déterminé (H'n,1) et du condensat donné (Ho) mémorisé dans l'entité électronique (10). 3. Procédé de vérification selon la revendication 2, dans lequel le condensat (H'n,1) est déterminé par le processeur (4) par application d'une fonction de hachage à la concaténation de l'élément de diversification (n) et desdites données mémorisées dans la mémoire (6). 4. Procédé de vérification selon la revendication 2, dans lequel le condensat (H'n,1) est déterminé par le processeur (4) par application d'une fonction 3060806 14 cryptographique utilisant l'élément de diversification (ri) auxdites données mémorisées dans la mémoire (6). 5. Procédé de vérification selon l'une des revendications 1 à 4, 5 comprenant une étape de traitement d'erreur (E32), mise en oeuvre par l'entité électronique (10), en cas d'échec à l'étape de vérification. 6. Procédé de vérification selon l'une des revendications 1 à 5, comprenant en outre les étapes suivantes : 10 - réception (E54), en provenance d'un serveur distant (20), d'une valeur de défi (CH) par l'entité électronique (10) ; - en cas de succès à l'étape de vérification, détermination (E70), par l'entité électronique (10), d'une valeur de réponse (R) en fonction de la valeur de défi (CH) et d'une clé (SK) mémorisée dans l'entité électronique (10) ; 15 - émission (E72, E74) de la valeur de réponse (R) à destination du serveur distant (20). 7. Procédé de vérification selon la revendication 6, dans lequel la valeur de réponse (R) est déterminée par application, à la valeur de défi (CH) reçue, d'un 20 algorithme cryptographique utilisant la clé mémorisée (SK) dans l'entité électronique (10). 8. Procédé de vérification selon l'une des revendications 1 à 7, dans lequel l'entité électronique (10) est un élément sécurisé. 25 9. Procédé de vérification selon l'une des revendications 1 à 8, dans lequel l'entité électronique (10) est intégrée à l'appareil électronique (2). 10. Entité électronique (10) destinée à équiper un appareil électronique 30 (2) comprenant une mémoire (6), et conçue pour mettre en oeuvre les étapes suivantes : - réception d'au moins une partie de programme (Pu), d'une pluralité d'éléments de diversification (r1) et de condensats (Ho) respectivement associés auxdits éléments de diversification ; 3060806 15 - mémorisation desdits éléments de diversification (ri) et desdits condensats (Ho) ; - vérification, au moyen d'un condensat donné (Ho) parmi lesdits condensats, de l'intégrité d'une partie au moins de la mémoire (6) mise à jour au 5 moyen du programme (Pu). 11. Appareil électronique (2) comprenant une mémoire (6) et une entité électronique (10) selon la revendication 10.