SYSTEME POUR TRANSACTIONS SECURISEES PAR TELEPHONE
DESCRIPTION
Domaine technique
La présente invention a pour objet un système pour transactions sécurisées par téléphone. Elle trouve une application dans le télépaiement, le télévote, les jeux, les paris à distance, etc..
Etat de la technique
Les télétransactions, ou transactions à distance, se sont beaucoup développé ces dernières années. Elles utilisent le réseau téléphonique reliant un terminal téléphonique à un serveur. Ce dernier envoie des messages vocaux à l'usager, lequel répond en utilisant les touches du clavier du terminal téléphonique. Les signaux adressés en retour au serveur sont généralement du type DTMF (Dual Tone Multi-Frequency) . Dans des systèmes plus évolués, le serveur est capable d'interpréter certains mots prononcés par l'usager, pris dans un vocabulaire restreint.
Dans cette utilisation particulière du téléphone, il apparaît un besoin impérieux de sécurité lorsque la transaction est de type monétaire (télépaiement) et, d'une manière générale, lorsque des risques de fraude sont à craindre.
Pour répondre à ce besoin, on peut équiper un terminal téléphonique d'une prise supplémentaire informatique, du genre RS 232, et connecter à cette prise un lecteur de carte à microprocesseur (appareil désigné généralement par l'abréviation LECAM) , ce lecteur comprenant un logiciel et des moyens appropriés d'émission et de réception de données à destination et
en provenance du serveur. Dans ce lecteur de carte, on insère une carte à microprocesseur (dite encore carte à puce), capable d'accomplir des fonctions sécuritaires, comme la vérification d'un code confidentiel, 1'authentification d'une entité extérieure, l'aide à 1'authentification de la carte par une entité extérieure, l'enregistrement d'un droit, etc. Ces fonctions mettent en jeu des algorithmes utilisant des clés cryptographiques, des tirages aléatoires de nombres, des comparaisons, etc..
Si ces moyens donnent satisfaction, ils présentent néanmoins l'inconvénient de nécessiter des terminaux téléphoniques munis d'une prise périphérique informatique. Or, les terminaux téléphoniques ordinaires ne sont généralement pas équipés de telle prise. Il faut donc changer de terminal pour pouvoir mettre en oeuvre de telles transactions sécurisées.
La présente invention a justement pour but de remédier à cet inconvénient en offrant un moyen simple d'effectuer des télétransactions avec les terminaux téléphoniques habituels.
Exposé de l'invention A cette fin, l'invention propose d'associer au terminal téléphonique habituel des moyens de sécurisation constitués par un boîtier portable muni d'un clavier à touches, d'un écran d'affichage et d'un émetteur de signaux acoustiques apte à coopérer avec le microphone du terminal téléphonique, ce boîtier pouvant accueillir une carte à microprocesseur apte à exécuter des fonctions sécuritaires. Cette carte est reliée au clavier, à l'écran et à l'émetteur de signaux acoustiques.
L'échange d'informations nécessaire à la sécurisation d'une transaction s'effectue alors de manière différente selon le sens des informations : dans le sens carte-serveur, c'est l'émetteur acoustique du boîtier et le microphone du terminal téléphonique qui assurent la liaison par le biais des signaux acoustiques émis par le boîtier ; dans le sens serveur- carte, c'est le haut-parleur du terminal téléphonique, l'utilisateur et le clavier à touches qui assurent la liaison, l'utilisateur frappant le message vocal délivré par le haut-parleur sur le clavier pour que ce message soit transmis à la carte.
On voit donc que l'utilisateur est l'un des maillons de la chaîne de transmission, dans le sens serveur-carte. Dans l'autre sens (carte-serveur), la transmission est automatique. Mais cette intervention manuelle de l'opérateur ne pose pas de problème car, dans la pratique, le message transmis par le serveur est généralement court, quelques chiffres (4 par exemple) suffisant le plus souvent à assurer les fonctions de sécurité.
On observera que des boîtiers munis d'un émetteur acoustique DTMF apte à coopérer avec un terminal téléphonique existent déjà, notamment pour composer automatiquement des numéros de téléphone. Si ces boîtiers contiennent des mémoires, ils ne contiennent pas de cartes à microprocesseur capables de mettre en oeuvre des algorithmes de sécurité et ils ne requièrent pas l'intervention de l'utilisateur dans l'un des sens de transmission.
Le boîtier portatif utilisable dans la présente invention peut être d'un type particulier que le déposant désigne par CARTULETTE (marque déposée) . Il
s'agit d'un boîtier contenant une carte à puce, et qui est équipé d'un écran et d'un clavier. La CARTULETTE sert, notamment, à vérifier le contenu d'une carte à puce.
Brève description des dessins
- la figure 1 montre le schéma général du système de l'invention,
- les figures 2a et 2b montrent le boîtier en vue de face et en vue de côté,
- la figure 3 montre l'organisation fonctionnelle du boîtier,
- la figure 4 montre un premier diagramme d'échange de messages entre un serveur et une carte, - la figure 5 montre un deuxième diagramme d'échange de messages entre un serveur et une carte,
- la figure 6 montre un troisième diagramme d'échange de messages entre un serveur et une carte, - la figure 7 montre un quatrième diagramme d'échange de messages entre un serveur et une carte.
Exposé détaillé de modes de réalisation On voit, sur la figure 1, un système conforme à l'invention et comprenant un terminal téléphonique 10, relié par un réseau téléphonique 20 à un serveur 30, ainsi qu'un boîtier portatif 40.
Le terminal 10 comprend classiquement un poste 12 avec un clavier à touches 14 et un combiné 16 muni d'un haut-parleur 17 et d'un microphone 18.
A ce terminal 10 est associé un boîtier portatif 40 comprenant un clavier 42, un écran d'affichage 44 et une carte à microprocesseur 48 qui, pour plus de clarté, est représentée en léger dépassement mais qui,
en fonctionnement normal, est complètement introduite dans le boîtier. Le boîtier 40 comprend, par ailleurs, à l'arrière, des moyens pour émettre des signaux acoustiques (comme on le verra sur la figure 2a) . En fonctionnement, le boîtier est donc plaqué sur le microphone 18 du combiné téléphonique 16, les moyens d'émission sonore étant disposés en regard du microphone.
La figure 2a montre le boîtier en vue de face et la figure 2b montre ce même boîtier en vue de profil. Il ne s'agit naturellement que d'un exemple de réalisation. Sur la face avant, les touches A, B, C, D, E sont des touches de fonctions spécifiques de l'application envisagée : télépaiement, télévote, jeux, paris, ... La touche Ann sert à annuler les caractères frappés et affichés sur l'afficheur ; la touche Val sert à valider les caractères frappés, et à faire progresser le dialogue utilisateur-boîtier. La touche Envoi sert à provoquer l'envoi d'un message vers le serveur. En pratique, il faudra que l'émission ne commence qu'après quelques secondes, pour permettre à l'utilisateur de placer le boîtier 40 sur le microphone du combiné téléphonique.
Sur la figure 2b, on voit, à l'arrière du boîtier, des moyens 46 aptes à émettre des signaux acoustiques, par exemple de type DTMF.
La figure 3 montre l'organisation fonctionnelle du boîtier et de sa carte. On y trouve le clavier 42, l'écran d'affichage 44, les moyens 46 d'émission de signaux acoustiques DTMF. On y voit aussi un microprocesseur 50, une horloge 52, un connecteur de carte 54. Un bus 56 relie tous ces organes entre eux. Une protection physique 58 .peut entourer le microprocesseur 50 et l'horloge 52.
Le microprocesseur comprend des mémoires de programme à lecture seule (ROM) et des mémoires à accès direct (RAM) . L'horloge sert dans les cas où il faut horodater une opération effectuée par l'utilisateur pour permettre des vérifications ultérieures sur la date et l'heure de cette opération. Pour éviter certaines fraudes, il convient de faire en sorte qu'il soit impossible d'avancer ou retarder l'horloge. C'est le rôle de la protection physique 58 disposée autour de l'ensemble microprocesseur-horloge.
Avant de décrire quelques exemples de télétransactions pouvant être effectuées avec le système de l'invention, on va rappeler quelques fonctions sécuritaires que peut remplir une carte à puce classique. De telles cartes à puce sont généralement introduites dans un terminal muni d'un clavier et d'un afficheur, comme c'est le cas, par exemple, pour les billetteries. Dans ce qui suit, on désignera par k une clé cryptographique, sachant que chaque carte et chaque fonction sécuritaire peut avoir une clé spécifique. Mais pour simplifier, on supposera qu'il n'y a qu'une seule clé k. Une carte à puce disposée dans un terminal peut accomplir au moins les cinq fonctions suivantes : a) contrôle d'un code confidentiel (CC)
Le terminal envoie à la carte un code confidentiel CC. La carte vérifie que le code reçu est identique au code mémorisé. Si ce n'est pas le cas, la carte positionne un indicateur interne pour ne pas accepter d'autres ordres. Un comptage permet ainsi un blocage définitif, si trois codes faux ont été présentés successivement. Dans tous les cas, une réponse est envoyée à l'extérieur.
b) authentification de la carte et de tout ou partie de son contenu par une entité externe
Le terminal demande à la carte d'authentifier son contenu M, défini par exemple par une adresse et par une longueur. Le terminal envoie également (pour éviter des fraudes par rejeu) , un aléa x. La carte calcule y=Fk(M,x), où k est une clé dédiée à cette fonction de sécurité, et F est la fonction cryptographique de la carte (algorithme DES par exemple) . c) authentification de la carte et de données externes L'opération est analogue à l'opération b) , où l'on ajoute au contenu M une donnée T fournie en même temps que x à la carte. d) authentification par la carte d'une entité distante L'entité extérieure demande à la carte un aléa. La carte calcule un aléa x à l'aide d'un générateur pseudo-aléatoire et l'envoie à l'entité extérieure. Cette entité effectue un calcul y=Fk(x), où k est la clé dédiée à cette fonction. L'entité extérieure connaît cette clé si elle est authentique. L'entité envoie le résultat "y" du calcul à la carte pour vérification. La carte effectue le même calcul y'=Fk(x), où k est la clé dédiée à cette fonction, clé qu'elle connaît également. La carte vérifie alors que le résultat "y" qu'elle a trouvé est identique au résultat "y" que l'entité extérieure lui avait transmis. La carteque envoie une réponse en conséquence. Si le test est négatif, la carte peut interdire les ordres qui suivent. e) enregistrement d'un droit dans la carte, conditionné à l'authentification de l'entité extérieure à la carte
L'entité extérieure demande à la carte un aléa. La carte calcule un aléa x à l'aide d'un générateur pseudo-aléatoire et l'envoie à l'entité extérieure.
L'entité extérieure effectue un calcul y=Fk(D,x), où k est la clé dédiée à cette fonction et D un droit qu'elle connaît, si elle est authentique. La connaissance de la clé nécessite en général la connaissance, par l'entité, du numéro de la carte, pour qu'elle puisse reconstituer la clé spécifique à cette fonction. Le droit D est une information indiquant à la carte qu'il faut, par exemple, modifier un certain nombre d'octets, à telle adresse, et la nouvelle valeur de ces octets. C'est ce genre de fonctions que l'on trouve par exemple lorsqu'il s'agit de recharger un porte-monnaie. L'entité envoie "y" et D à la carte pour exécution. La carte effectue le même calcul et trouve un résultat y'=Fd(D,x) où k est la clé dédiée à cette fonction, clé que la carte connaît également. La carte vérifie que y'=y et, dans l'affirmative, exécute l'ordre de mise à jour, puis envoie une réponse en conséquence.
Toutes ces fonctions classiques peuvent être reprises et/ou adaptées dans le cas de l'invention : a) Contrôle d'un code confidentiel
Le code en question est saisi sur le clavier du boîtier et présenté à la carte contenue dans le boîtier. L'écran affiche un message qui est fonction de la réponse fournie par la carte. La mise en oeuvre de cette fonction n'est donc vraiment pas spécifique de l'invention. b) Authentification de la carte et de son contenu Le serveur vérifie que la carte avec laquelle la communication est établie est authentique.
Un exemple où cette fonction est requise est une transaction bancaire, où M est le montant de la transaction enregistrée dans la mémoire de la carte. Cette transaction est illustrée sur la figure 4. Sur
cette figure, comme sur les suivantes, la transmission d'informations dans le boîtier est symbolisée par une flèche en trait continu, ce qui signifie que l'utilisateur utilise le clavier pour introduire ladite information. Les autres transmissions d'information sont représentées par des flèches en trait interrompu et représentent des signaux acoustiques (DTMF) .
Les opérations mises en oeuvre sur la figure 4 sont les suivantes : - le serveur envoie un message vocal x ;
- l'utilisateur tape le message x sur le clavier du boîtier ;
- le boîtier demande à la carte qu'elle contient d'effectuer un certain calcul propre à la transaction M, laquelle est repérée par une adresse aM dans la mémoire de la carte ; le boîtier transmet donc M et aM à la carte ;
- la carte calcule une quantité "y" égale à Fk(M,x) où k est la clé et F une fonction cryptographique paramétrée par k ;
- la carte envoie "y" au boîtier, qui l'émet par un signal acoustique directement vers le serveur sans intervention de l'utilisateur ; le serveur vérifie que "y" est bien égale à la quantité Fk(M,x) qu'il a pu calculer par ailleurs, si l'égalité est obtenue le serveur envoie un message sonore d'accord m à destination de l'utilisateur. c) Authentification de la carte et de données externes Un exemple d'utilisation de cette fonction est le cas où le serveur veut authentifier qu'une action a bien eu lieu dans le boîtier de l'utilisateur avant un instant donné D. Cette action a été mémorisée dans la carte à un instant T=T1. Il peut s'agir d'un vote par exemple, ou d'un pari, ou d'un jeu. La quantité M
contient donc le résultat de cette action et Tl l'instant indiqué par l'horloge. On suppose que le boîtier n'a pas forcément la même heure que le serveur, en raison, par exemple, d'une désynchronisation des horloges. Le serveur va donc tester les durées relatives au boîtier et au serveur entre l'instant du vote et l'instant de la télétransaction. Lors de la transaction avec le serveur, l'indication de l'horloge du boîtier est T=T2 ; celle du serveur est D' . Le serveur testera alors, après vérification du calcul effectué dans la carte, que la durée T2-T1 est supérieur à D'-D.
La suite des opérations est illustrée sur la figure 5. Elle est la suivante :
- le serveur envoie un message vocal x ;
- l'utilisateur tape x sur le clavier ;
- le boîtier demande à la carte d'effectuer un calcul propre à M d'adresse aM, et transmet donc à la carte x, aM et T ;
- la carte calcul y=Fk(M,T,x) ,
- le boîtier émet y, M, T par signaux acoustiques ;
- le serveur vérifie que le "y" reçu est bien égal à la quantité Fk(M,T,x) précalculée ; - en cas d'accord, le serveur envoie un message d'accord m à destination de l'utilisateur. d) Authentification par la carte d'une entité distante
L'utilisateur veut vérifier que le serveur est authentique, c'est-à-dire qu'il a été habilité par une autorité supérieure qui lui a communiqué la clé secrète k, laquelle est contenue également dans la carte. Le serveur montre qu'il connaît cette clé en effectuant le même calcul que la carte, sur un nombre x tiré aléatoirement par celle-ci. Le résultat obtenu par le serveur, soit y', est envoyé à l'utilisateur, qui le
tape sur le clavier. Le boîtier peut alors informer l'utilisateur du succès ou de l'échec de 1'authentification du serveur.
Les opérations correspondantes sont illustrées sur la figure 6 :
- l'utilisateur frappe sur la touche correspondant à la focntion "authentification du serveur" ;
- le boîtier demande à la carte de tirer un nombre aléatoire ;
- la charte choisit un nombre x aléatoire, et transmet ce nombre au boîtier ;
- le boîtier émet un signal sonore permettant de transmettre x au serveur ; - le serveur calcule un nombre "y" égal à Fk(x,D) ;
- le serveur transmet par message vocal le nombre y ;
- l'utilisateur frappe "y" sur le clavier ;
- le boîtier transmet "y" à la carte et demande de vérifier avec le nombre y' calculé par la carte avec y'=Fk(D,x) ;
- la carte commande l'affichage sur l'écran du résultat de la comparaison : correct ou incorrect.
En variante, cette fonction pourrait être aussi réalisée en utilisant la fonction b) de la carte : le boîtier demanderait à la carte d'effectuer le même calcul que celui qui a été demandé au serveur, et vérifierait elle-même l'égalité des deux résultats (au lieu que ceci soit fait dans la carte) . e) Inscription d'un droit dans la carte
Il s'agit d'inscrire dans la carte une information sensiblen par exemple un droit D, que seul un serveur habilité à le droit d'écrire ou de mettre à jour, et ceci grâce à une clé appropriée. Un exemple de cette
fonction est le rechargement d'une carte porte-monnaie. Les opérations sont illustrées sur la figure 7 :
- l'utilisateur frappe sur le clavier la touche appropriée à cette fonction ; - le boîtier demande à la carte de tirer un nombre aléatoire ;
- la carte tire un aléa x et le transmet au boîtier ;
- le boîtier envoie vers le serveur, par les signaux acoustiques, à la fois x et le droit D ;
- le serveur calcule un nombre "y" égal à Fk(x,D) et envoie "y" par message vocal ;
- l'utilisateur tape "y" sur le clavier ;
- le boîtier demande à la carte une mise à jour du droit D et lui transmet D et y ;
- la carte calcule y'=Fk(D,x) et vérifie si "y'" est égal à "y" ; dans l'affirmative la carte met à jour D et renvoie une réponse au boîtier ;
- le boîtier affiche la réponse : correct (ou incorrect) .