Brevet FR2941804A1 — publié le 20100806

B9232 - 08-ZV2-309 1 VÉRIFICATION D'AUTHENTICITÉ D'UNE MISE À JOUR D'UN CIRCUIT ÉLECTRONIQUE Domaine de l'invention La présente invention concerne de façon générale les circuits électroniques et, plus particulièrement, les circuits dits sécurisés qui exécutent des algorithmes de cryptographie à des fins de chiffrement, d'identification ou d'authentification. L'invention concerne plus précisément le traitement de mises à jour de programmes ou de données contenus dans de tels circuits. Exposé de l'art antérieur Dans les applications visées par la présente invention, un circuit sécurisé contient généralement au moins une unité de traitement numérique et une ou plusieurs mémoires parmi lesquelles au moins une mémoire non volatile réinscriptible dans laquelle est stockée tout ou partie de programmes ou de données exploités par le circuit. Le circuit possède une fonction de chiffrement asymétrique destinée à être utilisée à des fins d'authentification de son contenu. Par exemple, le circuit sécurisé est contenu dans une carte à puce utilisée pour authentifier un utilisateur et ses droits dans un système de télédiffusion. Selon un autre exemple, B9232 - 08-ZV2-309 2 ce circuit sécurisé valide des droits d'un utilisateur à des téléchargements sur Internet. Lors de la fabrication du circuit, une paire de clés (privée et publique) affectée au circuit pour un mécanisme de chiffrement asymétrique est stockée dans le circuit. Par ailleurs, un certificat est fourni par une autorité de certification à partir de la clé publique du circuit et de paramètres du circuit. Ces paramètres prennent en compte au moins une partie des données stockées dans le circuit de façon à permettre ultérieurement d'en vérifier l'authenticité. Par données, on entend toute donnée numérique, qu'il s'agisse d'instructions d'un programme ou de données proprement dites manipulées par le circuit. Les paramètres sont choisis pour être représentatifs des données dont on souhaite garantir qu'elles n'ont pas été modifiées. En utilisation, lorsqu'un dispositif électronique (par exemple, un serveur Internet, un fournisseur d'accès, etc.) souhaite vérifier l'authenticité du circuit sécurisé, il extrait le certificat du circuit et utilise une clé publique de l'autorité de certification ayant servi à signer ce certificat pour en vérifier l'authenticité. La lecture du certificat permet d'extraire la clé publique du produit ainsi que des valeurs des paramètres de celui-ci qui ont été prises en compte par ce certificat. Une lecture des valeurs courantes des paramètres du produit est comparée à celles extraites du circuit. Une identité entre les valeurs valide l'authenticité du circuit. Une étape supplémentaire consiste généralement à demander au circuit sécurisé de signer un message afin de vérifier cette signature grâce à la clé publique du produit authentifié. Cette vérification de signature valide la paire clé privée - clé publique et garantit que le circuit sécurisé est bien en possession de la clé privée. Si le programme contenu dans la mémoire du circuit sécurisé doit être mis à jour avec des modifications intervenant sur les paramètres pris en compte dans le certificat B9232 - 08-ZV2-309 3 d'authentification, il est aujourd'hui nécessaire de révoquer ce certificat et d'en obtenir un nouveau d'une autorité de certification. Un tel mécanisme requiert un échange dit en ligne (on line) pour que la mise à jour du programme s'accompagne d'une mise à jour du certificat. Par exemple, cela oblige le fabriquant du circuit à demander à une autorité de certification, autant de nouveaux certificats qu'il y a de produits à mettre à jour (et optionnellement de clés publiques de produits). De telles connexions en ligne ne sont pas toujours disponibles. En particulier, lorsque la mise à jour provient d'un fabricant du circuit sécurisé et que les circuits sont déjà en cours d'utilisation, le distributeur du produit (par exemple l'opérateur d'un réseau mobile de communication) peut intervenir sur le produit mais il est alors impossible de remonter à une connexion en ligne avec le fabricant puis avec une autorité de certification. Il serait souhaitable de disposer d'un mécanisme de mise à jour d'un circuit électronique qui puisse s'effectuer 20 hors connexion (off line). Il serait par ailleurs souhaitable que de telles mises à jour puissent être effectuées sur le circuit en cours d'utilisation sans nuire aux authentifications ultérieures. Résumé 25 Un objet d'un mode de réalisation de la présente invention est de proposer un processus d'authentification d'un circuit par un mécanisme asymétrique qui soit compatible avec une mise à jour des programmes contenus dans le circuit pendant son utilisation. 30 L'invention vise également à proposer un mécanisme d'authentification compatible avec les algorithmes usuels de chiffrement asymétrique. Pour atteindre tout ou partie de ces objets ainsi que d'autres, il est prévu un procédé de mise à jour de données 35 numériques stockées dans une mémoire non volatile réinscriptible B9232 - 08-ZV2-309 4 d'un circuit électronique contenant, avant mise à jour, une paire de clés publique et privée de chiffrement asymétrique et un certificat fonction de premières valeurs de paramètres contenus dans ladite mémoire, la mise à jour incluant une modification de valeur d'au moins une partie desdits paramètres, et une signature prenant en compte des deuxièmes valeurs des paramètres modifiés. Selon un mode de réalisation de la présente invention, ladite signature est en outre fonction des premières valeurs. Il est également prévu un procédé d'authentification d'un circuit électronique, dans lequel un dispositif utilisateur souhaitant authentifier le circuit : extrait ledit certificat ; extrait des valeurs courantes desdits paramètres ; déduit ladite clé publique du circuit à partir dudit certificat ; et vérifie la cohérence entre lesdites valeurs courantes et les premières valeurs. Selon un mode de réalisation de la présente invention, 20 en cas d'incohérence entre lesdites valeurs courantes et les premières valeurs, le dispositif utilisateur : extrait ladite signature dudit circuit ; et vérifie la cohérence entre lesdites valeurs courantes et les deuxièmes valeurs. 25 Selon un mode de réalisation de la présente invention, le dispositif utilisateur obtient, d'une autorité de certification, au moins une clé lui permettant de décoder ledit certificat et ladite signature. Il est également prévu un circuit électronique, 30 comportant des moyens adaptés à la mise en oeuvre du procédé de mise à jour ou d'authentification. Il est également prévu un dispositif d'authentification d'un circuit électronique, comportant des moyens adaptés à la mise en oeuvre du procédé d'authentification. B9232 - 08-ZV2-309 Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que d'autres seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif 5 en relation avec les figures jointes parmi lesquelles : la figure 1 est un schéma bloc des éléments d'un système d'authentification auquel s'applique à titre d'exemple la présente invention ; la figure 2 illustre un exemple de contenu d'une 10 mémoire non volatile réinscriptible d'un circuit dit sécurisé de la figure 1 ; la figure 3A illustre un processus d'initialisation du certificat d'authentification du circuit sécurisé ; la figure 3B illustre un mode de réalisation d'un 15 mécanisme d'authentification du circuit sécurisé avant mise à jour ; les figures 4A, 4B et 4C illustrent trois phases de fonctionnement relatives à la mise à jour du circuit sécurisé ; et 20 les figures 5A et 5B illustrent des exemples de contenus de mémoires du circuit, respectivement avant et après mise à jour. De mêmes éléments et étapes ont été désignés par de mêmes références aux différentes figures. 25 Description détaillée Par souci de clarté, seuls les éléments et étapes utiles à la compréhension de l'invention ont été représentés et seront décrits. En particulier, les détails d'exécution de mécanismes de chiffrement à clé publique n'ont pas été exposés, 30 la cryptographie asymétrique étant une technique en elle-même connue. De plus, le contenu des programmes du circuit sécurisé et la destination d'un tel circuit n'ont pas été détaillés, l'invention étant compatible avec les utilisations usuelles de circuits électroniques à des fins d'authentification. B9232 - 08-ZV2-309 6 La figure 1 est un schéma bloc illustrant les échanges entre des dispositifs participant à un processus d'authentification du type auquel s'applique la présente invention. Un circuit électronique 1, dit sécurisé, comporte une unité de traitement 11 et une ou plusieurs mémoires parmi lesquelles généralement au moins une mémoire non volatile 12 (NVMEM) au moins partiellement réinscriptible et une mémoire volatile 13 (VMEM). Les échanges à l'intérieur du circuit sécurisé s'effectuent, par exemple, sur un ou plusieurs bus 14 de données, d'adresses et de commandes. Ces bus (ou d'autres) peuvent véhiculer les signaux vers une interface 15 d'entrée/sortie (I/O) permettant au circuit de communiquer avec ou sans fil (liaisons 2) avec des éléments extérieurs. Le plus souvent, le circuit 1 comporte d'autres fonctions (symbolisées par un bloc 16) parmi lesquelles on trouve par exemple un coprocesseur cryptographique, un générateur de nombres aléatoires, une horloge, des capteurs d'éléments physique, etc. Les autres entités intervenant dans le système illustré en figure 1 comportent au moins un fabricant ou fournisseur (bloc 3, ISSUER) des circuits sécurisés, un ou plusieurs utilisateurs (bloc 4, USER), par exemple, des opérateurs de téléphonie mobile, des fournisseurs de télévision à péage, des fournisseurs de contenus multimédia sur Internet, etc., et une autorisé de certification 5 (CA) également appelée tiers de confiance. Les différents intervenants sont susceptibles de communiquer entre eux par des liaisons filaires ou non (liaisons 2). Ils correspondent en pratique à un ou plusieurs systèmes informatiques susceptibles de mettre en oeuvre, outre les fonctions liées à l'application (échanges de contenus numériques, établissement de communication, etc.), au moins une cryptographie asymétrique à des fins d'authentification de circuits sécurisés 1. La figure 2 illustre, de façon très schématique, un exemple de contenu d'une mémoire non-volatile réinscriptible 35 (par exemple la mémoire 12) du circuit 1. Cette mémoire contient B9232 - 08-ZV2-309 7 au moins une partie 121 destinée à des programmes (PROG) susceptibles d'être exécutés par l'unité de traitement 11. D'autres programmes peuvent être contenus dans une mémoire non volatile non réinscriptible. La mémoire 12 contient en outre des données 122 (DATA) manipulées par le circuit 1 ou ses programmes. Par ailleurs, au moins un certificat CERT (zone 123), fourni par une autorité de certification à partir de la clé publique du produit et de certains paramètres de celui-ci (typiquement des éléments du programme 121 ou des données 122), est stocké dans la mémoire non-volatile réinscriptible. Dans le mode de réalisation représenté au moins une signature DELTA SIGN est stockée dans la mémoire 12 (zone 124). Cette signature est utilisée pour, comme on le verra par la suite, authentifier le produit en cas de mise à jour. Les figures 3A et 3B illustrent, de façon très schématique, une partie des échanges intervenant pour le mécanisme d'authentification lors de la fabrication du produit (figure 3A), puis lors de son utilisation (figure 3B). Initialement (lors de la fabrication du circuit 1), une paire de clés (privée et publique) de chiffrement asymétrique affectée au circuit 1 est stockée de façon non volatile (et généralement non réinscriptible) dans le circuit 1 (IC). Une fois que les programmes, plus généralement les données dont on souhaite pouvoir vérifier ultérieurement l'authenticité sont stockées dans le circuit, le fournisseur (ISSUER) lit la partie publique (PPK) de la clé contenue dans le produit sécurisé, et extrait des valeurs initiales IPARAM de paramètres exploités par le processus d'authentification. Ces valeurs sont dites initiales car elles correspondent au contenu d'origine du circuit. Par exemple, les paramètres correspondent au contenu de différentes adresses de la mémoire non volatile 12. L'objectif est de permettre de détecter une éventuelle modification du contenu de cette mémoire lors du processus d'authentification par un utilisateur. Les paramètres pris en B9232 - 08-ZV2-309 8 compte sont choisis pour être communs à plusieurs circuits (typiquement, à une famille de circuit, un lot de fabrication, etc.). Par contre, la clé publique du produit PPK est propre à chaque circuit. Le fournisseur ISSUER envoie à l'autorité de certification (CA) la clé publique PPK et les valeurs IPARAM de façon à permettre à cette autorité de générer un certificat (bloc 61, GEN CERT. L'autorité CA génère ce certificat et le transmet au fournisseur ISSUER. Celui-ci transfère alors dans la zone 123 de la mémoire 12 le certificat (CERT) signé par l'autorité de certification. A ce stade, le circuit sécurisé IC contient non seulement la paire de clés du produit mais également un certificat CERT fourni par l'autorité de certification. La figure 3B illustre le fonctionnement du processus d'authentification lorsque le produit est utilisé. Un utilisateur (par exemple, une entité souhaitant authentifier le circuit sécurisé ou son possesseur avant d'exécuter une opération) commence par obtenir une clé publique CA PK utilisée par l'autorité de certification CA pour signer les certificats. Cette clé est en fait une clé diffusée de manière authentifiée par l'autorité de certification et permettant à tous les utilisateurs d'en déchiffrer les certificats. L'utilisateur USER lit le certificat CERT contenu dans le circuit sécurisé IC. Il utilise la clé publique CA PK pour le déchiffrer et obtenir la clé publique PKK du circuit. Puis, l'utilisateur lit dans le circuit des valeurs courantes CPRAM des paramètres de celui-ci et le dispositif utilisateur déchiffre, à partir du certificat lu, les valeurs IPARAM et les compare aux valeurs courantes CPARAM (bloc 65 CHECK CERT). Une étape supplémentaire consiste généralement à vérifier une signature dynamique effectuée par le circuit IC. Pour cela, l'utilisateur envoie un message CHALLENGE (par exemple, un mot issu d'un tirage aléatoire) au circuit IC. Le circuit IC signe le message (bloc 67, SIGN) avec sa clé privée et retourne le message signé (SIGNED CHALLENGE) à l'utilisateur. Celui-ci B9232 - 08-ZV2-309 9 vérifie alors (bloc 69, VERIF) le message signé à l'aide de la clé publique du produit PPK. Une fois ces étapes terminées, l'utilisateur est sûr que ni les clés contenues dans le circuit, ni les paramètres de ce circuit n'ont été modifiées depuis la génération du certificat CERT par l'autorisé de certification (étape 61, figure 3A) et considère alors le circuit comme authentique. Les figures 4A, 4B et 4C illustrent une mise à jour de circuits et les authentifications ultérieures. On considère une mise à jour intervenant sur les paramètres pris en compte par le certificat. Le fournisseur commence (figure 4A) par demander à l'autorité de certification de générer (bloc 71, GEN DELTA SIGN) une signature DELTA SIGN représentative de la différence de valeurs entre les valeurs initiales IPARAM et des valeurs finales FPARAM prise par les paramètres après la mise à jour. Pour cela, il envoie à cette autorité les valeurs IPARAM ainsi que les valeurs finales FPARAM calculées à partir de la mise à jour prévue dans le programme et dans les données. L'autorité de certification CA renvoie au fournisseur une signature DELTA SIGN de paramètres incluant les valeurs IPARAM ainsi que les valeurs finales FPARAM. Le fournisseur intègre cette signature dans le fichier devant être exécuté pour la mise à jour du produit. Il diffuse donc le programme de mise à jour UPDATEPG avec la signature DELTA SIGN aux différents utilisateurs susceptibles de mettre à jour des produits. La figure 4B illustre cette diffusion. Le fournisseur ISSUER fournit aux différents utilisateurs le programme UPDATEPG et la signature DELTA SIGN. Lorsqu'un circuit IC à mettre à jour est traité par un dispositif utilisateur, ce dernier envoie au produit, pour mise à jour de sa mémoire 12, le programme UPDATEPG et la signature DELTA SIGN. Cette signature est stockée par le circuit IC dans la zone 124 (figure 2) de sa mémoire non volatile. B9232 - 08-ZV2-309 10 On notera que le certificat d'origine CERT n'est pas effacé de la mémoire 12. La zone mémoire 123 contenant le certificat d'origine n'est pas écrasée par la signature DELTA SIGN. La figure 4C illustre le mécanisme d'authentification d'un circuit IC après que celui-ci ait été mis à jour. Les deux premières étapes sont identiques à la procédure avant mise à jour, c'est-à-dire que l'utilisateur commence par lire le certificat CERT pour en extraire la clé publique (bloc 63) puis par lire les valeurs courantes CPARAM pour vérifier s'ils sont identiques à ceux du certificat. Comme le produit a été mis à jour, les paramètres courants sont différents (bloc 65', CHEK CERT NOK). L'utilisateur déclenche alors la lecture de la signature DELTA SIGN dans le produit. Il commence par vérifier cette signature avec la clé publique de l'autorité de certification CA PK. Puis, il compare les valeurs courantes aux valeurs finales contenues dans cette signature. Si la signature DELTA SIGN ne contient que la différence entre les paramètres, l'utilisateur commence par extraire, du certificat lu dans le circuit, les valeurs initiales pour calculer la différence entre les valeurs courantes et initiales. Si cette différence correspond à celle contenue dans la signature DELTA SIGN, le circuit est authentifié (bloc 68, AUTHENTIC). Une fois l'authentification effectuée, l'utilisateur déclenche une vérification de signature dynamique comme en figure 3B. Les figures 5A et 5B illustrent les contenus respectifs des zones mémoire du circuit 1 avant et après mise à jour. Avant mise à jour, le circuit 1 contient, par exemple en mémoire non volatile réinscriptible 12, la paire de clés publique PKK et privée SKK (zone 128), les valeurs initiales IPARAM (zones 121 et 122) de même que le certificat CERT (zone 123). B9232 - 08-ZV2-309 11 Après mise à jour, les valeurs des paramètres correspondent aux valeurs finales FPARAM et la zone 124 de la mémoire 12 contient la signature DELTA SIGN. Ce qui a été décrit en relation avec une situation initiale et une situation mise à jour s'applique également à des mises à jour successives. Par exemple, plusieurs zones 123 sont prévues pour recevoir les signatures de mises à jour successives. On peut ainsi authentifier l'historique des mises à jour. Selon un autre exemple, la signature DELTA SIGN est écrasée avec une nouvelle valeur à chaque nouvelle mise à jour. Cette dernière solution présente l'avantage qu'une même mise à jour peut concerner des circuits ayant, avant mise à jour, des versions de mise à jour différentes. Un avantage du processus décrit est qu'il évite une connexion en ligne lors de la mise à jour du produit sécurisé par un utilisateur. Le téléchargement du programme de mise à jour et de la signature de la différence peut être effectué par les dispositifs utilisateurs. Le fournisseur du programme de mise à jour n'intervient auprès de l'autorité de certification que pour obtenir la signature DELTA SIGN. Cette intervention ne s'effectue qu'une fois par ensemble de produits. Les paramètres modifiés lors d'une mise à jour doivent toutefois être tous modifiés de la même façon pour une famille de produits concernés, c'est-à-dire que cette mise à jour n'intervient pas sur un identifiant individuel du produit ou sur ses clés. Cela est généralement le cas en pratique. La clé publique CA PK de l'autorité de certification qui a signé le certificat d'origine est ou non la même que celle qui signe la signature DELTA SIGN. Par rapport à l'utilisation d'un deuxième certificat, une différence est que la signature DELTA SIGN ne tient pas compte de la clé publique du produit. Il est donc possible de mutualiser une même signature DELTA SIGN pour une famille de produits, ce qui évite au fournisseur ISSUER d'intervenir sur chaque circuit. B9232 - 08-ZV2-309 12 Le fait d'extraire les paramètres initiaux (figure 4C) avant la mise à jour permet d'authentifier l'origine initiale du produit ainsi que la cohérence de la clé publique de ce produit. Connaissant les paramètres initiaux à partir de la signature DELTA SIGN, l'utilisateur est capable de remonter au certificat fourni en ayant simplement extrait la clé publique. En variante, seuls les paramètres finaux sont contenus dans la signature. Dans ce cas, l'utilisateur peut vérifier la clé publique et les paramètres finaux. Divers modes de réalisation avec diverses variantes ont été décrits. On notera que l'homme de l'art pourra combiner divers éléments de ces divers modes de réalisation et variantes sans faire preuve d'activité inventive. Par ailleurs, la mise en oeuvre pratique de l'invention à partir des indications fonctionnelles données ci-dessus et en utilisant des moyens de traitement numérique usuels (ordinateurs, circuits de calcul dédiés, etc.), est à la portée de l'homme du métier. De plus, bien qu'un langage fonctionnel ait le plus souvent été utilisé, l'invention est mise en oeuvre par des moyens techniques, typiquement des unités de traitement numériques contenues dans chacun des systèmes participant à sa mise en oeuvre. En outre, si l'invention s'applique plus particulièrement à l'authentification d'un circuit intégré sécurisé contenant l'ensemble des paramètres à vérifier, certains des paramètres pris en compte dans les certificats et signatures pourront être contenus dans des circuits intégrés externes au circuit sécurisé (par exemple, dans des circuits assemblés sur une même carte). Enfin, bien que l'invention ait été décrite en relation avec des paramètres numériques, elle s'applique également au cas où les paramètres sont des signaux électriques analogiques dont on extraits des valeurs caractéristiques modifiées par la mise à jour du produit. REVENDICATIONS1. Procédé de mise à jour de données numériques stockées dans une mémoire non volatile réinscriptible (12) d'un circuit électronique (1) contenant, avant mise à jour, une paire de clés publique (PKK) et privée (SKK) de chiffrement asymétrique et un certificat (CERT) fonction de premières valeurs de paramètres (IPARAM) contenus dans ladite mémoire, caractérisé en ce que la mise à jour inclut une modification de valeur d'au moins une partie desdits paramètres, et une signature (DELTA SIGN) prenant en compte des deuxièmes valeurs des paramètres modifiés. 2. Procédé selon la revendication 1, dans lequel ladite signature (DELTA SIGN) est en outre fonction des premières valeurs (IPARAM). 3. Procédé d'authentification d'un circuit élec- tropique (1), mis à jour par un procédé conforme à la revendication 1 ou 2, dans lequel un dispositif utilisateur (4) souhaitant authentifier le circuit : extrait ledit certificat (CERT) ; extrait des valeurs courantes (CPARAM) desdits 20 paramètres ; déduit ladite clé publique (PKK) du circuit à partir dudit certificat ; et vérifie la cohérence entre lesdites valeurs courantes et les premières valeurs (IPARAM). 25 4. Procédé selon la revendication 3, dans lequel en cas d'incohérence entre lesdites valeurs courantes (CPARAM) et les premières valeurs (IPARAM), le dispositif utilisateur (4) extrait ladite signature (DELTA SIGN) dudit circuit (1) ; et 30 vérifie la cohérence entre lesdites valeurs courantes et les deuxièmes valeurs (FPARAM). 5. Procédé selon la revendication 3 ou 4, dans lequel le dispositif utilisateur (4) obtient, d'une autorité de certification (5), au moins une clé (CA PK) lui permettant deB9232 - 08-ZV2-309 14 décoder ledit certificat (CERT) et ladite signature (DELTA SIGN). 6. Circuit électronique (1), comportant des moyens adaptés à la mise en oeuvre du procédé conforme à l'une 5 quelconque des revendications 1 à 5. 7. Dispositif (4) d'authentification d'un circuit électronique (1), comportant des moyens adaptés à la mise en oeuvre du procédé conforme à l'une quelconque des revendications 3 à 5.