Procédé d'enregi strement d'un usager sur un serveur d'annuaire d'un réseau de type Internet et/ou de localisation d'un usager sur ce réseau, et carte à puce pour la mise en œuvre du procédé
L'invention concerne un procédé d'enregistrement d'un usager sur un serveur d'annuaire d'un réseau notamment de type Internet et/ou de localisation d'un usager sur un tel réseau, à l'aide de cartes à puce connectées à des terminaux munis d'un lecteur de carte à puce.
L'invention concerne également une carte à puce pour la mise en œuvre de ce procédé.
Dans le cadre de l'invention, le terme "réseau Internet" doit être compris dans son sens le plus général. Il concerne, outre le réseau Internet proprement dit, les réseaux privés d'entreprise ou similaires, du type dit "intranet", et les réseaux les prolongeant vers l'extérieur, du type dit "extranet", et de façon générale tout réseau dans lequel les échanges de données s'effectuent selon un protocole du type Internet. Dans ce qui suit un tel réseau sera appelé de façon générique "réseau Internet".
De même, le terme "terminal" doit être compris dans un sens général. Le terminal précité peut être notamment constitué par un ordinateur personnel fonctionnant sous divers systèmes d'exploitation, tels WINDOWS ou UNIX (tous deux étant des marques déposées). Il peut être aussi constitué par une station de travail, un ordinateur portable ou un terminal de carte dit dédié. Dans le cadre plus particulier de l'invention, il existe également des terminaux dédiés Internet, ne possédant qu'un minimum de ressources informatiques propres, voire aucun moyens de stockage permanent, de type disque dur.
Il apparaît tout d'abord utile de rappeler brièvement les caractéristiques principales des protocoles de communication sur les réseaux. L'architecture des réseaux de communication est décrite par diverses couches. A titre d'exemple, le standard "OSI" ("Open System
Interconnection"), défini par I' "ISO", comporte sept couches qui vont des couches dites basses (par exemple la couche dite "physique" qui concerne le support de transmission physique) aux couches dites hautes (par exemple la couche dite "d'application"), en passant par des couches intermédiaires, notamment la couche dite de "transport". Une couche donnée offre ses services à la couche qui lui est immédiatement supérieure et requiert de la couche qui lui immédiatement inférieure d'autres services, via des interfaces appropriées. Les couches communiquent à l'aide de primitives. Elles peuvent également communiquer avec des couches de même niveau. Dans certaines architectures, plusieurs couches peuvent être inexistantes.
Dans un environnement de type Internet, les couches sont au nombre de cinq, et de façon plus précise, en allant de la couche supérieure à la couche inférieure : la couche dite d'application ("http", "ftp", "e-mail", etc.), la couche dite de transport ("TCP"), la couche dite d'adressage de réseau ("IP"), la couche dite de liens de données ("PPP", "Slip", etc.) et la couche dite physique.
Dans l'art connu, un usager, que l'on appellera ci-après "internaute", utilise des terminaux Internet qui possèdent une adresse "IP" fixe, ou variable lorsque l'on a recours à un prestataire de service Internet, généralement connu sous le sigle anglo-saxon "ISP" (pour "Internet Service Provider).
Un premier inconvénient est constitué par le fait qu'une adresse "IP" n'est pas associée à un internaute, mais à un système informatique connecté au réseau Internet. Même dans le cas où le système informatique est doté d'une adresse fixe, il n'existe pas de correspondance a priori entre une adresse "IP" et une personne physique. Pour établir une telle relation l'internaute se connecte à des serveurs dits "IRC" (pour "Internet Relay Chat"). Ces serveurs associent à un identifiant de l'internaute, dit "UserlD", son adresse "IP". L'identifiant est généralement constitué par son adresse courrier e-mel, ou "e-mail" selon la terminologie anglo-saxonne, mais un pseudonyme quelconque peut également être utilisé. Ci-après, les serveurs
"IRC" seront dénommés de façon plus générale "serveurs d'annuaires", que l'on appellera simplement "SA".
Cette association n'est généralement pas authentifiée de telle sorte que le service (généralement gratuit) puisse être utilisé de la manière la plus commode possible. Cette disposition n'est cependant pas exempte d'inconvénients, en particulier pour des applications dites "sensibles".
Une des premières contraintes rencontrées est donc la localisation d'un internaute dans le réseau Internet, c'est à dire l'établissement d'une correspondance entre un identifiant fixe et une adresse "IP". Cependant la localisation d'un internaute sur le réseau Internet, c'est-à-dire l'établissement de la correspondance précitée, présuppose que celui-ci ait été au préalable enregistré dans le serveur d'annuaire "SA".
L'adresse d'un internaute dans le réseau Internet est donc constituée du couple : "Adresse SA" - "UserlD". De façon usuelle, par "abonné", on entend une entité "physique". Par extension, il peut s'agir d'une
"fonction". Cependant, ci-après, on donnera à "abonné" son sens commun, sans que cela soit limitatif en quoi que ce soit de la portée de l'invention.
De façon pratique, un internaute indique sa localisation dans le réseau Internet par un acte volontaire en fournissant au serveur (annuaire) son adresse "IP" actuelle à l'aide d'un protocole d'enregistrement que l'on appellera ci-après "PE".
Cette opération implique que le terminal possède un logiciel spécifique (ou application) délivré par le fournisseur du service, et personnalisé avec un profil d'abonné particulier, que l'on appellera "PA" ci- après. Ce profil "PA" permet d'identifier de façon plus complète un abonné
(ou internaute), en sus de son identifiant de base "UserlD".
On désigne généralement par "Profil d'Abonné" ("PA") l'ensemble des informations qui sont fournies au serveur d'annuaire "SA" lors de l'enregistrement de l'abonné (internaute), et par exemple : - l'adresse du "Serveur d'Annuaire" ("SA") ; l'identifiant de l'abonné ("UserlD") ;
les abonnés (identifiés par leurs "UserlD") avec lesquels l'utilisateur accepte d'entrer en communication ou auxquels il désire notifier sa localisation dans le réseau ; et les informations qu'il accepte de rendre publiques sur le serveur d'annuaire (par exemple : nom, nationalité, contacts recherchés, etc.). ;
Pour joindre un correspondant à travers le réseau Internet, ce correspondant étant dûment enregistré, il est nécessaire de connaître son adresse "IP". Cette information est obtenue à l'aide d'un serveur d'annuaire ("SA") et d'un protocole de localisation ("PL").
On doit noter que le profil d'abonné "PA" est, par nature, spécifique à l'abonné, mais peut dépendre aussi des caractéristiques du serveur d'annuaire, notamment du type et de la nature des informations qui doivent lui être fournies ou qu'il peut accepter. On doit noter enfin que le protocole "PL" est, comme le protocole
"PE", de type dit propriétaire, puisqu'il adresse un serveur d'annuaire a priori non standardisé ou répondant à des normes universellement reconnues.
Ces deux caractéristiques constituent des inconvénients supplémentaires. En résumé de ce qui vient d'être rappelé, pour qu'un premier internaute puisse localiser d'autres internautes et puisse être localisé par ceux-ci, il est nécessaire que le terminal qu'il utilise stocke des logiciels spécifiques permettant de mettre en œuvre les protocoles "PE" et "PL". Il peut également être nécessaire qu'il stocke des données afférentes à son profil d'abonné "PA". Cette remarque s'applique de façon similaire aux terminaux des autres internautes.
En d'autres termes, le terminal utilisé par un abonné quelconque est également spécifique, en ce sens que, si cet abonné désire changer de terminal, il doit retrouver sur le nouveau terminal utilisé, au moins le ou les logiciels associés au protocole "PL", en admettant qu'il ait procédé à une phase préliminaire d'enregistrement sur le premier terminal, en faisant appel
au protocole "PE" et en fournissant son profil "PA" au serveur d'annuaire "SA". En effet, la présence du protocole "PL" sera nécessaire pour adresser le serveur d'annuaire et avoir accès aux données enregistrées dans celui-ci, notamment les adresses "IP" des correspondants recherchés et leurs profils "SA".
Il serait donc intéressant d'utiliser des terminaux banalisés pour effectuer les opérations d'enregistrement et, surtout, de localisation d'internautes sur le réseau Internet, ce qui permettrait d'accéder de façon commode au concept appelé "nomadisme". Les logiciels associés aux protocoles précités, "PE" et "PL" ne nécessitent pas habituellement de disposer d'une grande quantité de mémoire. Il en est de même des données de profil "PA". On pourrait donc penser les enregistrer dans les circuits de mémoire d'une carte à puce, ce que permet la technologie actuelle. Cependant, on se heurte à une double difficulté technique, comme il va l'être montré ci-après, ce qui interdit toute communication directe entre le réseau Internet et une carte à puce.
On va tout d'abord rappeler brièvement l'architecture générale d'un système d'application à base de carte à puce, relié à un réseau Internet, par référence aux figures 1 A et 1 B.
Un système d'application à base de carte à puce comporte généralement les éléments principaux suivants : une carte à puce ; un système hôte constituant le terminal précité ; - un réseau de communication, à savoir le réseau Internet dans l'application préférée ; et un serveur d'application connecté au réseau Internet.
La figure 1A illustre schématiquement un exemple d'architecture de ce type. Le terminal 1 , par exemple un ordinateur individuel, comporte un lecteur 3 de carte à puce 2. Ce lecteur 3 peut être ou non physiquement intégré dans le terminal 1. La carte à puce 2 comporte un circuit intégré 20
dont des connexions d'entrées-sorties affleurent en surface de son support pour autoriser une alimentation en énergie électrique et des communications avec le terminal 1. Ce dernier comprend des circuits d'accès 11 au réseau Internet RI. Ces circuits peuvent être constitués par un modem pour se connecter à une ligne téléphonique commutée ou à une voie de communication à plus haut débit : réseau numérique à intégration de services ("RNIS"), câble ou liaisons par satellite, etc. Les circuits 11 permettent de se connecter au réseau Internet RI, directement ou via un prestataire de services Internet ("Internet Service Provider" ou "ISP", selon la terminologie anglo-saxonne). On peut également avoir recours à un système intermédiaire tel qu'un "proxy" ou un système d'isolation dit "firewall" ("pare- feu" ou encore appelé "garde barrière").
Le terminal 1 comprend naturellement tous les circuits et organes nécessaires à son bon fonctionnement, et qui n'ont pas été représentés dans un but de simplification du dessin : unité centrale, mémoires vive et fixe, mémoire de masse à disque magnétique, lecteur de disquette et/ou de CédéRom, etc.
Habituellement, le terminal 1 est aussi relié à des périphériques classiques, intégrés ou non, tels un écran de visualisation 5, un clavier 6a et une souris 6b, etc.
Le terminal 1 peut être mis en communication avec des serveurs ou tous systèmes informatiques connectés au réseau RI, dont un seul, 4, est illustré sur la figure 1 A. Les circuits d'accès 11 mettent le terminal 1 en communication avec les serveurs 4 grâce à un logiciel particulier 10, appelé navigateur "WEB", ou "browser" selon la terminologie anglo-saxonne. Celui- ci permet d'accéder à diverses applications ou fichiers de données répartis sur l'ensemble du réseau RI, généralement selon un mode "client-serveur".
Habituellement, les communications sur les réseaux s'effectuent conformément à des protocoles répondant à des standards comprenant plusieurs couches logicielles superposées. Dans le cas d'un réseau RI de type Internet, les communications s'effectuent selon des protocoles
spécifiques à ce type de communications, qui seront détaillés ci-après, mais qui comprennent également plusieurs couches logicielles. Le protocole de communication est choisi en fonction de l'application plus particulièrement visée : interrogation de pages "WEB", transferts de fichiers, courrier électronique (e-mel, ou "e-mail" selon la terminologie anglo-saxonne), forums ou "news", etc.
L'architecture logique du système comprenant un terminal, un lecteur de carte à puce et une carte à puce, est représentée schématiquement par la figure 1 C. Elle est décrite par la norme ISO 7816, qui elle-même comportent plusieurs sous-ensembles :
ISO 7816-1 et 7816-2, en ce qui concerne les dimensions et le marquage des cartes ;
ISO 7816-3, en ce qui concerne le transfert de données entre le terminal et la carte à puce ; et - ISO 7816-4, en ce qui concerne la structure du jeu d'ordres et le format des commandes.
Sur la figure 1 B, du côté terminal 1 , on n'a représenté que les couches répondant à la norme ISO 7816-3, référencées 101 , et un gestionnaire d'ordres "APDU" (norme ISO 7816-4), référencé 102. Du côté carte à puce 2, les couches répondant à la norme ISO 7816-3 sont référencées 200 et le gestionnaire d'ordres "ADPU" (norme ISO 7816-4) est référencé 201. Les applications sont référencées A-\ , ..., Aj, ..., An ; n étant le nombre maximum d'applications présentes sur la carte à puce 2.
Une application, Aj, présente dans la carte à puce 2, dialogue avec le terminal 1 au moyen d'un jeu d'ordres. Ce jeu présente typiquement des ordres d'écriture et des ordres de lecture. Le format des ordres est connu sous l'abréviation anglo-saxonne de "APDU" (pour "Application Protocol Data Unit"). Il est défini par la norme ISO 7816-4 précitée. Une "APDU" de commande est notée "APDU.command" et une "APDU" de réponse est notée "APDU.response". Les "APDU" sont échangées entre le lecteur de
carte et la carte à puce au moyen d'un protocole spécifié par la norme ISO 7816-3 précitée (par exemple en mode caractère : T=0 ; ou en mode bloc : T=1 ).
Lorsque la carte à puce 2 inclut plusieurs applications distinctes, comme illustré sur la figure 1 B, on parle de carte multi-applicative.
Cependant, le terminal 1 ne dialogue qu'avec une seule application à la fois.
La sélection d'une application particulière Aj est obtenue à l'aide d'une "APDU" du type sélection ("SELECT"). Une fois ce choix effectué, les
"APDU" qui le suivent sont acheminés vers cette application. Une "APDU SELECT" nouvelle a pour effet d'abandonner l'application en cours et d'en choisir une autre. Le sous-ensemble logiciel gestionnaire des "APDU" 201 permet de choisir une application particulière A\ dans la carte à puce 2, de mémoriser l'application ainsi choisie, et de transmettre et/ou recevoir des "APDU" vers et depuis cette application. En résumé de ce qui vient d'être décrit, la sélection d'une application
Aj et le dialogue avec celle-ci s'effectuent par échanges d'ordres "APDU". On suppose que les applications Aj sont des applications conventionnelles, que l'on appellera ci-après "GCA" (pour "Generic Card Application" ou application de carte générique). Ces rappels étant effectués, il est à noter que la carte à puce 2 ne peut communiquer directement avec les navigateurs standards du commerce 10, sauf à modifier le code de ces derniers.
En outre, et surtout, les cartes à puce actuelles, qui par ailleurs sont conformes aux standards et normes rappelés ci-dessus, ont une configuration matérielle et logicielle qui ne permet pas non plus de communiquer directement avec le réseau Internet. En particulier, elles ne peuvent recevoir et transmettre des paquets de données, selon l'un ou l'autre des protocoles utilisés sur ce type de réseau. Il est donc nécessaire de prévoir une pièce de logiciel additionnelle, implantée dans le terminal 1 , généralement sous la forme de ce qui est appelé un "plug-in", selon la
terminologie anglo-saxonne. Cette pièce de logiciel, qui porte la référence 12 sur la figure 1A, effectue I interface entre le navigateur 10 et la carte 2, plus précisément les circuits élecrroniques 20 de cette carte 2.
L'invention vise à pallier les inconvénients des procédés et dispositifs de l'art connu, et dont certains viennent d'être rappelés, tout en répondant aux besoins qui se font sentir.
Selon un mode de réalisation avantageux de l'invention, les applications nécessaires à la mise en œuvre des protocoles d'enregistrement ("PE") et de localisation ("PL"), ainsi que les données caractérisant le profil d'abonné ("PA") sont des fichiers stockés, en tout ou partie, dans des mémoires d'une carte à puce, les fichiers de type exécutable étant des applications standards du type "GCA" précité.
Selon l'invention, la carte à puce se comporte comme un serveur/client de type "WEB" pour le terminal qui lui est associé. Pour ce faire, on prévoit une couche de logiciel de communication spécifique dans la carte à puce et son pendant dans le terminal. Le terme "spécifique" doit être entendu comme spécifique au procédé de l'invention. En effet, ces couches de communications, dites spécifiques, sont banalisées quelle que soit l'application considérée. En particulier, elles sont indépendantes des applications nécessaires à la mise en œuvre des protocoles "PE" et "PL". Elles n'interviennent que dans le processus d'échanges de données bidirectionnels entre la carte à puce et le terminal, d'une part, et la carte à puce et le réseau, d'autre part.
Les couches logicielles de communication spécifiques comprennent notamment des composants logiciels, dits "agents intelligents", permettant en particulier des conversions de protocoles. Les agents intelligents seront appelés ci-après plus simplement "agents". Il existe des agents appareillés dans les couches de communication spécifiques respectives associées au terminal et à la carte à puce. Selon le procédé de l'invention, il s'établit des sessions entre agents appareillés.
Avantageusement, le procédé de l'invention rend possible l'activation d'applications de type conventionnel, c'est-à-dire du type "CGA" précité, localisées dans une carte à puce, sans devoir les modifier en quoi que ce soit. Pour ce faire, on prévoit un ou plusieurs agents intelligents particuliers dits traducteurs de script, qui reçoivent des requêtes d'un navigateur et les traduisent en ordres "APDU" compréhensibles par l'application de type "CGA". De ce fait, on implante dans la carte à puce une fonction similaire à celle connue par ailleurs sous la dénomination "CGI" dans les serveurs "WEB" classiques. Cette fonction permet de mettre en œuvre une application dans la carte à puce par un protocole Internet de type "HTTP".
Ces diverses dispositions permettent à la carte à puce, et plus précisément aux applications présentent dans celle-ci, de communiquer directement avec un serveur éloigné connecté au réseau Internet par la mise en œuvre de protocoles de type Internet. La fonctionnalité "CGI" offerte par la carte à puce permet pour sa part l'accession aux applications associées aux protocoles "PE" et "PL" et leur exécution, sans nécessiter la présence d'applications de type propriétaire dans le terminal. Seul un navigateur, avantageusement de type standard du commerce, est nécessaire.
Dans une variante préférée de réalisation de l'invention, on stocke dans la carte à puce plusieurs jeux composés d'applications associées à des protocoles "PE" et "PL" et/ou de profils d'abonnés "PA" distincts.
Cette disposition avantageuse permet, d'une part, d'enregistrer plusieurs profils d'abonné "PA" distincts ou plusieurs occurrences distinctes d'un même profil d'abonné "PA" sur un même serveur d'annuaire "SA", et de localiser ces entités en les associant à des adresses "IP" uniques. Elle permet, d'autre part, de pouvoir adresser plusieurs serveurs d'annuaire "SA", avec un même et/ou plusieurs profils d'abonnés "PA" distincts. La carte à puce présente alors une fonctionnalité de base de données multi-annuaire.
L'invention a donc pour objet principal un procédé de mise en relation d'un premier usager avec au moins un serveur d'annuaire, en vue de son enregistrement et/ou de la localisation d'au moins un deuxième usager sur un réseau notamment de type Internet, ladite mise en relation s'effectuant par l'intermédiaire d'un terminal muni d'un lecteur de carte à puce et d'au moins une pièce de logiciel dite d'enregistrement et/ou de localisation, ledit terminal étant connecté à chacun desdits serveurs d'annuaire via ledit réseau de type Internet et communiquant avec ladite carte à puce selon un premier protocole déterminé, caractérisé en ce qu'au moins l'une desdites pièces de logiciel est stockée dans ladite carte à puce ; en ce que cette carte à puce comprenant une première pièce de logiciel, formant une couche protocolaire de communication spécifique, et ledit terminal comprenant une seconde pièce de logiciel, formant une couche protocolaire de communication spécifique, lesdites première et seconde pièces de logiciel comprennent en outre au moins une paire de premières entités logicielles appariées, chacune desdites entités coopérant l'une avec l'autre de manière à permettre l'établissement d'une session d'échanges de données bidirectionnels entre au moins ledit terminal et ladite carte à puce, et/ou ledit réseau de type Internet, de manière à ce que ladite carte à puce offre la fonctionnalité d'un client/serveur "WEB" ; en ce que ladite carte à puce comprend au moins une deuxième entité logicielle coopérant avec ladite seconde pièce de logiciel spécifique pour que ladite carte à puce offre une fonctionnalité d'interface passerelle dite "CGI" : et en ce qu'il comprend au moins les étapes suivantes : 1/ ouverture d'une première séquence d'échanges de données entre au moins ledit terminal et ladite carte à puce, pour la transmission d'une requête pour que ledit navigateur de type "WEB" récupère des données permettant de sélectionner et d'activer une desdites pièces de logiciel propriétaire, en vue de la sélection d'un desdits serveurs d'annuaire ;
2/ ouverture d'une deuxième séquence d'échanges de données entre ladite carte à puce et ledit terminal pour lui transmettre lesdites données ; 3/ ouverture d'une troisième séquence d'échanges de données entre ledit terminal et ladite carte à puce pour transmettre des données de sélection et des paramètres optionnels, lesdites données et lesdits paramètres optionnels comportant une référence à une desdites pièces de logiciel d'enregistrement et/ou de localisation ; 4/ mise en œuvre de ladite fonctionnalité "CGI" et exécution de ladite pièce de logiciel d'enregistrement et/ou de localisation ; et
5/ en résultat de ladite exécution, ouverture d'une quatrième séquence d'échanges de données entre ladite carte à puce et un desdits serveurs d'annuaire, sélectionné par lesdites données de sélection, de manière à transmettre une requête pour la réalisation d'une opération déterminée d'enregistrement ou de localisation.
L'invention a également pour objet une carte à puce pour la mise en œuvre de ce procédé.
Un mode préféré, mais non limitatif, de réalisation de l'invention va maintenant être décrit de façon plus détaillée en se référant aux dessins annexés, parmi lesquels : les figures 1A et 1 B illustrent les architectures matérielle et logique, respectivement, d'un exemple de système d'application à base de carte à puce connecté à un réseau Internet selon l'art connu
- la figure 2 illustre schématiquement un exemple de système d'application à base de carte à puce selon l'invention, cette dernière agissant en tant que client/serveur "WEB", selon un aspect de l'invention ; la figure 3 est un diagramme d'états d'une session entre des entités logicielles dites agents intelligents, selon un aspect de l'invention ;
la figure 4 ilii stre de façon simplifiée l'architecture logique d'un système selon l'invention dans lequel la carte à puce comprend des agents intelligents ; la figure 5 illustre de façon simplifiée l'architecture logique d'un système selon un autre aspect de l'invention selon lequel la carte à puce comprend des agents intelligents traducteurs de scripts, de manière à implanter une fonction dite "CGI" ; la figure 6A illustre schématiquement une première étape de la phase d'enregistrement d'un internaute sur un serveur d'annuaire ; - les figures 6B et 6C illustrent des exemples de formulaires "HTLM" utilisables pour cette phase d'enregistrement ;
- la figure 6D illustre schématiquement les principales étapes de la phase d'enregistrement d'un internaute sur un serveur d'annuaire ; la figure 6E illustre schématiquement les principales étapes de la phase d'enregistrement d'un internaute plusieurs serveurs d'annuaire ;
- la figure 7 illustre schématiquement les principales étapes de la phase de localisation d'un internaute sur le réseau Internet par interrogation d'un serveur d'annuaire ; et - la figure 8 illustre schématiquement une architecture à carte à puce selon l'invention présentant une fonctionnalité de base de données multi-annuaire portable.
La figure 2 illustre schématiquement un exemple de système d'application à base de carte à puce selon un premier aspect de l'invention, permettant à cette dernière d'agir en tant que client/serveur "WEB.
A l'exception de couches logicielles de protocole de communication spécifiques, référencées 13 et 23a, respectivement implantées dans le terminal 1 et la carte à puce 2a, les autres éléments, matériels ou logiciels, sont communs à l'art connu, notamment à ce qui a été décrit en regard des figures 1 A et 1 B, et il n'y a pas lieu de les re-décrire de façon détaillée.
Le terminal 1 comprend des circuits 1 1 d'accès au réseau RI, constitués par exemple d'un modem. Ces circuits regroupent les couches logicielles inférieures, Ci et C2, qui correspondent aux couches "physique" et de "lien de données". On a également représenté les couches supérieures, C3 et C4, qui correspondent aux couches "d'adressage de réseau" ("IP", dans le cas d'Internet) et de "transport" ("TCP"). La couche supérieure d'application ("http", "ftp", "e-mail", etc.) n'a pas été représentée.
L'interface entre les couches inférieures, Ci et C2, et les couches supérieures, C3 et C4, est constituée par une couche logicielle généralement appelée "driver couches basses". Les couches supérieures, C3 et C4, s'appuient sur cette interface et sont mises en œuvre par l'intermédiaire de bibliothèques de fonctions spécifiques ou bibliothèques réseau 14, avec lesquelles elles correspondent. Dans le cas du réseau Internet, "TCP/IP" est mis en œuvre au moyen de bibliothèques dites de "sockets".
Cette organisation permet à un navigateur 10 de poser des requêtes vers un serveur 4, pour la consultation de pages "WEB" (protocole "HTTP"), pour le transfert de fichiers (protocole "FTP") ou l'envoi de courrier électronique (protocole "e-mail"), ce de façon tout à fait classique en soi.
Le terminal 1 comprend également un lecteur de carte 3, intégré ou non. Pour communiquer avec la carte à puce 2a, le lecteur de carte 30 englobe également deux couches basses, CC1 (couche physique) et CC2 (couche de lien de données), jouant un rôle similaire aux couches Ci et C2. Les interfaces logicielles avec les couches CC1 et CC2 sont décrites, par exemple, par la spécification "PC/SC" ("part 6, service provider"). Les couches elles-mêmes, CC1 et CC2, sont notamment décrites par les normes ISO 7816-1 à 7816-4, comme il a été rappelé.
Une couche logicielle supplémentaire 16 forme interface entre les couches applicatives (non représentées) et les couches inférieures, CC1 et
CC2. La fonction principale dévolue à cette couche 16 est une fonction de multiplexage/démultiplexage.
Les communications avec la carte à puce 2a s'effectuent selon un paradigme similaire à celui utilisé pour la manipulation de fichiers dans un système d'exploitation du type "UNIX" (marque déposée) : OUVRIR ("OPEN"), LIRE ("READ"), ECRIRE ("WRITE"), FERMER ("CLOSE"), etc.
Du côté de la carte à puce 2a, on retrouve une organisation similaire, à savoir la présence de deux couches basses, référencées CCai (couche physique) et CCa2 (couche de lien de données), ainsi qu'une couche d'interface 26a, tout à fait similaire à la couche 16.
Selon l'invention, on prévoit, de part et d'autre, c'est-à-dire dans le terminal 1 et dans la carte à puce 2a, deux couches de protocoles spécifiques : 13 et 23a, respectivement.
Dans le terminal 1 , la couche spécifique 13 s'interface aux "drivers couches basses" 15, aux bibliothèques 14 des couches réseau, C3 et C4, et aux couches protocolaires du lecteur de carte 3, c'est-à-dire les couches inférieures, CC1 et CC2, via la couche de multiplexage 16. La couche spécifique 13 permet le transfert de paquets réseaux de et vers la carte à puce 2a. En outre, elle adapte les applications existantes telles le navigateur Internet 10, le courrier électronique, etc., pour des utilisations mettant en œuvre la carte à puce 2a.
Du côté de la carte à puce 2a, on retrouve une organisation tout à fait similaire constituée par une instance supplémentaire de la couche spécifique, référencée 23a, pendant de la couche 13. De façon plus précise, les couches spécifiques, 13 et 23a, sont subdivisées en trois éléments logiciels principaux : un module, 130 ou 230a, de transfert de blocs d'informations entre les couches 13 et 23a, via les couches conventionnelles CC1 , CC2, CCai et CCa2 ;
une ou plusieurs pièces de logiciel, dites "agents intelligents", 132 ou 232a, qui réalisent, par exemple, des fonctions de conversion de protocoles ; et un module de gestion de la configuration spécifique, 131 et 231a, respectivement ; module qui peut être assimilé à un agent intelligent particulier.
Pour simplifier, on appellera ci-après les agents intelligents, "agents", comme il a été précédemment indiqué.
On retrouve donc, dans le terminal 1 et la carte à puce 2a, une pile protocolaire de communication entre les deux entités.
Les couches de niveau deux (couches de lien de données), CC2 et
CCa2, assurent l'échange entre la carte à puce 2a et le terminal 1. Ces couches sont responsables de la détection et l'éventuelle correction d'erreurs de transmission. Différents protocoles sont utilisables, et à titre d'exemples non exhaustifs les suivants :
- la recommandation ETSI GSM 11.11 ;
- le protocole défini par la norme ISO 7816-3, en mode caractère
T=0 ; le protocole défini par la norme ISO 7816-3, en mode bloc T=1
- ou le protocole défini par la norme ISO 3309, en mode trame "HDLC" (pour "High-Level Data Link Control procédure" ou procédure de commande de liaison à haut niveau).
Dans le cadre de l'invention, on utilisera de préférence le protocole ISO 7816-3, en mode bloc.
De façon connue en soi, à chaque couche de protocole, il est associé un certain nombre de primitives qui permettent les échanges de données entre couches de même niveau et d'une couche à l'autre. A titre d'exemple, les primitives associées à la couche de niveau deux sont du type
"demande de données" ("ϋata.request") et "envoi de données" par la carte {"Data.response"), ainsi que "confirmation de données" {"Data.confirm"), etc. De façon plus spécifique, les couches 13 et 23a sont chargées du dialogue entre la carte à puce 2a et l'hôte, c'est-à-dire le terminal 1. Ces couches permettent l'échange d'informations entre un utilisateur (non représenté) du terminal 1 et la carte à puce 2a, par exemple via des menus déroulants sous la forme d'hypertexte au format "HTML". Elles permettent aussi la mise en place d'une configuration adaptée pour l'émission et/ou la réception de paquets de données. Comme il a été indiqué ci-dessus, les couches comprennent trois entités distinctes.
La première couche, 130 ou 230a, est essentiellement constituée par un multiplexeur logiciel. Elle permet l'échange d'informations entre la carte à puce 2a et le terminal hôte 1 , sous la forme d'unités de données de protocole. Elle joue un rôle similaire à celui d'un commutateur de paquets de données. Ces unités sont émises ou reçues via la couche de niveau deux (couche de liens de données). Ce protocole particulier de communication permet de mettre en communications au moins une paire d' "agents". Le premier agent de chaque paire, 132, est situé dans la couche 13, côté terminal 1 , le second, 232a, est situé dans la couche 23a, côté carte à puce 2a. Une liaison entre deux "agents" est associée à une session, que l'on pourra appeler "S-Agent". Une session est un échange de données bidirectionnel entre ces deux agents. Si l'une ou l'autre des couches, 13 et 23a, comporte plusieurs agents, les agents d'une même couche peuvent aussi établir de sessions entre eux et/ou avec les modules 131 et 231a, qui constituent des agents particuliers.
De façon plus précise, un agent est une entité logicielle autonome qui peut réaliser tout ou partie de fonctions des couches de niveau trois et quatre, en fonction de la configuration mise en œuvre par le terminal 1.
Les agents sont associés à des propriétés ou attributs particuliers. Pour fixer les idées, et à titre d'exemple non limitatif, les six propriétés suivantes sont associées aux agents :
"hôte" : agent localisé dans le terminal ; - "carte" : agent localisé dans la carte à puce ;
"local" : agent ne communiquant pas avec le réseau ; "réseau" : agent communiquant avec le réseau (côté terminal) ; "client" : agent qui initialise une session ; "serveur" : agent qui reçoit une demande de session. Un agent particulier est identifié par une référence, par exemple un nombre entier de 16 bits (c'est-à-dire compris entre 0 et 65535). Le bit de poids fort (b15 = 1 ) indique si la référence est locale (communications locales à la carte à puce ou au terminal) ou distante (b15 = 0).
Il existe deux grandes catégories d'agents : les agents de type "serveur", qui sont identifiés par une référence fixe, et les agents de type
"client", qui sont identifiés par une référence variable, que l'on peut qualifier d'éphémère, délivrée par le module de gestion de configuration, 131 ou
231 a.
Les agents communiquent entre eux à l'aide d'entité dites "unités de donnée de protocole" ou "pdu" (pour "protocol data unit", selon la terminologie anglo-saxonne) constituant une référence de destination et une référence de source. On pourrait également appeler cette "pdu" particulière "SmartTP pdu", en référence au terme anglais "Smart Card" (carte à puce) couramment utilisé. Les "pdu" utilisent notamment les références définies ci- dessus.
Une "SmartTP pdu", ou plus simplement "pdu" ci-après, comporte une référence source, une référence de destination, un ensemble de bits constituant des drapeaux ou "flags" qui précisent la nature de la "pdu", et des données optionnelles : - le drapeau "OPEN" (ouvert) est positionné pour indiquer l'ouverture d'une session ;
- le drapeau "CLOSE" (fermé) indique la fermeture d'une session ; et
- Le drapeau "BLOCK" (verrouillé) indique que l'agent est en attente d'une réponse de son correspondant et suspend toute activité. On appellera jeton une "pdu" qui ne comporte pas de données.
L'entité "SmartTP" contrôle l'existence de l'agent destinataire et réalise la commutation d'un paquet vers ce dernier.
Une session agent "S-Agent" possède trois états remarquables, à savoir : - un état déconnecté : aucune session n'est ouverte avec un autre agent
- un état connecté : une session est ouverte avec un autre agent, une session "S-Agent" étant identifiée par une paire de références ; et
- un état bloqué, l'agent étant connecté et attendant une réponse de son correspondant.
Le mécanisme d'établissement d'une session "S-Agent" est le suivant :
- une nouvelle instance d'un agent client est créée (côté carte à puce ou terminal), cet agent étant identifié par une référence éphémère pseudo-unique ;
- l'agent client émet une "pdu" à destination d'un agent serveur (dont la référence est connue par ailleurs) avec le drapeau "OPEN" positionné et l'agent client passe à l'état connecté ou bloqué selon la valeur du drapeau "BLOCK' ; et - l'agent serveur reçoit la "pdu" avec le drapeau "OPEN" et passe à l'état connecté
Une fois une session ouverte, deux agents échangent des données via des "pdu".
Le mécanisme de fermeture d'une session est le suivant : - un agent émet une "pdu" avec le drapeau "CLOSE" positionné (et qui comporte éventuellement des données ; et
- l'autre agent reçoit une "pdu" avec le drapeau "CLOSE" positionné (et qui comporte éventuellement des données) et la session "S-Agent" passe à l'état déconnecté.
La figure 3 illustre de façon schématique le diagramme d'états des sessions "S-Agent", telles qu'elles viennent d'être rappelées.
Les couches 130 et 230a gèrent des tables (non représentées) qui contiennent la liste des agents présents, côté terminal hôte 1 et carte à puce 2a.
De façon pratique, les agents permettent d'échanger des données (de l'hypertexte, par exemple), mais également de déclencher des transactions réseau, autorisant des communications entre la carte à puce 2a et un serveur éloigné 4 (figure 2).
Les modules de gestion de configuration, 131 et 231a, respectivement, sont assimilables à des agents particuliers. Par exemple, le module 131 , côté terminal hôte 1 , gère notamment des informations relatives à la configuration de ce terminal (modes de fonctionnement), liste des autres agents présents, etc. Le module 231a, côté carte à puce 2a, a des fonctions analogues. Ces deux agents peuvent être mis en communication l'un avec l'autre pour établir une session. De façon pratique, la carte à puce 2a est avantageusement
"adressée" par utilisation d'une adresse "URL" (pour "Universal Reεource Locator") définissant un rebouclage sur le terminal 1 lui-même, et non un pointage sur un serveur externe. A titre d'exemple, la structure de cette "URL" est habituellement la suivante : http://127.0.0.1 :8080 (1 ), dans laquelle 127.0.0.1 est l'adresse "IP" de rebouclage et 8080 est le numéro de port.
La figure 4 illustre de façon simplifiée l'architecture logique d'un système selon l'invention du type représenté sur la figure 2, mais décrite de façon plus détaillée. La carte à puce 2a comprend plusieurs agents, dont
deux seulement ont été représentés : un agent de type non précisément défini 232aι et un agert 232a2, de type dit "WEB". La pile logique comprend, les couches de protocole inférieures, référencées 200a, répondant aux normes ISO 7816-3 (figure 2 : CCai et CCa2), le gestionnaire de commandes "APDU" 201 ai , et le multiplexeur de paquets 230a, ce dernier étant interface aux agents, notamment l'agent "WEB" 231 a2.
Du côté terminal 1 , il existe deux piles, l'une communiquant avec le réseau Internet RI, l'autre avec la carte à puce 2a. La première pile comprend les organes 11 (figure 2 : Ci et C2) d'accès au réseau (normes OSI 1 et 2) et les couches de protocole "TCP/IP" (figure 2 : C3 et C4), référencées 100. Ces dernières couches sont interfacées avec le navigateur "WEB" 10. L'autre pile comprend les couches de protocole inférieures, référencées 101 , répondant aux normes ISO 7816-3 (figure 2 : C-| et C2), le gestionnaire 102 d'ordres "APDU" et le multiplexeur de paquets 130, ce dernier étant interface avec des agents, dont un seul 132, est représenté. Ce dernier, que l'on supposera de "type réseau", peut en outre communiquer, d'une part avec le navigateur 10, via les couches "TCP/IP" 101 , d'autre part avec le réseau Internet RI, via ces mêmes couches "TCP/IP" 101 et l'organe 11 , d'accès au réseau RI. Le gestionnaire d'ordres "APDU" 201a est également interface avec une ou plusieurs couches de niveau applications, que l'on appellera simplement applications. Ces applications, A , ..., At, ..., An, sont, comme il a été indiqué, des applications de type conventionnel.
En résumé, la fonction client/serveur "WEB", fournie par la carte à puce 2a, peut être réalisée par l'association de l'agent "WEB" 232aι dans la carte à puce et de l'agent réseau 132 dans le terminal 1 , et par la mise en œuvre de sessions entre agents, comme il a été décrit.
La carte à puce 2a présente donc bien la fonctionnalité client/serveur "WEB". En outre, selon une caractéristique avantageuse du procédé de l'invention, n'importe quelle application conventionnelle, A-\ à An, du type
"CGA" précité, peut être activée au travers de ce client/serveur "WEB", soit par le navigateur "WEB" 10 présent dans le terminal 1 , soit par un navigateur éloigné 4, localisé en un point quelconque du réseau Internet RI, par la mise en œuvre de sessions entre agents. Selon le procédé de l'invention, les applications, A-\ à An, ne nécessitent pas d'être ré-éc tes et sont mises en œuvre telles quelles.
Dans le cadre de l'invention, tout ou partie des applications A-\ à An peut être constitué par des applications associées à un ou plusieurs protocole(s) "PE" et/ou un ou plusieurs protocole(s) "PL", et chargé dans une mémoire de la carte à puce 2a. Des données représentant un ou plusieurs profils "PA" peuvent également être stockées dans la carte à puce 2a.
La fonctionnalité client/serveur "WEB" offerte par la carte à puce 2a n'est pas suffisante pour qu'une application puisse s'exécuter. Il est nécessaire de lui adjoindre une fonctionnalité supplémentaire. En effet, selon un autre aspect de l'invention, la fonction serveur
"WEB" offerte par la carte à puce 2a inclut un mécanisme similaire à la fonction dite "CGI" (pour "Common Gateway Interface" ou "interface de passerelle") implantée dans les serveurs "WEB" classique.
Avant de décrire un exemple d'architecture conforme à l'invention, permettant de réaliser une fonction de ce type, au sein même de la carte à puce, il est utile de rappeler les principales caractéristiques d'un mode de fonctionnement "CGI".
Le "CGI" est une spécification de mise en œuvre, depuis un serveur "WEB", d'applications écrites pour les systèmes d'exploitation "UNIX" (marque déposée), "DOS", ou "WINDOWS" (marque déposée). A titre d'exemple, pour le système d'exploitation "UNIX", la spécification est "CGI 1.1 " et pour le système d'exploitation "WINDOWS 95", la spécification est "CGI 1.3".
Toujours à titre d'exemple, une requête "HTTP" pour une adresse "URL", du type :
"http://www.host.com/cgi-bin/xxx.cgi" (2), dans laquelle "host" se réfère à un système hôte (généralement éloigné), est interprétée par un serveur "WEB" comme l'exécution d'un script de commande, de type "CGI" nommé "xxx" et présent dans le répertoire "cgi- bin" de ce système hôte. Bien que le nom du répertoire puisse être a priori quelconque, par convention, c'est le nom donné au répertoire stockant les scripts de type "CGI". Un script est une suite d'instructions du système d'exploitation du système hôte dont le résultat final est transmis au navigateur "WEB" émetteur de la requête précitée. Différents langages peuvent être utilisés pour écrire ce script, par exemple le langage "PERL" (marque déposée).
De façon pratique, la requête est habituellement affichée sur un écran informatique sous la forme d'un formulaire compris dans une page "HTLM". Le langage "HTLM" permet de traduire un formulaire en une adresse "URL". Le formulaire comporte un ou plusieurs champs, obligatoires ou non, qui sont remplis par un utilisateur à l'aide des moyens de saisie habituels : clavier pour le texte, souris pour les cases à cocher ou les boutons dits "radio", etc. Le contenu du formulaire (ainsi qu'éventuellement des informations et instructions dites "cachées") est émis à destination du serveur "WEB". Le code "HTLM" de la page décrit la structure matérielle du formulaire (cadre, graphisme, couleur, et tout autre attribut), ainsi que la structure des champs de données à saisir (nom, longueur, type de données, etc.).
La transmission peut s'effectuer selon deux types de formats principaux. Un premier format utilise la méthode dite "POST" et un second la méthode dite "GET". Une information de type de format est présente dans le code de la page formulaire.
Ce mécanisme n'est cependant pas directement transposable à une carte à puce, même si celle-ci offre la fonctionnalité client/serveur "WEB" conformément à l'une des caractéristiques de l'invention.
On va maintenant décrire un exemple d'architecture permettant d'activer une application quelconque, de type conventionnel, via un serveur "WEB" sur la carte à puce, par référence à la figure 5.
Parmi les agents intelligents, conforme à l'un des aspects de l'invention, on prévoit des agents intelligents particuliers, que l'on appellera ci-après "Agents traducteurs de script" ou de façon abrégée "ATS". Le script est alors interprété par un des agents intelligents. Cette traduction peut être réalisée de différentes manières : a/par l'agent "WEB" 232aι lui-même, qui est doté dans ce cas d'une double capacité ; b/par un agent script unique capable de traduire l'ensemble des scripts présents dans la carte à puce 2a ; c/par un agent de script dédié que l'on appellera "ATSD" ci-après (un agent par script) ; ou d/par un agent "APDU" 2010a du gestionnaire d'ordres "APDU"
201 a, qui est doté, dans ce cas, d'une double capacité.
L'agent "APDU" 2010a est une composante de la couche gestionnaire d'ordres "APDU" 201a. Cette dernière est une couche capable de centraliser tous les ordres "APDU" émis et/ou reçus par le système, de sélectionner des applications, parmi A à An, mais également d'offrir une interface de type agent intelligent. Elle est donc capable, selon l'une des caractéristiques de l'invention de communiquer avec tous les agents intelligents (via des sessions), que ces agents soient localisés dans le terminal 1 ou la carte à puce 2a. Dans le cas c/ ci-dessus, une session est ouverte entre l'agent
"WEB" 232aι et l'un des agents "ATSD".
La figure 5 illustre un exemple d'architecture pour laquelle les agents traducteurs sont du type "ATSD". Ils sont référencés ATS, à ATSn et associés aux applications A à An. L'application sélectionnée étant supposée
.s'.; être l'application Aιt la session s'établit entre l'agent "WEB" 232aι et l'agent ATS.
Un agent traducteur de script génère une suite d'ordres "APDU". Une session est ouverte entre l'agent traducteur, par exemple l'agent ATSt, et l'agent "APDU" 2101a. Les ordres sont alors émis vers l'agent "APDU" 2101a. Le gestionnaire d'ordres "APDU" 210a sélectionne l'application "CGA" A/ et lui transmet les ordres "APDU", ordres traduits et donc conventionnels, qu'elle est en mesure de comprendre. Cette application est donc correctement activée, sans avoir à la modifier ou à la réécrire.
Les réponses de l'application At sont transmises au gestionnaire d'ordres "APDU" 210a, à l'agent "APDU" 2010a, puis de nouveau à l'agent ATSι (et de façon plus générale à l'agent traducteur de script).
Les différents cheminements sont représentés symboliquement sur la figure 5 par des traits pleins reliant les blocs fonctionnels, ou en pointillés à l'intérieur de ces blocs.
Le procédé selon l'invention utilise les deux caractéristiques qui viennent d'être rappelées : fonctionnement de la carte à puce en tant que serveur/client "WEB", incluant une fonction "CGI". On va maintenant décrire de façon détaillée les différentes phases et étapes du procédé selon l'invention par référence aux figures 6A à 8.
La première phase concerne l'enregistrement d'un profil d'abonné dans un serveur d'annuaire particulier que l'on référencera SA, ci-après.
Dans une première étape, illustrée par la figure 6A, la carte à puce 2a est adressée par le navigateur 10 du terminal 1 , via les couches 13 et
23a. On récupère, par une commande de type "GET" par exemple, un formulaire de chargement à partir de la carte à puce 2a, formulaire en langage "HTML" que l'on appellera arbitrairement "download.html".
Cette récupération est effectuée en consultant une page correspondante dont l'URL est typiquement de la forme suivante :
http://127.0.0.1 :8080/download.html (3), dans laquelle http://127.0.0.1 :8080 est l'adresse URL de rebouclage proprement dite, telle qu'elle a été définie par la relation (1 ), et "download.html" la page "HTML" à obtenir. Cette requête met en œuvre une session entre agents intelligents comme il a été décrit en regard des figures 2 à 4, selon un premier aspect de l'invention. La carte à puce 2a joue alors le rôle d'un serveur "WEB".
La carte à puce 2a envoie le formulaire "download.html" lors d'une deuxième étape, toujours par ouvertures de sessions entre agents intelligents appariés, selon le procédé de l'invention. Le formulaire obtenu peut être affiché sur un écran 5 par l'intermédiaire du navigateur 10 et est référencé P sur la figure 6A qui illustre schématiquement ce processus. Ce formulaire constitue une page d'accueil pour l'internaute désirant s'enregistrer sur un serveur d'annuaire. La carte à puce se comporte alors comme un serveur "WEB".
La page P peut comporter, de façon usuelle, différents éléments de type graphique ou de type texte, ainsi que des éléments interactifs de commande (bouton de type dit "radio", cases à cocher, zones d'entrées de données, etc.). On va supposer, dans un premier temps que la carte à puce 2a n'offre, à son porteur (non représenté), que la possibilité de s'enregistrer sur un serveur d'annuaire unique, référencé SAU, et selon un profil unique d'abonné, référencé PAU. On suppose également que ce profil unique PAU est enregistré dans la carte à puce 2a. Dans cette hypothèse, le formulaire P (c'est-à-dire la page d'accueil) affiché sur l'écran 5, peut se réduire à une présentation minimale, dont la figure 6B illustre un exemple possible : formulaire P
Le formulaire P comprend diverses zones de textes, sous la référence unique Zt. Ces zones affichent typiquement le nom "xxx" du serveur d'annuaire (SAU), l'action proposée "enregistrement" et diverses aides (par exemple "cliquer ici"). Puisque l'on a supposé que les données du
profil d'abonné PAU étaient enregistrées dans la carte à puce 2a, il suffit de prévoir un bouton d'envoi Bs. Le fait pour l'internaute de cliquer sur ce bouton à l'aide d'une souris (figure 1A : 6b) ou d'appuyer sur la touche "entrée" d'un clavier (figure 1A : 6a), déclenche l'envoi du formulaire vers la carte à puce 2a.
Dans une autre variante du procédé selon l'invention, les données afférentes au profil de l'abonné sont saisies directement par celui-ci. Dans cette hypothèse, le formulaire est plus complexe. La figure 6C illustre un exemple possible de formulaire, référencé P2. Il comprend une première zone de texte fixe Zn, similaire à celle de la figure 6B (Z,) et une ou plusieurs zone(s) de saisie de données, sous la référence unique ZΆ. On prévoit comme précédemment un bouton d'envoi β s, mais aussi avantageusement un bouton Braz de ré-initialisation du formulaire P2, qui permet d'effacer les données saisies en cas d'erreur. La ou les zones de saisies de données ZΆ peu(ven)t être du type dit "TEXTAREA" en langage "HTML" et présenter une facilité dite d' "ascenseur" pour l'affichage déroulant de textes longs
Le code "HTML" nécessaire pour programmer un tel formulaire est bien connu en soi et est à la portée de l'homme de métier. Il n'est pas nécessaire de le détailler de nouveau. On peut cependant indiquer qu'il contient notamment une ligne de code en langage "HTML" qui se présente typiquement sous la forme :
<form action="http://127.0.01 :8080/cgi-smart/pe"> (4) dans laquelle http://127.0.01 :8080 est l'URL de rebouclage de la relation (1 ), cgi-smart le répertoire "CGI" précité contenant un script "pe" associé à une des applications stockées dans la carte à puce 2a, référencée par exemple Ae. cette application permet l'enregistrement de l'abonné (internaute) sur l'annuaire SAU avec le profil PAU. Cette action s'effectue de la manière décrite en regard de la figure 5, par mise en œuvre des fonctionnalités "CGI", d'une part, et client/serveur, d'autre part, offertes par la carte à puce 2a. L'application Ae se comporte comme un client.
Dans le premier cas (figure 6B), il n'est pas nécessaire de passer des paramètres à la carte à puce 2a. En effet, les données de profil d'abonné PAU sont uniques et enregistrées dans la carte à puce 2a.
Dans le second cas (figure 6C), les données saisies sont passées en tant que paramètres à la carte à puce 2a, sous la forme d'une requête "HTTP".
La figure 6D illustre schématiquement le processus global de la phase d'enregistrement d'un internaute sur un serveur d'annuaire SAU, constitué par un des serveurs 4 (figures 2 ou 4). La référence unique SWEB regroupe différents modules de la figure 5 permettant à la carte à puce 2a d'offrir les fonctionnalités combinées de client/serveur WEB et de passerelle "CGI". On a également supposé que l'application Ae permettant la mise en œuvre du protocole d'enregistrement "PE" était associée à un agent traducteur de script dédié Ate ;. il s'agit d'une configuration conforme à celle illustrée par la figure 5. Cependant, comme il a été indiqué, la traduction des scripts peut s'effectuer d'autres manières (par l'agent "WEB" 232a! (figure 5), etc. L'envoi du formulaire, par ouverture de sessions entre agents intelligents, va permettre d'activé l'application Ae, par l'intermédiaire de l'agent traducteur de script Ate. Lors d'une étape ultérieure, l'application Ae pose une requête "HTTP" par ouverture de sessions entre paires d'agents intelligents, notamment impliquant un agent de type "réseau" (figure 5 : 132). La requête est transmise au serveur d'annuaire SAU, avec passage de paramètres. Les paramètres sont constitués notamment par les données de profil abonné PAU, de façon à permettre son enregistrement dans l'annuaire. L'adresse "URL" du serveur d'annuaire est obtenue à partir du profil d'abonné SAU enregistré dans la carte à puce 2a ou à partir des données saisies dans le formulaire P2.
A priori, le processus d'enregistrement est terminé à ce stade. Il peut cependant comprendre une ou plusieurs étapes supplémentaires. Une de ces étapes peut consister en l'envoi par l'annuaire d'un accusé de réception,
sous forme d'une requête "HTTP" adressant la carte à puce 2a. L'accusé de réception peut comprendre une information indiquant que l'inscription s'est déroulée de façon satisfaisante, ou au contraire un code d'erreur. Dans ce dernier cas, le processus d'enregistrement doit être répété. Le serveur peut requérir l'envoi de données manquantes ou la ré-émission de données incorrectes ou corrompues. La demande d'enregistrement peut également être rejetée, notamment si la limite de validité de l'abonnement est dépassée.
Dans une variante préférée du procédé selon l'invention, il est possible, pour un internaute de s'enregistrer sur plusieurs annuaires différents. Dans cette variante de réalisation, il est en général nécessaire de disposer également de plusieurs protocoles d'enregistrement. Pour ce faire, plusieurs applications associées à ces protocoles sont stockées dans la carte à puce 2a, que l'on peut référencer Ae ..., Aei, ...Aen, en admettant que le nombre maximum de protocoles distincts est n.
Comme précédemment, les données associées aux profils d'abonné, que l'on référencera PA ..., PA, ..., PAq, peuvent être stockées dans la carte à puce 2a, ou au contraire fournis, au coup par coup, par l'internaute selon une méthode similaire à ce qui à été décrit en regard de la figure 6C, par saisie dans un formulaire approprié, q est le nombre maximum de profils d'abonné disponibles. On notera que q n'est pas forcément égal à n. En effet, un serveur d'annuaire donné, que l'on référencera arbitrairement SA peut accepter plusieurs occurrences distinctes d'un même abonné (internaute), d'une part. D'autre part, plusieurs serveurs d'abonné, bien que distincts, peuvent accepter un même profil d'abonné et éventuellement partager un protocole d'enregistrement commun.
Pour fixer les idées, on va supposer que la carte à puce 2a stocke quatre profils d'abonnés distincts, PAA à PAD, chacun des profils permettant de s'enregistrer sur un seul serveur d'annuaire, soit SAA à SAD. Un formulaire, ou page d'accueil, référencé P3, permettant cet enregistrement, peut se présenter comme illustré schématiquement par la figure 6E. il
comprend une première zone de texte d'en-tête Zte similaire à la zone de texte Zf de la figure 6B, éventuellement complétée par des zones graphiques. Il comprend quatre zones de textes supplémentaires, ZtA à ZtD , associée aux quatre serveurs d'annuaires, SAA à SAD.. Le formulaire permet de sélectionner un ou plusieurs, voire tous.
Pour effectuer un choix entre ces serveurs d'annuaires, on peut prévoir des zones dites "cases à cocher", CCA à CCD. A titre d'alternative, on peut prévoir des hyperliens sur la page d'accueil P3, chaque hyperlien adressant la carte à puce 2a par l'intermédiaire d'une dresse de rebouclage du type de celle de la relation (1 ), mais avec des paramètres distincts.
Comme dans le cas de la figure 6B, on prévoit un bouton d'envoi Bs, permettant de transmettre le contenu du formulaire à la carte à puce 2a.
Quelle que soit la méthode utilisée pour effectuer la sélection de tout ou partie des serveurs d'annuaires, les paramètres passés à la carte à puce2a doivent permettre de sélectionner un ou plusieurs profils d'abonné, PAA à PAD, et en dériver une ou plusieurs adresses "URL". Les actions demandées, par les paramètres passés à la carte à puce 2a, sont typiquement du type : îsa≈enr+pa, (5), avec "sa, " le nom du serveur d'annuaire d'indice arbitraire / parmi les n possibles, "enr" l'action requise d'enregistrement proprement dit et "pa," le profil d'abonné à utiliser parmi les q possibles.
Une ou plusieurs requêtes "HTTP" sont posées et transmises aux serveurs d'annuaires concernés, SAA à SAD (figure 6E) et dans le cas général SAA à SAn, s'il existe n serveurs d'annuaire sélectionnâmes.
Le choix présenté sur la page d'accueil P3 est naturellement fonction de la carte à puce 2a insérée dans le lecteur 3. Les choix présentés dépendent des droits qui sont accordés à l'internaute possesseur de la carte à puce 2a, notamment des abonnements souscrits à des services donnés et de leurs périodes de validité.
Une deuxième phase du procédé selon l'invention, c'est-à-dire la localisation, sur le réseau Internet, d'un internaute associé à un identifiant quelconque peut se dérouler de façon très similaire à la phase d'enregistrement. Pour ce faire, il est nécessaire d'interroger un ou plusieurs serveur(s) d'annuaire(s). Il est nécessaire aussi de disposer d'au moins un protocole "PL" spécifique de localisation de cet internaute. Enfin, s'il existe plusieurs serveurs d'annuaires interrogeables, SA à SAn, il est généralement nécessaire également, comme dans le cas de l'enregistrement, de disposer de plusieurs protocoles de localisation distincts.
Ces protocoles de localisation peuvent être mis en œuvre à l'aide d'applications stockées dans la carte à puce 2a.
Le processus de localisation se déroule de façon tout à fait similaire à celui de l'enregistrement de l'internaute sur un ou plusieurs serveurs d'annuaire SA,. La seule exception notable est qu'un profil d'abonné PAS n'est plus explicitement requis. Il suffit de fournir à la carte à puce 2a l'identifiant de l'internaute recherché et l'adresse du serveur d'annuaire SA,, ou pour le moins des paramètres permettant à l'application associée à l'un des protocoles de localisation de déterminer cette adresse "URL". Un profil d'abonné PAt peut toutefois être utilisé pour en dériver automatiquement l'adresse "URL" du serveur d'annuaire SA, à l'aide duquel lequel un internaute désire localiser un autre internaute. Comme il a été indiqué, l'identifiant de l'internaute recherché peut être son adresse e-mel, adresse qui se présente typiquement sous la forme suivante : pseudo@fournisseur.com (6), avec "pseudo" le nom d'utilisateur de messagerie de l'internaute ou plus généralement un pseudonyme, et "fournisseur.com" le nom et le suffixe du prestataire de service Internet", .com" pouvant être remplacé selon les cas par divers suffixes : ".fr", ".net", etc.). La figure 7 illustre les principales étapes de la phase de localisation d'un internaute par interrogation d'un annuaire SA,
Dans une première étape la carte à puce 2a est adressée par le navigateur 10 du terminal 1 , via les couches 13 et 23a. On récupère, par une commande de type "GET" par exemple, un formulaire de chargement à partir de la carte à puce 2a sous la forme d'une page d'accueil référencée F. Cette page d'accueil peut prendre différents aspects, similaires notamment à ceux décrits en regard des figures 6C ou 6E. Selon qu'il y ait un choix ou plusieurs choix possibles, l'internaute sélectionne un ou plusieurs serveurs d'annuaires et fournit des données d'identification de l'internaute recherché. Sur la figure 7, on a supposé qu'un seul serveur d'annuaire SA, était interrogeable. La page est transmise sous forme d'une requête "HTTP" à la carte à puce 2a et est interprétée par un agent traducteur de script At, associé à une application /A, de mise en œuvre de protocole "PL".
Par le double mécanisme client/serveur "WEB" et "CGI" (module référencé SWEB comme précédemment), une requête du type : http://127.0.0.1/? sa =loc+pseudo@fournisseur.com (7), est interprétée par la carte à puce 2a comme une demande de localisation de l'internaute dont l'identifiant est (6) sur le serveur d'annuaire sa,.
Une requête "HTTP" est transmise à ce serveur qui renvoie les informations demandées, dans la mesure où elles sont disponibles. Il recherche dans sa base de données une adresse "IP" correspondant aux données d'identification reçues. En cas de succès, c'est-à-dire si l'internaute demandeur est effectivement enregistré, si cet internaute a le droit d'obtenir cette adresse et si les données reçues sont correctes, les données retransmises comprennent l'adresse "IP" de l'internaute recherché, ce qui permet de le localiser.
Ces différentes étapes mettent en œuvre des sessions entre agents appariés, selon un des aspects de l'invention.
On peut également stocker dans la carte à puce 2a plusieurs applications, chacune étant destinée à la mise en œuvre d'un protocole de localisation distinct, a priori associé à un serveur d'annuaire également distinct.
Dans une variante préférée du procédé selon l'invention, on stocke dans la carte à puce 2a das applications permettant la mise en œuvre de plusieurs protocoles d'enregistrement, plusieurs protocoles de localisation et des fichiers de données pour l'enregistrement de plusieurs profils d'abonné. Cette disposition avantageuse permet de transformer la carte à puce 2a en base de données portable multi-annuaire comme illustré schématiquement par la figure 8. Sur cette figure, le terminal 1 n'a pas été représenté. Il est cependant clair que celui-ci est nécessaire à la mise en œuvre du procédé selon l'invention. Les protocoles d'enregistrement, les protocoles de localisation et les profils d'abonné portent les références uniques, PEX, PLy et PAZ, respectivement, avec x le nombre de protocoles d'enregistrement, y le nombre de protocoles de localisation et z le nombre de profils d'abonnés distincts. Cet ensemble permet d'établir des connexions avec n serveurs d'annuaires distincts, soit pour y enregistrer un internaute porteur de la carte à puce 2a, soit pour localiser un internaute sur le réseau Internet RI.
Dans une autre variante encore du procédé selon l'invention, l'utilisation d'une carte à puce 2a permet une authentification robuste de son possesseur, lors de la phase d'enregistrement et/ou de la phase de localisation. En effet, il est possible de stocker des données de sécurité dans la carte à puce 2a qui reste propriété de son possesseur. De telles donnés de sécurité peuvent être constituées par des clés de chiffrage.
Du fait que, selon l'un des aspects avantageux du procédé selon l'invention, la carte à puce peut communiquer directement avec le réseau Internet, par la mise en œuvre de sessions entre agents intelligents, ces données n'ont pas à être transmises à un dispositif externe, serait ce le terminal 1. Les traitements touchant à la sécurité sont effectués directement par la carte à puce 2a. Cette façon de procéder offre donc un degré de sécurité beaucoup plus élevé que la simple utilisation de couches logicielles dites sécurisées des navigateurs "WEB" récents, connues sous l'abréviation anglo-saxonne "SSL" (pour "Secure Socket Layer").
L'authentification proprement dite peut s'effectuer en ayant recours à la technique dite de certificat, en association avec les clés de chiffrage précitées stockées dans la carte à puce. Cette procédure peut nécessiter des transactions supplémentaires entre la carte à puce 2a et le ou les serveur(s) d'annuaire concerné(s), à l'aide de requêtes "HTTP" transitant par le réseau Internet RI. En fonction du résultat, positif ou négatif, de l'authentification, l'internaute est autorisé ou non à effectuer les traitements, enregistrements ou localisations qu'il désire réaliser.
A la lecture de ce qui précède, on constate aisément que le procédé de l'invention atteint bien les buts qu'elle s'est fixés.
Il permet notamment à un internaute de s'enregistrer sur un ou plusieurs serveurs d'annuaires et/ou de localiser un internaute sur le réseau Internet, également par l'intermédiaire de un ou plusieurs annuaires. La carte à puce présentant les fonctionnalités combinées d'un client/serveur "WEB" et d'une passerelle "CGI", cette disposition permet des communications directes entre la carte à puce et le ou les serveurs d'annuaire. Elle autorise de ce fait le stockage des logiciels spécifiques nécessaires à la mise en œuvre des protocoles d'enregistrement et/ou de localisation, ce qui permet une grande mobilité. Un ou plusieurs profils d'abonné peuvent également être stockés dans la carte à puce. L'internaute n'est plus astreint à l'utilisation de terminaux configurés spécifiquement pour les protocoles précités.
En particulier, dans une variante de réalisation préférée, la carte à puce est transformée en base de données portable multi-annuaire. Le procédé selon l'invention est tout à fait compatible avec l'existant.
Il n'est pas requis que l'internaute recherché se soit enregistré sur un ou plusieurs serveurs d'annuaires en faisant usage du procédé selon l'invention. Les transmissions sur le réseau Internet s'effectuent selon les protocoles en vigueur et les communications entre le terminal et la carte à puce font appel au protocole normalisé "ISO" précité. On peut donc mettre en œuvre un lecteur de carte à puce standard. Seule la présence d'une couche logicielle
spécifique dans le terminal est nécessaire, ce qui ne nécessite que peu de modifications et peut être réalisé une fois pour toute, quel que soit le nombre de protocoles d'enregistrement, de localisation et/ou de profils d'abonné portés par la carte à puce, et quelle que soient leurs natures. Enfin, l'utilisation d'une carte à puce permet une sécurisation des transactions et, notamment, une authentification "robuste".
Il doit être clair cependant que l'invention n'est pas limitée aux seuls exemples de réalisations explicitement décrits, notamment en relation avec les figures 2 à 8. En particulier, il n'est pas nécessaire que les deux séries de logiciels propriétaires, "PE" et "PL" soient stockées dans la carte à puce, bien que cette disposition soit particulièrement avantageuse. A titre d'exemple non limitatif, la (les) phase(s) d'enregistrement, dans un ou plusieurs serveurs d'annuaire(s), pouvant être réalisée(s) une fois pour toute, ou pour le moins étant a priori moins fréquente(s) que les phases de localisation, on pourrait se contenter de ne stocker dans la carte à puce que les applications spécifiques associées à cette dernière opération. De même, comme il a été indiqué, il est possible de ne pas enregistrer dans la carte à puce les profils d'abonné "PA" (les données pouvant être fournies en temps réel au moment de l'enregistrement de l'abonné dans un serveur d'annuaire particulier). Il est encore possible de n'enregistrer qu'une partie des profils d'abonné, profils qui pourront être fournis de façon automatique.
L'invention concerne aussi un procédé de mise en relation d'un premier usager avec au moins un serveur d'annuaire, en vue de son enregistrement et/ou de la localisation d'au moins un deuxième usager sur un réseau notamment de type Internet, ladite mise en relation s'effectuant par l'intermédiaire d'un terminal muni d'un lecteur de carte à puce et d'au moins une pièce de logiciel dite d'enregistrement et/ou de localisation, le terminal et la carte à puce comprenant des moyens de traitement d'information et des moyens de stockage d'information, ledit terminal étant connecté à chacun desdits serveurs d'annuaire via ledit réseau de type Internet et
communiquant avec ladite carte à puce selon un premier protocole déterminé, caractérisé en ce qu'au moins l'une desdites pièces de logiciel (Ae, A,) est stockée dans ladite carte à puce (2a) ; en ce que cette carte à puce (2a) comprenant une première pièce de logiciel (23a), formant une couche protocolaire de communication spécifique, et ledit terminal (1 ) comprenant une seconde pièce de logiciel (13), formant une couche protocolaire de communication spécifique, lesdites première et seconde pièces de logiciel (13, 23a) comprennent en outre au moins une paire de premières entités logicielles appariées (132, 232a), chacune desdites entités (132, 232a) coopérant l'une avec l'autre, grâce auxdits moyens de traitement d'information, de manière à permettre l'établissement d'une session d'échanges de données bidirectionnels entre au moins ledit terminal (1 ) et ladite carte à puce (2a), et/ou ledit réseau de type Internet, de manière à ce que ladite carte à puce (2a) offre la fonctionnalité d'un client/serveur "WEB" ; en ce que ladite carte à puce (2a) comprend, dans les moyens de stockage d'information, au moins une deuxième entité logicielle (ATe, AT,) coopérant avec ladite seconde pièce de logiciel spécifique (23a) pour que ladite carte à puce offre une fonctionnalité d'interface passerelle dite "CGI" : et en ce qu'il comprend au moins les étapes suivantes : 1/ ouverture d'une première séquence d'échanges de données entre au moins ledit terminal (1 ) et ladite carte à puce (2a) grâce auxdits moyens de traitement d'information du terminal et de la carte à puce, pour la transmission d'une requête pour que ledit navigateur de type "WEB" récupère des données permettant de sélectionner et d'activer une desdites pièces de logiciel propriétaire (Ae, A,), en vue de la sélection d'un desdits serveurs d'annuaire (S/4;) ; 2/ ouverture d'une deuxième séquence d'échanges de données entre ladite carte à puce (2a) et ledit terminal (1 ) pour lui transmettre lesdites données, grâce auxdits moyens de traitement d'information du terminal et de la carte à puce ;
3/ ouverture d'une troisième séquence d'échanges de données entre ledit terminal (1 ) et ladite carte à puce (2a) grâce auxdits moyens de traitement d'information du terminal et de la carte à puce, pour transmettre des données de sélection et des paramètres optionnels, lesdites données et lesdits paramètres optionnels comportant une référence à une desdites pièces de logiciel d'enregistrement et/ou de localisation ;
4/ mise en œuvre de ladite fonctionnalité "CGI" et exécution de ladite pièce de logiciel d'enregistrement et/ou de localisation {Ae, A , grâce auxdits moyens de traitement d'information de la carte à puce ; et
5/ en résultat de ladite exécution, ouverture), grâce auxdits moyens de traitement d'information de la carte à puce, d'une quatrième séquence d'échanges de données entre ladite carte à puce (2a) et un desdits serveurs d'annuaire {SA), sélectionné par lesdites données de sélection, de manière à transmettre une requête pour la réalisation d'une opération déterminée d'enregistrement ou de localisation.
L'invention concerne aussi une carte à puce comprenant des moyens de traitement d'information et des moyens de stockage d'information et destinée à coopérer avec un terminal muni d'un lecteur de carte à puce, pour la mise en relation d'un premier usager avec au moins un serveur d'annuaire, en vue de son enregistrement et/ou de la localisation d'au moins un deuxième usager sur un réseau notamment de type Internet, à l'aide de protocoles d'enregistrement et/ou de localisation déterminés, caractérisé en ce que ladite carte à puce (2a) stocke, dans les moyens de stockage d'information, au moins une pièce de logiciel (Ae,
A) associée aux dits protocoles déterminés d'enregistrement et de localisation, en ce que cette carte à puce (2a) ) comporte, dans les moyens de stockage d'information, une pièce de logiciel (23a), formant une couche protocolaire de communication spécifique, comprenant en outre au moins une première entité logicielle autonome (S , de type dit
client et une deuxième entité logicielle autonome (S2), de type dit serveur, lesdites entités (S2, S2) coopérant, grâce aux moyens de traitement d'information, de manière à ce que ladite carte à puce (2a) offre la fonctionnalité d'un client/serveur de type "WEB" et à permettre ladite mise en relation d'un premier usager avec au moins un serveur d'annuaire
{SA,), via ledit réseau de type Internet {RI), et en ce que ladite carte à puce (2a) comprend, dans les moyens de stockage d'information, au moins une deuxième entité logicielle {ATe, AT,) coopérant, grâce aux moyens de traitement d'information, avec ladite pièce de logiciel spécifique (23a), pour que ladite carte à puce (2a) offre une fonctionnalité d'interface passerelle dite "CGI" permettant l'exécution desdites pièces de logiciel {Aβ, Aj) associées aux dits protocoles déterminés d'enregistrement et de localisation.