FR 3007169 A1 20141219 FR 1355728 A 20130618 B12456 - 12-R0-1093 1 PROCÉDÉ DE VÉRIFICATION DE L'AUTHENTICITÉ D'UN PRODUIT Domaine La présente invention concerne de façon générale les circuits électroniques et, plus particulièrement, un procédé de vérification de l'authenticité ou origine d'un produit (un accessoire ou un consommable) devant coopérer avec un dispositif. Exposé de l'art antérieur Dans de nombreux domaines, on cherche à garantir qu'un produit, par exemple une cartouche d'encre, une batterie, un accessoire, etc., devant être utilisé dans un dispositif, soit un produit d'origine ou authentique, c'est-à-dire approuvé par le fabricant du dispositif. Pour cela, une clé d'authentification est généralement stockée dans un circuit électronique associé à ce produit et sert, lorsque le produit est installé dans le dispositif ou lorsqu'il doit coopérer avec celui-ci, à vérifier qu'il s'agit d'un produit authentique. Toutefois, si le secret parvient à être percé et qu'un fabricant met en circulation des produits non approuvés par le fabricant du dispositif, mais équipés de circuits possédant la bonne clé, les dispositifs vont considérer ces produits comme authentiques. B12456 - 12-R0-1093 2 Résumé Un mode de réalisation de la présente description vise une technique de vérification de l'authenticité d'un produit qui pallie tout ou partie des inconvénients des solutions exis- tantes. Un autre mode de réalisation de la présente description vise une solution qui permette de bloquer l'utilisation de lots de produits non authentiques sans pour autant empêcher l'utilisation de produits authentiques de même génération. Pour atteindre tout ou partie de ces objets ainsi que d'autres, on prévoit un procédé de vérification de l'authenticité d'un produit associé à un dispositif hôte, dans lequel le produit contient, dans des segments d'une mémoire non volatile, plusieurs fonctions différentes stockées de façon chiffrée, comportant les étapes successives suivantes : le dispositif hôte envoie une commande d'activation d'une desdites fonctions ; le produit déchiffre cette fonction ; le produit exécute la fonction déchiffrée ; et le produit envoie un résultat de cette exécution au dispositif hôte. Selon un mode de réalisation, une clé de déchiffrement du segment contenant la fonction est contenue dans la commande 25 d'activation envoyée par le dispositif hôte. Selon un mode de réalisation, le dispositif hôte vérifie le résultat pour authentifier le produit. Selon un mode de réalisation, la fonction déchiffrée n'est stockée qu'en mémoire volatile. 30 Selon un mode de réalisation, le procédé est mis en oeuvre une fois par produit. Selon un mode de réalisation, le procédé est mis en oeuvre à chaque utilisation du produit par le dispositif. Selon un mode de réalisation, le dispositif hôte ne 35 contient qu'un identifiant de fonction. B12456 - 12-R0-1093 3 Selon un mode de réalisation, lesdits segments sont stockés lors de la fabrication du produit. Selon un mode de réalisation, des versions différentes de dispositifs activent des fonctions différentes d'un même type 5 de produits. Selon un mode de réalisation, on prévoit également un système comportant au moins un dispositif hôte et au moins un produit associé à ce dispositif hôte, adaptés au procédé selon l'une quelconque des revendications précédentes. 10 Selon un mode de réalisation, les dispositifs sont des imprimantes et les produits sont des cartouches d'encre. Brève description des dessins Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes 15 de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente, de façon très schématique et sous forme de blocs, un exemple de système du type auquel s'applique à titre d'exemple la présente description ; 20 la figure 2 illustre un exemple de stockage côté produit à authentifier ; la figure 3 illustre, de façon très schématique, un mode de mise en oeuvre du procédé d'authentification d'un produit par un dispositif ; et 25 la figure 4 illustre, sous forme de blocs, un exemple d'étapes mises en oeuvre par un produit. Description détaillée De mêmes éléments ont été désignés par de mêmes références aux différentes figures. Par souci de clarté, seuls 30 les étapes et éléments utiles à la compréhension des modes de réalisation qui vont être décrits ont été représentés et seront détaillés. En particulier, les processus de chiffrement et de déchiffrement cryptographiques susceptibles d'être utilisés dans les échanges d'information entre un dispositif et ses acces- B12456 - 12-R0-1093 4 soires ou consommables n'ont pas été détaillés, les modes de réalisation décrits étant compatibles avec les processus usuels. La figure 1 représente, de façon très schématique et sous forme de blocs, un exemple de système du type auquel 5 s'appliquent les modes de réalisation qui vont être décrits. Un dispositif hôte 1 est susceptible d'accueillir ou de fonctionner avec un ou plusieurs produits 2, accessoires (ACC) ou consommables (CONS). A titre d'exemple d'application particulier, le 10 dispositif hôte est une imprimante et le produit (consommable) est une cartouche d'encre. Selon un autre exemple, il s'agit d'un système électronique (par exemple, une console de jeu, un téléphone mobile, etc.) utilisant des accessoires (par exemple des manettes de jeu, une oreillette, une coque, un étui, etc.). 15 Plus généralement, il peut s'agir de tout type de système basé sur la coopération entre un dispositif principal et un ou plusieurs accessoires ou consommables. On fera par la suite référence à l'exemple d'une imprimante et de ses cartouches d'encre, mais tout ce qui est 20 décrit se transpose, sauf précision contraire, aux autres systèmes. Les fabricants d'imprimantes cherchent généralement à se protéger contre l'utilisation de cartouches pirates ou non authentiques pour, entre autres, garantir à leurs utilisateurs 25 la qualité et la fiabilité des cartouches d'origine par rapport à des copies ou "clones". Un autre objectif est d'éviter les éventuelles contrefaçons. On fera par la suite référence à des copies pour désigner les produits non authentiques, qu'il s'agisse de copies serviles ou plus généralement de produits 30 similaires susceptibles d'être utilisés en produits authentiques. La protection consiste généralement d'authentification d'une nouvelle cartouche l'imprimante, voire d'une authentification à remplacement des en un mécanisme introduite dans chaque mise sous 35 tension de l'imprimante, à chaque sortie de mode veille, ou à B12456 - 12-R0-1093 chaque impression (à chaque utilisation du produit). L'imprimante et chaque cartouche est équipée d'un circuit électronique adapté à une telle authentification, par exemple un processeur cryptographique ou un programme exécuté par un 5 processeur générique. Des clés sont présentes côté imprimante et côté cartouche. Par exemple, comme l'illustre la figure 1, l'impri- mante 1 comporte un circuit de type microcontrôleur 12 (pC) susceptible de communiquer par un ou plusieurs bus 13, 10 d'adresses, de commandes et de données, avec une ou plusieurs mémoires 14, un ou plusieurs périphériques 15 (PER), par exemple les divers circuits de l'imprimante, et un ou plusieurs circuits 16 d'entrée-sortie (E/S) parmi lesquels un dispositif apte à communiquer avec les cartouches 2. 15 Une cartouche d'encre 2 comporte au moins un circuit 22 sécurisé, par exemple de type microcontrôleur, comportant le même type de composants (non représentés) : un processeur, des mémoires volatiles et non volatiles, une interface d'entrée-sortie vers un bus de communication avec l'imprimante, etc. 20 Généralement, lors de la fabrication, une clé d'authentification formée d'un mot de données est stockée dans une mémoire sécurisée du circuit 22. Lorsque la cartouche est appairée à l'imprimante, cette dernière entame une procédure d'authentification basée sur cette clé. Pour pouvoir être 25 reconnues, toutes les cartouches compatibles avec une imprimante donnée doivent posséder une clé permettant de s'authentifier avec cette imprimante, le cas échéant issue d'un mécanisme de dérivation de clé. Un tel mécanisme devient inefficace si la clé d'une 30 série de cartouches parvient à être découverte. Dans un tel cas, des copies sont susceptibles d'être fabriqués avec un processus d'authentification utilisant la bonne clé et l'imprimante sera incapable de les discriminer des cartouches originales. Une solution qu'ont aujourd'hui les fabricants 35 d'imprimantes est de changer de modèle d'imprimante pour pouvoir B12456 - 12-R0-1093 6 changer le type de cartouche. Il n'est en effet pas envisageable de programmer une nouvelle clé dans un nouveau lot d'imprimantes et de changer la clé des cartouches, car les imprimantes déjà en circulation ne pourraient alors plus fonctionner avec les nouvelles cartouches. En fait, il devient impossible de révoquer une clé partagée entre une imprimante et un type de cartouches, sauf à interdire aux imprimantes déjà en circulation d'utiliser les nouvelles cartouches. Cela obligerait donc ces imprimantes à n'utiliser que des copies, ce qui est précisément ce que l'on souhaite éviter. Selon la présente description, on prévoit de stocker, de façon chiffrée, dans une mémoire du circuit associé aux cartouches, plusieurs segments d'une ou plusieurs instructions susceptibles d'être utilisées par un processeur de la cartouche, chaque segment étant chiffré avec une clé différente. Les instructions stockées sont choisies pour exécuter une fonction différente d'un segment ou sous-programme à un autre. De plus, le stockage est effectué sous la forme de codes opératoires et d'opérandes directement interprétables par le processeur de la cartouche. Les clés de chiffrement des segments sont inconnues de la cartouche. Elles n'y sont pas stockées. La figure 2 illustre un mode de réalisation d'un tel procédé. Une mémoire 23 du circuit sécurisé 22 d'une cartouche contient plusieurs segments 231 (CSEG1, CSEG2, CSEGn) d'instructions. Chaque segment contient au moins un code opératoire et, le cas échéant, tout ou partie des arguments (opérandes) de la fonction à exécuter. Chaque segment peut contenir plusieurs codes opératoires selon la fonction qu'il représente. Le cas échéant, certains codes opératoires se retrouvent dans différents segments (par exemple, lecture d'une donnée), pourvu que la fonction du segment soit différente. La figure 3 illustre un mode de mise en oeuvre du procédé de vérification de l'authenticité d'une cartouche. B12456 - 12-R0-1093 7 Lors de l'introduction d'une nouvelle cartouche (PRODUCT), l'imprimante (HOST) la détecte et envoie une commande d'activation à la cartouche (ACT). Cette commande contient un identifiant d'un segment 231 (SEGi) à décoder ainsi que la clé 5 de déchiffrement (KEYi) correspondante. Selon le mode de chiffrement des échanges utilisés, une partie de la clé peut être contenue dans la cartouche, ou une clé de chiffrement des échanges est contenue dans la cartouche et sert au transfert de la clé de déchiffrement KEYi du segment. 10 La cartouche (son microprocesseur) utilise la clé transmise par l'imprimante pour déchiffrer le segment identifié. Puis, les codes de ce segment sont stockés en clair (STORE UNCIPHERED OPCODES) dans une mémoire (25, figure 2) ou dans une zone de la mémoire 23, accessible par le processeur 26 (PROC) du 15 circuit 22, pour que la fonction FCTi contenue dans le segment déchiffré puisse être exécutée (EXEC FCTi). Une fois la fonction exécutée par le microprocesseur, un ou plusieurs résultats (RESULT) sont envoyés par la cartouche à l'imprimante pour vérification d'authenticité. 20 L'imprimante vérifie alors si le résultat est conforme à ce qu'elle attend et détermine si la cartouche est authentique ou non (OK/NOK). La procédure en cas de cartouche non authentique est usuelle (blocage de l'imprimante, message d'erreur, etc.). 25 La figure 4 illustre, sous forme de blocs, un exemple d'étapes mises en oeuvre par une cartouche lors du processus d'authentification. La cartouche commence par recevoir (bloc 41, RECEIVE ACT) une commande d'activation envoyée par l'imprimante. 30 Comme indiqué ci-dessus, le circuit électronique de la cartouche déchiffre (bloc 42, DECIPHER(CSEGi)) le segment de mémoire correspondant à l'identifiant envoyé par l'imprimante. Cet identifiant est, par exemple, l'adresse de début du segment dans la mémoire 23 ou la plage d'adresses du segment dans cette 35 mémoire. En variante, la cartouche contient une table de B12456 - 12-R0-1093 8 correspondance entre les identifiants (par exemple, des numéros) des segments et leurs adresses dans la mémoire 23. La fonction FCTi contenue dans le segment est, une fois déchiffrée, stockée en clair (bloc 43, STORE FCTi), par exemple dans la mémoire 25. La mémoire 25 n'est pas nécessairement une mémoire non volatile. On peut en effet prévoir que la fonction ne soit pas une fonction pérenne ajoutée pour la nouvelle version d'imprimantes, mais simplement une fonction servant à vérifier l'authenticité lors de la mise en place de la cartouche ou à chaque initialisation (mise en route ou sortie de mode de veille de l'imprimante). Dans ce cas, il n'est pas nécessaire de stocker la fonction en mémoire non volatile, l'imprimante envoyant une commande d'activation provoquant le déchiffrement du segment CSEGi à chaque fois. Un avantage de ne stocker la fonction FCTi qu'en mémoire volatile est que cela complexifie encore la tâche du pirate. Une fois la fonction déchiffrée, elle est exécutée (bloc 44, EXEC FCTi(D)) par le circuit de la cartouche. Selon la nature de la fonction, celle-ci utilise ou non un opérande D fourni par l'imprimante. La nature de la fonction peut être purement à des fins de contrôle (opération arithmétique par exemple) ou d'exploiter des informations de la cartouche ou de l'imprimante. En figure 4, on a illustré trois exemples arbitraires de fonctions dont les résultats respectifs sont attendus par les imprimantes envoyant les commandes d'activation correspondantes : une première fonction FCT1 effectue la somme de deux données Dl et D2 (bloc 451, ADD(D1, D2)), les données Dl et D2 étant par exemple, pour l'une contenue dans la commande d'activation et pour l'autre dans le segment CSEG1 ; une deuxième fonction FCT2 multiplie deux données Dl et D2 (bloc 452, MULT(D1, D2)) ; une nième fonction FCTn vérifie le niveau d'encre de la cartouche (bloc 45n, CHECK LEVEL). La cartouche envoie le résultat de la fonction à l'imprimante (bloc 46, SEND RESULT) qui valide ou invalide ce résultat et autorise ou non le fonctionnement. Quelle que soit la fonction, l'imprimante B12456 - 12-R0-1093 9 connait soit le résultat d'une opération qu'elle attend, soit la nature de l'information que doit lui communiquer la cartouche. Selon un premier aspect, la commande d'activation est envoyée à chaque besoin d'authentification. On peut considérer 5 que la commande d'activation inclut la commande d'exécution. Le segment est alors déchiffré à chaque fois qu'il doit être utilisé. Dans ce cas, un stockage en mémoire non volatile du segment déchiffré n'est pas nécessaire car la fonction correspondante ne sert qu'une fois à chaque déchiffrement. 10 Selon un deuxième aspect, la fonction est, dans une première phase, déchiffrée lors de la mise en place de la cartouche (une fois par produit), puis est stockée en clair dans la mémoire non volatile de la cartouche. L'imprimante peut, dans une deuxième phase, mettre en oeuvre une procédure d'authen- 15 tification, par exemple à chaque sortie de mode veille ou à chaque impression, en envoyant une commande d'exécution de la fonction (le cas échéant avec des arguments différents d'une fois sur l'autre). Selon une variante de réalisation, les segments 20 contiennent également une clé susceptible d'être utilisée par la cartouche pour chiffrer ensuite ses échanges avec l'imprimante. Un tel chiffrement est en lui-même habituel. Lors de la conception d'un type de cartouches, le fabriquant d'imprimante choisi un nombre n de fonctions FCT à 25 intégrer de façon chiffrée dans la mémoire des cartouches. Plus ce nombre est élevé, plus il a ensuite la possibilité de bloquer des versions successives de cartouches non authentiques, mais plus cela prend de la place dans la mémoire non volatile de la cartouche. En effet, la cartouche contient tous les segments 30 chiffrés dès sa création. Ensuite, à chaque version d'imprimantes compatible avec ce type de cartouches, le fabricant a le choix de la fonction à activer. De préférence, une imprimante donnée ne possède en mémoire qu'une commande d'activation d'un segment B12456 - 12-R0-1093 10 CSEGi donné. En variante, l'identifiant d'un nouveau segment peut lui être communiqué lors d'une mise à jour logicielle. Si le fabricant d'imprimantes souhaite, pour une nouvelle version d'imprimantes, révoquer une clé utilisée par des cartouches actuellement en circulation, il paramètre cette nouvelle version d'imprimantes pour qu'elle active un nouveau segment sur les cartouches. Toutes les cartouches authentiques continueront à fonctionner et à être compatibles avec la nouvelle version. Toutefois, même si un fabriquant de cartouches non authentiques parvient à reproduire la clé d'un des segments sur ses propres cartouches à partir d'un piratage de cartouches en circulation, cela ne permettra aux copies de fonctionner que sur des imprimantes de la version utilisant la fonction corres- pondante. Les copies ne fonctionneront pas sur la nouvelle version d'imprimantes qui utilise un autre segment. Ainsi, les cartouches non authentiques, adaptées à la première série, ne seront adaptées qu'à la première version d'imprimantes. Cela complique considérablement la tâche du fabricant pirate. Ainsi, un fabricant qui se rend compte de l'existence de copies peut paramétrer les nouvelles imprimantes pour qu'elles activent un segment différent des cartouches en circulation. Les nouvelles versions d'imprimantes, tout en étant compatibles avec le même type de cartouches, attendront un résultat différent de la procédure d'authentification. Par conséquent, les cartouches non authentiques déjà fabriquées ne marcheront pas avec les nouvelles imprimantes. Par ailleurs, le mécanisme prévu est compatible avec une mise à jour optionnelle des imprimantes déjà en utilisation, par exemple, lors de mises à jour logicielles. Ainsi, pour des imprimantes susceptibles d'être mises à jour, par exemple à partir d'une connexion internet via un ordinateur ou directement, le fabricant peut provoquer le changement de segment. B12456 - 12-R0-1093 11 En supposant que la mémoire du circuit d'authentification d'une cartouche est complètement piratée, tous les segments chiffrés sont alors présents dans les circuits non authentiques. Les segments pourront même le cas échéant être 5 décodés dans la mesure où la clé reçue par l'imprimante sera exploitable par la copie. Toutefois, il y a peu de chance que le programme une fois décodé fonctionne et exécute la fonction dont le résultat est attendu par l'imprimante. En effet, les circuits non authentiques reproduisent les mécanismes d'échange protégés 10 avec l'imprimante en piratant les algorithmes de cryptographie et les clés. Cependant, ils n'utilisent pas les mêmes coeurs de processeur que les produits d'origine. Par conséquent, les fonctions déchiffrés seront inexécutables sur le processeur du circuit non authentique. 15 Les échanges entre l'imprimante et la cartouche peuvent être sécurisés de façon usuelle (par exemple avec un chiffrement symétrique ou asymétrique sur la base de clés contenues dans la cartouche et dans l'imprimante, pourvu que ces clés soient différentes des clés de chiffrement des segments 20 231). Toutefois, même avec la clé de déchiffrement d'un segment, une cartouche non authentique ne fonctionnera pas, sauf s'il a exactement le même microcontrôleur et système d'exploitation, ce qui limite fortement les risques. Divers modes de réalisation ont été décrits, diverses 25 variantes et modifications apparaîtront à l'homme de l'art. En particulier, le choix du nombre de segments à stocker dans les produits (accessoires ou consommables) dépend de l'application et du niveau de sécurité souhaité en termes de profondeur de changement possible. De plus, le choix des mécanismes d'authen- 30 tification dépend également de l'application. En outre, la mise en oeuvre pratique des modes de réalisation qui ont été décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus et en utilisant des outils cryptographiques et de programmation en eux-mêmes usuels. REVENDICATIONS1. Procédé de vérification de l'authenticité d'un produit (2) associé à un dispositif hôte (1), dans lequel le produit contient, dans des segments (231) d'une mémoire non volatile, plusieurs fonctions différentes (FCTi) stockées de façon chiffrée (CSEGi), comportant les étapes successives suivantes : le dispositif hôte envoie (ACT SEGi) une commande d'activation d'une desdites fonctions ; le produit déchiffre (42) cette fonction ; le produit exécute (44) la fonction déchiffrée ; et le produit envoie (46) un résultat (RESULT) de cette exécution au dispositif hôte. 2. Procédé selon la revendication 1, dans lequel une clé (KEYi) de déchiffrement du segment (CSEGi) contenant la 15 fonction (FCTi) est contenue dans la commande d'activation (ACT SEGi) envoyée par le dispositif hôte (1). 3. Procédé selon la revendication 1 ou 2, dans lequel le dispositif hôte vérifie le résultat pour authentifier le produit (OK/NOK). 20 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel la fonction déchiffrée n'est stockée qu'en mémoire volatile. 5. Procédé selon l'une quelconque des revendications 1 à 4, mis en oeuvre une fois par produit. 25 6. Procédé selon l'une quelconque des revendications 1 à 4, mis en oeuvre à chaque utilisation du produit (2) par le dispositif (1). 7. Procédé selon l'une quelconque des revendications 1 à 6, dans lequel le dispositif hôte (1) ne contient qu'un 30 identifiant de fonction. 8. Procédé selon l'une quelconque des revendications 1 à 7, dans lequel lesdits segments (CSEGi) sont stockés lors de la fabrication du produit (2).B12456 - 12-R0-1093 13 9. Procédé selon l'une quelconque des revendications 1 à 8, dans lequel des versions différentes de dispositifs (1) activent des fonctions différentes d'un même type de produits (2). 10. Système comportant au moins un dispositif hôte (1) et au moins un produit (2) associé à ce dispositif hôte, adaptés au procédé selon l'une quelconque des revendications précédentes. 11. Système selon la revendication 10, dans lequel les 10 dispositifs (1) sont des imprimantes et les produits (2) sont des cartouches d'encre.