Brevet FR2819909A1 — publié le 20020726

GEM992 LAPORTE Frederic, ROSE Murielle PROCEDE POUR LA CREATION DE FICHIERS DE DONNEES, PRIVES SECURISES ET CARTE A PUCE COMPORTANT UN FICHIER PRIVE SECURISE L'invention concerne un procédé pour la création de fichiers de données, privés sécurisés. L'invention concerne également des cartes à puces destinées à communiquer avec un terminal. Elle concerne aussi les terminaux de télécommunication et notamment les téléphones mobiles équipés d'une carte à puce d'identification d'abonné, pourvue d'un programme de communication avec le téléphone mobile. Aujourd'hui une personne adulte possède des dizaines d'informations qui lui sont personnelles voire même confidentielles et dont elle peut avoir besoin à tout instant dans son quotidien. Le nombre de ces informations ne cesse d'augmenter avec l'apparition de nouveaux services ou de nouveaux produits industriels. Parmi toutes les informations personnelles, on peut citer les numéros de comptes bancaires, les numéros d'abonnement à des services, les codes secrets ou mots de passe et bien sûr les numéros de téléphones dont le volume augmente du simple fait qu'il est de plus en plus habituel de joindre un numéro de téléphone portable à un numéro du réseau de téléphonie fixe. La masse d'information confidentielle que doit gérer une personne aujourd'hui ne cesse d'augmenter. Un grand nombre de personnes ont encore recours aux agendas papiers pour noter toutes ces informations y compris, les codes secrets. On comprend bien que cette solution ne soit plus du tout adaptée pour mémoriser des informations confidentielles et encore moins secrètes. Les agendas papier peuvent rester une solution intéressante, bien entendu dans la mesure où les informations personnelles ne sont que des numéros de téléphone et où ces informations ne nécessitent pas de fréquentes modifications (mises à jours). On voit apparaître cependant depuis quelques années des dispositifs électroniques portables dénommés Personnal Digital Agenda PDA qui permettent de mémoriser un grand nombre d'informations notamment des informations personnelles. Ces dispositifs permettent à une personne de créer un fichier privé dans lequel elle va pouvoir mémoriser toutes les informations personnelles qu'elle souhaite. Un mot de passe est demandé pour activer et déchiffrer les données mémorisées. Malheureusement, ces dispositifs n'apportent pas une sécurité suffisante car leur système d'exploitation est un système d'exploitation ouvert c'est à dire accessible et dans lequel on peut par conséquent introduire des programmes espions (cheval de Troie) ou des virus, même dans le cas où les données échangées avec l'extérieur sont chiffrées. La présente invention vise à résoudre ce problème. La présente invention a donc pour objet un procédé pour créer un ou plusieurs fichiers de données, privé (s) sécurisé (s), principalement caractérisé en ce qu'il comporte les étapes suivantes : - utiliser un terminal lecteur de carte à puce muni d'un écran d'affichage et d'une interface homme machine, apte à établir une communication avec une carte à puce et à être piloté par elle et une carte comprenant un programme de communication apte à établir des sessions de communication avec ce terminal, - charger un outil d'assistance à la génération et/ou à la consultation de données de fichiers privés sur la carte à puce, et la mise en oeuvre d'une opération d'autorisation de toute consultation ou mises à jour après vérification d'une information secrète. Selon une autre caractéristique, - l'outil comporte : - la mise en oeuvre d'une opération de sécurisation permettant lors d'une étape d'initialisation dudit outil d'assistance, de saisir l'information secrète destinée à être stockée dans la carte à puce. Selon une autre caractéristique, - l'outil comporte : la fourniture d'un espace de mémorisation pour mémoriser des informations confidentielles et constituer un ensemble de fichiers privés. Selon une autre caractéristique, : l'outil d'assistance à la génération et/ou à la consultation de données de fichiers met en oeuvre les commandes suivantes qui permettent à la carte de piloter le terminal : - demande d'affichage d'un message d'information, - demande d'une saisie d'information et retour des données saisies, - demande d'affichage d'un menu et retour de l'élément retenu par l'utilisateur dans ce menu. L'invention a également pour objet, une carte à puce comprenant une unité de traitement et une ou plusieurs mémoires de programmes comprenant des programmes parmi lesquels, le système d'exploitation de la carte et au moins un programme de communication apte à établir des sessions de communication et à piloter un terminal muni d'une interface homme machine, principalement caractérisée en ce qu'elle comprend un outil d'assistance à la génération et/ou à la consultation de données de fichiers, et autorisant toute consultation ou mises à jour de ces données de fichier après vérification d'une information secrète. Selon une autre caractéristique, - l'outil comporte une opération de sécurisation permettant lors d'une étape d'initialisation dudit outil d'assistance de saisir l'information secrète destinée à être stockée dans la carte. Selon une autre caractéristique : - l'outil fournit un espace de mémorisation pour mémoriser des informations confidentielles et constituer un ensemble de fichiers privés. D'autres particularités et avantages de l'invention apparaîtront clairement à la lecture de la description suivante qui est donnée à titre d'exemple non limitatif et en regard des figures sur lesquelles : la figure 1, illustre les étapes mises en oeuvre par l'outil d'assistance à la génération et/ou à la consultation de données de fichiers privés sur une carte à puce, La figure 2, illustre les étapes mises en oeuvre par l'outil d'assistance à la génération et/ou à la consultation de données de fichiers privés sur une carte à puce, La figure 3, illustre un premier exemple de sous-menu, La figure 4, illustre un deuxième exemple de sous-menu, La figure 5, illustre un troisième exemple de sous-menu, La figure 6, illustre un quatrième exemple de sous-menu, La figure 7, illustre un schéma fonctionnel d'une carte à puce, La figure 8, illustre un terminal muni d'une carte à puce. Les cartes à puce applicatives développées actuellement sont similaires à un ordinateur dans la mesure où elles possèdent un système d'exploitation et un ou plusieurs programmes d'application que l'on peut charger ou télécharger. Ces cartes à puces ont pour se faire des moyens pour communiquer avec un terminal de communication. Le système d'exploitation est protégé par le fait même qu'il est mémorisé en mémoire morte (mémoire ROM). Le système d'exploi tation n'est de ce fait pas modifiable à l'intérieur de la carte. Les cartes à puces qui sont destinées à communiquer avec un terminal, possèdent un programme de communication avec le terminal. Il s'agit d'un programme d'application, au même titre qu'un programme d'application bancaire ou téléphonie. Les programmes d'application sont en général mémorisés en mémoire électriquement programmable. Ces programmes peuvent ainsi être mis à jour et certains téléchargés au moyen du terminal. Dans la présente invention on s'intéresse à une carte à puce pourvue d'un programme de communication avec un terminal. On va décrire un exemple avec un terminal de télécommunication tel qu'un téléphone mobile dans lequel on le rappelle, la carte à puce réside. Bien entendu l'invention s'applique également à des terminaux avec lesquels la carte à puce doit être insérée par un utilisateur du terminal par exemple les terminaux bancaires. On choisit donc pour la suite, à titre d'exemple, les cartes SIM qui sont des cartes d'identification d'abonnés. Ces cartes comportent en mémoire, un programme de communication connu sous l'acronyme STK (de SIM TOOL KIT) et qui correspond au protocole de communication avec des terminaux de téléphonie mobile du standard GSM 11-14 version 98. Ce programme de communication permet des communications entre la carte et le terminal et entre la carte et l'utilisateur du terminal à travers l'interface homme-machine du terminal. L'utilisateur a, à sa disposition un menu qui se déroule à l'écran et le clavier du terminal pour dialoguer avec la carte à travers le terminal. L'interface homme machine peut comporter un écran d'affichage ou une imprimante. Le procédé selon l'invention propose un outil d'assistance à la génération et/ou à la consultation de données de fichiers privés chargés dans la carte à puce. Selon l'invention cet outil se présente sous forme d'une fonction rajoutée au programme de communication avec un terminal (de télécommunication ou autre) résidant dans la carte. Il s'agit d'un programme d'assistance à la génération et à la consultation de données de fichiers privés pour le titulaire de la carte. Cet outil comprend la mise en oeuvre de commandes utilisées par la carte pour piloter le terminal. Le pilotage s'effectue notamment par l'exécution d'une application résidant dans la carte. Parmi les commandes utilisées on a : la demande d'affichage d'un message d'information ; la demande de saisie d'informations et retour des données saisies ; la demande d'affichage d'un menu et retour du numéro de l'élément retenu par l'utilisateur dans ce menu. Les commandes d'affichage peuvent être des commandes d'impression ou équivalentes à destination de l'utilisateur. La carte possède ainsi une fonction de coffre fort électronique sécurisé du fait de la mise en place d'une opération d'autorisation de consultation par mot de passe et de la sécurité intrinsèque de la carte (hardware TPR résistant aux attaques d'intrusion). L'information secrète peut être un mot de passe, une empreinte,...). Les données secrètes peuvent être stockées chiffrées ou cryptées, en particulier sur la base du mot de passe. Avant l'affichage les données sont déchiffrées. Ainsi, l'outil d'assistance à la génération et/ou à la consultation de données de fichiers privés mémorisés sur une carte à puce, comporte une sécurité du fait même d'être dans une carte à puce. En effet, le système d'exploitation d'une carte à puce est en mémoire ROM ( mémoire non volatile) et c'est le système d'exploitation de la carte qui lance l'exécution des programmes d'application et donc du programme outil. Ce programme outil peut être également mémorisé en mémoire non volatile de la carte. Comme on vient de le voir et comme cela sera détaillé dans la suite, l'outil comporte une deuxième sécurité pour les fichiers privés puisqu'il permet à l'utilisateur titulaire de la carte de choisir une information secrète qui comporte un mot de passe et éventuellement un nom d'utilisateur pour protéger lesdits fichiers. L'outil peut comporter en outre une sécurité supplémentaire du fait que pour une carte destinée à communiquer avec un terminal de télécommunication, toute session du terminal ne peut être ouverte qu'après présentation d'un code secret (code PIN : Personal Identifier Number) et validation par la carte de ce code secret. Les figures 1 et 2 illustrent les fonctions apportées par l'outil d'assistance à la génération et/ou à la consultation de données de fichiers privés mémorisés sur la carte. L'outil met tout d'abord en oeuvre une opération de sécurisation B] I) figure 1 et B] II) figure 2. Lors d'une première utilisation de la carte, cette étape comporte une initialisation B] I) figure 1 ; Puis, lors des utilisations ultérieures cette étape consiste à vérifier une information secrète qu'a saisi l'utilisateur et qui a été mémorisée dans la carte pendant l'initialisation B] II) figure 2. Ainsi, après une première session validée par le terminal de communication en liaison avec la carte à puce A] figure 1, l'outil permet à l'utilisateur d'initialiser sa carte à puce- phase Initialisation . L'étape peut être optionnelle sur certains terminaux ou désactivée. On rappelle qu'une session est validée sur présentation du code secret par l'utilisateur et vérification par la carte de la conformité du code tapé, sur le clavier du terminal avec le code mémorisé. L'outil dispose alors selon l'invention, de commandes utilisées par la carte à destination du terminal notamment pour l'affichage sur l'écran du terminal d'une requête pour la saisie de l'information secrète IS comprenant la saisie du mot de passe et éventuellement un nom d'utilisateur dans la fenêtre affichant le champ d'information. Ces informations sont choisies par l'utilisateur et enregistrées sur la carte. L'outil pilote ensuite l'affichage sur l'écran de champs d'informations libres pour permettre à l'utilisateur de taper un ou plusieurs menus qui sont enregistrés sur la carte (étape C]). On a illustré sur les figures 1 et 2 plusieurs champs pour la saisie de sous-menus. L'outil permet en outre, avant toute saisie d'un éventuel nom d'utilisateur et du mot de passe, de commander l'affichage d'un champ d'information IDT pour la saisie de l'identification du titulaire. Le détail des informations pouvant être saisies dans ce champ est illustré sur la figure 6. Il s'agit de l'identité du titulaire. Cette information n'est pas sécurisée par l'information secrète constituée dans l'exemple par le mot de passe et le nom du titulaire. Dans le cas où le terminal est un téléphone portable muni d'une carte SIM, cette information va permettre en cas de perte du téléphone portable et bien sûr si ce dernier est actif (code PIN entré) de retrouver son propriétaire en lisant les informations contenues dans ce champ d'information. Le cas échéant, l'identité du titulaire pourrait être accessible dès l'allumage du mobile sans avoir à satisfaire un contrôle de code PIN. L'outil permet ensuite à n'importe quel moment, à l'utilisateur, de consulter ses fichiers privés dans les différents menus et sous-menus pour rechercher une information mémorisée dans la carte (B] II) figure 2). Pour une consultation ou mise à jour des données de fichiers les étapes suivantes sont mises en oeuvre : Après validation du code secret (PIN CODE) (étape A] figure 2), l'outil pilote l'affichage de l'écran du terminal pour requérir l'entrée de l'information secrète IS. L'utilisateur doit alors taper sur le clavier du terminal le nom qu'il a choisi et le mot de passe. L'outil procède alors à une vérification de l'information secrète IS par rapport à l'information enregistrée sur la carte (lors de l'étape B] II) figure 1). Dans le cas où cette information IS n'est pas valables l'accès aux différents menus est refusé. Seul le champ IDT, identification du titulaire est accessible. Dans le cas où l'information IS est valable (concordance entre les informations tapées et enregistrées sur la carte) l'accès aux différents menus et, par conséquent aux différentes informations enregistrées, est accepté. Les figures 3,4, 5 et 6 illustrent des exemples d'informations pouvant être enregistrées sur la carte et pouvant être lues sur l'écran d'affichage par déroulement du menu correspondant. La figure 3, illustre un exemple de menu 1 dans lequel l'utilisateur a mémorisé des informations concernant du matériel informatiques. Le champ Nom du sous-menu est login/mot de passe. Des sous-répertoires sont réservés aux différents matériels informatiques avec dans chacun des sousrépertoires les informations qui le concerne. Ici le sous répertoire, PC est illustré ainsi que les informations enregistrées concernant ledit PC. La figure 4, illustre un exemple de menu 2 dans lequel, l'utilisateur a mémorisé des informations concernant les cartes bancaires du titulaire. La figure 5, illustre un exemple de menu 3 dans lequel, l'utilisateur a mémorisé des informations concernant les pièces officielles d'identité du titulaire (passeport, carte d'identité, permis de conduire etc..). Comme on peut le comprendre, la carte à puce possède ainsi une fonction d'agenda électronique sécurisé. La figure 7, illustre le schéma fonctionnel d'une carte à puce CP. La carte comporte une unité centrale U reliée à une mémoire de programmes non volatile Ml et au moins une mémoire de programme électriquement programmable M2. La mémoire Ml comporte le système d'exploitation de la carte CP et éventuellement le programme de communication avec le terminal de télécommunication. Elle comporte également le programme réalisant la fonction supplémentaire qui vient d'être décrite. La carte à puce peut assurer cette fonction en association avec le terminal de télécommunication qui devient alors une interface homme-machine pour l'utilisateur. La figure 8, illustre le schéma d'un terminal T. Ce terminal possède les fonctions de lecteur de carte à puce qui lui permettent de communiquer avec la carte à puce CP. Il possède un écran E et un clavier C. Selon un exemple de réalisations le terminal T est un téléphone mobile, la carte est une carte SIM et le programme de communication est le protocole STK (SIM TOOL KIT). Selon un autre exemple le terminal peut être un terminal dans lequel la carte à puce ne réside pas mais doit être insérée par un utilisateur du terminal. Il peut s'agir par exemple d'un terminal bancaire. On va maintenant pouvoir se reporter aux tableaux annexés à la description, donnés ici à titre d'exemple pour illustrer les différents échanges lors de la mise en oeuvre de l'outil. Etape Carte Téléphone Utilisateur 0 L'utilisateur met en service le téléphone (Bouton ON) 1 Etat ON Affiche message "Saisie PIN" 2 Saisie du PIN Code 3 Demande vérification du code PIN 4 Vérification du code PIN et Affichage de Nouvelle saisie du code réponse"Code Erroné"si code PIN saisi faux 5 Demande de la liste des applications si code PIN saisi correct 6 Présentation de la liste des applications STK 7. Fusion des menus du téléphone et de la carte. # Affichage du menu le, niveau 8 Sélection d'une application (fichier privé dans notre exemple). 9 Transmission du choix de l'Utilisateur 10 Lancement de l'application. 2 options : . 1 er lancement : étapes 11 à 16 # Lancements suivants : étapes 21 à 25 1er lancement 11 Demande de saisie du mot de Affichage de la demande de passe saisie Saisie d'un mot de passe Retour de la saisie Stockage du mot de passe dans un fichier dédié. 12 Demande d'affichage du menu de le'niveau avec option"sortie" Affichage du menu Sélection d'un élément du menu Retour du numéro de l'élément sélectionné 13 Selon sélection : # Cas"sortie" : FIN # Autres cas : préparation du sous menu associé. Etape Carte Téléphone Utilisateur 14 Demande d'affichage du sous menu. Affichage menu Sélection d'un élément du menu Retour du numéro de l'élément sélectionné 15 Selon sélection : 'Cas"Retour" : A)) er en 12 . Autres cas demande de saisie des données Demande de saisie Saisie des données personnelles sur le clavier du terminal Retour des données saisies. 16 Mise à jour des fichiers de données. Aller en 14. Cas autres lancements Etape Carte Téléphone Utilisateur 21 Demande de saisie du mot de passe pour vérification Affichage de la demande de saisie Saisie du mot de passe Retour des données saisies Vérification de l'information secrète (mot de passe saisi et du mot de passe stocké dans le fichier dédié) Si non OK : Demande Affichage du message"code Nouvelle saisie du code d'affichage de code erroné erroné" 22 Si OKDemande d'affichage du Affichage du menu 1"'niveau menu 1 er niveau Sélection d'un élément du menu Retour du numéro de l'élément sélectionné 23 Selon sélection : . Cas"sortie" : FIN * Autres cas demande d'affichage de sous menu 24 Affichage du menu Sélection d'un élément du menu Retour du numéro de l'élément sélectionné 25 Selon sélection : Cas"retour" : Aller en 22 Autre cas : demande d'affichage des données lues dans les fichiers de données secrètes. Affichage du message Lecture des données Validation Retour de la validation Demande d'affichage d'un menu (retour, modification) Affichage menu Sélection d'un élément du menu Retour du numéro de l'élément sélectionné Selon choix : * Retour : aller à l'étape 25 'Modification : demande de saisie des données. Demande de saisie Saisie des données pour mise à jour sur le clavier du terminal Retour des données saisies Mise à jour des fichiers de données. Aller à l'étape 24. REVENDICATIONS 1. Procédé pour créer un ou plusieurs fichiers de données, privé (s) sécurisé (s), caractérisé en ce qu'il comporte les étapes suivantes : - utiliser un terminal lecteur de carte à puce muni d'un écran d'affichage et d'une interface homme machine, apte à établir une communication avec une carte à puce et à être piloté par elle et une carte comprenant un programme de communication apte à établir des sessions de communication avec ce terminal, - charger un outil d'assistance à la génération et/ou à la consultation de données de fichiers privés sur la carte à puce, et la mise en oeuvre d'une opération d'autorisation de toute consultation ou mises à jour après vérification d'une information secrète. 2. Procédé pour créer un ou plusieurs fichiers de données, privés sécurisés selon la revendication 1, caractérisé en ce que : - cet outil comporte : - la mise en oeuvre d'une opération de sécurisation permettant lors d'une étape d'initialisation dudit outil d'assistance, de saisir une information secrète destinée à être stockée dans la carte à puce. 3. Procédé pour créer un ou plusieurs fichiers de données, privés sécurisés selon la revendication 1 ou 2, caractérisé en ce que : - l'outil comporte : - la fourniture d'un espace de mémorisation pour mémoriser des informations confidentielles et constituer un ensemble de fichiers privés. 4. Procédé pour créer un ou plusieurs fichiers de données, privés sécurisés selon l'une quelconque des revendications précédentes, caractérisé en ce que : l'outil d'assistance à la génération et/ou à la consultation de données de fichiers met en oeuvre les commandes suivantes qui permettent à la carte de piloter le terminal : - demande d'affichage d'un message d'information, - demande d'une saisie d'information et retour des données saisies, demande d'affichage d'un menu et retour de l'élément retenu par l'utilisateur dans ce menu. 5. Procédé pour créer un ou plusieurs fichiers de données, privés, sécurisés selon la revendication 2, caractérisé en ce que l'opération d'initialisation comprend la commande d'affichage de champs réservés à la création de menus et sous-menus après saisie de l'information secrète par l'utilisateur. 6. Procédé pour créer un ou plusieurs fichiers de données, privés, sécurisés selon la revendication 2, caractérisé en ce que la requête pour l'information secrète choisie par l'utilisateur comporte au moins un champ pour recevoir un mot de passe. 7. Procédé pour créer un ou plusieurs fichiers de données, privés, sécurisés, selon l'une quelconque des revendications précédentes, caractérisé en ce que la carte à puce est une carte SIM, le terminal est un téléphone portable et le programme de communication est le protocole STK (SIM TOOL KIT) 8. Carte à puce comprenant une unité de traitement et une ou plusieurs mémoires de programmes comprenant des programmes parmi lesquels, le système d'exploitation de la carte et au moins un programme de communication apte à établir des sessions de communication et à piloter un terminal muni d'une interface homme machine, caractérisée en ce qu'elle comprend un outil d'assistance à la génération et/ou à la consultation de données de fichiers, et autorisant toute consultation ou mises à jour de ces données de fichier après vérification d'une information secrète. 9. Carte à puce selon la revendication 8, caractérisée en ce que : - l'outil comporte une opération de sécurisation permettant lors d'une étape d'initialisation dudit outil d'assistance de saisir une information secrète destinée à être stockée dans la carte. 10. Carte à puce selon la revendication 8 ou 9, caractérisée en ce que : - l'outil fournit un espace de mémorisation pour mémoriser des informations confidentielles et constituer un ensemble de fichiers privés. 11. Carte à puce selon l'une quelconque des revendications 8 à 10, caractérisée en ce que l'outil d'assistance à la génération et/ou à la consultation de données de fichier met en oeuvre les commandes suivantes qui permettent à la carte de piloter le terminal : - demande d'affichage d'un message d'information, - demande d'une saisie d'information et retour des données saisies, demande d'affichage d'un menu et retour de l'élément retenu par l'utilisateur dans ce menu. 12. Carte à puce selon l'une quelconque des revendications 8 à 11, caractérisée en ce que l'opération d'initialisation comprend la commande d'affichage d'une requête de la carte au terminal pour la saisie de l'information secrète. 13. Carte à puce selon l'une quelconque des revendications 8 à 12, caractérisé en ce que l'outil met en oeuvre une opération de demande d'affichage de champs réservés à des menus ou sous-menus prédéfinis. 14. Carte à puce selon l'une quelconque des revendications 8 à 13 précédentes, caractérisée en ce que l'outil met en oeuvre une opération de demande d'affichage de champs réservés à des menus et sousmenus libres comprenant une zone pour introduire une information secrète du sous-menu donné et, une pluralité de zones pour enregistrer des données personnelles et/ou confidentielles du titulaire de la carte. 15. Carte à puce selon l'une quelconque des revendications 8 à 14, caractérisé en ce que la carte est une carte SIM. 16. Carte à puce selon la revendication 15, caractérisé en ce que le programme de communication est le protocole de communication STK (SIM TOOL KIT). 17. Terminal, caractérisé en ce qu'il comporte une carte à puce selon l'une quelconque des revendications 8 à 16. 18. Terminal selon la revendication 17 et les revendications 15 et 16, le terminal étant un téléphone mobile. 19. Terminal, caractérisé en ce qu'il est piloté par une carte à puce selon l'une quelconque des revendications 8 à 19, ladite carte à puce étant insérée dans le terminal par un utilisateur.