Brevet FR2881249A1 — publié le 20060728

Procédé et dispositif de commande d'une carte à puce via un gestionnaire de fichiers. La présente invention concerne le domaine des cartes à puce, et plus particulièrement 5 la communication entre un utilisateur et une carte à puce par l'intermédiaire d'une interface graphique installé dans un calculateur connecté à un lecteur de carte à puce. Actuellement pour accéder au contenu d'une carte à puce, l'utilisateur doit se servir de plusieurs logiciels, et donc naviguer entre plusieurs interfaces graphiques propres 10 à chacun des logiciels utilisés. En effet, en premier lieu, pour lister l'ensemble des lecteurs de cartes à puce présents connectés au calculateur, et l'ensemble des cartes à puce associées aux lecteurs, il est nécessaire d'installer un logiciel spécifique de gestion de lecteurs de carte à puce, en général fourni par le fabricant du lecteur de carte à puce, qui comporte sa propre interface graphique. Par exemple le logiciel SmartDiag fourni par la demanderesse comporte une interface graphique. Cette interface graphique affiche un panneau gauche donnant la liste des lecteurs connectés et des cartes à puce présentes. En sélectionnant un objet dans le panneau gauche, un menu des actions possibles s'affiche dans un panneau central. Ce menu propose par exemple d'effectuer un diagnostic des lecteurs de cartes. Le résultat de l'action choisie est affiché sur un panneau droit. Ensuite pour accéder au contenu et aux fonctions disponibles dans une carte à puce associée à un lecteur de carte, il est également nécessaire d'installer un ou plusieurs logiciels spécifiques aux applications de la carte à puce utilisée. Ce logiciel permet de visualiser et d'accéder au contenu et aux fonctions disponibles de la carte à puce dans un environnement graphique qui est également propre au logiciel lui-même et qui peut être différent de l'interface graphique précédemment utilisée. Par exemple, le logiciel GPK Pilot fourni par la demanderesse permet à l'utilisateur de dialoguer avec une carte à puce. Un menu de commande est présenté sous forme d'une barre d'outils. Une de ces commandes permet de visualiser le contenu de la mémoire de la carte à puce. Le résultat de la commande est présenté dans une fenêtre affichée par l'interface graphique du logiciel. Le logiciel GemSafe fourni par la demanderesse permet la gestion et le diagnostic de cartes à puce. Il comporte également une interface graphique spécifique affichant dans un panneau gauche les commandes disponibles, et dans une fenêtre, les résultats des commandes appliquées à la carte à puce. La solution actuelle impose à l'utilisateur d'installer et de maîtriser plusieurs logiciels comportant chacun leur propre interface graphique. Si l'on souhaite connecter plusieurs lecteurs de carte à puce, ou gérer plusieurs cartes à puce ayant des fonctionnalités différentes (par exemple la cryptographie, l'identification, la monétique, etc....), il est alors parfois nécessaire d'installer encore d'autres logiciels spécifiques, et de jongler avec les différents environnements graphiques, ce qui est peu ergonomique pour l'utilisateur. Cette solution engendre donc des coûts en terme de temps d'apprentissage pour l'utilisateur et en terme d'occupation mémoire dans le calculateur. De plus chaque nouvelle application développée pour une carte à puce implique la réalisation d'un logiciel dédié comportant une interface graphique. La présente invention a pour but de remédier à ces inconvénients. En particulier, un objectif de l'invention est de proposer une interface graphique utilisateur homogène, conviviale et simple d'emploi, assurant la communication entre l'utilisateur et la carte à puce. Un autre objectif de l'invention est de réduire le nombre et la taille des logiciels à installer dans un calculateur pour communiquer avec des cartes à puce, et par conséquent de réduire le coût d'utilisation d'une carte à puce. Un autre objectif de l'invention est de fournir une interface de communication conforme aux spécifications d'un standard tel que PC/SC (Personal Computer / Smart Card) pour être compatible avec le plus grand nombre de lecteurs de carte à puce. Ces objectifs sont atteints par un dispositif de communication entre un utilisateur et au moins une application installée dans une carte à puce associée à un lecteur connecté à un calculateur, le dispositif comprenant des moyens de conversion des données échangées entre le calculateur et la carte à puce. Selon l'invention ce dispositif comprend un module de communication spécifique de la carte à puce et comporte les moyens de conversion pour échanger des données et des commandes avec une interface graphique d'un gestionnaire de fichiers installé dans le calculateur. Avantageusement le dispositif de communication comprend un gestionnaire d'applications assurant la conversion des données et des commandes échangées entre le gestionnaire de fichiers et au moins un module d'extension spécifique de l'application installée dans la carte à puce, le module d'extension comprenant au moins les moyens de conversion pour convertir les données échangées entre la carte à puce et le gestionnaire d'applications. De préférence le dispositif de communication comprend également plusieurs modules d'extension spécifiques d'au moins une application respective installée dans une carte à puce. Par ailleurs le module de communication peut comprendre une interface de lecteur de 20 carte à puce assurant l'acheminement des données échangées au travers du lecteur de carte à puce. Selon un mode de réalisation préféré de l'invention, l'interface est conforme aux spécifications du standard de communication PC/SC. En outre, le module de communication peut comprendre des moyens pour fournir au gestionnaire de fichiers lors de son exécution, une liste des lecteurs connectés au calculateur et une liste des cartes à puce associées aux lecteurs. Avantageusement les listes des lecteurs et des cartes à puce sont affichées dans l'interface graphique du gestionnaire de fichiers en arborescence. Le module de communication peut comprendre des moyens pour fournir au gestionnaire de fichiers, à la suite de la sélection par l'utilisateur d'une application de carte à puce, un menu contextuel rassemblant une liste d'actions exécutables par l'application de carte à puce. La présente invention a également pour objet un procédé de communication entre un utilisateur et au moins une application installée dans une carte à puce par l'intermédiaire d'un calculateur, le procédé comprenant des étapes de recherche d'une carte à puce présente dans un lecteur connecté au calculateur et d'affichage d'informations relatives à la carte à puce trouvées, caractérisé en ce que l'affichage est effectué par une interface graphique d'un gestionnaire de fichiers installé dans le calculateur. Avantageusement le procédé de communication comprend des étapes: d'introduction d'une commande par l'utilisateur dans l'interface graphique, - de transmission de la commande par l'interface graphique à un gestionnaire d'applications, - de transmission de la commande par le gestionnaire d'applications à un module d'extension spécifique de l'application de la carte à puce, - de conversion de la commande dans un format adapté au lecteur et à la carte à puce, et de transmission de la commande convertie à la carte à puce. De préférence le procédé de communication comprend également des étapes: de transmission d'informations provenant de la carte à puce par le lecteur, de conversion des informations reçues dans un format adapté à l'interface graphique du gestionnaire de fichiers, - de transmission des informations converties au gestionnaire de fichiers, et - d'affichage des informations converties par l'interface graphique du 30 gestionnaire de fichiers. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un mode de réalisation préféré de l'invention, à titre non limitatif, en référence aux figures parmi lesquelles: - La figure 1 représente schématiquement un lecteur de carte à puce, muni de sa carte à puce, connecté à un calculateur; La figure 2 représente un schéma de différentes couches logicielles mises en oeuvre selon l'invention; Les figures 3a et 3b illustrent une procédure mise en oeuvre par les différentes couches logicielles représentées sur la figure 2; La figure 4 représente une fenêtre affichée selon l'invention par l'interface graphique indiquant les lecteurs de carte à puce connectés et les cartes à puce associées à ces lecteurs; La figure 5 représente un menu contextuel affiché selon l'invention par l'interface graphique. La figure 1 présente un exemple d'équipement permettant l'utilisation de cartes à puce. Il se compose d'un lecteur 5 de carte à puce 6 connecté à un calculateur 4 permettant à l'utilisateur de communiquer avec la carte à puce 6. La communication consiste, à titre d'exemple non limitatif, à commander ou à échanger des données avec les cartes à puce 6. Elle s'effectue au travers d'une interface graphique proposant des menus contextuels de commandes accessibles par exemple par simple appui par l'utilisateur d'un bouton de souris connectée au calculateur 4. En référence à la figure 2, l'invention se propose d'utiliser l'interface graphique 402 d'un programme de gestion de fichiers 400 installé dans le calculateur 4, par exemple le gestionnaire de fichiers du système d'exploitation Windows 40. Certains systèmes d'exploitation et logiciels, comme le gestionnaire de fichiers de Windows , mettent à disposition du développeur un ensemble de routines standards 401 permettant de réutiliser certaines de leurs fonctions. Ces routines sont rassemblées dans ce que l'on appelle une interface de programmation d'applications API (Application Programming Interface) 401 du logiciel. L'API d'un gestionnaire de fichiers comprend par exemple des fonctions d'affichage d'arborescences de fichiers, de création de répertoires, de sélection d'un ou plusieurs fichiers et d'application de commandes aux fichiers sélectionnés. Sur la figure 2, le dispositif selon l'invention comprend un gestionnaire d'applications 41 de cartes à puce, appelé shell extension , utilisant les routines de l'API 401, au moins un module d'extension 42, appelé plug-in par l'homme du métier, lié à au moins une application de carte à puce, et une interface logicielle 43 de communication entre le calculateur 4 et des lecteurs 5 de cartes à puce, par exemple conforme au standard PC/SC. Le gestionnaire d'applications 41 assure l'interface entre d'une part les routines 401 de l'API 401 et d'autre part les fonctions des modules d'extension 42 et les fonctions de l'interface logicielle 43. En particulier le gestionnaire d'applications 41 comprend notamment: une fonction d'établissement de la liste des lecteurs de cartes à puce accessibles, à l'aide de l'interface logicielle 43, une fonction d'établissement de la liste des cartes à puce accessibles, à l'aide de d'interface logicielle 43, une fonction d'établissement de la liste des applications disponibles dans les cartes à puce accessibles, à l'aide de l'interface logicielle 43 et des modules d'extension 42, - une fonction d'établissement de menus contextuels sur la base des applications disponibles, des fonctions d'émission de commandes vers les cartes à puce et de réception des résultats de ces commandes. Chacun des modules d'extension 42 étant spécifique à une ou plusieurs applications de carte à puce 6, il regroupe des fonctions dédiées à ces applications. Ces fonctions comprennent par exemple la gestion du code PIN (Personal Identification Number) de la carte à puce et assurant notamment le changement, le déblocage ou la vérification du code. D'une manière générale les modules d'extension 42 assurent la conversion des commandes introduites à partir de l'interface graphique 402 du gestionnaire de fichiers 400 en commandes compréhensibles par la carte à puce correspondante. L'interface logicielle 43 fournit des fonctions de gestion de la liste des lecteurs 5 connectés au calculateur 4 et des cartes à puce associées à ces lecteurs, et met en forme les commandes émises par le gestionnaire d'applications 41 et les modules d'extension 42 et destinées aux cartes à puce 6 pour qu'elles soient acheminées par les lecteurs 5. La figure 3a illustre une procédure activée lors du lancement du gestionnaire de fichiers 400 par l'utilisateur 0. A la première étape 11 de cette procédure, le gestionnaire de fichiers 400 lance 12 l'initialisation du gestionnaire d'applications 41, cette procédure d'initialisation consistant à lister les lecteurs 5 connectés au calculateur 4, les cartes à puces 6 insérées dans les lecteurs 5, et les applications liées à chaque carte à puce 6. Pour cela 1le gestionnaire d'applications 41 sollicite 13 une première fois l'interface logicielle 43 afin que cette dernière transmette 14 la demande aux lecteurs 5 obtienne au moins une information d'identification, par exemple le nom qui est associé à chaque lecteur 5. L'information recueillie par l'interface logicielle 43 est retournée 15 dans un format compatible au gestionnaire d'applications 41. Le module d'extension de fichiers 41 sollicite 16 à nouveau l'interface logicielle 43 afin d'envoyer 17 une commande aux lecteurs 5 pour identifier les cartes à puces 6 qui y sont insérées. Chaque lecteur récupère 18 les informations de la carte qui lui est associée, par exemple le nom, et le renvoie 17 sous format standard à l'interface logicielle 43 qui se charge de les retourner 19 dans un format compatible, au gestionnaire d'applications 41. Une fois les listes des lecteurs 5 et des cartes à puces 6 transmises au gestionnaire d'applications 41, ce dernier initialise 20 les modules d'extension 42 correspondant à 25 chaque application installée dans une carte à puce 6. Enfin pour lister les applications installées dans les cartes à puce 6, le programme de gestion d'application 41 fait appel aux modules d'extension 42 initialisés afin d'initier le dialogue avec les cartes à puce 6. En particulier le module d'extension 42, au travers de l'interface logicielle 43, envoie 21 une commande demandant à chaque lecteur 5 d'identifier les applications disponibles dans la carte 6 qui leur est associée. Les informations fournies 23 par la carte à puce sont renvoyées 22 via l'interface logicielle 43 au module d'extension 42 qui se charge de les transmettre 24, dans un format compatible, au gestionnaire d'applications 41. Le gestionnaire d'application 41 établit 31 une correspondance entre les applications trouvées précédemment et les modules d'extension 42 correspondants, puis demande 32 à chaque module d'extension 42 les menus de fonctions spécifiques à chacun des modules d'extensions 42. Les menus de fonctions demandés sont alors fournis 33 par les modules d'extension 42 au gestionnaire d'application 41. Le gestionnaire d'applications 41 transmet 25 les listes des cartes à puce 6, les applications installées sur les cartes à puce 6 et les menus de fonction correspondants au gestionnaire de fichiers 400 qui affiche 34 tout ou partie de ces informations dans son interface graphique 402. La figure 4 montre un exemple d'affichage effectuée par l'interface graphique du gestionnaire de fichiers 400. Cette figure montre dans une fenêtre une liste de lecteurs 5 de cartes à puce connectés au calculateur 4, affichée dans un panneau gauche 7 de la fenêtre de l'interface graphique, sous forme d'un répertoire disque 101, la carte à puce 6 insérée dans ce lecteur 5 est présentée comme étant un sous-répertoire 102 du répertoire disque correspondant au lecteur 5 de la carte à puce 6, et des informations relatives à la carte sélectionnée dans le panneau gauche et à son contenu sont affichées dans un panneau droit 8. L'ensemble des éléments présentés dans le panneau gauche 7 est agencé en arborescence. Ensuite suivant les commandes lancées par l'utilisateur 0 à l'aide de l'interface graphique du gestionnaire de fichiers 400, par exemple un click de souris sur une icône associée à une carte 6, le gestionnaire d'applications 41 sollicitera le module d'extension 42 correspondant à la carte 6. La figure 3b illustre le traitement de plusieurs exemples de commandes lancées par l'utilisateur O. Si l'utilisateur 0 désigne 51 une carte 6 par un click de souris par l'intermédiaire de l'interface graphique du gestionnaire de fichiers 400, ce dernier sollicite 52 le gestionnaire d'applications 41 qui récupère les informations concernant la carte 6 désignée, par exemple le type de la carte, le numéro de série, la version, et les applications installées dans la carte 6. A cet effet, le gestionnaire d'applications 41 sollicite 53 le module d'extension 42 qui envoie 54 une commande de lecture de la carte à puce 6 au lecteur 5 via l'interface logicielle 43. Les informations retournées 56 par la carte à puce sont retransmise 55 par le lecteur 5 au module d'extension 42 via l'interface logicielle 43, puis transmises au gestionnaire d'applications 41 qui se charge de les afficher 57 par l'intermédiaire de l'interface graphique 402 du gestionnaire de fichiers 400. Si l'utilisateur 0 désigne 61 une carte ou une application installée dans une carte en activant, par exemple par une action sur le bouton gauche de la souris, l'affichage d'un menu contextuel, le gestionnaire de fichiers 400 via l'API sollicite 62 le gestionnaire d'applications 41 lequel active 63 le module d'extension 42 correspondant à la l'application désignée par l'utilisateur, afin qu'il fournisse les options du menu contextuel à afficher. Comme illustré sur la figure 5, le menu contextuel 9 indique les actions possibles liées à la carte à puce 102 ou à l'application sélectionnée. Cet événement ne nécessite pas d'envoyer de commande à la carte à puce 6. Ce menu contextuel est transmis 64 au gestionnaire de fichiers en vue d'être affiché. A partir de ce menu contextuel, l'utilisateur peut choisir 71 une action à entreprendre, par exemple le changement du code PIN de la carte à puce 6 ou de l'application sélectionnée. L'action choisie est transmise 72 par le gestionnaire de fichiers 400 au gestionnaire d'applications 41. Ce dernier fait appel 73 au module d'extension 42, qui exécute une procédure de changement de code PIN. Cette procédure consiste à envoyer 74, 75 par l'intermédiaire du gestionnaire d'applications 41 une fenêtre de saisie du nouveau code PIN au gestionnaire de fichiers 400 pour qu'il l'affiche. A la suite de la validation 76, 77 du nouveau code PIN, le gestionnaire d'applications 41 transmet 78 le code saisi au module d'extension 42 qui envoie 79, 80, 81 une commande de changement de code PIN via l'interface logicielle 43 et le lecteur 5 à la carte à puce 6. La carte 6 envoie en retour le statut de l'action, par exemple succès ou échec, au module d'extension 42 qui convertit cette donnée afin que le gestionnaire d'applications 41 puisse l'afficher dans le gestionnaire de fichiers 400, sous forme par exemple d'un message. La donnée convertie est ensuite transmise 82, 83 via le gestionnaire d'applications à l'interface graphique 402. Périodiquement le gestionnaire de fichiers 400 commande 91 le rafraîchissement des informations qu'il affiche. Cette commande est reçue par le gestionnaire d'applications 41 qui interroge 92, 93 les cartes 6 installées dans les lecteurs 5 par l'intermédiaire du module d'extension 42 et de l'interface logicielle 43. Les informations recueillies sont converties et retransmises 94, 95 via le gestionnaire d'applications à l'interface graphique. La présente invention permet ainsi à un utilisateur de dialoguer avec une carte à puce par l'intermédiaire de l'interface graphique d'un gestionnaire de fichiers installé dans un calculateur. La présente invention ne se limite pas aux cartes à puce avec contact, elle s'applique également à tous les types de cartes à puce, notamment aux cartes à puce sans contact et aux cartes à puce hybrides. La présente invention se ne limite pas non plus au système d'exploitation 15 Windows0. Elle peut également être intégrée dans tout type de système d'exploitation. REVENDICATIONS 1. Dispositif de communication entre un utilisateur (0) et au moins une application installée dans une carte à puce (6) associée à un lecteur (5) connecté à un calculateur (4), le dispositif comprenant des moyens de conversion des données échangées entre le calculateur et la carte à puce (6), caractérisé en ce qu'il comprend un module de communication (41, 42, 43) spécifique de la carte à puce et comportant les moyens de conversion pour échanger des données et des commandes avec une interface graphique (402) d'un gestionnaire de fichiers (400) installé dans le calculateur (4) . 2. Dispositif de communication selon la revendication 1, caractérisé en ce que le module de communication comprend un gestionnaire d'applications (41) assurant la conversion des données et des commandes échangées entre le gestionnaire de fichiers (400) et au moins un module d'extension (42) spécifique de l'application installée dans la carte à puce (6), le module d'extension comprenant au moins les moyens de conversion pour convertir les données échangées entre la carte à puce (6) et le gestionnaire d'applications (41). 3. Dispositif de communication selon la revendication 2, caractérisé en ce qu'il comprend plusieurs modules d'extension (42) spécifiques d'au moins une application respective installée dans une carte à puce (6). 4. Dispositif de communication selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le module de communication comprend une interface (43) de lecteur (5) de carte à puce assurant l'acheminement des données échangées au travers du lecteur de carte à puce. 5. Dispositif de communication selon la revendication 4, caractérisé en ce que l'interface (43) est conforme aux spécifications du standard de communication PC/SC. 6. Dispositif de communication selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le module de communication (41, 42, 43) comprend des moyens pour fournir au gestionnaire de fichiers (400) lors de son exécution, une liste des lecteurs (5) connectés au calculateur (4) et une liste des cartes à puce (6) associées aux lecteurs (5). 7. Dispositif de communication selon la revendication 6, caractérisé en ce que les listes des lecteurs (5) et des cartes à puce (6) sont affichées dans l'interface graphique (402) du gestionnaire de fichiers (400) en arborescence. 8. Dispositif de communication selon l'une quelconque la revendication 6 ou 7, caractérisé en ce que le module de communication (41, 42, 43) comprend des moyens pour fournir au gestionnaire de fichiers (400), à la suite de la sélection par l'utilisateur d'une application de carte à puce, un menu contextuel rassemblant une liste d'actions exécutables par l'application de carte à puce (6). 9. Procédé de communication entre un utilisateur (0) et au moins une application installée dans une carte à puce (6) par l'intermédiaire d'un calculateur (4), le procédé comprenant des étapes de recherche d'une carte à puce (6) présente dans un lecteur (5) connecté au calculateur (4) et d'affichage d'informations relatives à la carte à puce trouvées caractérisé en ce que l'affichage est effectué par une interface graphique (402) d'un gestionnaire de fichiers (400) installé dans le calculateur (4). 10. Procédé de communication selon la revendication 9, caractérisé en ce qu'il comprend des étapes de: introduction d'une commande par l'utilisateur (0) dans l'interface graphique (402), transmission de la commande par l'interface graphique à un gestionnaire d'applications (41), - transmission de la commande par le gestionnaire d'applications à un module d'extension (42) spécifique de l'application de la carte à puce (6) , - conversion de la commande dans un format adapté au lecteur et à la carte à puce, et transmission de la commande convertie à la carte à puce. 11. Procédé de communication selon la revendication 9 ou 10, caractérisé en ce qu'il comprend des étapes de: - transmission d'informations provenant de la carte à puce (6) par le lecteur (5), conversion des informations reçues dans un format adapté à l'interface graphique (402) du gestionnaire de fichiers (400), transmission des informations converties au gestionnaire de fichiers, et affichage des informations converties par l'interface graphique du gestionnaire de fichiers.