Sécurisation d'échanges de données entre des contrôleurs
La présente invention concerne la sécurisation d'échange de données entre deux contrôleurs.
Pour sécuriser le dialogue entre les deux contrôleurs, une solution connue consiste à prémémoriser une clé mère dans le premier contrôleur, tel que par exemple celui d'un module de sécurité dans un terminal point de vente, et à pré-mémoriser dans des deuxièmes contrôleurs de cartes à puce d'usager, tels que des cartes de crédit ou des cartes de porte-monnaie électronique, des clés filles. La clé fille d'un deuxième contrôleur résulte de l'application de la clé mère et d'un numéro de série du deuxième contrôleur, la carte à puce, à un algorithme de diversification de clé.
Cependant, l'invention a trait plus particulièrement à un autre contexte dans lequel deux contrôleurs émanent de deux personnes morales distinctes qui a priori ne sont pas assez liées pour que l'une impose à l'autre des données de sécurité. Selon un exemple auquel on se référera dans la suite, l'une des personnes morales est un opérateur d'un réseau de radiotéléphonie qui commercialise des cartes à puce d'identité amovibles SIM (Subscriber Identity Mobile) dans des terminaux radiotelephoniques mobiles et contenant chacune un "premier" contrôleur. L'autre personne morale est un éditeur de cartes à puce d'application, dites cartes additionnelles, contenant chacune un "deuxième" contrôleur, qui sont introduites dans des lecteurs de carte additionnelle des terminaux.
Dans ce cas, l'usager de chaque terminal peut acquérir différentes cartes additionnelles émanant de différents émetteurs de cartes, et contenant a priori chacune plusieurs applications. L'opérateur téléphonique commercialisant les cartes SIM est incapable de prévoir, lorsqu'elles sont paramétrées, l'introduction de toutes les clés mères dans chaque carte SIM, relatives aux différentes cartes additionnelles ou aux applications qu'elles contiennent. Il est donc impossible de prémémoriser toutes les clés mères des cartes additionnelles dans les cartes d'identité SIM.
Outre l'aspect pratique de la mémorisation des clés mères dans toutes les cartes SIM, il y a un risque très important à confier la clé mère à tous les utilisateurs. En effet, en matière de sécurité, si une carte est "cassée"/ c'est-à-dire si toutes les clés qu'elle contient sont obtenues, en aucun cas l'ensemble des moyens de sécurisation doit être menacé. Ce principe est précisément bafoué si les cartes SIM contiennent la clé mère. L'obtention d'une seule de ces clés mères associée à une seule des cartes SIM permettrait de fabriquer des clones de n'importe quelle carte additionnelle.
L'invention vise à pallier les insuffisances de la technique antérieure au moins pour le contexte particulier ci -dessus, de manière à sécuriser un échange de données entre les contrôleurs d'une carte quelconque et d'une carte additionnelle quelconque.
A cette fin, un procédé pour sécuriser des échanges de données entre des premier et deuxième contrôleurs, le premier contrôleur gérant des communications vers un réseau de télécommunications
pour des applications implémentées dans le deuxième contrôleur, le deuxième contrôleur contenant un identificateur de contrôleur et des clés . des applications déduites d'une clé mère, est caractérisé par les étapes suivantes pour chaque application sélectionnée dans le deuxième contrôleur : transmettre l'identificateur du deuxième contrôleur et un identificateur de l'application sélectionnée depuis le deuxième contrôleur vers un moyen de sécurisation distant à travers le premier contrôleur, faire correspondre à 1 ' identificateur de deuxième contrôleur une clé mère dans le moyen de sécurisation, déterminer la clé de l'application sélectionnée en fonction de l'identificateur d'application sélectionnée transmis, la clé mère correspondante et de 1 ' identificateur de deuxième contrôleur dans le moyen de sécurisation, transmettre au moins un paramètre dépendant de la clé d'application déterminée depuis le moyen de sécurisation distant au premier contrôleur, et utiliser le paramètre dans au moins le premier contrôleur pour sécuriser au moins un échange de données relatif à l'application sélectionnée entre les premier et deuxième contrôleurs .
Le premier contrôleur, tel que celui d'une carte d'identité SIM, est personnalisé en ligne pour chaque utilisation d'une carte additionnelle contenant le deuxième contrôleur, c'est-à-dire pour chaque application, par le paramètre dépendant de la clé déterminée de l'application sélectionnée. La carte SIM n'est pas personnalisée pour échanger des données avec une carte additionnelle prédéterminée et ne contient pas préalablement une clé prédéterminée,
mais est provisoirement personnalisée pour échanger des données avec une carte additionnelle dont l'émetteur est reconnu dans le moyen de sécurisation. Selon des première et deuxième réalisations, le paramètre est la clé d'application déterminée elle- même qui est transmise sous forme chiffrée depuis le moyen de sécurisation distant vers le premier contrôleur. Même dans ces réalisations, la clé n'est pas utilisée directement pour sécuriser les échanges de données entre les contrôleurs, mais est diversifiée à chaque session de l'application, ou bien à chaque transmission d'une unité de données de l'un vers l'autre des contrôleurs, comme on le verra dans la description détaillée de l'invention. Le moyen de sécurisation distant est, selon la première réalisation, un serveur dans ledit réseau de télécommunications et contient une table pour faire correspondre des ensembles d'identificateurs de deuxième contrôleur à des clés mères . Selon la deuxième réalisation ou une troisième réalisation, le moyen de sécurisation distant comprend un premier serveur inclus dans le réseau de télécommunications et contenant une table pour faire correspondre des ensembles d'identificateurs de deuxième contrôleur à des adresses de deuxièmes serveurs, et des deuxièmes serveurs reliés au premier serveur et associés respectivement à des ensembles d'identificateurs de deuxième contrôleur correspondant à des clés mères . Le deuxième serveur est adressé par le premier serveur en réponse à l'identificateur du deuxième contrôleur transmis, détermine la clé de l'application sélectionnée et transmet au moins ledit paramètre au premier contrôleur à travers le premier serveur.
Selon une première variante, la clé d'application est utilisée dans le premier contrôleur pour participer à une authentification de l'un des premier et deuxième contrôleurs par l'autre contrôleur, puis à une authentification de l'autre contrôleur par ledit contrôleur en réponse à l'authenticité dudit un contrôleur, avant d'exécuter une session de l'application sélectionnée seulement en réponse à l'authenticité dudit autre contrôleur. Selon une deuxième variante, la clé d'application est utilisée dans le premier contrôleur pour déterminer une clé de chiffrement en dépendance d'un premier nombre aléatoire fourni par le deuxième contrôleur au premier contrôleur et d'un deuxième nombre aléatoire, lequel est fourni par le premier contrôleur au deuxième contrôleur pour déterminer la clé de chiffrement dans le deuxième contrôleur, de
" manière à chiffrer et/ou signer une unité de données avec la clé de chiffrement à transmettre de l'un vers , l'autre des contrôleurs.
Selon la troisième réalisation, au lieu de la clé de l'application sélectionnée, plusieurs ensembles de paramètres dépendant de la clé déterminée et ne comprenant pas celle-ci sont transmis par le deuxième serveur au premier contrôleur. La clé n'est pas ainsi transmise au premier contrôleur, ce qui augmente la sécurisation, et ce ne sont que des couples d'un nombre et d'un paramètre dépendant de ce nombre et de la clé qui sont transmis.
D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante de plusieurs
réalisations préférées de l'invention en référence aux dessins annexés correspondants dans lesquels :
- la figure 1 est un bloc-diagramme d'un système de réseaux pour la mise en œuvre du procédé de sécurisation de l'invention depuis un terminal mobile ;
- la figure 2 est un bloc-diagramme fonctionnel détaillé d'un terminal radiotéléphonique mobile muni d'une carte à puce additionnelle ; - la figure 3 est un algorithme de sécurisation selon une première réalisation de 1 ' invention ; la figure 4 est un algorithme d ' authentification mutuelle de cartes pour la première réalisation ou une deuxième réalisation de 1 ' invention ;
- la figure 5 est un algorithme de détermination de clé de chiffrement d'unité de données pour les première et deuxième réalisations de l'invention ;
- la figure 6 est un algorithme de sécurisation selon la deuxième réalisation de l'invention ;
- la figure 7 est un algorithme de sécurisation selon une troisième réalisation de 1 ' invention ; la figure 8 est un algorithme d ' authentification mutuelle de cartes pour la troisième réalisation de 1 ' invention ; et
- la figure 9 est un algorithme de détermination de clé de chiffrement d'unité de données pour la troisième réalisation.
On se réfère, à titre d'exemple, au contexte d'un réseau de télécommunications du type réseau de radiotéléphonie cellulaire numérique RR, comme montré à la figure 1. Un terminal radiotéléphonique mobile TE du réseau de radiotéléphonie comprend une première carte à puce SIM constituant un module d'identité à
microcontrôleur amovible du terminal, ainsi qu'une deuxième carte à puce CA, dite carte applicative additionnelle. La carte CA est logée de manière amovible dans un lecteur additionnel de carte LE intégré dans le terminal, ou éventuellement distinct du terminal et relié à celui-ci.
Dans - la figure 1, le réseau de radiotéléphonie RR est schématisé par un commutateur du service mobile MSC pour la zone de localisation où le terminal mobile TE se trouve à un instant donné, et une station de base BTS reliée au commutateur MSC par un contrôleur de station de base BSC et au terminal TE par voie radio. Les entités MSC, BSC et BTS constituent principalement un réseau fixe à travers lequel sont transmis notamment des messages de signalisation, de contrôle, de données et de voix. L'entité principale du réseau RR susceptible d' interagir avec la carte SIM dans le terminal TE est le commutateur du service mobile MSC associé à un enregistreur de localisation des visiteurs VLR et relié à au moins un commutateur téléphonique à autonomie d'acheminement CAA du réseau téléphonique commuté RTC. Le commutateur MSC gère des communications pour des terminaux mobiles visiteurs, y compris le terminal TE, se trouvant à un instant donné dans la zone de localisation desservie par le commutateur MSC. Le contrôleur 'de station de base BSC gère notamment l'allocation de canaux aux terminaux mobiles visiteurs, et la station de base BTS couvre la cellule radioélectrique où le terminal MS se trouve à l'instant donné.
Le réseau de radiotéléphonie RR comprend également un enregistreur de localisation nominal HLR relié aux enregistreurs VLR et analogue à une- base de données. L'enregistreur HLR contient pour chaque
terminal radiotéléphonique notamment l'identité internationale IMSI (International Mobile Subscriber Identity) de la carte à puce SIM (Subscriber Identity Mobile), dite carte d'identité, incluse dans le terminal TE, c'est-à-dire l'identité de l'abonné possesseur de la carte SIM, le profil d'abonnement de 1 ' abonné et le numéro de 1 ' enregistreur VLR auquel est rattaché momentanément le terminal mobile.
Le terminal radiotéléphonique mobile TE détaillé à la figure 2 comprend une interface radio 30 avec le réseau de radiotéléphonie RR, comprenant principalement un duplexeur de voies de transmission et de réception, des circuits de transposition de fréquence, des convertisseurs analogique-numérique et numérique-analogique, un modulateur et un démodulateur, et un circuit de codage et décodage de
" canal . Le terminal TE comprend également un circuit de codage et décodage de parole 31 relié à un microphone 310 et un haut-parleur- 311, un microprocesseur 32 associé à une mémoire non volatile de programmes EEPROM 33 et une mémoire de données RAM 34, et une interface entrée-sortie 35 desservant les cartes à puce SIM et CA, un clavier 36 et un afficheur graphique 37. Le microprocesseur 32 est relié par un bus BU à l'interface 30, au circuit 31, et aux mémoires 33 et 34 et" par un autre bus BS a l'interface entrée-sortie 35. Le microprocesseur 32 gère tous les traitements des données en bande de base que le terminal reçoit et transmet après transposition en fréquence, notamment relatifs aux couches de protocole 1, 2 et 3 du modèle ISO, et supervise des échanges de données entre le réseau RR à travers l'interface radio 30 et la carte SIM à travers l'interface entrée-sortie 35.
La carte à puce SIM est reliée à l'interface entrée-sortie 35 incluant au moins un lecteur de carte LE dans le terminal, et des prises périphériques du terminal mobile. Dans la carte à puce SIM est intégré un premier contrôleur comprenant principalement un microprocesseur 10, une mémoire 11 de type ROM incluant un système d'exploitation de la carte et des algorithmes de communication et d'application, une mémoire non volatile 12 de type EEPROM qui contient toutes les caractéristiques liées à l'abonné, notamment l'identité internationale de l'abonné IMSI, et une mémoire 13 de type RAM destinée essentiellement au traitement de données à recevoir du microcontrôleur 32 inclus dans le terminal et la deuxième carte CA et à transmettre vers ceux-ci.
Selon 1 ' invention, plusieurs logiciels sont préalablement inclus dans les mémoires ROM 11 et EEPROM 12 pour gérer des applications dans des cartes additionnelles CA. En particulier, l'algorithme du procédé de sécurisation selon l'invention montré à la figure 3, ou 6 , ou 7 est implémenté dans les mémoires 11 et 12. Des algorithmes d ' authentification AA1 et AA2 utilisés pour la sécurisation selon l'invention sont également implémentés dans les mémoires 11 et 12.
Comme la carte SIM Cl, la carte à puce additionnelle CA intègre un deuxième contrôleur comportant principalement un microprocesseur 20, une mémoire ROM 21 incluant un système d'exploitation de la carte CA et une ou plusieurs applications AP et les algorithmes d ' authentification AA1 et AA2 spécifiques à 1 ' invention, une mémoire non volatile 12 de type EEPROM, et une mémoire RAM 13 qui traite
des données à recevoir du microcontrôleur 32 et du processeur 10. La mémoire non volatile 22 contient en outre, selon l'invention, un identificateur de la carte CA constitué par un numéro de série NS déterminé par le fournisseur de la carte CA, et un identificateur respectif AID et une clé respective KA pour chaque application.
La carte CA est par exemple une carte bancaire, une carte de porte-monnaie électronique, ou une carte de jeux.
Les mémoires ROM et EEPROM 11, 12, 21 et 22 dans les cartes SIM et CA comprennent des logiciels de communication pour dialoguer d'une part avec le microprocesseur 32 du terminal TE, d'autre part entre les processeurs 10 et 20 à travers le terminal TE, c'est-à-dire à travers le microprocesseur 32 et l'interface entrée-sortie 36.
Pour dialoguer entre elles, la carte SIM et la carte additionnelle CA sont pro-actives afin de déclencher des actions dans le terminal mobile MS au moyen de commandes pré- ormatées suivant le protocole "T = 0" de la norme ISO 7816-3 et encapsulées selon la recommandation GSM 11.14 (SIM Toolkit) . Par exemple, le terminal TE interroge périodiquement pour recevoir des menus à afficher transmis par la carte. La recommandation précitée étend le jeu de commandes du système d'exploitation inclus dans la mémoire 11, 21 de la carte à puce SIM, CA pour mettre à disposition de l'autre carte CA, SIM des données transmises par la carte à puce CA, SIM.
Comme on le verra dans la suite, le terminal TE est considéré comme transparent à des échanges de données entre les cartes SIM et CA dans le cadre du procédé de sécurisation selon l'invention.
Typiquement, le contrôleur dans la carte additionnelle CA communique avec le terminal TE par l'intermédiaire d'échanges de commandes et réponses entre les contrôleurs dans les deux cartes SIM et CA, alors relayés par des échanges de commandes et réponses entre le contrôleur de la carte SIM et le terminal. Tous les échanges typiquement pro-actifs entre le terminal et la carte CA sont ainsi effectués à travers la carte SIM qui apparaît, pour le terminal, comme l'exécutant de chaque application sélectionnée dans la carte CA.
Pour les trois réalisations préférées du procédé de 1 ' invention, il est prévu un premier serveur spécialisé SO appartenant à l'opérateur du réseau de radiotéléphonie RR. Le serveur SO est par exemple un serveur de services de messages courts (Short Message Service Center) qui est relié au commutateur MSC du réseau de radiotéléphonie RR à travers un réseau d'accès RA, par exemple un réseau numérique à intégration de services RNIS. L'adresse ASO du serveur SO est prémémorisée dans la mémoire non volatile 12 de la carte SIM. Dans chaque message court établi par la carte SIM, l'identité IMSI y est introduite afin que le serveur SO puisse transmettre une réponse à la carte SIM malgré la mobilité du terminal TE, après avoir trouvé le couple VLR-MSC dans l'enregistreur de localisation nominale HLR.
La carte SIM et le serveur de messages courts SO dialoguent à travers un canal bidirectionnel de messages courts SMS (Short Message Service) . Le terminal TE est ainsi transparent aux messages courts entre la carte SIM et le serveur SO.
Selon une autre variante, le serveur SO peut être un serveur relié aux contrôleurs de station de
base BSC du réseau de radiotéléphonie RR à travers le réseau Internet et un réseau à commutation par paquets avec gestion de la mobilité et accès par voie radio GPRS (General Packet Radio Service) .
Selon une première réalisation montrée à la figure 3, le procédé de sécurisation de l'invention comprend des étapes principales E0 à E8. Lorsqu'il existe une relation de confiance entre l'opérateur du réseau de radiotéléphonie RR et le fournisseur d'applications liées a la carte additionnelle CA, le fournisseur de services a confié une clé mère KM à l'opérateur, laquelle clé mère a été prémémorisée dans le serveur de messages courts SO de l'opérateur. Initialement, il est supposé à une étape E0 que le terminal TE a été mis en marche par sollicitation d'un bouton marche-arrêt, et qu'un code confidentiel composé au clavier du terminal a été validé de manière à afficher un menu principal sur l'écran du terminal TE.
A l'étape suivante El, qui peut être quasi- simultanée avec l'étape E0 , le terminal TE vérifie qu'une carte additionnelle CA a été introduite dans le lecteur LE du terminal . Si la carte CA est présente dans le lecteur, le menu principal affiche soit le nom de la carte CA et/ou du fournisseur de celle-ci afin de sélectionner cet item pour afficher la liste des noms des applications AP contenues dans la carte CA, lorsque celle-ci en contient plusieurs, ce qui sera supposé dans la suite, soit directement la liste des applications pro-actives disponibles dans la carte, à l'étape suivante E2.
En variante, les caractéristiques précédentes de la carte additionnelle CA sont affichées après que la carte SIM ait validée à une étape intermédiaire E101
l'indicatif d'au moins un réseau de radiotéléphonie PLMN (Public Land Mobile Network) lu dans la carte additionnelle CA et accessible à travers la carte SIM et le réseau de radiotéléphonie RR. Si aucun des indicatifs de réseau de radiotéléphonie n'est reconnu par la carte SIM (étape E102), un message "carte additionnelle rejetée" est affiché sur l'écran du terminal et le procédé revient au menu principal, à 1 'étape E0. Si après l'étape El, ou E101, la carte additionnelle CA est considérée comme introduite et/ou validée, celle-ci transmet une liste d'identificateurs des applications pro-actives disponibles dans la carte CA afin de les afficher à l'étape E2. L'usager du terminal TE sélectionne une application pro-active AP parmi plusieurs applications pro-actives disponibles dans la carte CA, par exemple au moyen d'une touche ascenseur ou de navigation, et valide cette sélection. L'application pro-active sélectionnée dans le "deuxième" contrôleur dans la carte CA est désignée par AP dans la suite de la description.
La carte CA transmet alors à la carte SIM l'identificateur AID de l'application pro-active sélectionnée AP et un numéro de série NS de la carte CA, constituant un identificateur du contrôleur de la carte CA, lus dans la mémoire non volatile 22 à l'étape E3. Le processeur 20 dans la carte CA marque dans la mémoire 22 l'application pro-active sélectionnée AP par une correspondance entre 1 ' identificateur AID et une clé respective KA de 1 ' application.
A l'étape E , la carte SIM établit un message court contenant les paramètres reçus NS et AID et l'identité de carte IMSI.
A la réception du message court, le serveur SO mémorise temporairement l'identité IMSI, l'identificateur d'application sélectionnée AID et le numéro de série de carte NS, et recherche dans une table de correspondance une clé mère KM en correspondance avec le numéro de série NS transmis, ou bien avec un préfixe contenu dans le numéro de série, à l'étape E5. La clé mère particularise un ensemble de cartes additionnelles d'un même fournisseur de carte, correspondant en général à une plage de numéros de série de carte. La clé mère est diversifiée en des clés "filles" respectivement associées aux cartes additionnelles et aux applications proposées par la ou les cartes additionnelles du fournisseur. Si à l'étape E5, le serveur SO ne reconnaît pas le numéro de série NS, il transmet à la carte SIM un message de refus d'application sélectionnée de manière à l'annoncer à l'usager, par un message affiché du type "Application sélectionnée refusée", et à rompre la communication de la carte SIM avec le serveur SO, à l'étape E51.
Si a l'étape E5, une clé mère KM correspond au numéro de série NS de la carte additionnelle CA, le serveur SO détermine la clé "fille" KA correspondant à l'application sélectionnée AP en appliquant à un algorithme de détermination de clé d'application AL, l'identificateur AID de l'application sélectionnée AP, la clé mère correspondante KM et le numéro de série NS de la carte CA, à l'étape suivante E6. Cette procédure assure que la clé applicative sera différente pour chaque carte et chaque application d'une même carte. En variante, la clé fille KA est établie en deux étapes, d'abord par rapport au numéro de série NS et la clé mère, puis par rapport à l'identificateur d'application sélectionnée AID, ou
inversement. La clé "fille" KA ainsi déterminée est ensuite chiffrée en une clé chiffrée KAC à l'étape E7, laquelle est transmise dans un message court adressé à la carte SIM dans le terminal TE, en fonction de l'identité IMSI précédemment mémorisée. La carte SIM déchiffre la clé KAC en la clé KA à l'étape E8 et la mémorise afin d'aborder une authentification mutuelle des cartes SIM et CA, ou bien une détermination de clé de chiffrement dans les cartes SIM et CA, décrite ci-après en référence à la figure 4 ou 5.
L ' authentification mutuelle déclenchée par la carte SIM comprend, selon la réalisation illustrée a la figure 4, une première authentification Al de la première carte SIM par la deuxième carte CA, puis en réponse à l'authenticité de la carte SIM, une deuxième authentification A2 de la deuxième carte CA par la première carte SIM. Selon une autre variante de l'invention, l'ordre des authentifications est inversé : 1 ' authentification A2 de la carte CA par la carte SIM est d'abord effectuée, puis en réponse à l'authenticité de la deuxième carte, 1 ' authentification Al de la carte SIM par la carte CA est ensuite effectuée.
Selon encore d'autres variantes, 1 ' authentification est seulement la première ou la deuxième authentification Al ou A2.
La première authentification Al assure à la carte additionnelle Cl que la clé "fille" KA de l'application sélectionnée AP a bien été déterminée par le réseau RR, c'est-à-dire par le serveur SO . La première authentification Al comprend des étapes Ail à A16.
A la suite de l'étape E8 , la carte SIM transmet un message de demande de nombre aléatoire à la carte CA à l'étape Ail. La carte CA lit un nombre aléatoire NC dans sa mémoire non volatile 22, ou bien fournit ce nombre aléatoire NC grâce à un générateur pseudoaléatoire inclus dans le processeur 20, à l'étape A12. Le nombre aléatoire NC est transmis de la carte CA à la carte SIM qui le mémorise temporairement. En parallèle, à des étapes A13 et A14, la carte SIM applique un algorithme de première authentification AA1 à la clé d'application sélectionnée KA, qui était transmise par le serveur SO, et au nombre aléatoire reçu NC, afin de fournir une signature SS = AA1 (KA, NC) transmise à la carte CA ; la carte CA applique à l'algorithme d ' authentification AA1 le nombre aléatoire NC et la clé KA lue dans sa mémoire 22 pour fournir un résultat RC = AA1 (KA, NC) . La signature SS reçue par la carte CA est comparée au résultat RC à 1 ' étape A15. Si la signature SS est différente du résultat RC, l'application sélectionnée AP est refusée à l'étape A151 et le terminal TE affiche un message "Application sélectionnée refusée".
Si la signature SS est égale au résultat RC, la carte CA demande d'exécuter la deuxième authentification A2 à la carte SIM, en lui transmettant une demande d ' authentification à l'étape A21.
Puis, la deuxième authentification A2 présente des étapes A22 à A25 équivalentes aux étapes A12 a A15 dans la première authentification Al, comme si les cartes étaient interchangées .
A la suite de l'étape A21, la carte SIM sélectionne un nombre pseudo-aléatoire NS lu dans la mémoire non volatile 12, ou fourni par - un générateur pseudo-aléatoire inclus dans le processeur 10, à
l'étape A22, et le transmet dans une commande à la carte additionnelle CA, qui le mémorise en mémoire RAM 23. Le processeur 20 de la carte additionnelle CA lit de nouveau la clé d'application sélectionnée KA dans la mémoire 22 pour l'appliquer avec le nombre aléatoire reçu NS à un algorithme de deuxième authentification AA2 à l'étape A23. Le processeur 20 produit une signature SC = AA1 (KA, NS) . En parallèle à l'étape A24, le processeur 10 de la carte SIM lit de nouveau la clé KA dans la mémoire 13 pour l'appliquer avec le nombre aléatoire NS fourni à l'algorithme de deuxième authentification AA2 afin de produire un résultat RS = AA2 (KA, NS) .
Puis à l'étape A25 dans la carte SIM, le résultat RS déterminé à l'étape A24 et la signature
SC transmise par la carte CA à l'étape A23 sont comparés. Si le résultat RS est différent de la signature SC, l'application sélectionnée est refusée et un message "Application sélectionnée refusée" est affiché dans le terminal à l'étape A251. Sinon, en réponse à l'authenticité de la carte additionnelle CA par la carte SIM signalée par RS == SC, une session de l'application pro-active sélectionnée est exécutée à 1 ' étape A252. Bien que les algorithmes d ' authentification AA1 et AA2 soient considérés ci-dessus comme différents, ils peuvent être en variante identiques.
Selon des variantes des première et deuxième réalisations, le procédé d ' authentification mutuelle montré à la figure 4 est remplacé par un procédé de détermination de clé de chiffrement d'unité de données montré à la figure 5.
Ce procédé comprend des étapes Ail à A14 analogues à celles de la première authentification
dans la première authentification Al, et des étapes A22 à A24 analogues à celles dans la deuxième authentification A2. Toutefois, à l'étape Ail, la demande d ' authentification est remplacée par une demande de sécurisation afin que d'une part la carte CA transmette le nombre aléatoire NC à la carte SIM à l'étape A12, d'autre part la carte SIM transmette le nombre aléatoire NS à la carte CA à l'étape A22. Selon cette sécurisation d'unité de données, ni la signature SS de la carte SIM, ni la signature SC de la carte additionnelle CA ne sont échangées ; les nombres aléatoires NC et NS qui sont transmis d'une carte vers l'autre sont respectivement mémorisés aux étapes A13 et A23. Après les étapes de détermination de résultat et de signature A13 et A24 dans la carte SIM, et A14 et
A23 dans la carte CA, une clé de chiffrement KC est déterminée en appliquant les nombres aléatoires NC et
NS , la signature SS et le résultat RS à un algorithme de génération de clé de chiffrement AG à une étape A26 dans la carte SIM, et à une étape A27 dans la carte additionnelle CA.
La clé de chiffrement KC est utilisée à une étape A28 pour chiffrer une unité de données de protocole applicatif APDU à transmettre de l'une des cartes, par exemple la carte SIM, vers l'autre carte CA et à une étape A29 pour déchiffrer l'unité chiffrée APDUC dans ladite autre carte.
En pratique, la même clé de chiffrement peut être utilisée pour chiffrer-déchiffrer une première unité de données, telle qu'une commande de la carte SIM vers la carte CA, et une deuxième unité de données, telle qu'une réponse de la carte CA vers la carte SIM. Chaque fois qu'un couple de commande-
réponse doit être échangé, une clé de chiffrement respective est ainsi déterminée.
En variante, la clé KC sert à signer chaque unité de données APDU à transmettre, ou bien sert à signer et à chiffrer chaque unité de données.
La clé de chiffrement/signature d'unité de données peut être utilisée plus longtemps que pour le chiffrement d'un couple commande/réponse, par exemple pour toute la durée d'une session. Par session, on entend la durée qui s'écoule entre le début de l'utilisation d'une application AID et la fin de son utilisation.
La deuxième réalisation du procédé de 1 ' invention est mise en œuvre lorsque le fournisseur des cartes additionnelles ne fait pas suffisamment confiance à l'opérateur du réseau radiotéléphonique RR pour lui confier sa clé mère KM. En réponse à la demande de clé d'application sélectionnée par la carte SIM, ce n'est pas le serveur SO de l'opérateur qui fournit la clé demandée KA mais un deuxième serveur SP appartenant au fournisseur de services émettant les cartes additionnelles.
Comme illustré à la figure 1, le serveur SP (Service Provider) est situé à l'extérieur du réseau radiotéléphonique RR et est par exemple relié au réseau téléphonique commuté RTC à travers un réseau à haut débit RHD tel que le réseau Internet . Comme on le verra dans la suite pour cette deuxième réalisation, mais également pour une troisième réalisation de l'invention, la carte SIM ne communique pas directement avec le serveur SP du fournisseur de services, mais à travers le serveur SO de l'opérateur. Le serveur SO est également relié au réseau à haut débit RHD et comporte une table
d'adresses de serveurs de fournisseurs de cartes additionnelles de manière à faire correspondre à chaque numéro de série NS de cartes additionnelles, ou à un préfixe de ce numéro de série, c'est-à-dire à une catégorie de cartes additionnelles, une adresse ASP d'un serveur respectif SP.
Le serveur SO reçoit des messages courts transmis par le commutateur MSC auquel le terminal TE est rattaché momentanément, les interprète, comme on le verra ci-après, et les encapsule en des messages IP (Internet Protocol) pour les router vers le serveur SP à travers le réseau RHD. Suivant l'autre sens de transmission, le serveur SO récupère des messages de données IP contenant des clés d'application sélectionnée, transmis par le serveur SP et les désencapsule convenablement pour les transmettre, de préférence après déchiffrement et chiffrement, via les réseaux RA et RR vers le terminal TE contenant la carte SIM. Le procédé de sécurisation selon cette deuxième réalisation comprend, comme montré à la figure 6, les étapes E0 à E4 déjà décrites en référence à la figure 3, et après l'étape E4 , des étapes E9 à E15.
En réponse au message court contenant l'identité IMSI de la carte SIM, le numéro de série NS de la carte additionnelle CA et 1 ' identificateur AID de l'application sélectionnée AP transmis à l'étape E4, le serveur SO mémorise l'identité IMSI, 1 ' identificateur AID et le numéro de série NS et consulte une table de correspondance entre les numéros de série des cartes additionnelles et les adresses des serveurs de fournisseurs de ces cartes additionnelles, à l'étape E9. Si le numéro de série NS de la carte CA n'est pas retrouvé dans la table précédente, le serveur SO transmet un message de
refus d'application sélectionné à la carte SIM, laquelle affiche le message "Application sélectionnée refusée" et rompt la communication avec le serveur SO, à l'étape E91. Si une adresse ASP de serveur SP est trouvée dans la table en correspondance avec le numéro de série reçu NS , le serveur SO établit un message IP contenant l'adresse de serveur de fournisseur ASP lue dans la table, l'adresse ASO du serveur SO, l'identificateur d'application sélectionnée AID et le numéro de série de carte NS , à l'étape E10.
En réponse à ce message IP, le serveur SP mémorise les données ASO, AID et NS, et applique à un algorithme de détermination de clé d'application AL l'identificateur d'application reçu AID, le numéro de série reçu NS et la clé mère correspondante KM pour la catégorie de cartes à laquelle appartient la carte additionnelle CA, à l'étape Eli. L'exécution de l'algorithme de clé diversifiée AL produit une clé "fille" KA. La clé KA est ensuite chiffrée en une clé chiffrée KACH qui est encapsulée dans un message IP pour être transmis en fonction de l'adresse ASO au serveur de messages courts SO, à travers le réseau RHD, à l'étape E12. La clé chiffrée KACH est déchiffrée en la clé KA qui est mémorisée dans le serveur SO à l'étape E13. Puis le serveur SO lit 1 ' identité IMSI de manière à retrouver le terminal TE par l'intermédiaire de l'enregistreur HLR, chiffre la clé reçue KA en une autre clé chiffrée KAC qui est encapsulée dans un message court transmis au terminal TE à l'étape E14.
Du message court reçu par la carte SIM est extrait la clé chiffrée KAC qui est déchiffrée en la clé initiale KA à l'étape E15. La clé KA est alors mémorisée dans la mémoire RAM 13 de la carte SIM afin
de l'utiliser pour 1 ' authentification mutuelle des cartes SIM et CA selon l'algorithme montré à la figure 4, ou pour la détermination de clé de chiffrement d'unité de données selon l'algorithme montré à la figure 5.
Il est à noter que les clés chiffrées KAC et KACI sont différentes a priori, l'algorithme de chiffrement-déchiffrement entre le serveur SP et SO étant a priori différent de l'algorithme de chiffrement-déchiffrement entre le serveur SO et la carte SIM.
Dans la troisième réalisation du procédé de sécurisation de 1 ' invention, le fournisseur de cartes additionnelles fait encore moins confiance à l'opérateur du réseau radiotéléphonique RR et ne désire pas lui communiquer la clé KA associée à l'application sélectionnée AP . Le fournisseur ne communique à l'opérateur que des paires de couples de nombre aléatoire et de "clés de session". Les clés de session sont des signatures ou des résultats au sens des authentifications Al et A2 déjà décrites en référence à la figure 4 et sont mémorisées dans la carte SIM pour être utilisées au fur et à mesure des sessions de l'application sélectionnée AP .
La troisième réalisation de l'invention comprend les étapes E0 à E4 décrites en référence à la figure 3 et les étapes E9 à Eli décrites en référence à la figure 6, ainsi que des étapes El6 à E20 après l'étape Eli comme montré à la figure 7.
Après l'étape Eli, lorsque le serveur SP du fournisseur de carte additionnelle a fourni la clé fille KA de l'application sélectionnée AP en fonction de l'identificateur AID, du numéro de série NS et de la clé mère KM, le serveur SP recherche dans une
table de listes de quadruplets, une liste correspondant à. la clé d'application KA, à l'étape E16. Cette liste comprend plusieurs ensembles de paramètres dépendant de la clé déterminée KA, tels que I quadruplets [NC1, SS1, NSI, RS1] à [NCI , SSI, NSI, RSI] respectivement pour I sessions SE1 à SEI de l'application sélectionnée . AP . Une session de l'application sélectionnée est l'exécution de l'application entre deux tâches exécutées par la carte SIM, par exemple après avoir mis en marche le terminal TE ou après avoir quitté une autre application. L'entier I peut être égal à quelques dizaines .
Comme pour la signature SS selon la première authentification Al, une signature SSi, avec 1 < i <
I, résulte de l'application de la clé KA et d'un nombre déterminé NCi au premier algorithme d' authentification AA1 , soit SSi = AA1 (KA, NCi). Le nombre NCi n'est pas aléatoire comme on le verra ci- après, mais est déterminé par l'application de la clé KA et d'un nombre entier respectif à une fonction f, le nombre entier étant incrémenté d'une unité au fur et à mesure de la création des quadruplets . Comme pour le résultat RS dans la deuxième authentification A2 , un résultat résulte de l'application de la clé KA et d'un nombre aléatoire NSi au deuxième algorithme d' authentification AA2 , soit RSi = AA2 (KA, NSi).
La liste des I quadruplets est ensuite encapsulée dans un message IP qui est transmis en fonction de l'adresse ASO depuis le serveur SP au serveur de messages courts SO à travers le réseau RHD. Le serveur SO désencapsule le message IP et mémorise la liste des I quadruplets. L'identité IMSI attachée à la carte SIM est lue dans le serveur SO afin de retrouver le terminal TE par l'intermédiaire
de l'enregistreur HLR, à l'étape E17. La liste des quadruplets est ensuite encapsulée dans des messages courts transmis depuis le serveur SO vers la carte SIM à travers les réseaux RA et RR. Finalement, les I quadruplets sont extraits des messages courts reçus et mémorisés dans la mémoire non volatile 22 de la carte SIM afin de les utiliser pour les I prochaines sessions de l'application sélectionnée AP, qui commencent chacune par une authentification mutuelle des cartes SIM et CA, comme montré à la figure 8, ou par la détermination de clé de chiffrement d'unité de données selon l'algorithme à la figure 9.
Lorsque le stock des I quadruplets est épuisé après I sessions de l'application sélectionnée, c'est-à-dire lorsque les I quadruplets ont été utilisés chacun au plus une fois, comme indiqué à l'étape E19 dans la figure 7, le procédé revient à l'étape E19 à la suite d'une demande de liste de quadruplets par la carte SIM au serveur SP à travers le serveur SO à l'étape E20. Le serveur SP fournit alors une nouvelle liste de quadruplets.
Selon une première variante, pour chaque session, les cartes SIM et CA s'authentifient mutuellement, d'une manière analogue aux authentifications Al et A2 , comme montré à la figure 8. Dans cette figure, les première et deuxième authentifications sont désignées par les repères al et a2 , en raison des quelques différences qui apparaîtront ci-après. Préalablement à la première authentification al, il est supposé que la carte SIM a mémorisé au moins le quadruplet [NCi, SSi, NSi, RSi] normalement destiné à la session SEi qui est activée à une étape initiale alO .
Comparativement à 1 ' authentification Al, la carte SIM méconnaît la clé d'application sélectionnée KA. La carte additionnelle CA ne peut générer aléatoirement le nombre NCi puisqu'il est impossible que la liste communiquée à la carte SIM contienne toutes les signatures correspondant à tous les nombres aléatoires . Aussi après la demande de nombre aléatoire à l'étape ail, la carte additionnelle CA incrémente d'une unité un compteur de numéro de session NSE inclus dans le processeur 20, à une étape alll. Le compteur a un compte maximum suffisamment élevé, par exemple correspondant à au moins quatre octets, afin que son compte puisse être incrémente d'une unité à chaque session pendant la durée de vie de la carte CA. La carte CA détermine alors le nombre NCi à 1 ' étape all2 en appliquant le nombre entier NSE et la clé d'application KA lue en mémoire 22 à la fonction f contenue dans la mémoire ROM 21. Le numéro déterminé NCi est alors transmis au "premier" contrôleur dans la carte SIM afin que celui-ci sélectionne l'ensemble de paramètres [NCi, SSi, NSi, RSi] dans la table des quadruplets reçue en fonction du nombre déterminé NCi transmis à 1 ' étape al3.
Bien qu'a priori le nombre NCi soit redondant avec le nombre NCi contenu dans le quadruplet correspondant, cet adressage de la table des quadruplets reçue par le nombre transmis NCi remédie par exemple à une phase d ' authentification qui s'est terminée de façon anormale, par exemple à cause d'une mise hors-tension du terminal radiotéléphonique TE au cours de cette phase. Ceci induit un décalage dans le numéro NSE de la session en cours SSi. Si la carte SIM constate que le numéro NCi a déjà été utilisé pour une authentification al depuis la réception de la dernière liste de quadruplets, elle redemande un
autre nombre à l'étape ail, comme indiqué en pointillé entre les étapes al3 et ail dans la figure 8 ; la carte SIM marque les quadruplets inutilisés correspondant aux nombres NCi qui ont été sautés entre les nombres NCi trouvés correspondant à deux sessions successives.
A l'étape al3, la première authentification al de la carte SIM dans la carte CA consiste à communiquer la signature SSi de la carte SIM à la carte CA, et à effectuer des étapes al4, al5 et al51 comme les étapes A14, A15 et A151 pour calculer le résultat RCi de l'application du nombre déterminé NCi et de la clé KA au premier algorithme AA1 et comparer le résultat RCi à la signature SSi de l'ensemble sélectionné.
De même, la deuxième authentification a2 de la carte CA dans la carte SIM commence par une demande par la carte CA à l'étape a21 et une communication du nombre aléatoire NSi de l'ensemble sélectionné, de la carte SIM à la carte CA, à l'étape a22. Puis des étapes a23 et a25, a251 et a252 analogues aux étapes A22, A23, A25, A251 et A252 sont exécutées pour déterminer une signature SCi résultant de l'application du nombre aléatoire communiqué NSi et de la clé KA au deuxième algorithme AA2 dans la carte CA, puis pour comparer le résultat RSi de l'ensemble sélectionné à la signature SCi communiquée par la carte CA à la carte SIM.
Après l'étape al5 ou l'étape a25, lorsque la comparaison correspondante est négative, la session de l'application sélectionnée est refusée (étape al51 ou a251) . Par contre, après l'étape a25, lorsque le résultat RSi est égal à la signature SCi, la session SEi de l'application sélectionnée est commencée (étape a252) .
Selon une deuxième variante montrée à la figure 9, par analogie avec la figure 5, les cartes SIM et CA ne se communiquent pas mutuellement les signatures SSi et SCi et ne se communiquent que les nombres NCi et NSi, et les étapes de comparaison al5 et a25 de la figure 8 sont supprimées pour la détermination d'une clé de chiffrement, par exemple lorsque la carte SIM souhaite transmettre une unité APDU à l'étape alO . Après l'étape alO, la clé de chiffrement résulte des étapes suivantes : incrémenter à l'étape alll un nombre entier NSE d'une unité pour déterminer avec la clé d'application KA un nombre NCi à l'étape all2, transmettre à 1 ' étape al2 le nombre déterminé NCi au "premier" contrôleur de la carte SIM pour sélectionner à l'étape al3 l'ensemble de paramètres NCi, SSi, NSi et RSi contenant le nombre déterminé dans la carte SIM, déterminer à l'étape al4 le résultat RCi de l'ensemble de paramètres sélectionné en fonction de l'application dudit nombre déterminé NCi et de la clé KA au premier algorithme AA1 dans le "deuxième" contrôleur de la carte additionnelle CA, communiquer à l'étape a22 le nombre aléatoire NSi de l'ensemble de paramètres sélectionné à la carte CA, déterminer à l'étape a23 la signature SCi de l'ensemble de paramètres sélectionné en appliquant le nombre aléatoire communiqué NSi et la clé KA au deuxième algorithme AA2 dans la carte CA, et déterminer aux étapes a26 et a27 une clé de chiffrement KC en fonction de l'ensemble de paramètres sélectionné dans la carte SIM et la carte CA, de manière à chiffrer et/ou signer une unité de
données APDU avec la clé de chiffrement KC à transmettre de l'une vers l'autre des cartes.
Bien que l'invention a été décrite ci-dessus relativement à la sécurisation d'échange de données entre les contrôleurs de deux cartes à puce SIM et CA, l'invention s'applique de manière générale à la sécurisation entre un premier contrôleur quelconque et un deuxième contrôleur quelconque devant communiquer entre eux, le terme contrôleur recouvrant un moyen ou unité de traitement de données, tel qu'un microprocesseur, ou bien plus complètement une entité, telle qu ' un - terminal , un serveur, etc. Par exemple, le premier contrôleur peut être un terminal point de vente et le deuxième contrôleur une carte de crédit, le réseau de télécommunications auquel est relié le terminal étant alors le réseau téléphonique commuté. Selon un autre exemple, les premier et deuxième contrôleurs sont ceux d'un terminal radiotéléphonique bimode .