Académique Documents
Professionnel Documents
Culture Documents
Résumé :
Le Web et les Codes Mobiles modifient profondément la conception des systèmes d'information et de leurs
applications. Le concepteur doit notamment intégrer des besoins de sécurité, mobilité et disponibilité. Dans cet
article, nous étudions comment la carte à microprocesseur, qui est un composant informatique très sécurisé, peut
répondre aux nouveaux besoins des systèmes d'information distribués. Pour cela, il convient de donner aux cartes un
rôle plus central que celui de simple serveur de données. Nous étudions donc la possibilité, pour une carte, d'être
client, et même d'être pilote d'une application distribuée.
Abstract :
Web and mobile code deeply modify information systems and applications design. The designer must
particularly integrate security, mobility and availibility needs. In this article, we study how smartcard, which is an
highly secure computing component, can assume the new distributed information systems needs. In order to assume
these new properties, smartcards must be casted for a new part, much more central than a simply data server one. At
the end of this article, we study the possibility for smartcard to be client, and even more a pilot, for a distributed
application.
1
PME : porte-monnaie électronique
Services Carte
Appli.
Client
Dépôt
d’inter-
-faces
Invocation Stubs Card Object
Dynamique IDL Adapter
Noyau ORB
Les problèmes de panne liés à l’utilisation des cartes dans les systèmes distribués ont été
résolus par l’utilisation de mécanismes transactionnels, permettant d’assurer les propriétés
ACID2 à des applications distribuées ayant des cartes à microprocesseur comme partenaire
(projet COST-STIC [LECO98]).
Dans cet article, nous allons poursuivre l' examen de l' intégration de la carte dans les
systèmes distribués, en étudiant les nouveaux besoins des applications distribuées, en terme de
sécurité, de sûreté de fonctionnement, et de mobilité des composants.
Ensuite, nous décrirons les nouveaux rôles possibles pour les cartes à microprocesseur, en
étudiant notamment la place de ces cartes dans les systèmes distribués (serveur, client, ou
coordinateur de certaines phases de l' exécution de l' application).
Et enfin, nous conclurons en traitant des conséquences sur les applications distribuées, de
l' arrivée de nouveaux composants, tels que les étiquettes électroniques, qui permettent à ces
applications d' atteindre une qualité de service en terme de sécurité ou de sûreté difficile à obtenir
actuellement.
2
ACID : Atomicité, Cohérence, isolation, Durabilité
Dans le contexte du Web et des codes mobiles, l' exécution d' une application nécessite
l' exécution de codestéléchargés sur le client et les serveurs. Ces codes téléchargés (applets chez
l' usager, agents mobiles chez le commerçant, …) ont des origines diverses (éditeurs de logiciels,
…) et ne sont pas obligatoirement produits par les organisations qui déploient les services
proposés aux usagers. Plusieurs organisations peuvent être engagées dans l' exécution de
l' application. L' exemple d' une application de commerce électronique illustre cette situation : 4
organisations sont présentes le temps de l' application (un usager acheteur, un usager vendeur, la
banque de l' acheteur et la banque du vendeur). Dans ce contexte, le concepteur d' application
considère un ensemble de composants logiciels et matériels qui vont coopérer pendant la durée
de l' application et qui à priori ne se font pas forcément confiance mutuellement.
D' autre part, l' usager de l' application est de plus en plus nomade et peut initier
l' application depuis n' importe quel point d' accès à son réseau de service (par exemple,Web,
le
une chaîne de TV par abonnement, …). Ces points d' accès offerts à l' usager seront de plus en
plus des terminaux nomades comme le téléphone GSM couplé à (ou intégré dans) un assistant
personnel (PDA : Personal Digital Assistant), ou bien des terminaux anonymes comme une
borne téléphonique dans un lieu public ou une Set Top Box (STB : terminal de TV interactive ou
de WebTV) dans sa chambre d' hôtel.
L'u sager doit pouvoir commencer une application depuis un terminal, l' interrompre, puis
la reprendre depuis un autre terminal afin de la terminer. Ce type de service imposera très
vraisemblablement un fort développement avec les agents mobiles intelligents [NAKA97].
L'u tilisateur lance un agent à la recherche d' une information, se déconnecte et sereconnecte
depuis un autre poste ou depuis un autre endroit pour y récupérer le résultat
[CARL98][CARL97]. L' interruption de la connexion avec les serveurs peut être volontaire de la
part de l' usager. Par conséquent, elle ne doit pas être obligatoirement traitée par les autres
composants de l' application comme une erreur.
De même, l' usager doit pouvoir initier l' application avec seulement une partie des
composants. Ce mode de fonctionnement se produit quand il se trouve dans un lieu dépourvu de
point d' accès au réseau ou quand une panne a lieu sur le réseau (encombrement, perte de ligne,
…). Ce mode de fonctionnement est aussi souhaité par le concepteur, quand réunir l' ensemble de
ses composants entraîne des communications coûteuses en temps de réponse et en argent.
Le concepteur doit donc désormais intégrer dans la conception de l' application les trois
nouveaux besoins suivants qu' il négligeait jusqu' à présent : la sécurité, la mobilité et la
disponibilité. Nous allons maintenant détailler ces besoins, et proposer des solutions dans
lesquelles la carte tient une place centrale dans la conception de l' application.
2.1 La Sécurité
Ces nouvelles applications engagent de nombreux composants fournis et administrés par
de nombreuses organisations qui à priori ne se font pas toutes confiance. Il convient donc
d' établir un espace de confiance afin d' initier l' application. Avec l' exemple du paiement
électronique d' un achat, un espace de confiance assure :
• à l' acheteur d' obtenir la marchandise achetée et d' être débité du montant exact
de sa commande,
• et au vendeur d' être crédité en retour du même montant.
L' espace de confiance est créé àl' initialisation de l' application, et est maintenu jusqu' à sa
terminaison. Cet espace doit être aussi assuré quelles que soient les conditions de
fonctionnement. Par exemple quand les banques ne sont pas joignables ou qu' elles ne sont pas
contactées, l' espace se restreint au terminal du vendeur, et à celui de l' acheteur (figure 2).
En terme de sécurité, la carte à microprocesseur de paiement (Carte Bancaire) est émise
par une organisation (les banques) auprès de son porteur (l' acheteur et/ou le vendeur). Elle assure
l' authentification du porteur auprès des composants des autres organisations quand l' ensemble
des composants est engagé dans l' application (modeOnline). L' espace de confiance est alors
établi par une des deux banques. La carte permet aussi l' établissement d' un espace de confiance
quand une partie seulement des composants est engagée (mode Offline). Elle enregistre alors les
ordres signés et échangés par les composants participant à l' application afin d' éviter toute
répudiation ultérieure. La carte devra aussi sécuriser les terminaux anonymes sur lesquels
l' usager se connectera pour y initier ou continuer ses applications.
Acheteur Acheteur
Vendeur Vendeur
(porteur) (porteur)
2.2 La Mobilité
Désormais, l' usager est un "nomade" qui utilise à la fois un terminal mobile et/ou des
terminaux anonymes mis à sa disposition dans les lieux publics, sa chambre d' hôtel, … Ce type
de terminaux pose le problème de la durée de la connexion de l' usager au réseau. La partie Client
ne reste pas connectée au restant des composants qui sont engagés dans l' application initiée.
L' avancement de l' application doit pouvoir être repris à reconnexion
la de l' usager afin de la
poursuivre.
Dans ce cas, le contexte nécessaire à la reprise ne peut être conservé sur le terminal. La
carte à microprocesseur apporte la possibilité de conserver ce contexte de manière persistante et
de rétablir le contexte quand la carte est de nouveau insérée dans le lecteur du nouveau terminal.
2.3 La Disponibilité
Dans le contexte de large distribution, il ne sera pas toujours évident ou même
souhaitable de disposer de l' ensemble des composants pour initier et même pour continuer une
application. Ce type de conception est déjà classique avec les paiements par carte bancaire qui
définissent deux modes de fonctionnement : le mode Online dans lequel le réseau Carte Bleue est
contactée pour demander une confirmation et le mode Offline dans lequel la carte signe seule le
paiement. Dans des applications plus générales, le concepteur pourra définir quel est le
fonctionnement de l' application quand la configuration ne comporte que quelques composants
disponibles, et quelles sont alors les conditions d' utilisation. Par exemple dans le cas d' un
paiement électronique sans que les banques soient engagées, les composants nécessaires sont au
minimum les terminaux de l' acheteur et du commerçant et la condition d' utilisation est un seuil
maximum d' achat cumulé par l' acheteur.
Dans ce contexte, la carte à microprocesseur permet d' embarquer les configurations de
composants, leurs interactions et les conditions de fonctionnement des configurations. La carte,
en tant qu' organe de sécurisation, est aussi chargée de vérifier la condition d' utilisation de la
configuration. La carte peut dans un mode Offline, embarquer une partie du code et des données
nécessaires pour que les terminaux puissent les charger et les exécuter. Par exemple, des
composants pourraient être une applet qui permettrait aux terminaux de l' acheteur d' afficher
l' interface (GUI) de sélection de la source d' argent (porte-monnaie électronique ou carte
bancaire).
3 2 Vendeur
Banque 3 5
1 Vendeur
4
2
La carte ne doit donc plus être considérée uniquement comme un serveur d' une
application distribuée (que ce soit de code ou de données). Elle est maintenant suffisamment
puissante, en terme de processeur, en terme de mémoire, et en terme de fonctionnalité pour être,
si cela est nécessaire, cliente d' une application. Le protocole de communication de la carte peut
être étendue pour que les composants logiciels d' une carte puissent émettre des requêtes vers
l' extérieur de la carte. Ce type d' extension a déjà été réalisée avec les DMI qui masquent au
développeur les ordres T=0 [VAND98].
Une application multi-partenaires peut être illustrée par l' exemple d' une application de
paiement (figure 4). Les 5 partenaires sont l' acheteur (A) qui est le porteur de la carte (C), la
banque (BA) qui a émis la carte de l' acheteur, le vendeur (V) chez lequel A effectue un achat et
la banque (BV) de ce dernier.
On peut schématiser la confiance dans cette application comme suit :
Carte Carte
Acheteur Acheteur Acheteur Acheteur
Vendeur Vendeur
(porteur) (porteur)
La première façon de résoudre l' absence de confiance entre l' acheteur et le vendeur est de
recourir à un tiers de confiance qui peut être une des deux banques ou une organisation
indépendante (comme VISA ou Amex). Cependant, parmi les solutions reposant sur les tiers de
confiance, il n' existe pas toujours d' interaction forte avec l' acheteur. Si aucun mécanisme fort de
confirmation n' est proposé à l' acheteur, ce dernier ne peut empêcher une fraude éventuelle du
vendeur qui peut essayer de falsifier le montant de la transaction, ou encore tenter de reproduire
l' opération.
Une autre solution est de donner à la carte le rôle de coordinateur du paiement. Puisque la
carte fait partie des espaces de confiance de chaque partenaire, ce rôle semble assez naturel. Cela
permet de garantir le montant de l' achat, à condition de prendre comme hypothèse que les saisies
et affichages sur le terminal ne sont pas frauduleuses. Ceci exclut également une possible
reproduction de l' opération, à l' insu de l' acheteur, puisque l' achat ne peut pas être mené en
l' absence de la carte. Nous développerons dans la suite les principes de mise en œuvre de
mécanismes transactionnels qui peuvent être placés au dessus de cette coordination.
Dans le cas des terminaux anonymes, le problème de confiance est différent. Prenons
comme exemple l' accès à des services distants. On considère que l' usager (que nous confondrons
ici avec le porteur) est abonné à des services distribués sur Internet, les informations d' accès et de
personnalisation étant stockées sur la carte.
Une méthode simple pour s' identifier auprès d' un service auquel un utilisateur s' est
abonné est d' utiliser un couple identificateur,
( mot de passe). Si l' on ne considère pas les
problèmes de sécurité liés au transport de l' information sur le réseau, cette solution semble
satisfaisante si l' utilisateur peut avoir confiance dans le terminal à partir duquel il souhaite
accéder au service. Cependant, cette approche se révèle inexploitable lorsque le niveau de
sécurité du terminal n' est pas connu. Si un "cheval de Troie" sur le terminal surveille les
opérations qui y sont effectuées, le couple (identificateur, mot de passe) peut alors être aisément
récupéré et utilisé de manière frauduleuse, à l' insu de l' utilisateur.
L' apport de l' approche pilote permet d' apporter une réponse plus satisfaisante dans ce cas
puisqu' elle s' abstrait du niveau de sécurité du terminal. Considérer la carte comme le pilote de
l' application revient ici à laisser la carte initier et instaurer le dialogue avec le service distant, en
n' utilisant le terminal que comme une passerelle vers le réseau. Pour être plus précis, le terminal
ne fait que transmettre des requêtes signées ou confidentielles dans les 2 sens, sans pouvoir à
priori connaître la nature des opérations qui sont en train d' être menées. Il reste cependant
quelques problèmes à résoudre, que nous pouvons soulever grâce à l' exemple ducybercafé.
Premièrement, comment garder confidentielles les données sensibles qui doivent être saisies par
l' utilisateur du service : c' est le cas notamment du mot de passe ou du PIN code. Enfin, comment
s' assurer de l' intégrité des affichages sur le terminal : par exemple des prix, … Des travaux sont
actuellement en cours pour apporter des solutions à ces problèmes.
Service
Appli.
Recouvrable
Services Carte
IIOP
OTS
O.T.S.
La nécessité de pouvoir traiter des transactions à l' intérieur des cartes à microprocesseur,
vient principalement de l' émergence de nouvelles applications dans le monde des cartes . On peut
notamment citer :
• les applications multi-services carte, où plusieurs services, s' exécutant sur une ou
plusieurs cartes, coopèrent pour former une application,
• les applications sur plusieurs connexions de la carte : de part sa nature, les connexions
de la carte dans son terminal sont courtes et éphémères. Il est donc intéressant de
pouvoir gérer l' exécution d' une application sur plusieurs connexions de la carte,
• et en particulier, la participation de la carte à des transactions distribuées sur un
réseau non sécurisé.
Jusqu' à maintenant, nous avons principalement étudié les possibilités, pour une carte, de
participer à une transaction en tant que fournisseur de service sécurisé (un prototype basé sur
l' architecture CORBA, munie de son service transactionnel OTS[OMG97] a été réalisé dans ce
sens), ou en tant que client.
L' approche d' une carte pilote, présentée dans la partie précédente, nous offre la possibilité
de donner aux cartes à microprocesseur un rôle plus important dans le traitement des transactions
: celui de coordinateur de la validation distribuée, supportant un algorithme du type de la
validation à deux phases [OSI96].
Cette approche a comme principal avantage de sécuriser la validation des transactions. Le
moteur de validation est embarqué dans la carte qui est de confiance , ce qui permet d' éviter la
répudiation du protocole de validation par un des composants.
4 Conclusion
Dans cet article, nous avons présenté l' intérêt de considérer la carte à microprocesseur
comme un organe central et moteur dans les applications distribuées afin de répondre aux
nouveaux besoins de ces applications qui sont la Sécurité, la Mobilité et la Disponibilité.
Cependant, nous avons également vu qu' il reste des problèmes en suspens auxquels le
seul concept d' une carte pilote ne peut pas apporter de réponse. Il faut donc que le
développement de ce nouveau rôle, plus central, de la carte soit accompagné d' autres outils,
d' autres éléments sécurisants, afin de pouvoir tirer parti de cette approche (sécurisation des
périphériques d' Entrées/Sorties).
L' intégration des cartes à microprocesseur dans les systèmes distribués est un premier pas
pour la prise en compte, par ces systèmes, de nouveaux composants informatiques qui offrent de
nouvelles perspectives en terme de gestion de la mobilité des objets.
Un exemple de tels composants sont les étiquettes électroniques, qui peuvent être lues et
écrites à distance (c' est à dire sans contact physique avec un terminal). Il va donc devenir
possible d' exécuter des transactions largement distribuées sur les objets étiquetés : si on prend
l' exemple d' achat de stock (un peu comme cela se fait aux halles de Rungis), chaque marchandise
pourra disposer de sa propre étiquette électronique, et sera donc capable de participer
directement à la transaction de vente (échange de titre de propriété).
5 Bibliographie
[C98] IEEE Communications Magazine, july 1998, Vol. 36 No. 7, « Mobile Software
Agents for Telecommunications »
[CARL98] David Carlier, "Représentation permanente, coordonnée par une carte à
microprocesseur, d' un utilisateur mobile", Thèse à l' université de Lille 1, janvier
1998.
[CARL97] David Carlier, Didier Donsez, "Permanent Network Representation for Mobile
User", OPODIS, International Conference on Principles Of Distributed Systems,
France, décembre 1997.
[GRIMO] Edward Gordons, Georges. Grimonprez, "A Card as element of a distributed
database", IFIP WG 8.4 Workshop, Ottawa, 1992.
[LECO98] Sylvain Lecomte, "COST STIC : Des Cartes Orientés Services Transactionnels et
des Systèmes Transactionnels Intégrant des Cartes" Thèse à l' université de Lille 1,
novembre 1998.
[ISO87] International Standard Organisation (ISO), "Cartes d' identification – Cartes à
circuits intégrés à contacts – Partie 1 : Caractéristiques physiques", Norme ISO
7816-1, 1987.