Brevet FR2991085A1 — publié le 20131129

La présente invention concerne le domaine des cartes à puce et plus particulièrement une carte dotée de moyens de transmission de données utilisant des canaux de transmission annexes. Les cartes à puce connaissent un état dit de « fin de vie » où il n'est plus possible en théorie d'utiliser la carte. La carte se trouve dans cet état suite à une anomalie ou à une attaque. La carte se bloque et refuse tout fonctionnement, afin de conserver l'intégrité des données sensibles qu'elle contient et de s'assurer qu'elles ne sont pas dérobées. Néanmoins, il serait avantageux de pouvoir connaître le problème à l'origine du passage de la carte dans cet état de fin de vie. Or, la carte étant bloquée, il n'est pas possible de communiquer avec elle. De plus, la cause du blocage de la carte pouvant être une attaque, il est important de ne pas compromettre les données sensibles potentiellement contenues dans la carte. L'invention vise à résoudre les problèmes précédents par un procédé de transmission de données par une carte à puce en fin de vie utilisant des canaux de communication cachés différents des canaux de communication standards de la carte. Les données sont transmises par la modulation d'un signal binaire qui résulte de la modification d'un paramètre matériel de la carte. De cette manière, la carte dispose d'un moyen d'émission d'une information d'état par un canal strictement monodirectionnel qui n'amoindrit en rien la sécurité de la carte. L'invention concerne une carte à puce qui comprend des moyens de transmettre des données utilisant un canal de transmission annexe défini par le fait d'utiliser la modification contrôlée d'une caractéristique matérielle de la carte détectable depuis l'extérieur de la carte. Selon un mode particulier de réalisation de l'invention, elle est contrôlée par un premier système d'exploitation dédié au contrôle de la carte lors de son fonctionnement normal, et elle comporte un second système d'exploitation dédié au contrôle de la transmission de données par des canaux annexes. Selon un mode particulier de réalisation de l'invention, elle comporte un module de démarrage permettant d'aiguiller le contrôle vers le second système d'exploitation lorsque la carte est marquée comme étant en fin de vie et vers le premier système sinon. Selon un mode particulier de réalisation de l'invention, ledit second système comporte des moyens d'émettre via le canal annexe des données stockées dans un espace de mémoire partagé entre le premier et le second système. Selon un mode particulier de réalisation de l'invention, le premier système comprend des moyens pour, lorsque la carte passe en fin de vie, recopier des données destinées à être transmises depuis un espace mémoire privé du premier système vers l'espace mémoire partagé entre les deux systèmes. Selon un mode particulier de réalisation de l'invention, le premier système comprend en outre des moyens de chiffrement des données recopiées destinées à être 10 transmises. Selon un mode particulier de réalisation de l'invention, le premier système comprend en outre des moyens de vérifier l'intégrité des données recopiées destinées à être transmises. Selon un mode particulier de réalisation de l'invention, ledit canal annexe utilise 15 un codage basé sur l'utilisation d'une même instruction en modifiant la fréquence d'horloge d'exécution pour modifier la quantité de courant consommée par la carte lors de cette exécution. Selon un mode particulier de réalisation de l'invention, ledit canal annexe utilise un codage basé sur l'utilisation d'instructions du coprocesseur cryptographique pour 20 modifier les champs électromagnétiques émis par ce coprocesseur permettant la détection de son utilisation. L'invention concerne également un procédé de démarrage d'une carte à puce qui comporte : - une étape de lancement d'un module de démarrage lors de la mise sous tension 25 de la carte ; - une étape de test pour déterminer si la carte est marquée comme étant en fin de vie ; - une étape de passage du contrôle à un premier système si la carte n'est pas marquée comme étant en fin de vie ; 30 - une étape de passage du contrôle à un second système si la carte est marquée comme étant en fin de vie ; - une étape d'émission de données par ledit second système utilisant des canaux annexes définis par le fait d'utiliser la modification contrôlée d'une caractéristique matérielle de la carte détectable depuis l'extérieur de la carte. Selon un mode particulier de réalisation de l'invention, l'étape d'émission de données par ledit second système utilisant des canaux annexes est répétée régulièrement tant que la carte est alimentée. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : La Fig. 1 illustre l'architecture d'une carte à puce selon l'art antérieur. La Fig. 2 illustre l'architecture d'une carte à puce selon un exemple de réalisation de l'invention. La Fig. 3 illustre le procédé de transmission selon un exemple de réalisation de l' invention. La Fig. 1 illustre l'architecture d'une carte à puce 1.1. La carte contient un module de démarrage 1.2 (boot module en anglais). Ce module est activé automatiquement lors de la mise sous tension de la carte. Ce module est chargé de vérifier l'état de la carte lors du démarrage. Il existe typiquement deux états possibles pour la carte. Un premier état est l'état de fonctionnement normal de la carte. Dans cet état, le module de démarrage passe le contrôle au système d'exploitation 1.3 qui anime la carte. Ce système d'exploitation 1.3 utilise au moins un espace de stockage de données 1.5. Il gère également un module d'entrées sorties 1.4 permettant les échanges de données avec l'environnement. La carte peut également être dans un second état appelé état de fin de vie. Lorsque le module de démarrage reconnaît que la carte est dans cet état de fin de vie, il ne passe pas le contrôle au système d'exploitation. Il interrompt le fonctionnement de la carte. Une carte fonctionnelle peut décider de passer en fin de vie pour un grand nombre de raisons. Il peut s'agir de la détection d'une attaque ou encore de la détection d'une panne. La procédure de passage en fin de vie comprend plusieurs étapes. Il s'agit de protéger les données sensibles contenues dans la carte. Pour ce faire, toutes les données effaçables sont effacées. Selon le matériel utilisé, il est généralement possible de bloquer l'accès à des pages mémoires en bloquant des plages d'adresses. Typiquement, toutes les plages d'adresses pouvant l'être sont bloquées. Les entrées sorties de la carte sont également bloquées. La carte est ensuite marquée comme étant en fin de vie. Ce marquage est typiquement réalisé par le stockage d'un drapeau (flag en anglais) en mémoire non volatile. Ce drapeau reste accessible au module de démarrage. C'est par ce biais que ce module de démarrage a connaissance de l'état de la carte. La Fig. 2 illustre l'architecture de la carte selon un exemple de réalisation de l'invention. Cette architecture reprend les éléments de la Fig. 1 référencés avec les mêmes mineures. Elle contient un second système 2.6 ayant accès à un espace de stockage partagé 2.7 entre le premier et le second système. Le second système contrôle en outre un module d'entrées sorties 2.8. Ce second système est dédié à la transmission de données en utilisant un canal de transmission annexe de la carte géré par le module d'entrées sorties 2.8. On définit un canal de transmission annexe comme étant un canal de transmission de données utilisant la modification contrôlée d'une caractéristique matérielle de la carte, cette modification étant détectable depuis l'extérieur de la carte. Lorsque la carte passe en fin de vie, des informations sont alors copiées depuis l'espace de stockage 2.5 dédié au premier système 2.3 vers l'espace de stockage partagé 2.7. Ces informations sont typiquement des informations d'état liées à la cause du passage en fin de vie. Il peut s'agir du module incriminé pour la détection d'une panne. Il peut également s'agir du type d'attaque détecté si la cause du passage en fin de vie est la détection d'une attaque. Il peut également s'agir de tout type d'information dont on souhaite disposer une fois la carte en fin de vie. Cette recopie d'informations, ainsi que son chiffrement éventuel, est typiquement la seule opération supplémentaire liée à l'invention intervenant lors du passage de la carte en fin de vie. La Fig. 3 illustre le procédé de démarrage de la carte selon un exemple de réalisation de l'invention. Lors d'une première étape 3.1 la carte démarre, typiquement suite à la mise sous tension de celle-ci. Le contrôle est automatiquement confié au module de démarrage. Celui-ci teste, lors d'une étape 3.2, si la carte est en fin de vie. Ce test s'effectue typiquement par la lecture du drapeau prévu à cet effet. Ce drapeau se trouve avantageusement dans l'espace de mémoire partagé de la carte. Si la carte n'est pas en fin de vie, le contrôle est passé au premier système de la carte lors de l'étape 3.3. La carte fonctionne alors tout à fait normalement. Elle utilise le système normal d'entrées sorties pour communiquer avec l'extérieur. Par contre, si la carte est en fin de vie, au lieu de s'interrompre, le module de démarrage passe le contrôle au second système lors d'une étape 3.4. Le but de ce second système est de transmettre les informations d'état stockées dans l'espace mémoire partagé vers l'extérieur. Cette transmission est effectuée sous la forme d'une émission des données via un canal de transmission annexe. Avantageusement, l'émission des données se poursuit de manière régulière tant que la carte reste alimentée. Selon un premier mode de réalisation de l'invention, la caractéristique matérielle utilisée pour le canal annexe est la consommation de courant de la carte. Dans ce mode de réalisation, il est possible de modifier par logiciel la fréquence d'horloge de fonctionnement du processeur de la carte. On peut alors utiliser une instruction choisie du processeur que l'on va appeler à différentes fréquences d'horloge pour coder une information binaire. Selon l'exemple de réalisation, l'instruction 'NOP' est utilisée. Cette instruction ne provoque aucun calcul. Toutefois, elle provoque une consommation de courant dépendant de la fréquence d'horloge sélectionnée. Il est à noter que la durée d'exécution de l'instruction dépend également de la fréquence sélectionnée, la durée du symbole codé également. Avantageusement, un état permet de coder un symbole intermédiaire introduit entre deux symboles binaires. Cela permet de distinguer facilement deux symboles successifs de même valeur. Selon un autre mode de réalisation, la caractéristique matérielle utilisée est le fonctionnement du coprocesseur cryptographique. Les symboles sont codés sous la forme d'instructions qui utilisent, ou pas, le coprocesseur cryptographique. Un enregistrement des émissions électromagnétiques émises au voisinage de ce coprocesseur permet de récupérer un signal où l'information d'utilisation de ce coprocesseur apparaît. Il est également possible d'utiliser la température de la carte, dès lors que certaines instructions sont connues pour provoquer un échauffement du processeur, d'autres moins. On peut aussi utiliser le son ou les champs électromagnétiques. Le principe est que l'information est codée sous la forme d'une évolution détectable et contrôlée d'une caractéristique matérielle de la carte. Il eut été possible d'utiliser les interfaces physiques de communication de la carte, mais cela aurait demandé d'implémenter un pilote complet de communication au sein du second système. Or, la solution adoptée peut être avantageusement implémentée à l'aide de quelques lignes de code seulement. Il suffit d'une boucle lisant les données à émettre et les codant sous la forme d'une suite d'instructions permettant de modifier la caractéristique physique choisie. La place mémoire dans une carte à puce étant limitée, cette sobriété est avantageuse. Il faut aussi noter que la fin de vie pouvant être provoquée par une panne de la carte, plus les ressources utilisées pour implémenter le second système sont limitées et plus les chances qu'il soit opérationnel augmentent. L'intérêt de cette proposition réside donc dans l'utilisation de ce protocole de communication en utilisant toutes modifications mesurables de l'environnement par la carte. Lié à l'utilisation d'un protocole de communication se trouve le fait que le code développé pour l'occasion est compact et est exécuté en dehors de tout code utilisé lors du fonctionnement normal de la carte. Ceci rend cette implémentation sûre d'un point de vue sécuritaire, car elle utilise un code dédié. On ne doit changer aucune des sécurités déjà présentes et celles-ci doivent fonctionner comme d'habitude pour parer à toute attaque extérieure. Le canal de communication ainsi créé est strictement monodirectionnel. Cette caractéristique est importante d'un point de vue sécurité. Il n'est pas possible à un attaquant d'utiliser ce canal pour écrire une donnée dans la carte ou pour essayer de provoquer un comportement non désiré de celle-ci. Seules les données préalablement sélectionnées et transférées dans l'espace mémoire partagé peuvent être émises. Le second système n'a aucun accès à l'espace 20 mémoire géré par le premier système contenant potentiellement des données sensibles. La présente invention sert principalement à effectuer un diagnostic permettant de comprendre quels sont les problèmes qui ont poussé la carte à passer en fin de vie. Dans ce cadre, et pour un exemple d'utilisation, il est tout à fait possible de chiffrer les données à envoyer lors du passage de la carte en fin de vie. Le mécanisme de 25 chiffrement et la clé utilisée sont à choisir de façon judicieuse afin de conserver un bon niveau de sécurité. Avantageusement un mécanisme de vérification de l'intégrité des données est utilisé, typiquement une somme de contrôle de type CRC (Cyclic Redundancy Check en anglais). Quand la carte est dans l'état « en fin de vie » et qu'elle est alimentée, elle envoie par l'utilisation du mécanisme de la présente 30 invention simplement les données déjà chiffrées qui sont stockées en mémoire non volatile. Plus qu'une sécurité lors du passage en fin de vie d'une carte, ce mécanisme peut aussi être utilisé en tant que partie intégrante d'un protocole de communication et/ou procédé de sécurité. Par exemple, lors de l'authentification d'une carte, cette dernière peut envoyer une information nécessaire au bon déroulement de l'authentification. Cela peut par exemple être un aléa ou un numéro de série. Il devient alors plus difficile pour un attaquant de voir et comprendre les informations transmises par ce biais. Compte tenu de leur fonction, les terminaux peuvent posséder des moyens de suivre la consommation de la carte. Si cette dernière consomme trop à un moment donné, cela peut être considéré comme une attaque et peut bloquer la carte. Ces défauts sont surtout repérables lors de l'utilisation de cartes contrefaites. Ainsi, dans un protocole accordé entre le terminal et la carte, une consommation supérieure pour envoyer un message à un moment bien précis peut être utilisée dans le cadre d'une authentification là où une telle consommation aurait normalement bloqué la carte. Il s'agit là d'un moyen d'offrir une meilleure sécurité à la carte et au terminal qui communiquera avec. Dans ce mode de réalisation, le canal de données annexe est utilisé par le 15 premier système lors du fonctionnement normal de la carte. Ce fonctionnement est alors fait parallèlement à un fonctionnement normal et à l'utilisation des canaux de transmission normaux de la carte à puce. Selon le canal annexe utilisé, le fonctionnement normal et l'émission de données doivent être exclusifs à un instant donné pour éviter que les perturbations de la 20 caractéristique matérielle choisie provoquées par le fonctionnement normal de la carte ne viennent perturber l'émission des données via le canal annexe. L'invention décrite dans le domaine des cartes à puce concerne également tous les dispositifs de traitement de l'information utilisant des puces du type carte à puce. On peut citer, par exemple, des dispositifs de clés USB contenant une telle puce ou 25 encore des téléphones utilisant une carte SIM (Subscriber Information Module en anglais). REVENDICATIONS1/ Carte à puce caractérisée en ce qu'elle comprend des moyens de transmettre des données utilisant un canal de transmission annexe défini par le fait d'utiliser la modification contrôlée d'une caractéristique matérielle de la carte détectable depuis l'extérieur de la carte. 2/ Carte à puce selon la revendication 1, contrôlée par un premier système d'exploitation dédié au contrôle de la carte lors de son fonctionnement normal, caractérisée en ce qu'elle comporte un second système d'exploitation dédié au contrôle de la transmission de données par des canaux annexes. 3/ Carte à puce selon la revendication 2, caractérisée en ce qu'elle comporte un module de démarrage permettant d'aiguiller le contrôle vers le second système d'exploitation lorsque la carte est marquée comme étant en fin de vie et vers le premier système sinon. 4/ Carte à puce selon la revendication 2, caractérisée en ce que ledit second système comporte des moyens d'émettre via le canal annexe des données stockées 20 dans un espace de mémoire partagé entre le premier et le second système. 5/ Carte à puce selon la revendication 4, caractérisée en ce que le premier système comprend des moyens pour, lorsque la carte passe en fin de vie, recopier des données destinées à être transmises depuis un espace mémoire privé du premier 25 système vers l'espace mémoire partagé entre les deux systèmes. 6/ Carte à puce selon la revendication 5, caractérisée en ce que le premier système comprend en outre des moyens de chiffrement des données recopiées destinées à être transmises. 30 7/ Carte à puce selon la revendication 5, caractérisée en ce que le premier système comprend en outre des moyens de vérifier l'intégrité des données recopiées destinées à être transmises.8/ Carte à puce selon l'une des revendications 1 à 7, caractérisée en ce que ledit canal annexe utilise un codage basé sur l'utilisation d'une même instruction en modifiant la fréquence d'horloge d'exécution pour modifier la quantité de courant consommée par la carte lors de cette exécution. 9/ Carte à puce selon l'une des revendications 1 à 7, caractérisée en ce que ledit canal annexe utilise un codage basé sur l'utilisation d'instructions du coprocesseur 10 cryptographique pour modifier les champs électromagnétiques émis par ce coprocesseur permettant la détection de son utilisation. 10/ Procédé de démarrage d'une carte à puce caractérisé en ce qu'il comporte : - une étape de lancement d'un module de démarrage lors de la mise sous tension 15 de la carte ; - une étape de test pour déterminer si la carte est marquée comme étant en fin de vie ; - une étape de passage du contrôle à un premier système si la carte n'est pas marquée comme étant en fin de vie ; 20 - une étape de passage du contrôle à un second système si la carte est marquée comme étant en fin de vie ; - une étape d'émission de données par ledit second système utilisant des canaux annexes définis par le fait d'utiliser la modification contrôlée d'une caractéristique matérielle de la carte détectable depuis l'extérieur de la carte. 25 11/ Procédé selon la revendication 10, caractérisé en ce que l'étape d'émission de données par ledit second système utilisant des canaux annexes est répétée régulièrement tant que la carte est alimentée.