Brevet FR2820916A1 — publié le 20020816

Module d'identification pourvu d'un code d'authentification sécurisé La présente invention concerne un module d'identification comportant un code d'authentification dont la confidentialité est renforcée. Un module d'identification permet à un abonné d'un service de s'identifier auprès de l'opérateur de ce service. Cela nécessite le raccordement du module à un terminal du réseau de l'opérateur. Les services concernés sont les plus divers et l'on pense en premier lieu aux services bancaires ou aux services de téléphonie. A titre d'exemple, le système de radiocommunications mobiles répondant à la norme GSM prévoit un module d'identification qui se présente sous la forme d'une carte incorporant un microcircuit électronique, cette carte venant se connecter dans le téléphone mobile de l'abonné. La sécurité du service est assurée au moyen d'un code d'authentification enregistré dans le module d'identification. Le code d'authentification qui représente l'identité de l'abonné est une donnée secrète que seuls le module et l'opérateur devraient connaître, de sorte qu'un tiers ne puisse emprunter l'identité de l'abonné pour bénéficier frauduleusement du service. Le code peut également être utilisé pour crypter le message ou la communication qui transite sur le réseau de l'opérateur afin d'en assurer la confidentialité. Le domaine de la cryptographie est ici supposé connu. L'ouvrage (Cryptographie appliquée , Bruce Schneier, International Thomson Publishing France, expose l'essentiel des connaissances connues de l'homme du métier. Il apparaît donc que le caractère secret du code d'authentification revêt la plus haute importance. La technologie actuelle permet de garantir l'inviolabilité du module d'identification si bien que l'on considère que le code d'authentification est inaccessible dès lors qu'il est enregistré dans le module. Toutefois, ce code peut subir différentes attaques suite à sa création par un générateur de nombres aléatoires, au cours de sa transmission à l'opérateur, ou lors de son transfert dans le module d'identification. Il a donc été envisagé de chiffrer le code immédiatement après sa création puis de le transmettre chiffré au module. Il faut ensuite transmettre la clé de déchiffrement au module afin qu'il puisse recouvrir le code original. Naturellement, la clé de déchiffrement présente la même vulnérabilité que le code d'authentification lorsqu'il est transmis sans avoir été chiffré. Ainsi, la récupération du code d'authentification requiert une étape supplémentaire, mais elle n'est pas impossible. La présente invention a donc pour premier objet de renforcer la protection du code d'authentification. Selon l'invention, un module d'identification comporte un code d'authentification dans une mémoire permanente, ce code d'authentification résultant de l'application d'une fonction de conversion à un code secret ; le module comprend de plus des moyens pour générer ce code secret. Le module d'identification dispose donc du code d'authentification qui bénéficie de la plus grande confidentialité puisqu'il a été produit localement. Il convient maintenant de communiquer ce code à l'opérateur tout en en conservant le caractère secret. On prévoit pour ce faire un cryptosystème à clé publique. Le module d'identification chiffre le code avec la clé publique de l'opérateur avant de le lui transmettre. L'opérateur récupère le code d'authentification en utilisant sa clé secrète. Le point faible qui apparaît ici est une éventuelle substitution de la clé publique. En effet, un tiers pourrait communiquer une clé au module d'identification qui soit compatible avec le cryptosystème pour récupérer le code d'authentification. Un deuxième objet de l'invention vise ainsi à combattre l'usurpation de la qualité d'opérateur par le biais de la clé publique. La solution consiste à prévoir dans le module des moyens de cryptage pour produire un code crypté par chiffrement du code d'authentification au moyen d'une clé publique, des moyens de transmission pour communiquer ce code crypté, l'activation de ces moyens de transmission étant conditionnée à l'acquisition préalable d'un code public immuable. Le module connaissant un code public et un seul, on évite ainsi une communication indifférenciée du code d'authentification à deux correspondants qui le requièrent successivement. Suivant un premier mode de réalisation de l'invention, le module comprend des moyens pour recevoir un certificat de la clé publique et des moyens pour déchiffrer ce certificat avec le code public. Le recours à une autorité de certification garantit l'appartenance de la clé publique à l'opérateur au moyen du certificat. Alternativement, le code public se confondant avec la clé publique, le module comprend des moyens pour réaliser la fonction de conversion en combinant la clé publique et le code secret. On peut ainsi aisément détecter une communication du code d'authentification avec une autre clé publique. Selon un deuxième mode de réalisation, le module comprend une mémoire inaltérable dans laquelle est enregistré le code d'authentification. Avantageusement, le code d'authentification est un assemblage de la clé publique et du code secret. Selon une variante, le code d'authentification résulte d'une fonction de hachage de la clé publique et du code secret. Selon une autre variante, le code d'authentification a une valeur initiale qui résulte d'une fonction de hachage de la clé publique et du code secret, cette valeur initiale étant ensuite remplacée par le code secret. Selon encore une autre variante, le code d'authentification résulte d'une exponentiation de la clé publique au moyen du code secret modulo n. L'invention concerne également un procédé de sécurisation qui comprend les étapes nécessaires pour faire fonctionner le module d'identification ci-dessus. La présente invention apparaîtra maintenant avec plus de détails dans le cadre de la description qui suit d'exemples de réalisation donnés à titre illustratif en se référant à l'unique figure annexée qui représente un schéma d'un module d'identification. Le module d'identification se présente souvent sous la forme d'une carte comportant un microcircuit électronique. C'est le cas notamment dans le système de radiotéléphonie GSM où il est dénommé SIM card correspondant au vocable anglais Subscriber Identification Module Card . En référence à la figure, le module comporte un microcontrôleur 11 raccordé d'une part à des moyens de transmission 12 et d'autre part à des moyens d'acquisition 13. Ces moyens de transmission et ces moyens d'acquisition sont aussi raccordés à un connecteur 14 prévu pour la connexion à un terminal. Le module comporte également un générateur de nombres aléatoires 15 reliés au microcontrôleur 11, étant entendu que ce générateur pourrait être intégré dans ce microcontrôleur. Il comporte par ailleurs une mémoire ineffaçable 16 dans laquelle on peut écrire une seule fois et lire autant de fois que nécessaire. Le contenu de cette mémoire ne peut donc être modifié. Pratiquement, on envisage un composant EEPROM (pour l'expression anglaise Electrically Erasable Programmable Read Only Memory ) ou un composant WORM (pour l'expression anglaise Write Once Read Many ). L'interaction des différents éléments du module d'identification apparaîtra au cours de l'exposé qui suit. Cependant, d'ores et déjà, il convient de préciser que le générateur 13 est dévolu à la production d'un code secret Ki. Le code d'authentification produit à partir du code secret Ki est soumis à des moyens de cryptage qui, idéalement, sont intégrés dans le microcontrôleur 11. Les moyens de cryptage font appel à un algorithme de chiffrement à clé publique tel que RISA (du nom de ses auteurs Ron RIVEST, Adi SHAMIR et Leonard ADLEMAN), El Gamay (également du nom de son auteur) ou tout autre algorithme disponible. Ils produisent un code crypté CC en chiffrant le code secret Ki au moyen de la clé publique Kp acquise via les moyens d'acquisition 13. Le code crypté CC est ensuite fourni aux moyens de transmission 12. Selon un premier mode de réalisation de l'invention, l'opérateur appartient à un consortium qui a retenu une autorité de certification. L'opérateur requiert de cette autorité un certificat de sa clé publique. Le certificat qui contient la clé publique et l'identité de l'opérateur fait l'objet d'une signature par l'autorité de certification. L'algorithme de signature peut également être de type RSA ou bien DSA (pour l'expression anglaise Digital Signature Algorithm ). La clé de vérification Kv qui permet de vérifier le certificat est publique par essence même, il s'agit d'un code public. Cette clé Kv est enregistrée d'une manière permanente dans le module d'identification, par exemple dans la mémoire 16. Elle peut même être directement gravée dans le microcircuit du module. Lorsque le module est sollicité pour fournir son code secret Ki, il acquiert la clé publique Kp de l'opérateur grâce aux moyens d'acquisition 13. Dans le cas présent, la fonction de conversion se réduit à la fonction identité et, par conséquent, le code d'authentification est identique au code secret. Ensuite, le module requiert le certificat qu'il décrypte à l'aide de la clé de vérification Kv. Si le certificat n'est pas conforme, le module bloque la transmission du code secret Ki. L'invention peut par ailleurs être mise en oeuvre sans faire appel à une autorité de certification. Par exemple, lorsque le module d'identification reçoit une clé publique pour la première fois, la clé originale Ko, il l'enregistre de manière définitive dans la mémoire ineffaçable 16. Cette clé originale Ko peut ici encore être considérée comme un code public. Selon une première option, lorsque le module reçoit à nouveau une clé publique, si celle-ci diffère de la clé originale Ko, il se met en défaut et refuse toutes les autres opérations. Selon une deuxième option, lorsque le module acquiert une nouvelle clé publique, il l'ignore, utilisant la clé originale Ko pour toutes les opérations nécessitant l'emploi de la clé publique Kp de l'opérateur. Ce dernier ne manquera pas de détecter une anomalie puisque les données qui lui seront transmises par le module seront chiffrées avec la clé originale Ko qui diffère de sa clé publique Kp. Selon un autre mode de réalisation, le module d'identification reçoit toujours une clé originale Ko avant de transmettre son code d'authentification Ca chiffré. Le terme clé publique doit s'entendre dans son sens extensif, c'est-à-dire qu'il comprend l'ensemble des données publiques nécessaires au chiffrement. Ainsi, dans le cas de l'algorithme RSA , ces données comprennent la clé proprement dite, soit l'exposant, et le modulo selon lequel l'opération de chiffrement est réalisée. Le module réalise une fonction de conversion qui est ici une fonction de hachage H (Ki, Ko) du code secret Ki et de la clé originale Ko. Pour mémoire, une fonction de hachage à sens unique est facile à calculer ; connaissant le résultat, il est difficile de retrouver la valeur qui donne ce résultat ; il est difficile de trouver deux valeurs qui conduisent au même résultat. On citera à titre d'exemple l'algorithme normalisé SHA (pour l'expression anglaise Secure Hash Algorithm ). Le résultat de cette fonction de hachage constitue le code d'authentification Ca = H (Ki, Ko) qui est enregistré dans la mémoire ineffaçable 16. Le module transmet le code secret Ki à l'opérateur qui calcule son propre code d'authentification Co = H (Ki, Kp) au moyen de sa clé publique Kp. Si la clé originale Ko et la clé publique diffèrent, il y a discordance entre le code d'authentification Ca calculé par le module et celui Co calculé par l'opérateur, si bien que le module ne peut fonctionner. Selon une variante, le module d'identification reçoit toujours la clé originale Ko. Il enregistre dans la mémoire 16 le code secret Ki et cette clé originale Ko, la fonction de conversion consistant maintenant à réaliser l'assemblage ou la concaténation de ces deux données constituant son code d'authentification Ca. Le module envoie le code secret Ki à l'opérateur qui produit son propre code d'authentification Co en assemblant le code secret Ki et sa clé publique Kp de la même manière que le module l'a fait. Là encore, les codes d'authentification obtenus par le module Ca et par l'opérateur Co sont différents si la clé publique Kp de l'opérateur ne correspond pas à la clé originale Ko. Selon une autre variante, le module produit lors de sa première connexion au réseau de l'opérateur un code d'authentification Ca qui vaut une fonction de hachage du code secret et de la clé originale H (Ki, Ko). Comme mentionné précédemment, l'opérateur calcule alors son propre code d'authentification Co = H (Ki, Kp) au moyen de sa clé publique. En cas de différence entre les deux codes d'authentification Ca, Co, l'opérateur invalide le module d'identification. Par contre, si la clé originale Ko et sa clé publique Kp correspondent, il est possible d'utiliser maintenant le code secret Ki comme code d'authentification. Suivant un autre mode de réalisation, l'invention fait appel à un algorithme du type Diffie-Heliman (du nom de ses auteurs). On se place donc dans un corps commutatif tel qu'un corps de base ou un corps constitué au moyen d'une courbe elliptique. La clé publique Kp de l'opérateur est ici formée d'une première donnée g et d'une deuxième donnée L = go mord n où x représente la clé secrète de l'opérateur, l'expression mod n signifiant que l'opération est réalisée modulo n. Cette clé publique est communiquée au module d'identification qui calcule une troisième donnée M = L Ki mod n et une quatrième donnée N = g w mod n où Ki représente toujours le code secret. Le module réalise alors une fonction de hachage H (M, N) de la troisième et de la quatrième données qu'il enregistre dans la mémoire ineffaçable 16. Il envoie la quatrième donnée N à l'opérateur. Le code d'authentification est dans ce cas égal au résultat de la fonction de hachage H (M, N) = H (gxri, g). On remarque ici encore que si le module utilise une première ou une deuxième donnée qui ne correspondent pas à la clé publique de l'opérateur, les fonctions de hachage calculées par le module et par l'opérateur ne seront pas identiques. Les exemples de réalisation de l'invention présentés ci-dessus ont été choisis pour leur caractère concret. Il ne serait cependant pas possible de répertorier de manière exhaustive tous les modes de réalisation que recouvre cette invention. En particulier, toute étape ou tout moyen décrit peut-être remplacé par une étape ou un moyen équivalent sans sortir du cadre de la présente invention. REVENDICATIONS 1) Module d'identification comportant un code d'authentification dans une mémoire permanente, ce code d'authentification résultant de l'application d'une fonction de conversion à un code secret, caractérisé en ce qu'il comprend des moyens (15) pour générer ce code secret (Ki). 2) Module selon la revendication 1 caractérisé en ce que, comprenant des moyens de cryptage (11) pour produire un code crypté (CC) par chiffrement dudit code d'authentification au moyen d'une clé publique (Kp), comprenant des moyens de transmission (12) pour communiquer ledit code crypté (CC), l'activation desdits moyens de transmission (12) est conditionnée à l'acquisition préalable d'un code public immuable (Kp, Kv). 3) Module selon la revendication 2 caractérisé en ce que, comprenant des moyens (13) pour recevoir un certificat de ladite clé publique (Kp), il comprend des moyens (11) pour déchiffrer ce certificat avec ledit code public (Kv). 4) Module selon la revendication 2 caractérisé en ce que, ledit code public se confondant avec ladite clé publique (Kp), il comprend des moyens (11) pour réaliser ladite fonction de conversion en combinant ladite clé publique (Kp) et ledit code secret (Ki). 5) Module selon la revendication 2, caractérisé en ce qu'il comprend une mémoire inaltérable (16) dans laquelle est enregistré ledit code d'authentification. 6) Module selon l'une quelconque des revendications 4 ou 5, caractérisé en ce que ledit code d'authentification est un assemblage de ladite clé publique (Kp) et dudit code secret (Ki). 7) Module selon l'une quelconque des revendications 4 ou 5, caractérisé en ce que, ledit code d'authentification résulte d'une fonction de hachage de ladite clé publique (Kp) et dudit code secret (Ki). 8) Module selon l'une quelconque des revendications 4 ou 5 caractérisé en ce que, ledit code d'authentification a une valeur initiale qui résulte d'une fonction de hachage de ladite clé publique (Kp) et dudit code secret (Ki), cette valeur initiale étant ensuite remplacée par ledit code secret (Ki). 9) Module selon l'une quelconque des revendications 4 ou 5, caractérisé en ce que ledit code d'authentification résulte d'une exponentiation de ladite clé publique (Kp) au moyen dudit code secret (Ki) modulo n. 10) Procédé de sécurisation d'un module d'identification comportant un code d'authentification résultant de l'application d'une fonction de conversion à un code secret, caractérisé en ce qu'il comporte une étape de génération dudit code secret (Ki) au sein dudit module. 11) Procédé selon la revendication 10 caractérisé en ce qu'il comprend une étape pour acquérir et enregistrer un code public (Kp, Kv) dans une mémoire (16) non réinscriptible. 12) Procédé selon la revendication 11 caractérisé en ce que, comprenant une étape d'acquisition d'une clé publique (Kp), cette clé publique étant prévue pour le chiffrement dudit code d'authentification, il comprend une étape pour acquérir une certification chiffrée de ladite clé publique (Kp), une étape pour déchiffrer cette certification au moyen dudit code public (Kv) et une étape pour vérifier la certification déchiffrée. 13) Procédé selon la revendication 11 caractérisé en ce que, ledit code public étant une clé publique (Kp) utilisée dans une étape de cryptage dudit code d'authentification, il comprend une étape pour réaliser ladite fonction de conversion en combinant ladite clé publique (Kp) et ledit code secret (Ki). 14) Procédé selon la revendication 13, caractérisé en ce que ledit code d'authentification est un assemblage de ladite clé publique (Kp) et dudit code secret (Ki). 15) Procédé selon la revendication 13, caractérisé en ce que ledit code d'authentification résulte d'une fonction de hachage de ladite clé publique (Kp) et dudit code secret (Ki). 16) Procédé selon la revendication 13 caractérisé en ce que, comprenant une étape de transmission dudit code d'authentification crypté (CC), lors de la première exécution de cette étape, ledit code d'authentification résulte d'une fonction de hachage de ladite clé publique (Kp) et dudit code secret (Ki), tandis que lors des exécutions suivantes de cette même étape, ledit code d'authentification vaut ledit code secret (Ki). 17) Procédé selon la revendication 13, caractérisé en ce que ledit code d'authentification résulte d'une exponentiation de ladite clé publique (Kp) au moyen dudit code secret (Ki) modulo n.