Brevet FR2716989A1 — publié le 19950908

PROCEDE DE FONCTIONNEMENT D'UNE CARTE A PUCE L'invention concerne les cartes à microcircuit plus généralement connues sous le nom de cartes à puces. Les cartes à puces actuelles deviennent de plus en plus sophistiquées et comportent maintenant souvent un microprocesseur, de sorte que la carte peut fonctionner sous la commande de programmes d'instructions incorporés à la carte. Les programmes d'instructions comportent d'une part les programmes généraux d'un système d'exploitation et d'autre part des programmes d'application. Le système d'exploitation définit essentiellement le fonctionnement interne de la carte et les protocoles de communication avec l'extérieur. Les programmes d'application utilisent les possibilités du système d'exploitation pour faire exécuter à la carte des tâches qui dépendent de l'application envisagée: par exemple une application de transaction monétaire utilisera des programmes d'application mis au point par une banque; une autre banque pourra établir des programmes d'application différents utilisant les mêmes cartes et le même système d'exploitation. Un distributeur de services (téléphone, etc.) pourra mettre au point ses propres programmes d'application, utilisant toujours le même système d'exploitation. Le cycle de vie d'une carte à puce se décompose en général en grandes étapes qui sont: - 1. la fabrication et la prépersonnalisation - 2. la personnalisation - 3. l'utilisation. A chacune de ces étapes, la carte a un propriétaire différent et des fonctionnalités différentes. Le propriétaire à l'étape 1 est en général le fabricant de la carte, à l'étape 2 un prestataire de service, et à l'étape 3 l'utilisateur final des services du prestataire. Lors de la fabrication, le fabricant effectue une prépersonnalisation qui consiste à inscrire dans la carte des données qui sont spécifiques de son client qui est le prestataire de services. Puis, le prestataire reçoit la carte et y inscrit des programmes d'application et des données de personnalisation de son client qui est l'utilisateur final. Enfin, l'utilisateur final utilise la carte pour obtenir les services pour laquelle elle a été définie et programmée. Les étapes 1 et 2 sont celles qui servent au fabricant et au prestataire de service à définir une configuration opérationnelle de la carte. Pour réaliser cette configuration, le fabricant et le prestataire utilisent des commandes puissantes d'écriture et lecture en mémoire, commandes auxquelles l'utilisateur final n'aura absolument pas accès. Et le fabricant peut utiliser des commandes plus puissantes que le prestataire de services. Par exemple, par commande plus puissante, on entend le fait que le fabricant a accès en lecture et écriture absolument à toutes les zones de mémoire non volatile de la carte. Le prestataire de service n'aura pas accès à certaines zones telles que celles qui identifient de manière unique le prestataire pour les besoins duquel la carte sera fabriquée; il n'aura pas accès non plus à des zones de programmes que le fabricant considère comme confidentiels. Et l'utilisateur n'aura pas accès à certaines zones de programme et de données que le prestataire considère comme confidentiels ou à des zones qui servent à assurer la sécurité des transactions contre les fraudes. Lors du passage d'une étape à une autre, le propriétaire à l'étape considérée met en oeuvre des mesures de passage à l'étape suivante, mesures qui en général comportent une interdiction irréversible de retour à l'étape précédente. Ces mesures peuvent par exemple comporter le claquage irréversible de fusibles physiques ou de fusibles logiques (cellules de mémoire non-volatiles programmables une seule fois), pour interdire l'accès à des zones de mémoire. Le fabricant peut claquer des fusibles, et le prestataire de services d'autres fusibles. Un problème que l'on rencontre de plus en plus fréquemment est la complexité croissante des programmes embarqués dans les cartes à puces, et l'augmentation croissante des quantités de données stockées dans les mémoires des cartes. Il est alors de plus en plus difficile de mettre au point les programmes d'application, de sorte que des dysfonctionnements inattendus peuvent se manifester malgré les vérifications très poussées effectuées lors de la mise au point de ces programmes. Le système d'exploitation lui- même est de plus en plus sophistiqué et n'est pas à l'abri de dysfonctionments inattendus. Ces dysfonctionnements se manifestent lors de l'utilisation des cartes par les utilisateurs finaux, que ce soit dans un contexte d'utilisation anormale de la carte, ou même dans une utilisation normale. Mais à l'étape de l'utilisation finale, on n'a plus accès à certaines zones de mémoire, dont l'examen serait pourtant indispensable pour détecter l'origine du problème et aider à sa solution. N'ayant que le symptôme du dysfonctionnement, vu par l'utilisateur qui ne peut plus utiliser sa carte normalement, il est très difficile de remonter à la cause pour y remédier. La cause peut être technologique ou logicielle. Il en résulte pour le fabricant et éventuellement aussi pour le prestataire de service une perte d'informations précieuses pour la mise au point d'un produit donnant toute satisfaction. L'invention propose une solution pour améliorer la qualité des produits en facilitant la recherche des causes des dysfonctionnements constatés. La solution selon l'invention est la suivante: la carte possède un premier indicateur d'état définissant l'étape de cycle de vie dans laquelle se trouve la carte; un autre indicateur d'état définit le droit de revenir à l'étape précédente; une commande de retour à l'étape précédente permet de modifier l'état du premier indicateur; cette commande, qui est exécutable par le système d'exploitation de la carte, ne peut être utilisée que pour un état déterminé du deuxième indicateur. Le changement d'état du deuxième indicateur interdit définitivement l'utilisation de la commande de retour. De préférence, une utilisation incorrecte de la commande de retour place le deuxième indicateur dans un état qui interdit définitivement l'utilisation de la commande. La commande de retour possède à cet effet des paramètres qui doivent répondre à certains critères (vérifiés par le système d'exploitation de la carte) pour que la commande soit considérée comme correcte. De préférence encore, les paramètres de la commande font intervenir le résultat d'un algorithme de chiffrement faisant intervenir des données secrètes et/ou publiques. Ces paramètres sont calculés par le lecteur de carte pour émettre la commande correcte. La commande est reçue par la carte qui vérifie les paramètres envoyés et interdit l'utilisation (et toute utilisation future) de la commande de retour s'il y a divergence entre les paramètres reçus et les paramètres calculés. Ainsi, la carte subit un cycle de vie dans lequel on a introduit une étape supplémentaire qu'on peut appeler étape de qualification, entre l'étape de personnalisation et l'étape d'utilisation, dans laquelle la carte peut être utilisée mais dans laquelle on conserve temporairement la possibilité d'expertiser des données confidentielles de la carte en cas de problème. Cette possibilité est maîtrisée grâce à l'utilisation de codes secrets et d'algorithmes de chiffrement, de sorte qu'elle n'est pas accessible à l'utilisateur final et qu'elle est plutôt réservée au fabricant (éventuellement au prestataire de service). Le procédé de fonctionnement d'une carte à puce selon l'invention comporte donc l'utilisation de deux indicateurs d'état internes à la carte pour définir deux états de la carte, ces indicateurs ayant les particularités suivantes: - le premier indicateur est apte à être changé d'une première valeur à une seconde valeur lors du passage de la carte d'un premier état à un deuxième état; - pour cette seconde valeur, le premier indicateur interdit certaines fonctionnalités de la carte qui étaient autorisées pour le premier état de la carte; - le premier indicateur peut être remis, sous contrôle du deuxième indicateur, à sa première valeur o il autorise à nouveau lesdites fonctionnalités; - le deuxième indicateur d'état est apte à être mis à une première valeur o il autorise le retour du premier indicateur à sa première valeur, ou à une seconde valeur o il interdit ce retour; - le premier indicateur est remis à sa première valeur sous la commande d'une instruction appliquée à la carte, sous réserve que le deuxième indicateur n'ait pas sa deuxième valeur; - et l'application d'une instruction erronée place le deuxième indicateur à sa deuxième valeur qui interdit le retour du premier indicateur à sa première valeur. Le premier état de la carte est de préférence un état de fabrication ou personnalisation; le deuxième état est de préférence l'état d'utilisation (le propriétaire de la carte est l'utilisateur final), mais peut être aussi l'état de personnalisation (le propriétaire est un prestataire de services utilisables par les titulaires de cartes). D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence au dessin annexé dans lequel la figure unique représente un organigramme général du procédé selon l'invention. On suppose dans cet exemple d'application du procédé selon l'invention que la carte est initialement dans un premier état (état A) correspondant par exemple au cycle de personnalisation (le prestataire de service est le propriétaire et maîtrise entre autres certaines fonctionnalités spécifiques de l'étape A et désignées par Fa, notamment des fonctions d'accès à certaines zones de mémoire de la carte). Dans ce premier état de la carte, un premier indicateur d'état Il a une première valeur m. Pour cette valeur m, les fonctionnalités spécifiques Fa sont disponibles; elles sont en effet contrôlées par l'état de l'indicateur Il. L'indicateur Il peut être constitué par un ensemble de cellules de mémoire constituant un mot d'un ou plusieurs octets par exemple. On notera que la valeur de l'indicateur peut définir de nombreux autres états de la carte si on le désire. On désire passer à l'étape suivante (deuxième état B de la carte) qui est l'utilisation de la carte par un utilisateur qui devient propriétaire de la carte dans cet état. L'utilisateur est ici celui qui peut bénéficier, à l'aide de sa carte, des biens ou services offerts par le prestataire. Dans ce deuxième état B, les fonctionnalités Fa ne doivent pas être accessibles à l'utilisateur. Elles sont condamnées, et l'indicateur d'état Il sert à la fois à indiquer et à contrôler cette condamnation. Le prestataire de service lance l'exécution d'une instruction de changement d'état qui se résume pour l'essentiel aux fonctions suivantes: - le premier indicateur d'état Il est mis à une deuxième valeur n représentant l'état B; - pour cette deuxième valeur n, les fonctionnalités Fa deviennent indisponibles, l'indicateur Il contrôlant directement ou indirectement l'accès à ces fonctionnalités (par des circuits physiques ou des interdictions logicielles faisant partie du système d'exploitation de la carte et mettant en oeuvre un examen de l'état de l'indicateur I1). - un deuxième indicateur d'état I2 est parallèlement mis à une première valeur p; cette première valeur p indique et contrôle la possibilité de remettre le premier indicateur à sa première valeur; la valeur p peut être la valeur n (indicateurs redondants, l'un servant à contrôler l'autre). La carte est alors fournie à l'utilisateur, avec uniquement les possibilités qui lui sont permises, c'est-à-dire sans accès aux fonctionnalités Fa qu'on veut lui interdire. Cependant, une possibilité de retrouver ces fonctionnalités existe, mais cette possibilité n'est pas offerte à l'utilisateur. Elle ne peut être mise en oeuvre que par le prestataire de service, voire même seulement par le fabricant. Si la carte fonctionne normalement pour l'utilisateur, cette possibilité de retour n'est en principe jamais mise en oeuvre. Mais si la carte présente des défauts de fonctionnement, elle peut alors être rapportée au prestataire de service qui va essayer d'analyser les défauts en examinant des zones de mémoire dont la lecture ne devrait plus être possible dans l'état B de la carte. Pour cela, le prestataire de service va utiliser une commande de retour à l'état A. La commande est une instruction émise à partir d'un lecteur de carte, et elle est exécutée à l'intérieur de la carte. Dans le cas général, l'invention est en effet destinée à être mise en oeuvre pour des cartes à microprocesseur capables d'exécuter des instructions reçues (sous contrôle du système d'exploitation de la carte). Cette commande présente une confidentialité d'utilisation. Il n'est pas souhaitable en effet que l'utilisateur de la carte puisse la mettre en oeuvre. La commande peut donc faire intervenir un algorithme de cryptage, ou un code secret. Par exemple, la commande est constituée par un code instruction suivi de paramètres et n'est exécutée par le système d'exploitation de la carte que si les paramètres correspondent à ceux qui sont attendus. Les paramètres envoyés peuvent être le résultat d'un calcul faisant intervenir le numéro de série de la carte (pouvant être lu par le lecteur). Ainsi le contenu de la commande de retour n'est pas fixe mais varie en fonction de la carte utilisée, ce qui améliore la sécurité. Le calcul peut être une fonction de cryptage à clé publique ou secrète. Le système d'exploitation de la carte vérifie la commande en utilisant la même fonction de calcul que le lecteur de cartes qui prépare et envoie la commande de retour. Si la vérification conduit à une acceptation de la commande et si le deuxième indicateur est dans son premier état (I2 = p, autorisant le retour à l'étape A), la commande de retour est exécutée. Sinon, le deuxième indicateur I2 est immédiatement mis (par le système d'exploitation de la carte) dans un deuxième état I2 = q d'o il ne peut plus sortir et o il interdit définitivement toute commande de retour à l'état A. Si la commande de retour est exécutée par la carte, le premier indicateur I1 est remis dans son premier état Il = m, et les fonctions Fa disponibles dans cet état sont à nouveau rendues accessibles. Le prestataire de service peut alors procéder à l'investigation des causes de dysfonctionnement de la carte en examinant des zones de mémoire susceptibles d'aider à cette investigation. La carte peut être remise à nouveau dans son deuxième état B et donnée à l'utilisateur. Le deuxième indicateur I2 sera mis dans son premier état I2 = p si on désire toujours garder la possibilité de retour à l'état A; sinon il sera mis dans son deuxième état I2 = q pour interdire définitivement le retour à l'état A. Pour mettre le deuxième indicateur dans son deuxième état, il suffit de présenter à la carte une commande de retour avec un paramètre erronné; la commande de retour ne sera pas exécutée et le deuxième indicateur sera définitivement verrouillé à I2 = q, les fonctions Fa étant définitivement verrouillées. On peut envisager que ce procédé serve pendant une phase de qualification de la carte en expérimentation réelle: par exemple, une application envisagée sur une échelle nationale peut être mise en service à titre expérimental dans une ville. Toutes les cartes sont alors pourvues d'un système d'exploitation avec possibilité de commande de retour à des fonctionnalités initiales. Les cartes sont alors examinées pendant cette phase de qualification, notamment chaque fois qu'un dysfonctionnement apparaît. Les programmes de l'application sont modifiés jusqu'à corriger petit à petit tous les dysfonctionnements possibles. A la fin de l'expérimentation dans la ville, l'application définitivement au point peut être étendue au pays entier. Cette fois, le prestataire de service distribue aux utilisateurs des cartes qui ont leur commande de verrouillage définitivement bloquée (le prestataire pouvant facilement présenter systématiquement une mauvaise commande de retour avant de distribuer ses cartes à des utilisateurs). Bien entendu, on peut prévoir que les changements d'état de la carte avec possibilité de retour sont exécutés successivement sans perdre le bénéfice des commandes de retour autorisées. Ainsi, si la carte passe du premier état A dans le deuxième état B avec autorisation de retour, puis du deuxième état dans un il troisième état c avec encore autorisation de commande de retour sans annulation de la première commande de retour, alors il est possible de revenir du troisième état vers le deuxième puis du deuxième vers le premier. On a ainsi une sorte de transitivité des commandes de retour successives. REVENDICATIONS 1. Procédé de fonctionnement d'une carte à puce, comportant l'utilisation de deux indicateurs d'état (Il, I2) internes à la carte pour définir deux états de la carte (A et B), ces indicateurs ayant les particularités suivantes: - le premier indicateur (Il) est apte à être changé d'une première valeur (m) à une seconde valeur (n) lors du passage de la carte d'un premier état (A) à un deuxième état (B); - pour cette seconde valeur (n), le premier indicateur (Il) interdit certaines fonctionnalités de la carte qui étaient autorisées pour le premier état de la carte; - le premier indicateur peut être remis, sous contrôle du deuxième indicateur (I2), à sa première valeur (m) o il autorise à nouveau lesdites fonctionnalités; - le deuxième indicateur d'état (I2) est apte à être mis à une première valeur o il autorise le retour du premier indicateur (Il) à sa première valeur (m), ou à une seconde valeur (q) o il interdit ce retour; - le premier indicateur (Il) est remis à sa première valeur (m) sous la commande d'une instruction de retour appliquée à la carte, sous réserve que le deuxième indicateur (I2) n'ait pas sa deuxième valeur (q); - et l'envoi d'une instruction de retour erronée place le deuxième indicateur (I2) à sa deuxième valeur (q) qui interdit le retour du premier indicateur à sa première valeur. 2. Procédé de fonctionnement selon la revendication 1, caractérisé en ce que le premier état de la carte est un état dans lequel la carte possède des fonctionnalités réservées au fabricant de la carte, et le deuxième état est un état dans lequel la carte possède des fonctionnalités autorisées pour un prestataire de service. 3. Procédé selon la revendication 1, caractérisé en ce que le premier état est un état dans lequel la carte possède des fonctionnalités (Fa) réservées à un prestataire de service et le deuxième état est un état pour lequel la carte peut être distribuée à un utilisateur des services du prestataire, cet utilisateur ne pouvant accéder à ces fonctionnalités.