Brevet FR3133684A1 — publié le 20230922

Titre de l’invention : PROCÉDÉ D’AUTHENTIFICATION D’UN DISPOSITIF ESCLAVE PAR UN DISPOSITIF HÔTE L’invention concerne un procédé d’authentification d’un dispositif esclave (20) par un dispositif hôte (10) comprenant une étape (KGEN) de génération d’une clé secrète (Ks) partagée par le dispositif hôte et le dispositif esclave, et une pluralité d’étapes d’authentification (AUTH) du dispositif esclave par le dispositif hôte au moyen de la clé secrète (Ks). Dans un mode de réalisation, lorsque le nombre (n) d’étapes d’authentification dans lesquelles la clé secrète (Ks) est utilisée est égal à une valeur de consigne (N), l’étape (KGEN) de génération de la clé secrète (Ks) est exécutée de nouveau pour l’obtention d’une nouvelle clé secrète utilisée au cours d’une prochaine pluralité d’étapes d’authentification (AUTH) du dispositif esclave. Figure pour l’abrégé : Figure 2 PROCÉDÉ D’AUTHENTIFICATION D’UN DISPOSITIF ESCLAVE PAR UN DISPOSITIF HÔTE La présente invention concerne un procédé d’authentification d’un dispositif esclave par un dispositif hôte, le dispositif hôte et le dispositif esclave comprenant chacun des moyens de calcul cryptographique. La présente invention concerne également l’authentification de dispositifs accessoires à des appareils électriques ou électroniques, tel des cartouches d’imprimantes ou des batteries. État de la technique La contrefaçon de dispositifs accessoires intégrés dans des appareils électriques ou électroniques est une menace croissante sur le marché des consommables et des accessoires. Non seulement les revenus des fabricants d'origine sont en jeu, mais le client final est également concerné par des problèmes de fiabilité, voire de santé, que peut entraîner l’utilisation d’accessoires contrefaisants. Les marchés concernés sont nombreux et comptent notamment celui des cartouches d’encre et celui des batteries électriques pour tous types d’appareils ou outillages électriques. Une solution pour prévenir la contrefaçon d’un accessoire consiste à l’identifier et l’authentifier numériquement. À cet effet, l’accessoire est équipé d’une puce appelée « élément sécurisé » (de l’anglais « secure element ») capable d’exécuter des calculs cryptographiques. Un tel élément sécurisé est capable de répondre à des interrogations cryptographiques de d’appareil, permettant à l’appareil de vérifier que l’accessoire est authentique. Dans la suite de l’exposé, on désignera par « dispositif hôte » l’appareil recevant l’accessoire, et « dispositif esclave » l’accessoire inséré dans ou associé à l’appareil concerné. Généralement, l'authenticité du dispositif esclave est vérifiée par le dispositif hôte selon la méthode dite « défi/réponse » (appelée aussi « challenge/réponse ») mettant en jeu un algorithme de cryptographie. Par exemple, le dispositif hôte génère un nombre aléatoire ou « défi » et l’envoie au dispositif esclave. Le dispositif esclave calcule un cryptogramme basé sur ce nombre aléatoire, puis le renvoie au dispositif hôte qui vérifie sa validité. Cette méthode d’authentification peut être mise en œuvre au moyen d’algorithmes à cryptographie symétrique ou d’algorithmes à cryptographie asymétrique. Avec un algorithme à cryptographie asymétrique, le dispositif esclave calcule le cryptogramme au moyen d’une clé privée et le dispositif hôte vérifie la validité du cryptogramme au moyen d’une clé publique de l'esclave. Avec un algorithme à cryptographie symétrique, le dispositif esclave calcule le cryptogramme au moyen d’une clé secrète et le dispositif hôte vérifie la validité du cryptogramme au moyen de la même clé secrète. Les techniques d'authentification cryptographique offrant actuellement le plus haut degré de sécurité sont celles qui reposent sur des algorithmes à cryptographie asymétrique. Toutefois, ces algorithmes présentent l’inconvénient d’être d’une exécution relativement lente, en raison du temps de calcul qu’ils nécessitent. Or, il est souhaité que l'authenticité de l’accessoire puisse être vérifiée par l’appareil autant de fois que nécessaire, et de façon générale à tout instant déterminé par le concepteur de l’appareil en fonction de ses spécificités. Dans ces conditions, le temps que nécessite l’exécution d’une authentification par calcul cryptographique asymétrique peut s’avérer incompatible avec un usage convivial et en temps réel de l’accessoire. Par exemple, si l'authentification de quatre cartouches d'encre d'une imprimante est mise en œuvre chaque fois qu'une page est imprimée, le temps d'inactivité de l’imprimante qui en résulte peut s’avérer rédhibitoire. Les techniques d’authentification à base d’algorithmes à cryptographie symétrique sont par contre d’une exécution beaucoup plus rapide. Pour fixer les idées, avec un coprocesseur arithmétique permettant d’optimiser le temps de calcul cryptographique, une authentification symétrique se compte en millisecondes ou dizaine de millisecondes tandis qu’une authentification asymétrique se compte en centaines de millisecondes, soit un rapport 10 entre les deux. Toutefois, les techniques d’authentification à cryptographie symétrique présentent des inconvénients en termes de sécurité. Elles nécessitent en effet d’utiliser la même clé secrète dans le dispositif hôte et le dispositif esclave, par exemple si n’importe quelle cartouche d’encre doit pouvoir être utilisée dans n’importe quelle imprimante compatible. Comme cette clé secrète est chargée en usine dans une zone mémoire de chaque dispositif, un tel stockage permanent est exposé à des risques de violation par vidage de la zone mémoire. Ainsi, si un fraudeur fait main basse sur la clé secrète de l’un des deux dispositifs, tous les autres dispositifs seront affectés. Les techniques de cryptographie asymétriques ne souffrent pas de ce problème, car chaque dispositif esclave possède une clé privée différente, qu’il peut utiliser pour signer un défi envoyé par le dispositif hôte. Le dispositif hôte peut ensuite, au moyen de la clé publique du dispositif esclave, déchiffrer la signature reçue et s’assurer qu’elle est conforme au défi initialement envoyé, et ainsi s’assurer que le dispositif esclave possède la clé privée attendue. Les techniques d’authentification asymétriques sont donc généralement préférées aux techniques d’authentification symétriques pour l’authentification d’accessoires. Pour minimiser l'impact de la durée des phases d’authentification sur le fonctionnement de l’appareil, on est toutefois conduit à diminuer le nombre d'étapes d’authentification ou à déclencher ces étapes à des instants où elles n’impactent pas son fonctionnement, mais cela diminue d’autant l'efficacité de la protection. Il pourrait donc être souhaité de prévoir un procédé d’authentification d’un accessoire ayant peu d'impact sur le fonctionnement d’un appareil tout en offrant un haut niveau de sécurité. Il pourrait également être souhaité de prévoir un procédé d’authentification d’un accessoire offrant un niveau de sécurité variable et configurable, permettant de réaliser un compromis entre son temps d’exécution et le degré de sécurité qu’il offre. Des modes de réalisation de la présente invention concernent un procédé d’authentification d’un dispositif esclave par un dispositif hôte, le dispositif hôte et le dispositif esclave étant reliés par un bus de données et comprenant chacun des moyens de calcul cryptographique, le procédé comprenant une étape de génération d’une clé secrète partagée par le dispositif hôte et le dispositif esclave, comprenant entre le dispositif hôte et le dispositif esclave un échange de données à partir desquelles le dispositif hôte et le dispositif esclave élaborent la clé secrète sans que celle-ci ne transite sur le bus de données, et une pluralité d’étapes d’authentification du dispositif esclave par le dispositif hôte, de type défi/réponse, au moyen d’un algorithme à cryptographie symétrique et de la clé secrète. Selon un mode de réalisation, le dispositif hôte est configuré pour compter le nombre d’étapes d’authentification dans lesquelles la clé secrète est utilisée, et, lorsque ce nombre est égal à une valeur de consigne, le dispositif hôte et le dispositif esclave exécutent de nouveau l’étape de génération de la clé secrète pour l’obtention d’une nouvelle clé secrète utilisable au cours d’une prochaine pluralité d’étapes d’authentification du dispositif esclave. Selon un mode de réalisation, le dispositif esclave est configuré pour compter le nombre d’étapes d’authentification dans lesquelles la clé secrète est utilisée, et, lorsque ce nombre est égal à une valeur de consigne, le dispositif hôte et le dispositif esclave exécutent de nouveau l’étape de génération de la clé secrète pour l’obtention d’une nouvelle clé secrète utilisable au cours d’une prochaine pluralité d’étapes d’authentification du dispositif esclave. Selon un mode de réalisation, la valeur de consigne est configurable et est chargée dans une mémoire ou dans un registre du dispositif hôte ou du dispositif esclave. Selon un mode de réalisation, l’étape de génération d’une clé secrète comprend un échange de clés Diffie Hellman. Selon un mode de réalisation, l’étape de génération d’une clé secrète comprend des étapes de génération d’un secret partagé par le dispositif hôte et le dispositif esclave, et des étapes de génération de la clé secrète à partir du secret partagé et d’au moins un nombre aléatoire. Selon un mode de réalisation, le procédé comprend une première étape de génération d’une clé secrète initiale partagée par le dispositif hôte et le dispositif esclave, comprenant des étapes de génération d’un secret partagé par le dispositif hôte et le dispositif esclave, et des étapes de génération de la clé secrète initiale à partir du secret partagé et d’au moins un nombre aléatoire, et au moins une seconde étape de génération d’une nouvelle clé secrète partagée par le dispositif hôte et le dispositif esclave, à partir du secret partagé généré au cours de la première étape de génération d’une clé secrète et d’au moins un nombre aléatoire. Selon un mode de réalisation, le procédé comprend une première étape de génération d’une clé secrète partagée par le dispositif hôte et le dispositif esclave, comprenant entre le dispositif hôte et le dispositif esclave un échange de données à partir desquelles le dispositif hôte et le dispositif esclave élaborent la clé secrète sans que celle-ci ne transite sur le bus de données, et au moins une seconde étape de génération d’une clé secrète partagée par le dispositif hôte et le dispositif esclave, à partir d’au moins une valeur précédente de la clé secrète et d’au moins un nombre aléatoire. Selon un mode de réalisation, chaque étape d’authentification du dispositif esclave comprend : l’envoi au dispositif esclave par le dispositif hôte d’un nombre aléatoire, le calcul d’un premier résultat par le dispositif hôte, comprenant la transformation du nombre aléatoire par une fonction de cryptographie au moyen de la clé secrète, le calcul d’un second résultat par le dispositif esclave, comprenant la transformation du nombre aléatoire par la même fonction de cryptographie au moyen de la clé secrète, l’envoi du second résultat au dispositif hôte par le dispositif esclave, et la vérification par le dispositif hôte que le second résultat est égal au premier résultat. Selon un mode de réalisation, le dispositif hôte est un circuit électronique intégré dans un appareil électrique ou électronique fonctionnant avec un dispositif accessoire, et le dispositif esclave est un circuit électronique intégré dans l’accessoire. Selon un mode de réalisation, le dispositif accessoire est une cartouche d’encre ou une batterie électrique. Des modes de réalisation de l’invention concernent également un dispositif d’authentification comprenant un dispositif esclave et un dispositif hôte, le dispositif hôte et le dispositif esclave étant reliés par un bus de données et comprenant chacun des moyens de calcul cryptographique, le dispositif hôte et le dispositif esclave étant configurés pour générer une clé secrète partagée, en échangeant des données à partir desquelles le dispositif hôte et le dispositif esclave élaborent la clé secrète sans que celle-ci ne transite sur le bus de données, et conduire une pluralité d’étapes d’authentification du dispositif esclave par le dispositif hôte, de type défi/réponse, au moyen d’un algorithme à cryptographie symétrique et de la clé secrète. Selon un mode de réalisation, le dispositif hôte est configuré pour compter le nombre d’étapes d’authentification dans lesquelles la clé secrète est utilisée, et, lorsque ce nombre est égal à une valeur de consigne, initier le renouvellement de l’étape de génération de la clé secrète pour l’obtention d’une nouvelle clé secrète utilisable au cours d’une prochaine pluralité d’étapes d’authentification du dispositif esclave. Selon un mode de réalisation, le dispositif esclave est configuré pour compter le nombre d’étapes d’authentification dans lesquelles la clé secrète est utilisée, et, lorsque ce nombre est égal à une valeur de consigne, initier le renouvellement de l’étape de génération de la clé secrète pour l’obtention d’une nouvelle clé secrète utilisable au cours d’une prochaine pluralité d’étapes d’authentification du dispositif esclave. Selon un mode de réalisation, la valeur de consigne est chargée dans une mémoire ou dans un registre du dispositif hôte ou du dispositif esclave. Selon un mode de réalisation, le dispositif hôte et le dispositif esclave sont configurés pour générer la clé secrète par un échange de clés Diffie Hellman. Selon un mode de réalisation, le dispositif hôte et le dispositif esclave sont configurés pour conduire une première étape de génération d’une clé secrète initiale partagée par le dispositif hôte et le dispositif esclave, comprenant des étapes de génération d’un secret partagé par le dispositif hôte et le dispositif esclave, et des étapes de génération de la clé secrète initiale à partir du secret partagé et d’au moins un nombre aléatoire, et conduire au moins une seconde étape de génération d’une nouvelle clé secrète partagée par le dispositif hôte et le dispositif esclave, à partir du secret partagé généré au cours de la première étape de génération d’une clé secrète et d’au moins un nombre aléatoire. Selon un mode de réalisation, le dispositif hôte est un circuit électronique intégré dans un appareil électrique ou électronique fonctionnant avec un dispositif accessoire, et le dispositif esclave est un circuit électronique intégré dans l’accessoire. Brève description des figures Des exemples de réalisation du procédé de l’invention sont décrits dans ce qui suit à titre non limitatif, en relation avec les figures jointes parmi lesquelles : - la représente schématiquement un appareil et un accessoire comprenant un dispositif hôte et un dispositif esclave mettant en œuvre le procédé de l’invention, - la montre un mode de réalisation du procédé de l’invention, - la montre un autre mode de réalisation du procédé de l’invention, - la montre un mode de réalisation d’une étape du procédé de l’invention, - la montre un mode de réalisation d’une autre étape du procédé de l’invention, - la montre un autre mode de réalisation de l’étape de la , - la montre une variante du mode de réalisation de la , - la montre une autre variante du mode de réalisation de la , - la montre un exemple de réalisation d’un dispositif hôte, et - la montre un exemple de réalisation d’un dispositif esclave Procédé d’authentification d’un dispositif esclave (20) par un dispositif hôte (10), le dispositif hôte (10) et le dispositif esclave (20) étant reliés par un bus de données (30) et comprenant chacun des moyens de calcul cryptographique, caractérisé en ce qu’il comprend : - une étape (KGEN, KGEN1, KGEN2, KGEN3, KGEN4) de génération d’une clé secrète (Ks) partagée par le dispositif hôte (10) et le dispositif esclave (20), comprenant entre le dispositif hôte et le dispositif esclave un échange de données à partir desquelles le dispositif hôte et le dispositif esclave élaborent la clé secrète (Ks) sans que celle-ci ne transite sur le bus de données, et - une pluralité d’étapes d’authentification (AUTH) du dispositif esclave par le dispositif hôte, de type défi/réponse, au moyen d’un algorithme à cryptographie symétrique et de la clé secrète (Ks). Procédé selon la revendication 1, dans lequel le dispositif hôte (10) est configuré pour compter le nombre (n) d’étapes d’authentification (AUTH) dans lesquelles la clé secrète (Ks) est utilisée, et, lorsque ce nombre est égal à une valeur de consigne (N), le dispositif hôte (10) et le dispositif esclave (20) exécutent de nouveau l’étape de génération de la clé secrète (Ks) pour l’obtention d’une nouvelle clé secrète (Ks) utilisable au cours d’une prochaine pluralité d’étapes d’authentification (AUTH) du dispositif esclave. Procédé selon l’une des revendications 1 et 2, dans lequel le dispositif esclave (20) est configuré pour compter le nombre (n) d’étapes d’authentification (AUTH) dans lesquelles la clé secrète (Ks) est utilisée, et, lorsque ce nombre est égal à une valeur de consigne (M), le dispositif hôte (10) et le dispositif esclave (20) exécutent de nouveau l’étape de génération de la clé secrète (Ks) pour l’obtention d’une nouvelle clé secrète (Ks) utilisable au cours d’une prochaine pluralité d’étapes d’authentification (AUTH) du dispositif esclave. 4. Procédé selon l’une des revendications 2 et 3, dans lequel la valeur de consigne (N, M) est configurable et est chargée dans une mémoire (MEM11, MEM21) ou dans un registre (DCREG1, DCREG2) du dispositif hôte (10) ou du dispositif esclave (20). 5. Procédé selon l’une des revendications 1 à 4, dans lequel l’étape (KGEN1, KGEN2) de génération d’une clé secrète (Ks) comprend un échange de clés Diffie Hellman. 6. Procédé selon l’une des revendications 1 à 5, dans lequel l’étape (KGEN2, KGEN3) de génération d’une clé secrète (Ks) comprend des étapes (S70, S80) de génération d’un secret (SST) partagé par le dispositif hôte et le dispositif esclave, et des étapes (S72, S82) de génération de la clé secrète (Ks) à partir du secret partagé et d’au moins un nombre aléatoire (RN2). 7. Procédé selon l’une des revendications 1 à 6, comprenant : - une première étape (KGEN2) de génération d’une clé secrète initiale (Ks) partagée par le dispositif hôte et le dispositif esclave, comprenant des étapes (S70, S80) de génération d’un secret (SST) partagé par le dispositif hôte et le dispositif esclave, et des étapes (S72, S82) de génération de la clé secrète initiale (Ks) à partir du secret partagé et d’au moins un nombre aléatoire (RN2), et - au moins une seconde étape (KGEN3) de génération d’une nouvelle clé secrète (Ks i ) partagée par le dispositif hôte et le dispositif esclave, à partir du secret partagé (SST) généré au cours de la première étape (KGEN2) de génération d’une clé secrète (Ksi) et d’au moins un nombre aléatoire (RN2 i ). 8. Procédé selon l’une des revendications 1 à 7, comprenant : - une première étape (KGEN, KGEN1, KGEN2) de génération d’une clé secrète (Ks i ) partagée par le dispositif hôte et le dispositif esclave, comprenant entre le dispositif hôte et le dispositif esclave un échange de données à partir desquelles le dispositif hôte et le dispositif esclave élaborent la clé secrète (Ks i ) sans que celle-ci ne transite sur le bus de données, et - au moins une seconde étape (KGEN4) de génération d’une clé secrète (Ks i+1 ) partagée par le dispositif hôte et le dispositif esclave, à partir d’au moins une valeur précédente de la clé secrète (Ks i ) et d’au moins un nombre aléatoire (RN2 i+1 ). 9. Procédé selon l’une des revendications 1 à 8, dans lequel chaque étape d’authentification (AUTH) du dispositif esclave (20) comprend : - l’envoi (S31) au dispositif esclave par le dispositif hôte d’un nombre aléatoire (RN1), - le calcul d’un premier résultat (R1) par le dispositif hôte, comprenant la transformation du nombre aléatoire par une fonction de cryptographie au moyen de la clé secrète (Ks), - le calcul d’un second résultat (R2) par le dispositif esclave, comprenant la transformation du nombre aléatoire par la même fonction de cryptographie au moyen de la clé secrète (Ks), - l’envoi du second résultat (R2) au dispositif hôte par le dispositif esclave, et - la vérification par le dispositif hôte que le second résultat (R2) est égal au premier résultat (R1). 10. Procédé selon l’une des revendications 1 à 9, dans lequel le dispositif hôte (10) est un circuit électronique intégré dans un appareil électrique ou électronique fonctionnant avec un dispositif accessoire, et dans lequel le dispositif esclave (20) est un circuit électronique intégré dans l’accessoire. 11. Procédé selon la revendication 10, dans lequel le dispositif accessoire est une cartouche d’encre ou une batterie électrique. 12. Dispositif d’authentification comprenant un dispositif esclave (20) et un dispositif hôte (10), le dispositif hôte et le dispositif esclave étant reliés par un bus de données et comprenant chacun des moyens de calcul cryptographique, caractérisé en ce que le dispositif hôte et le dispositif esclave sont configurés pour : - générer (KGEN, KGEN1, KGEN2, KGEN3, KGEN4) une clé secrète (Ks) partagée, en échangeant des données à partir desquelles le dispositif hôte et le dispositif esclave élaborent la clé secrète (Ks) sans que celle-ci ne transite sur le bus de données, et - conduire une pluralité d’étapes d’authentification (AUTH) du dispositif esclave par le dispositif hôte, de type défi/réponse, au moyen d’un algorithme à cryptographie symétrique et de la clé secrète (Ks). 13. Dispositif selon la revendication 12, dans lequel le dispositif hôte (10) est configuré pour compter le nombre (n) d’étapes d’authentification (AUTH) dans lesquelles la clé secrète (Ks) est utilisée, et, lorsque ce nombre est égal à une valeur de consigne (N), initier le renouvellement de l’étape de génération de la clé secrète (Ks) pour l’obtention d’une nouvelle clé secrète (Ks) utilisable au cours d’une prochaine pluralité d’étapes d’authentification (AUTH) du dispositif esclave. 14. Dispositif selon l’une des revendications 12 et 13, dans lequel le dispositif esclave (20) est configuré pour compter le nombre (n) d’étapes d’authentification (AUTH) dans lesquelles la clé secrète (Ks) est utilisée, et, lorsque ce nombre est égal à une valeur de consigne (M), initier le renouvellement de l’étape de génération de la clé secrète (Ks) pour l’obtention d’une nouvelle clé secrète (Ks) utilisable au cours d’une prochaine pluralité d’étapes d’authentification (AUTH) du dispositif esclave. 15. Dispositif selon l’une des revendications 13 et 14, dans lequel la valeur de consigne (N, M) est chargée dans une mémoire (MEM11, MEM21) ou dans un registre (DCREG1, DCREG2) du dispositif hôte (10) ou du dispositif esclave (20). 16. Dispositif selon l’une des revendications 12 à 15, dans lequel le dispositif hôte (10) et le dispositif esclave (20) sont configurés pour générer la clé secrète (Ks) par un échange de clés Diffie Hellman. 17. Dispositif selon l’une des revendications 12 à 16, dans lequel le dispositif hôte (10) et le dispositif esclave (20) sont configurés pour : - conduire une première étape (KGEN2) de génération d’une clé secrète initiale (Ks) partagée par le dispositif hôte et le dispositif esclave, comprenant des étapes (S70, S80) de génération d’un secret (SST) partagé par le dispositif hôte et le dispositif esclave, et des étapes (S72, S82) de génération de la clé secrète initiale (Ks) à partir du secret partagé et d’au moins un nombre aléatoire (RN2), et - conduire au moins une seconde étape (KGEN3) de génération d’une nouvelle clé secrète (Ks i ) partagée par le dispositif hôte et le dispositif esclave, à partir du secret partagé généré au cours de la première étape (KGEN2) de génération d’une clé secrète (Ksi) et d’au moins un nombre aléatoire (RN2 i ). 18. Dispositif selon l’une des revendications 12 à 17, dans lequel le dispositif hôte (10) est un circuit électronique intégré dans un appareil électrique ou électronique fonctionnant avec un dispositif accessoire, et dans lequel le dispositif esclave (20) est un circuit électronique intégré dans l’accessoire.