Brevet FR2924551A1 — publié le 20090605

L'invention concerne un procédé de contrôle d'accès à au moins une fonction apte à être mise en oeuvre par une carte à puce, le procédé comprenant une étape de saisie par un utilisateur d'un mot de passe. L'invention trouve une application particulièrement intéressante lorsqu'il s'agit de limiter l'accès à une carte à puce au seul porteur utilisateur de la carte grâce à sa connaissance exclusive du mot de passe. Une carte à puce comprend un circuit électronique apte à manipuler des données, notamment à stocker des données, à réaliser des calculs sur des données et à lire des données. Actuellement, l'accès à une fonction implantée sur une carte à puce, par exemple une fonction de lecture de données, d'écriture de données, de signature, de chiffrement, d'authentification, est protégé au moyen d'un code secret, dit "PIN" (de l'anglais "Private Identification Number"), constitué d'un numéro d'identification privé. Ce code PIN est stocké dans une mémoire de la carte à puce. Lorsqu'un utilisateur, détenteur de la carte, souhaite accéder à une fonction de la carte et, le cas échéant, à un secret nécessaire à l'exécution de cette fonction (par exemple une clé secrète de signature, dans le cas d'une fonction de signature électronique), l'utilisateur est invité à saisir son code PIN via une interface adaptée. Le code PIN saisi est ensuite comparé par la carte au code PIN stocké en mémoire. Si la comparaison est positive, alors l'accès à la fonction de signature et au secret nécessaire à son exécution est autorisé pour l'utilisateur. Celui-ci peut alors signer électroniquement une transaction ou des données en utilisant la fonction de signature et la clé de signature stockés sur la carte, pour reprendre l'exemple précité. En fournissant le code PIN, l'utilisateur déverrouille l'accès à tout ou partie des fonctions de la carte et le cas échéant aux secrets nécessaires à l'exécution de ces fonctions. Cependant, bien que la carte ne permette pas une lecture directe d'un secret qu'elle stocke dans son circuit électronique, tel qu'un code PIN ou des 2 secrets nécessaires à l'exécution de certaines fonctions de la carte, il existe des méthodes d'analyse indirecte permettant d'obtenir des informations sur ces secrets. Ces méthodes sont regroupées sous le terme d'attaques. On connaît ainsi des attaques invasives menées directement sur le composant électronique. Ce sont des attaques dites de "reverse engineering" au cours desquelles un attaquant tente de récupérer le maximum d'informations sur le circuit électronique pour en déduire les algorithmes utilisés, les sécurités mises en place, pour enfin peut-être récupérer tout ou partie du ou des secrets stockés. Ces attaques nécessitent une connaissance experte et un matériel très coûteux. On connaît également des attaques non invasives qui s'intéressent à des paramètres externes de la carte. Avec ce type d'attaque, on mesure un paramètre physique extérieur à la carte à puce pendant son activité. Ce paramètre peut être un temps de calcul, un courant, un champ électromagnétique émis par la puce. Par exemple, un attaquant soumet des messages choisis à un traitement par la carte à puce, par exemple un chiffrement. L'attaquant relève alors des données relatives à un, ou des paramètres mesurés pendant l'opération de chiffrement par la puce. Une fois ces paramètres récupérés, l'attaquant par analyse directe ou analyse statistique des données en déduit des informations sur le secret utilisé. II existe donc un besoin pour protéger l'accès à des données stockées sur une carte à puce, tels qu'un code PIN ou des secrets par exemple, ces données étant nécessaires à l'exécution de fonctions mises en oeuvre par la carte à puce. A cette fin, l'invention propose un procédé de contrôle d'accès à au moins une fonction apte à être mise en oeuvre par une carte à puce, le procédé comprenant une étape de saisie par un utilisateur d'un mot de passe, et étant caractérisé par le fait qu'il comprend en outre : - une étape de déchiffrement, à l'aide du mot de passe saisi, d'un mot chiffré stocké dans la carte, ledit mot comprenant au moins deux parties, l'une, dite "première partie", comprenant une valeur à vérifier, et une autre partie, dite "deuxième partie", correspondant à une empreinte de la première partie obtenue par application d'une fonction d'empreinte f à ladite première partie, - une étape de calcul au cours de laquelle ladite fonction d'empreinte f est appliquée à la première partie du mot déchiffré afin d'obtenir une empreinte 5 de ladite première partie, et - une étape de test au cours de laquelle l'empreinte calculée à partir de la première partie du mot déchiffré est comparée à la deuxième partie du mot déchiffré, afin de vérifier l'intégrité de ladite valeur. Avec le procédé de contrôle d'accès selon l'invention, il n'y a pas de 10 stockage direct sur la carte à puce des mots de passe utilisateur et administrateur, et de secrets, le cas échéant, nécessaires à l'exécution de fonctions de sécurité de la carte. Ainsi, le procédé selon l'invention présente l'avantage de rendre une carte à puce résistante à des attaques non invasives au cours desquelles des mesures sont effectuées, par exemple lors de la 15 comparaison entre un code PIN saisi et un code PIN stocké sur la carte. Il est connu que la fonction de comparaison de codes PIN est une fonction vulnérable à des attaques non invasives de type attaque par canaux cachés. L'utilisation dans le cadre du procédé selon l'invention, de données stockées chiffrées par des algorithmes de sécurité éprouvés réduit fortement le risque de piratage 20 d'informations sur les données déchiffrées. Le procédé selon l'invention résiste également à des attaques invasives puisque les données étant stockées chiffrées, des inforrnations qui seraient récupérées sur les algorithmes de chiffrement/déchiffrement et sur les données stockées chiffrées ne permettraient pas pour autant d'accéder aux données 25 protégées puisqu'aucune information sur les clés de déchiffrement à utiliser n'est stockée sur la carte. Selon le procédé de l'invention, la fonction d'empreinte qui est appliquée à la première partie du mot déchiffré afin d'obtenir une empreinte de ladite première partie appartient au groupe comprenant une fonction de hachage, un 30 code de correction d'erreur, une somme de contrôle. Les fonctions d'empreinte utilisées permettent de réaliser un contrôle d'intégrité de la valeur à vérifier. Ainsi, en contrôlant l'intégrité dès la saisie du mot de passe utilisateur, on sait immédiatement si le mot de passe saisi est correct ou non. Sans ce contrôle d'intégrité, la saisie d'un mauvais mot de passe ne serait détectée qu'ultérieurement, par exemple en tentant d'exécuter une fonction de sécurité avec un secret erroné, correspondant à une donnée 5 déchiffrée avec un mauvais mot de passe. Le gain en termes de nombre d'opérations et de temps de traitement est donc évident. Dans une réalisation de l'invention, le procédé comprend en outre une étape de fourniture d'un secret nécessaire à l'exécution de la fonction apte à être mise en oeuvre par la carte à puce, ledit secret étant obtenu à partir de la 10 valeur à vérifier. Un secret nécessaire à l'exécution d'une fonction sécurisée de la carte est stocké chiffré sur la carte. Le cas échéant, le secret est encodé, avant chiffrement, au moyen d'une fonction d'encodage. L'encodage permet de fournir des informations complémentaires sur le secret, par exemple son type et sa 15 longueur. Ainsi, l'encodage permet de préciser de quel type de clé il s'agit, c'est-à-dire pour quel algorithme cette est destinée. Cette étape rend disponible le secret pour l'exécution de la fonction. Le secret est obtenu à partir de la valeur à vérifier : si le secret a été encodé préalablement, alors le secret s'obtient par décodage de la valeur à vérifier. 20 Dans une réalisation avantageuse de l'invention, la première partie du mot comprend une valeur aléatoire, dite vecteur d'initialisation, et la valeur à vérifier. L'utilisation d'un vecteur d'initialisation renforce la sécurité du procédé et rend difficile des attaques par force brute qui consistent à essayer des clés de 25 déchiffrement successives pour déchiffrer des mots chiffrés. En effet, le vecteur d'initialisation permet d'obtenir des mots chiffrés différents même si les mots de passe de référence utilisateur et administrateur utilisés comme clés de chiffrement sont identiques. L'invention concerne aussi un dispositif de contrôle d'accès à au moins 30 une fonction apte à être mise en oeuvre par une carte à puce, le dispositif comprenant des moyens de réception d'un mot de passe. saisi, le dispositif étant caractérisé en ce qu'il comprend : - des moyens de déchiffrement, agencés pour déchiffrer à l'aide du mot de passe saisi, un mot chiffré stocké dans le dispositif, ledit mot comprenant au moins deux parties, l'une, dite "première partie", comprenant une valeur à vérifier, et une autre partie, dite "deuxième partie", correspondant à une empreinte de la première partie obtenue par application d'une fonction d'empreinte f à ladite première partie, - des moyens de calcul, agencés pour appliquer ladite fonction d'empreinte à la première partie du mot déchiffré afin d'obtenir une empreinte de ladite première partie, et - des moyens de test, agencés pour comparer l'empreinte calculée à partir de la première partie du mot déchiffré à la deuxième partie du mot déchiffré afin de vérifier l'intégrité de ladite valeur. L'invention concerne également un programme destiné à être installé dans une mémoire d'une carte à puce, comprenant des portions de code pour l'exécution des étapes du procédé de contrôle d'accès selon l'invention lorsque le programme est exécuté sur ladite carte à puce. De nombreux détails et avantages de l'invention seront mieux compris à la lecture de la description d'un mode particulier de réalisation en référence aux schémas annexés donnés à titre non limitatif et dans lesquels : - la figure 1 présente les étapes du procédé de contrôle d'accès à au moins une fonction d'utilisation de la carte à puce selon un mode de réalisation de l'invention ; - la figure 2 présente les étapes d'un mécanisme de mise à jour du mot de passe selon l'invention ; - la figure 3 présente les étapes d'un mécanisme de déblocage du mot de passe utilisateur ; - la figure 4 représente un dispositif de contrôle d'accès selon l'invention. Une carte à puce permet à un utilisateur porteur de la carte d'accéder à diverses fonctions par exemple des fonctions de lecture de données, d'écriture de données ou d'effacement de données, ou encore des fonctions sécurisées telles que des fonctions de signature de données, de chiffrement de données ou d'authentification, etc. Les fonctions sécurisées ont besoin en général d'un secret pour s'exécuter. Ce secret est par exemple une clé de signature dans le cas d'une fonction de signature, une clé de chiffrement dans le cas d'une fonction de chiffrement. L'accès aux fonctions mises en oeuvre par la carte, voire aux secrets le cas échéant, est habituellement autorisé par la fourniture par l'utilisateur d'un mot de passe, ou code d'identification personnelle plus communément appelé code "PIN" (de l'anglais "Personal Identity Number"). Habituellement, une présentation par l'utilisateur d'un nombre déterminé, par exemple trois, de codes PIN successifs erronés bloque tout accès à la carte. Seul un administrateur habilité peut alors débloquer l'accès en fournissant un mot de passe administrateur, ou clé personnelle de déblocage appelé code "PUK" (de l'anglais "Personal Unbloking Key"), qui permet de déverrouiller l'accès à la carte bloqué en réinitialisant un compteur associé au nombre de codes PIN successifs erronés saisis ; dans ce cas, il est demandé de saisir un nouveau code PIN en remplacement du précédent. Un tel mécanisme de recouvrement d'un code PIN perdu par l'utilisateur fait partie des mécanismes classiques de gestion d'une carte à puce. D'autres mécanismes de gestion sont classiquement proposés par une carte à puce : un mécanisme de mise à jour du code PIN, un mécanisme de mise à jour du code PUK. Le code PUK, comme le code PIN, sont stockés dans une mémoire de la carte à puce. Les étapes d'un procédé de contrôle d'accès à au moins une fonction apte à être mise en oeuvre par une carte à puce selon un mode de réalisation 25 de l'invention vont rnaintenant être décrites en relation avec la figure 1. Dans une étape préalable non représentée, il est calculé un mot m. Ce mot m est une concaténation d'une première partie A et d'une deuxième partie f(A). Autrement dit, m est égal à (A Il f(A)). Le mot m est ensuite chiffré par un algorithme de chiffrement symétrique au moyen d'une clé qui est le mot de 30 passe utilisateur de référence Kir. Le mot m chiffré est stocké dans une mémoire de la carte. On soulignera que : - le mot m ne peut être obtenu que par déchiffrement, en utilisant comme clé le mot de passe de utilisateur de référence K,,r, - le mot m permet de retrouver le secret S. Le mot m est donc formé de deux parties : la première partie est une valeur à vérifier A, et la deuxième partie f(A) est une empreinte de la première partie. L'empreinte de la valeur à vérifier est calculée par application d'une fonction d'empreinte f à la valeur à vérifier A, l'empreinte est notée f(A). Il est également calculé un second mot m' dont le chiffré, obtenu par chiffrement par un algorithme de chiffrement symétrique au moyen d'une clé qui est le mot de passe administrateur de référence Kar, est stocké sur la carte. Le mot m' permet de retrouver la valeur A lorsque l'on connaît le mot de passe administrateur de référence Kar. Le second mot m' est la concaténation de la valeur à vérifier A et d'une empreinte de la valeur à vérifier f(A). Le second mot m' est noté (A Il f(A)). L'algorithme de chiffrement utilisé pour chiffrer le second mot m' peut être différent de l'algorithme de chiffrement utilisé pour chiffrer le mot m. Dans un premier exemple de réalisation, on considère une carte porte-secret. La valeur à vérifier A est un secret S. Une telle carte contient le secret S qui est rendu utilisable par un utilisateur porteur de la carte s'il connaît un mot de passe d'accès de référence Ko,-, ou code PIN. De même, le secret S est rendu utilisable par un administrateur de la carte s'il connaît un mot de passe administrateur de référence Kas, ou code PUK. Ce type de carte est utile par exemple dans le cas d'une signature électronique où la carte contient le secret S nécessaire à l'opération de signature et signe une donnée fournie en entrée. Dans une étape 10 de saisie du mot de passe, l'utilisateur porteur de la carte saisit son mot de passe K,,, ou code PIN, sur une interface adaptée. La carte à puce est en général introduite dans un lecteur de carte à puce, un programme couplé à un terminal sur lequel le lecteur est connecté fournit l'interface appropriée pour la saisie de mots de passe. Dans une étape 11 de vérification, il est procédé à la vérification du mot de passe saisi Ku. Cette étape comprend plusieurs sous-étapes : 8 Dans une sous-étape 110 de déchiffrement, il est procédé au déchiffrement du mot m stocké chiffré sur la carte au moyen du mot de passe Ku utilisé comme clé de déchiffrement. Le déchiffrement du mot m chiffré produit un mot qui est une concaténation de deux valeurs A et B, notée (A Il B ). La valeur A est la valeur à vérifier. Dans une sous-étape étape 111 de calcul d'empreinte, la fonction d'empreinte f est appliquée à la valeur A obtenue à l'étape 110 pour obtenir f(A). La fonction d'empreinte permet de contrôler l'intégrité de A. Dans une sous-étape 112 de test, la valeur B, obtenue à la sous-étape 110 de déchiffrement est comparée à la valeur f(A) obtenue à la sous-étape 111 de calcul d'emppreinte. Si les valeurs sont égales (branche OK), alors le mot de passe utilisateur saisi Kä est une clé qui permet de déchiffrer correctement le mot m chiffré au préalable au moyen du mot de passe de référence Ku,. La valeur A obtenue par déchiffrement du mot m est donc intègre. Si les valeurs ne sont pas égales (branche NOK), l'étape de vérification a échoué et dans une étape suivante 12 d'erreur, il est retourné un message d'erreur de type mot de passe erroné. De manière classique, un compteur qui comptabilise le nombre de mots de passe erronés successifs saisis par l'utilisateur est incrémenté de 1. Si le compteur atteint une valeur seuil, par exemple 3, alors l'accès à la carte est bloqué et, dans l'étape d'erreur 12, il est retourné un message d'erreur de type "carte bloquée". Dans le cas où le test effectué à l'étape 11 est positif (branche OK), alors il est calculé dans une étape 13 de calcul du secret, le secret S. Le secret S est obtenu à partir de la valeur à vérifier A. Dans l'exemple de réalisation décrit, le 25 secret S est égal à la valeur à vérifier A. En fin d'étape 13, le secret S est alors prêt à être utilisé par une fonction de la carte. Par exemple, S peut être utilisé comme clé de signature d'une fonction de signature de données. 30 Dans une réalisation alternative de l'invention, un administrateur de la carte saisit à l'étape 10 de saisie du mot de passe, son mot de passe administrateur Ka, ou code PUK. C'est le mot de passe Ka qui est alors utilisé 9 lors de l'étape 11 de vérification, au cours de l'étape 110 de déchiffrement, comme clé de déchiffrement pour déchiffrer le deuxième mot m' stocké chiffré. Il est alors procédé comme décrit dans les sous-étapes 111 de calcul et 112 de test. Si la sous-étape 112 de test est positive (branche OK), alors cela signifie que le mot de passe administrateur saisi Ka par l'administrateur est une clé qui permet de déchiffrer correctement le deuxième mot m' chiffré au préalable au moyen du mot de passe administrateur de référence Ka,. En fin d'étape 13 de calcul du secret S, le secret S est alors prêt à être utilisé. ~o Dans une variante de réalisation de l'invention, le secret S est encodé par une fonction d'encodage. Par exemple, le secret S est encodé par encodage "ASN.1" (de l'anglais "Abstract Syntax Notation 1"). L'encodage permet de structurer le secret S, en fournissant par exernple une information sur son type et sur sa longueur. Le mot m est alors calculé à partir du secret S 15 encodé. Dans le cas où le secret S est encodé, alors dans l'étape 13 de calcul du secret, le secret est obtenu à partir de la valeur à vérifier A par décodage de la valeur à vérifier A. Dans une réalisation alternative de l'invention où l'utilisateur cherche à 20 accéder à une fonction de la carte telle qu'une fonction d'effacement des données de la carte à puce, la valeur A à vérifier est une valeur quelconque, par exemple une valeur nulle ou un code exécutable, qui est stockée chiffrée au moyen du mot de passe utilisateur de référence Kir La vérification du mot de passe saisi Ku se fait alors de la même manière que dans les étapes 10 et 11 25 décrites précédemment, la valeur à vérifier étant alors la valeur quelconque. Avantageusement la valeur quelconque peut être un paramètre de lancement de la fonction, ou bien tout ou partie du code exécutable de la fonction sous forme d'un programme assembleur. 30 Différents algorithmes de chiffrement symétriques peuvent être utilisés pour chiffrer et déchiffrer les mots m et m' stockés, par exemple un algorithme de chiffrement par chaînage de blocs comme CBC (de l'anglais "Cipher Block Chaining"), l'algorithme AES (de l'anglais "Advanced Encryption Standard"), l'algorithme DES (de l'anglais "Data Encryption Standard"). Les algorithmes utilisés pour chiffrer/déchiffrer le mot m, respectivement le deuxième mot m' peuvent être différents. Différentes fonctions d'empreinte peuvent être utilisées pour calculer l'empreinte de la valeur à vérifier f(S) : une fonction de hachage comme MD-5 (de l'anglais "Message Digest-5"), SHA-1 (de l'anglais "Secure Nash Algorithm") ou une fonction MAC (de l'anglais "Message Authentication Code"). L'empreinte de la valeur à vérifier f(S) peut également se présenter sous forme d'un code correcteur d'erreur calculé à partir de la valeur à vérifier S, par exemple CRC (pour "Code de Redondance Cyclique"), ou sous forme d'une somme de contrôle de la valeur à vérifier S (le terme couramment utilisé est le terme anglais "checksum"). De façon avantageuse, l'algorithme CBC-MAC (de l'anglais "Cipher Block Chaining û Message Authentication Code) qui fournit en même temps un chiffrement et la fonction d'empreinte f est utilisé : il minimise le nombre d'opérations à effectuer pour calculer (chiffrer et déchiffrer) les mots m et m'. Dans une variante de réalisation de l'invention et en vue de renforcer la sécurité, on utilise un vecteur d'initialisation IV. Le vecteur d'initialisation IV est une valeur aléatoire qui est concaténée au secret S. Le vecteur d'initialisation est également un paramètre de la fonction d'empreinte. Le mot m est alors noté (IV Il S II f(S, IV)). La première partie du mot m, notée (IV Il S) comprend la 25 valeur à vérifier S. La deuxième partie, notée f(S, IV), est l'empreinte de la première partie. Le vecteur d'initialisation IV permet ainsi d'obtenir des mots chiffrés m, m' différents même si les mots de passe de référence utilisateur Kir et administrateur K2r utilisés comme clés de chiffrement sont identiques. Cela renforce la sécurité et rend difficile des attaques par force brute qui consistent à 30 essayer des clés de déchiffrement successives pour déchiffrer les mots m, m' chiffrés. Dans un mode de réalisation particulier de l'invention, les mots de passe utilisateur et administrateur, utilisés comme clés de chiffrement/déchiffrement ont une taille minimale. Ce sont par exemple des phrases secrètes (le terme couramment utilisé est le terme anglais "passphrase") d'au moins 40 caractères. Cette taille garantit un bon niveau de sécurité pour des algorithmes de chiffrement symétrique utilisés actuellement. Dans une réalisation alternative de l'invention où les mots de passe utilisateur et administrateur sont des codes numériques courts, classiquement des codes à 4 caractères, une fonction d'expansion de mot de passe est avantageusement utilisée afin d'obtenir, à partir d'au moins le mot de passe court utilisateur ou administrateur, et d'une donnée propre à la carte à puce, par exemple un nurnéro de série de la carte, des clés secrètes de chiffrement/déchiffrement de taille suffisante pour garantir un bon niveau de sécurité. Ainsi, deux utilisateurs qui auraient le même mot de passe court, n'auraient pas les mêmes clés de chiffrement/déchiffrement. Dans une réalisation particulière de l'invention, la fonction d'expansion est mise en oeuvre sur le terminal auquel est connecté le lecteur de la carte. Une application spécifique du terminal calcule la clé secrète de chiffrement/déchiffrement à partir du mot de passe court saisi, d'une donnée propre à la carte à puce et d'une donnée propre au terminal, par exemple, un secret associé à l'application. Par exemple, dans le cadre d'une application de lecture de cartes bancaires, le secret associé à l'application est un secret propre à chacune des banques concernées par l'application de lecture. Dans une réalisation alternative de l'invention, la fonction d'expansion est mise en oeuvre par la carte à puce, après que l'utilisateur ou l'administrateur a saisi son mot de passe. Les mécanismes classiques de gestion disponibles sur une carte à puce sont compatibles avec l'invention. Ainsi, les étapes d'un mécanisme de mise à jour du mot de passe de référence selon l'invention vont maintenant être décrites en relation avec la figure 2. On reprend ci-dessous l'exemple de la carte porte-secret. 12 Le mécanisme de mise à jour du mot de passe se décline en deux mécanismes selon qu'il s'agit de mettre à jour le mot de passe utilisateur de référence Kur ou le mot de passe administrateur de référence Ka,. Le mécanisme est illustré ci-dessous pour une mise à jour du mot de passe utilisateur Ku,. Dans une étape initiale 20, l'utilisateur saisit son mot de passe K. Dans l'étape 11 de vérification, consécutive à l'étape initiale 20 et identique à celle décrite avec la figure 1, il est vérifié que le mot de passe utilisateur saisi Ku permet de déchiffrer et de vérifier l'intégrité de la valeur à vérifier A et donc que le mot de passe utilisateur saisi Ku est bien égal au mot de passe utilisateur de référence Ku,. La vérification utilise le mot de passe saisi Kä et le mot m chiffré stocké sur la carte. Si l'étape 11 de vérification est positive, alors il est demandé à l'utilisateur, dans une étape 21 de saisie d'un nouveau mot de passe, un nouveau mot de passe de référence Kur'. De manière classique il est demandé de confirmer cette saisie en saisissant une deuxième fois le nouveau mot de passe de référence. Dans l'étape 13 de calcul du secret S, consécutive à l'étape 11 de vérification, il est calculé le secret S. L'étape 13 peut être exécutée préalablement à l'étape 21 de saisie d'un nouveau mot de passe. Dans une étape 22 de mise à jour, il est procédé à la mise à jour du mot m chiffré stocké sur la carte : il est calculé l'empreinte du secret S, f(S), obtenu à l'étape 13, puis le secret S est concaténé à l'empreinte du secret f(S), puis le résultat de la concaténation est chiffré au moyen du nouveau mot de passe de référence Kur'. L'opération de chiffrement est notée EKur'(S Ii f(S)). Le résultat de l'opération est stocké dans la carte. Dans une variante du mécanisme de mise à jour du mot de passe, appelée mise à jour du mot de passe administrateur, c'est le mot de passe administrateur de référence qui est mis à jour. Le mot de passe administrateur Ka est saisi par l'administrateur à l'étape 20. Au ternie d'une étape de vérification 11 positive, un nouveau mot de passe administrateur de référence Ka; est saisi par l'administrateur. Ce nouveau mot de passe est alors utilisé pour mettre à jour le second mot m' chiffré stocké sur la carte conformément à l'étape 22 de mise à jour. Un mécanisme de déblocage du mot de passe utilisateur va maintenant être décrit en relation avec la figure 3. Ce mécanisme de gestion est classiquement utilisé lorsque l'utilisateur porteur de la carte a perdu, c'est-à-dire a oublié, son mot de passe et qu'après trois essais infructueux de saisie de son mot de passe, son accès à la carte a été bloqué. De manière classique, l'utilisateur porteur de la carte s'adresse à l'administrateur de la carte pour effectuer le déblocage de sa carte. Dans une étape initiale 30, il est demandé à l'administrateur de la carte de saisir son mot de passe administrateur Ka. Il est ensuite procédé à l'étape 11 de vérification, identique à celle décrite avec la figure 1. Si l'étape de vérification retourne une erreur (branche NOK), alors le procédé de déblocage prend fin dans une étape 12 d'erreur. Un compteur qui comptabilise le nombre de mots de passe saisis erronés est incrémenté. Si l'étape de vérification 11 est positive (branche OK), alors à l'étape 13 suivante, le secret S est prêt à être utilisé. II est alors demandé à l'utilisateur, dans une étape 31 de saisie d'un nouveau mot de passe, un nouveau mot de passe utilisateur de référence Kur'. Dans une étape 32 de mise à jour, il est procédé à la mise à jour du mot m chiffré stocké sur la carte : il est calculé l'empreinte f(S) du secret S obtenu à l'étape 13, puis le secret S est concaténé à l'empreinte du secret f(S), puis le résultat de la concaténation est chiffré au moyen du nouveau mot de passe de référence Kir'. L'opération de chiffrement est notée EKur(S Il f(S)). Le résultat de l'opération est stocké dans la carte. Le compteur qui comptabilise le nombre de mots de passe utilisateur saisis erronés est remis à zéro. De manière optionnelle, un générateur de secrets g est implanté sur la carte à puce ; ce générateur utilise de l'entropie interne etlou externe à la carte. Dans ce cas, un récanisme d'initialisation mis en oeuvre par la carte à puce, permet de mettre à jour les mots m et m' chiffrés stockés sur la carte. Ce mécanisme nécessite deux mots de passe, par exemple le mot de passe utilisateur Kä et le mot de passe administrateur Ka. Le mécanisme d'initialisation se déroule alors de la façon suivante : - un appel au générateur g de secrets fournit un secret S ; - le secret S est utilisé avec le mot de passe utilisateur KU, respectivement avec le mot de passe administrateur Ka, pour mettre à jour le mot m chiffré, respectivement le second mot m' chiffré, stocké sur la carte. Le 10 mot de passe utilisateur Ku, respectivement le mot de passe administrateur Ka, est utilisé comme clé secrète pour chiffrer le mot obtenu par concaténation de S et de l'empreinte de S, f(S) ; - les compteurs associés au nombre de saisies successives erronées du mot de passe utilisateur Ku, respectivement du mot de passe administrateur Ka, 15 sont réinitialisés à 0. Un dispositif de contrôle d'accès selon l'invention va maintenant être décrit en relation avec la figure 4. Un tel dispositif 40 est représenté par une carte à puce schématisée par 20 la figure 4. Le dispositif 40 est agencé pour contrôler qu'un utilisateur porteur d'une carte ou qu'un administrateur de la carte est autorisé à exécuter l'opération s'il fournit un mot de passe valide. Le dispositif 40 est classiquement inséré dans un lecteur connecté à un terminal non représentés. Un programme couplé au terminal fournit l'interface appropriée pour la saisie de mots de 25 passe. De manière classique, le dispositif 40 de contrôle d'accès comprend un microprocesseur 41, constitué d'une unité de traitement 410, ou "CPU" (de l'anglais "Control Processing Unit") et d'un coprocesseur cryptographique 411, de contacts 42 et d'un ensemble de mémoires. Une mémoire programmable et effaçable 43, ou "EEEPROM" (de l'anglais "Electrically Erasable Programmable 30 Read Only Memory") contient notamment des informations relatives au porteur de la carte et des applications mises en oeuvre par la carte. Une mémoire non volatile 44, ou "ROM" (de l'anglais "Read Only Memory") contient entre autres un système d'exploitation. Enfin, une mémoire volatile à accès rapide 45, ou "RAM" (de l'anglais "Random Access Memory") est utilisée pour exécuter des instructions de code, stocker des variables, etc. Selon une réalisation de l'invention, la mémoire programmable et 5 effaçable 43 comprend : - un module (non représenté) de réception de mots de passe saisis, un mot de passe étant saisi par un utilisateur de la carte ou un administrateur dans l'interface appropriée fournie par le terminal couplé au lecteur du dispositif. - un module de déchiffrement 430, agencé pour déchiffrer des mots m, m' 10 stockés chiffrés sur la carte. Le module de déchiffrement utilise comme clé secrète d'un algorithme de chiffrement le mot de passe saisi, fourni par le module de réception de mots de passe. Les mots m, rn' stockés, une fois déchiffrés se présentent comme une concaténation de deux parties : une première partie comprend une valeur à vérifier et une deuxième partie 15 correspond à une empreinte de la première partie. L'empreinte est obtenue par application d'une fonction d'empreinte f à la première partie ; - un module de calcul 431, agencé pour appliquer la fonction d'empreinte f sur la première partie d'un mot m, m' déchiffré par le module de déchiffrement 430 pour obtenir une empreinte de la première partie ; 20 - un module de test 432, agencé pour comparer l'empreinte de la première partie calculée par le module de calcul 431, à l'empreinte obtenue du module de déchiffrement 430 et qui correspond à la deuxième partie du mot m, m' déchiffré. Le module de test 432 fournit un résultat positif si les deux valeurs coïncident et un résultat négatif si elles ne sont pas égales ; 25 - une zone de stockage 433, agencée pour stocker les mots m, m' chiffrés. - optionnellement, un module de fourniture de secrets 434 est agencé pour calculer à partir du mot déchiffré obtenu du module de déchiffrement 430, un secret S. Le secret S est calculé à partir du mot déchiffré m, m'. Il est obtenu 30 à partir de la valeur à vérifier comprise dans la première partie du mot ; - des modules de gestion non représentés : un module agencé pour mettre à jour des mots de passe, un module agencé pour débloquer un mot de passe utilisateur ; et -optionnellement un module d'initialisation non représenté, agencé pour mettre à jour à partir de deux mots de passe fournis, les mots m, m' stockés chiffrés sur la carte. Les mots m, m' sont calculés à partir d'un secret S généré par un sous-modulie de génération de secrets. Les modules 430, 431, 432 et 434 qui mettent en oeuvre les étapes du procédé de contrôle d'accès à au moins une opération d'une carte à puce sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes de procédé décrit précédemment par le dispositif 40 de contrôle d'accès. Les modules logiciels 430, 431, 432 et 434 du dispositif 40 de contrôle d'accès peuvent être installés et stockés dans la mémoire programmable et effaçable 43 de la carte à puce avant commercialisation de la carte. Ils peuvent également être transmis via un réseau de télécommunication puis installés lors d'une mise à jour de la carte dans la mémoire. REVENDICATIONS 1. Procédé de contrôle d'accès à au moins une fonction apte à être mise en oeuvre par une carte à puce, le procédé comprenant une étape de saisie (10, 20, 30) par un utilisateur d'un mot de passe (Ku, Ka), et étant caractérisé par le fait qu'il comprend en outre : - une étape de déchiffrement (110), à l'aide du mot de passe saisi, d'un mot (m, m') chiffré stocké dans la carte, ledit mot comprenant au moins deux parties, l'une, dite "première partie", comprenant une valeur à vérifier (A), et une autre partie, dite "deuxième partie", correspondant à une empreinte de la première partie (B) obtenue par application d'une fonction d'empreinte f à ladite première partie, - une étape de calcul (111) au cours de laquelle ladite fonction d'empreinte f est appliquée à la première partie du mot déchiffré afin d'obtenir 15 une empreinte de ladite première partie (f(A)), et - une étape de test (112) au cours de laquelle l'empreinte calculée à partir de la première partie (f(A)) du mot déchiffré est comparée à la deuxième partie du mot déchiffré (B), afin de vérifier l'intégrité de ladite valeur. 20 2. Procédé selon la revendication 1, dans lequel la fonction d'empreinte qui est appliquée à la première partie du mot déchiffré afin d'obtenir une empreinte de ladite première partie appartient au groupe comprenant une fonction de hachage, un code de correction d'erreur, une somme de contrôle. 25 3. Procédé selon la revendication 1, comprenant en outre une étape (13) de fourniture d'un secret (S) nécessaire à l'exécution de la fonction apte à être mise en oeuvre par la carte à puce, ledit secret (S) étant obtenu à partir de la valeur à vérifier (A). 30 4. Procédé selon la revendication 1, dans lequel la première partie comprend une valeur aléatoire, dite vecteur d'initialisation (IV), et la valeur à vérifier. 5. Dispositif de contrôle d'accès à au moins une fonction apte à être mise en oeuvre par une carte à puce, le dispositif comprenant des moyens de réception d'un mot de passe saisi, le dispositif étant caractérisé en ce qu'il comprend : - des moyens de déchiffrement (430), agencés pour déchiffrer à l'aide du mot de passe saisi, un mot (m, m') chiffré stocké dans le dispositif, ledit mot comprenant au moins deux parties, l'une, dite "première partie", comprenant une valeur à vérifier, et une autre partie, dite "deuxième partie", correspondant à une empreinte de la première partie obtenue par application d'une fonction d'empreinte f à ladite première partie, - des moyens de calcul (431), agencés pour appliquer ladite fonction d'empreinte à la première partie du mot déchiffré afin d'obtenir une empreinte de ladite première partie, et - des moyens de test (432), agencés pour comparer l'empreinte calculée à partir de la première partie du mot déchiffré à la deuxième partie du mot déchiffré afin de vérifier l'intégrité de ladite valeur. 6. Programrne destiné à être installé dans une mémoire d'une carte à puce, comprenant des portions de code pour l'exécution des étapes du procédé de contrôle d'accès selon l'une quelconque des revendications 1 à 3 lorsque le programme est exécuté sur ladite carte à puce.25