Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MEMORY ALLOCATION METHOD AND METHOD FOR MANAGING DATA RELATED TO AN APPLICATION RECORDED ONTO A SECURITY MODULE ASSOCIATED WITH A TERMINAL, AND RELATED SECURITY MODULE AND TERMINAL
Document Type and Number:
WIPO Patent Application WO/2010/031976
Kind Code:
A1
Abstract:
The invention relates to a method for allocating memory related to a security module application of a terminal and comprises the steps of: receiving a query for allocating memory outside the security module from an application; transmitting a memory allocation instruction to the terminal; and receiving and storing memory allocation information related to an application identifier. The invention also relates to a data management method for such an application and comprises the steps of: receiving a query for reading or writing onto an external memory; determining and transmitting a reading or writing instruction on the basis of the query and memory allocation information related to the application identifier, with a view to reading or writing data. The invention also relates to a security module and a terminal including said security module.

Inventors:
DUC GUILLAUME (FR)
RAIPIN PHILIPPE (FR)
ROCHECOUSTE OLIVIER (FR)
Application Number:
PCT/FR2009/051766
Publication Date:
March 25, 2010
Filing Date:
September 21, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
DUC GUILLAUME (FR)
RAIPIN PHILIPPE (FR)
ROCHECOUSTE OLIVIER (FR)
International Classes:
G06F12/14
Domestic Patent References:
WO2001029672A12001-04-26
WO2008084154A22008-07-17
Foreign References:
EP1770534A12007-04-04
FR2849233A12004-06-25
EP0540095A11993-05-05
Other References:
See also references of EP 2342641A1
Attorney, Agent or Firm:
FRANCE TELECOM/R&D/PIV/BREVETS (FR)
Download PDF:
Claims:
REVENDICATIONS

1. Procédé d'allocation de mémoire associée à une application enregistrée dans un module de sécurité associé à un terminal caractérisé en ce qu'il comporte :

- une étape de réception d'une requête d'allocation de mémoire externe au module de sécurité en provenance de ladite application,

- une étape de transmission d'une commande d'allocation de mémoire au terminal en fonction de ladite requête, - une étape de réception d'une information d'allocation mémoire déterminée à partir de la commande d'allocation,

- une étape de stockage de l'information d'allocation mémoire reçue en association avec un identifiant de ladite application.

2. Procédé d'allocation selon la revendication 1 caractérisé en ce que la commande d'allocation comporte au moins une caractéristique d'accès et en ce que l'information d'allocation mémoire est déterminée en fonction de ladite au moins une caractéristique.

3. Procédé d'allocation selon la revendication 1 caractérisé en ce qu'il comporte en outre une étape de détermination d'au moins un paramètre de sécurité et une étape de stockage dudit au moins un paramètre de sécurité en association avec l'identifiant d'application.

4. Procédé de gestion de données associées à une application enregistrée sur un module de sécurité associé à un terminal, caractérisé en ce qu'une information d'allocation mémoire étant stockée en association avec un identifiant de ladite application, le procédé comporte les étapes suivantes :

- réception d'une requête de lecture ou d'écriture dans une mémoire externe, ladite requête comportant l'identifiant d'application, - détermination d'une commande de lecture ou d'écriture en fonction de ladite requête et de l'information d'allocation mémoire associée à l'identifiant d'application,

- transmission de ladite commande de lecture ou d'écriture en vue de la lecture ou de l'écriture de données dans la mémoire externe.

5. Procédé de gestion selon la revendication 4 caractérisé en ce qu'au moins un paramètre de sécurité ayant été stocké en association avec l'identifiant d'application, l'étape de détermination d'une commande d'écriture comporte une étape d'application dudit au moins un paramètre de sécurité aux données à écrire.

6. Procédé de gestion selon la revendication 4 caractérisé en ce qu'au moins un paramètre de sécurité ayant été stocké en association avec l'identifiant d'application et en ce que la requête étant une requête de lecture, le procédé comporte en outre une étape d'application dudit au moins un paramètre de sécurité aux données lues.

7. Terminal caractérisé en ce qu'il comporte :

- des moyens de réception d'une commande d'allocation de mémoire en provenance d'un module de sécurité, - des moyens d'allocation d'une zone mémoire en fonction de la commande d'allocation reçue,

- des moyens de détermination d'une information d'allocation mémoire relative à ladite zone allouée,

- des moyens de transmission de ladite information d'allocation mémoire, - des moyens de réception d'une commande de lecture ou d'écriture dans ladite zone mémoire allouée,

- des moyens d'accès à ladite zone allouée,

- des moyens de transmission de données lues dans ladite zone allouée.

8. Terminal selon la revendication 7 caractérisé en ce que les moyens d'allocation sont aptes à déterminer une zone mémoire en fonction d'au moins une caractéristique d'accès contenue dans la commande d'allocation reçue.

9. Terminal selon la revendication 8 caractérisé en ce que la au moins une caractéristique d'accès est relative à la vitesse d'accès à la zone mémoire

10. Module de sécurité caractérisé en ce qu'il comporte :

- des moyens de réception d'une requête d'allocation de mémoire externe en provenance d'une application, - des moyens de transmission d'une commande d'allocation de mémoire en fonction de ladite requête,

- des moyens de réception d'une information d'allocation mémoire déterminée à partir de la commande d'allocation,

- des moyens de stockage de l'information d'allocation mémoire reçue en association avec un identifiant de ladite application.

- des moyens de réception d'une requête de lecture ou d'écriture dans une mémoire externe, ladite requête comportant l'identifiant d'application,

- des moyens de détermination d'une commande de lecture ou d'écriture en fonction de ladite requête et de l'information d'allocation mémoire associée à l'identifiant d'application,

- des moyens de transmission de ladite commande de lecture ou d'écriture en vue de la lecture ou de l'écriture de données dans la mémoire externe.

11. Système caractérisé en ce qu'il comporte un terminal selon la revendication 7 et un module de sécurité selon la revendication 10.

12. Produit programme d'ordinateur comprenant des instructions pour mettre en œuvre les étapes du procédé d'allocation selon l'une des revendications 1 à 3 et/ou du procédé de gestion selon l'une des revendications 4 à 6 lorsqu'il est chargé et exécuté par un processeur.

Description:
Procédé d'allocation de mémoire et procédé de gestion de données associées à une application enregistrée dans un module de sécurité associé à un terminal, module de sécurité et terminal associés

L'invention se rapporte au domaine des télécommunications mobiles, et plus particulièrement à celui de la gestion des applications d'un terminal mobile.

Actuellement, un utilisateur d'un terminal mobile de type téléphone mobile est confronté à une offre de services de plus en plus riche. Outre les services classiques de téléphonie, un ensemble de services divers et variés comme des services de paiement, de transport... sont proposés à l'utilisateur. Ces services sont accessibles soit de manière locale, soit via un réseau de téléphonie mobile (GSM, GPRS...), soit encore en situation de proximité, par exemple via des protocoles de dialogue tels que Bluetooth, RFID...

Ces services s'appuient sur des applications qui sont stockées soit directement dans le terminal mobile soit dans un module de sécurité, par exemple une carte à puce, inséré dans celui-ci. Ces applications comportent, outre une partie programme, une zone de données. Le stockage de ces données dans le module de sécurité permet une grande sécurité, l'accès à ces données étant alors contrôlé par le module de sécurité. Avec l'accroissement du nombre d'applications stockées et du besoin pour certaines applications de disposer d'une zone de données de taille importante, un problème de place mémoire disponible se fait ressentir.

La solution consistant à insérer davantage de mémoire dans les modules de sécurité engendre un accroissement du coût des modules de sécurité. Compte tenu du nombre de téléphones mobiles, ce coût peut devenir prohibitif pour un opérateur de téléphonie mobile si ce coût est à sa charge.

Le document US 7,263,383 divulgue une méthode permettant d'augmenter la taille mémoire d'un carnet d'adresses stocké sur une carte SIM d'un terminal mobile équipé d'une carte mémoire flash. Dans ce document, une partie des informations est stockée sur la carte SIM et des informations complémentaires sont enregistrées dans Ia mémoire flash en association avec un numéro d'identification de la SIM. Le terminal mobile retrouve l'enregistrement correspondant à celui enregistré sur la carte SIM après avoir lu le numéro d'identification dans la carte SIM. Cette méthode ne peut fonctionner si l'application est installée sur la carte SIM car la carte SIM ne possède pas de moyens pour gérer des ressources qui ne lui sont pas propres.

La présente invention vient améliorer la situation.

A cet effet, la présente invention propose un procédé d'allocation de mémoire associée à une application enregistrée dans un module de sécurité associé à un terminal caractérisé en ce qu'il comporte : - une étape de réception d'une requête d'allocation de mémoire externe au module de sécurité en provenance de ladite application,

- une étape de transmission d'une commande d'allocation de mémoire au terminal en fonction de ladite requête,

- une étape de réception d'une information d'allocation mémoire déterminée à partir de la commande d'allocation,

- une étape de stockage de l'information d'allocation mémoire reçue en association avec un identifiant de ladite application.

Ainsi, selon l'invention, un module de sécurité tel qu'une carte SIM d'un terminal mobile disposant d'une taille mémoire réduite peut réserver une ou plusieurs zone mémoire accessible par ce terminal. La zone mémoire réservée peut être située dans une mémoire flash du terminal, une zone mémoire interne du terminal, une zone mémoire sur un serveur distant accessible par le terminal via un réseau de télécommunication ou toute autre zone mémoire accessible par le terminal.

Selon un mode de réalisation particulier, la commande d'allocation comporte au moins une caractéristique d'accès et l'information d'allocation mémoire est déterminée en fonction de ladite au moins une caractéristique.

Une caractéristique d'accès est, par exemple, une information relative à la latence (ou temps d'accès) de la mémoire. Si l'application ou le module de sécurité demande un temps d'accès le plus court possible, le terminal choisira si possible une zone mémoire interne au terminal plutôt qu'une zone mémoire sur un serveur distant. Une autre caractéristique d'accès est par exemple une information relative à la volatilité de la mémoire. Ainsi, le terminal peut sélectionner une zone mémoire volatile, par exemple en RAM, pour stocker des données d'applications temporaires ou au contraire une zone mémoire en EEPROM si les données doivent être conservées.

Selon un mode de réalisation particulier, le procédé d'allocation comporte en outre une étape de détermination d'au moins un paramètre de sécurité et une étape de stockage dudit au moins un paramètre de sécurité en association avec l'identifiant d'application. Un tel paramètre de sécurité est par exemple une clé de chiffrement pour permettre de garantir la confidentialité des données lors de leur transfert et de leur stockage en dehors du module de sécurité.

Un autre paramètre de sécurité est par exemple une clé utilisée pour la signature des données et permettre ainsi de contrôler leur intégrité. Le ou les paramètres de sécurité sont générés et stockés par le module de sécurité. Le fait que ces clés ne soient connues que du module de sécurité permet de renforcer la sécurité du système et de garantir un niveau de sécurité des données identique à celui obtenu si elles étaient stockées dans une mémoire interne au module de sécurité. L'invention se rapporte également à un procédé de gestion de données associées à une application enregistrée sur un module de sécurité associé à un terminal, caractérisé en ce qu'une information d'allocation mémoire étant stockée en association avec un identifiant de ladite application, le procédé comporte les étapes suivantes : - réception d'une requête de lecture ou d'écriture dans une mémoire externe, ladite requête comportant l'identifiant d'application,

- détermination d'une commande de lecture ou d'écriture en fonction de ladite requête et de l'information d'allocation mémoire associée à l'identifiant d'application, - transmission de ladite commande de lecture ou d'écriture en vue de la lecture ou -A-

de l'écriture de données dans la mémoire externe.

Ainsi, une application ayant réservé une zone mémoire externe au module de sécurité peut accéder à cette mémoire pour stocker puis lire des données d'application. Elle dispose ainsi d'une zone mémoire supplémentaire. Selon une caractéristique particulière, au moins un paramètre de sécurité ayant été stocké en association avec l'identifiant d'application, l'étape de détermination d'une commande d'écriture comporte une étape d'application dudit au moins un paramètre de sécurité aux données à écrire.

Un ou plusieurs paramètres de sécurité, qui sont par exemple des clés secrètes, générés et stockés lors de la phase préalable d'allocation sont ensuite utilisés pour assurer la sécurité des données stockées hors du module de sécurité.

Selon une caractéristique particulière, au moins un paramètre de sécurité ayant été stocké en association avec l'identifiant d'application et la requête étant une requête de lecture, le procédé comporte en outre une étape d'application dudit au moins un paramètre de sécurité aux données lues.

Ainsi, un ou plusieurs paramètres de sécurité appliqués aux données lues dans une mémoire externe avant toute utilisation par l'application permet de garantir la sécurité des données.

A titre d'exemple, si un paramètre de sécurité qui est une clé secrète de chiffrement est enregistré lors de la phase préalable d'allocation, cette clé pourra ensuite être utilisée pour chiffrer les données avant transmission de celles-ci hors du module de sécurité vers la mémoire allouée. Cette clé sera aussi utilisée par le module de sécurité pour déchiffrer les données chiffrées lues dans la mémoire externe. Le fait de stocker les données de façon chiffrée permet de garantir la confidentialité des données.

L'invention concerne aussi un terminal comportant des moyens de réception d'une commande d'allocation de mémoire en provenance du module de sécurité, des moyens d'allocation d'une zone mémoire en fonction de la commande d'allocation reçue, des moyens de détermination d'une information d'allocation mémoire relative à ladite zone allouée, des moyens de transmission de ladite information d'allocation mémoire, des moyens de réception d'une commande de lecture ou d'écriture dans ladite zone mémoire allouée, des moyens d'accès à ladite zone allouée et des moyens de transmission de données lues dans ladite zone allouée.

Selon un mode de réalisation particulier, les moyens d'allocation sont aptes à déterminer une zone mémoire en fonction d'au moins une caractéristique d'accès contenue dans la commande d'allocation reçue.

Ainsi, lorsque le terminal dispose de plusieurs types de mémoire, il peut sélectionner la mémoire la plus adaptée en fonction d'un ou plusieurs critères fournis par le module de sécurité et/ou par l'application. Selon un mode particulier de ce mode de réalisation, la au moins une caractéristique d'accès est relative à la vitesse d'accès à la mémoire.

L'invention concerne également un module de sécurité comportant des moyens de réception d'une requête d'allocation de mémoire externe en provenance d'une application, des moyens de transmission d'une commande d'allocation de mémoire en fonction de ladite requête, des moyens de réception d'une information d'allocation mémoire déterminée à partir de la commande d'allocation, des moyens de stockage de l'information d'allocation mémoire reçue en association avec un identifiant de ladite application, des moyens de réception d'une requête de lecture ou d'écriture dans une mémoire externe, ladite requête comportant l'identifiant d'application, des moyens de détermination d'une commande de lecture ou d'écriture en fonction de ladite requête et de l'information d'allocation mémoire associée à l'identifiant d'application et des moyens de transmission de ladite commande de lecture ou d'écriture en vue de la lecture ou de l'écriture de données dans la mémoire externe.

L'invention concerne également un système comportant un terminal et un module de sécurité tels que décrits précédemment.

L'invention concerne enfin un produit programme d'ordinateur comprenant des instructions pour mettre en œuvre les étapes du procédé d'allocation telles que décrites précédemment et/ou du procédé de gestion telles que décrites précédemment lorsqu'il est chargé et exécuté par un processeur. D'autres particularités et avantages de la présente invention apparaîtront dans la description suivante de modes de réalisation donnés à titre d'exemple non limitatif, en référence aux dessins annexés, dans lesquels : la figure 1 est un schéma illustrant un système selon un premier mode de réalisation de l'invention, la figure 2 est un organigramme illustrant les différentes étapes d'un procédé d'allocation selon un premier mode de réalisation de l'invention, la figure 3 est un organigramme illustrant les différentes étapes d'un procédé de gestion suite à l'exécution d'un procédé d'installation selon un premier mode de réalisation de l'invention, la figure 4 est un schéma illustrant un système selon un deuxième mode de réalisation de l'invention, la figure 5 est un organigramme illustrant les différentes étapes d'un procédé d'allocation selon un deuxième mode de réalisation de l'invention, - la figure 6 est un organigramme illustrant les différentes étapes réalisées pour l'écriture de données suite à l'exécution d'un procédé d'installation selon un deuxième mode de réalisation de l'invention, la figure 7 est un organigramme illustrant les différentes étapes réalisées pour la lecture de données suite à l'exécution d'un procédé d'installation selon un deuxième mode de réalisation de l'invention,

- la figure 8 est un schéma bloc représentant un système apte à réaliser les étapes d'un procédé d'allocation et/ou d'un procédé de gestion selon un mode de réalisation de l'invention.

Un premier mode de réalisation d'un procédé d'allocation de mémoire pour une application et d'un procédé de gestion de données selon l'invention va maintenant être décrit en référence aux figures 1 à 3.

En référence à la figure 1, un utilisateur dispose d'un terminal Tl qui est, par exemple un téléphone mobile ou un PDA (pour "Personal Digital Assistant"). A titre d'alternative, le terminal Tl est un ordinateur de type PC (pour "Personnal Computer").

Le terminal Tl comporte une mémoire de stockage M et un module de gestion SMl de cette mémoire. La mémoire M est par exemple une mémoire externe de type flash insérée dans un port du terminal.

A titre d'alternative, la mémoire M est une zone mémoire du terminal. Le module de gestion SMl est apte à accéder à la mémoire M pour écrire ou lire des données. Le terminal Tl comporte également un module de sécurité Cl.

Le module de sécurité Cl est par exemple un support amovible de type SlM ou UICC (pour "Universal Integrated Circuit Card"), ou une carte à mémoire hébergeant un élément sécurisé (SD card, Embeded Secure contrôler ...).

Le module de sécurité Cl comporte une application APl. L'application APl est par exemple une application protégée, c'est à dire une application dont au moins une partie des données ne doit pas être modifiable par un utilisateur.

L'application APl est par exemple une application nécessitant le stockage d'un volume important de données. Par exemple, l'application APl est une application dédiée au transport et un enregistrement de données est effectué à chaque entrée de l'utilisateur dans le moyen de transport.

Le module de sécurité Cl comprend également un module de contrôle SCl. Ce module de contrôle SCl est apte à communiquer avec le module de gestion SMl du terminal Tl.

En référence à la figure 2, un mode de réalisation du procédé d'allocation va maintenant être décrit.

Lors d'une première étape ElOO, l'application APl transmet au module de contrôle SCl une requête d'allocation RAl. Cette requête d'allocation contient notamment un identifiant IAl de l'application, par exemple son AID (pour "application identifier") et une valeur N représentant la taille de la mémoire externe demandée. Cette valeur N est par exemple un nombre d'octets.

La requête RAl est reçue par le module de contrôle SCl lors d'une étape E 102, puis, lors d'une étape E 104, le module de contrôle SCl transmet au module de gestion SMl du terminal Tl une commande d'allocation CAl. Dans ce mode de réalisation, la commande d'allocation CAl est la requête RAl reçue.

La commande d'allocation CAl est reçue par le module de gestion SMl du terminal Tl lors d'une étape E106. Lors d'une étape E108 suivante, le module de gestion SMl détermine une zone mémoire ZMl dans la mémoire M. Cette zone mémoire ZMl est une zone non utilisée de la mémoire M répondant au critère de taille contenu dans la commande d'allocation CAl .

Lors de l'étape suivante EI lO, le module de gestion SMl enregistre dans une table de gestion TMl du terminal Tl, l'adresse ADl de début de la zone ZMl déterminée et l'adresse AD2 de fin de la zone ZMl déterminée en association avec l'identifiant IAl de l'application APl. L'adresse de début ADl et l'adresse de fin AD2 de la zone ZMl constituent une information d'allocation mémoire ALl.

Lors d'une étape El 12, l'information d'allocation mémoire ALl est retransmise au module de contrôle SCl. Suite à la réception de cette information (étape El 14), le module de contrôle SCl enregistre, lors d'une étape El 16, cette information d'allocation mémoire ALl, dans une table de correspondance TCl du module de sécurité Cl, en association avec l'identifiant d'application IAl.

En référence à la figure 3, un mode de réalisation du procédé de gestion va maintenant être décrit. Ce procédé de gestion est mis en œuvre suite à l'allocation d'une zone mémoire

ZMl associée à l'application APl et externe au module de sécurité Cl, selon par exemple un procédé d'allocation tel que décrit précédemment.

Lors d'une étape E 120, l'application APl transmet, au module de contrôle SCl du module de sécurité Cl, une requête RQl de lecture ou d'écriture. Cette requête RQl comporte le type d'accès (lecture ou écriture), l'identifiant IAl de l'application APl et une information relative à la zone à lire ou à écrire. Cette information relative à la zone à lire ou à écrire est par exemple constituée d'une part d'une valeur correspondant à un offset Ol par rapport au début de la zone réservée ZMl et d'autre part du nombre d'octets NA à lire ou à écrire. Si la requête RQl est une requête d'écriture, elle contient également les données à écrire.

Cette requête RQl est reçue par le module de contrôle SCl lors d'une étape E 122. Puis, lors d'une étape E 124, le module de contrôle SCl détermine une commande CQl de lecture ou d'écriture correspondant à la requête RQl reçue. Dans ce mode de réalisation, la commande CQl de lecture ou d'écriture contient le type d'accès (lecture ou écriture) contenu dans la requête RQl, l'identifiant IAl, une adresse AD et le nombre d'octets NA à lire et à écrire. Si la requête est une requête d'écriture, la commande CQl contient également les données à écrire.

L'adresse AD est déterminée par le module de contrôle SCl à partir d'une part de l'information d'allocation mémoire ALl enregistrée dans la table de correspondance TCl en association avec l'identifiant IAl et d'autre part de l'offset Ol reçu dans la requête RQl .

Lors d'une étape suivante E 126, la commande CQl est transmise au module de gestion SMl du terminal Tl qui la reçoit lors d'une étape El 28.

L'étape E128 est suivie d'une étape E130 lors de laquelle le module de gestion SMl vérifie dans la table de gestion TMl que la zone demandée est réservée pour l'application APl . Puis, si tel est le cas, il commande l'écriture ou la lecture des données dans la zone ZMl (étape 132).

L'étape E132 est suivie d'une étape E134 lors de laquelle le module de gestion

SMl renvoie une réponse RCl au module de contrôle SCl. Cette réponse contient les données lues si la commande CQl est une commande de lecture. Elle contient une information relative à l'exécution de la commande si la commande CQl est une commande d'écriture.

La réponse RCl est ensuite transmise par le module de contrôle SCl à l'application APl (étape El 36). Un deuxième mode de réalisation d'un procédé d'allocation de mémoire pour une application et d'un procédé de gestion de données selon l'invention va maintenant être décrit en référence aux figures 4 à 7.

En référence à la figure 4, un utilisateur dispose d'un terminal T2 qui est, par exemple un téléphone mobile ou un PDA (pour "Personal Digital Assistant").

Le terminal T2 comporte une première mémoire de stockage Ml qui est une zone mémoire interne au terminal T2 et une deuxième mémoire M2 qui est une mémoire externe amovible, telle qu'une mémoire flash, insérée dans le terminal.

Le terminal T2 comporte également un module de communication COM permettant au terminal d'accéder à une zone mémoire M3 d'un serveur distant S via un réseau de télécommunication R.

Le terminal T2 comporte également un module de gestion SM2 pour la gestion des mémoires Ml, M2 et M3. Le rôle du module de gestion SM2 est explicité dans la suite de la description. Le terminal T2 comporte également un module de sécurité C2.

Le module de sécurité C2 est par exemple un support amovible de type SIM ou UICC (pour "Universal Integrated Circuit Card"), ou une carte à mémoire hébergeant un élément sécurisé (SD card, Embeded Secure contrôler ...).

Le module de sécurité C2 comporte une application AP2. A titre d'alternative, il comporte plusieurs applications. L'application AP2 est, par exemple, une application de paiement.

Le module de sécurité C2 comprend également un module de contrôle SC2. Ce module de contrôle SC2, en charge de la sécurité et dont le rôle est décrit par la suite, est apte à communiquer avec le module de gestion SM2 du terminal T2. Le module de contrôle SC2 du module de sécurité C2 n'étant pas apte à initier des communications avec le module de gestion SM2 du terminal T2, une commande est régulièrement envoyée par le module de gestion SM2 au module de contrôle SC2. Lorsque le module de contrôle SC2 a une requête à transmettre au module de gestion SM2, il inclut cette requête dans un message de réponse à cette commande. En référence à la figure 5, un mode de réalisation du procédé d'allocation dans lequel l'application AP2 réserve une zone mémoire externe va maintenant être décrit.

Lors d'une première étape E200, l'application AP2 s'enregistre auprès du module de contrôle SC2. Pour cela, elle transmet au module de contrôle SC2 une requête d'enregistrement RE2 comportant un identifiant d'application IA2, par exemple son AID (pour "Application Identifier"). Suite à la réception de cette requête, lors d'une étape E202, le module de contrôle SC2 vérifie que cette application n'est pas déjà enregistrée et génère, lors d'une étape E204 un identifiant de contrôle ID2 pour cette application AP2.

Dans un mode de réalisation particulier, l'identifiant de contrôle ID2 est l'identifiant d'application IA2 transmis par l'application AP2.

Lors d'une étape E206, le module de contrôle détermine une clé de chiffrement kc et une clé de signature ks pour cette application AP2. Comme il sera détaillé dans la suite de la description, la clé de chiffrement kc permet le chiffrement et le déchiffrement de données de l'application AP2 et permet ainsi d'assurer la confidentialité de ces données. La clé de signature ks permet de signer des données de l'application AP2 et permet ainsi d'assurer l'intégrité de ces données. Les clés ks et kc sont générées aléatoirement. Les clés kc et ks sont des paramètres de sécurité.

A titre d'alternative, seule la clé kc est déterminée.

Lors d'une étape E208, le module de contrôle SC2 enregistre, dans une table de correspondance TC2 du module de sécurité C2, l'identifiant de contrôle ID2 ainsi que les clés kc et ks en association avec l'identifiant IA2 de l'application AP2.

L'application AP2 transmet ensuite, lors d'une étape E210, au module de contrôle SC2 une requête d'allocation mémoire RA2. Cette requête d'allocation RA2 contient notamment l'identifiant IA2 de l'application AP2 et un nombre NE d'enregistrements. Un enregistrement représente ici un nombre prédéterminé d'octets, par exemple 128 octets. Le nombre NE détermine la taille de la mémoire à réserver.

La requête RA2 comporte également une ou plusieurs caractéristiques d'accès permettant à l'application AP2 de préciser le type de mémoire à allouer. Dans le mode de réalisation décrit, trois caractéristiques d'accès sont utilisées. Par exemple, une caractéristique d'accès Pl indique si la mémoire à allouer doit être une zone mémoire réservée à l'application AP2 ou une zone mémoire partagée entre plusieurs applications. Une deuxième caractéristique d'accès P2 est une information de latence et indique si la zone mémoire doit être accédée rapidement ou non. Une troisième caractéristique P3 indique si les données doivent être stockées sur un support persistant ou sur un support volatile, une mémoire volatile étant adaptée pour enregistrer des données temporaires.

La requête RA2 comporte également deux caractéristiques de sécurité P4 et P5 relatives à la sécurité des données. Une caractéristique de sécurité P4 indique si la confidentialité des données est requise. Une caractéristique de sécurité P5 précise le type d'intégrité requis pour les données. Par exemple, P5 peut préciser que l'intégrité requise est simple ou qu'un mécanisme anti-rejeu doit être utilisé.

Dans le mode de réalisation décrit, l'ensemble des caractéristiques Pl à P5 utilisés sont codées sous forme d'un octet. A titre d'alternative, le nombre et le type de caractéristiques d'accès et de caractéristiques de sécurité utilisés sont différents.

La requête RA2 est reçue par le module de contrôle SC2 lors d'une étape E212, puis, lors d'une étape E214, le module de contrôle SC2 détermine une commande d'allocation CA2 en fonction de la requête RA2 reçue. Cette commande d'allocation CA2 comprend l'identifiant de contrôle ID2 déterminé lors de l'étape E204, les caractéristiques d'accès Pl, P2 et P3 ainsi que le nombre NE d'enregistrements demandés.

Dans le mode de réalisation décrit, les caractéristiques d'accès et/ou de sécurité sont transmises par l'application AP2. Cette configuration permet une gestion adaptée à chaque application.

A titre d'alternative, tout ou partie des caractéristiques d'accès et/ou de sécurité est déterminée par le module de gestion SC2 du module de sécurité C2.

La commande d'allocation CA2 déterminée est ensuite transmise au module de gestion SM2 du terminal T2 lors d'une étape E216. La commande d'allocation CA2 est reçue par le module de gestion SM2 du terminal T2 lors d'une étape E218. Lors d'une étape E220 suivante, le module de gestion SM2 détermine une zone mémoire ZM2 en fonction des caractéristiques d'accès Pl à P3 et du nombre NE d'enregistrements demandés.

La zone ZM2 est une zone de la mémoire Ml, de la mémoire M2 ou de la mémoire M3.

Par exemple, si la caractéristique de latence P2 est fixée à la valeur 0, cela signifie que le temps d'accès à la mémoire doit être le plus court possible. Dans ce cas, la mémoire Ml est choisie préférentiellement à la mémoire M3. En revanche, la mémoire distante M3 est choisie s'il n'y a plus suffisamment de place disponible dans les mémoires Ml et M2.

Lors de l'étape suivante E222, le module de gestion SM2 enregistre dans une table de gestion TM2 du terminal T2, une adresse AD3 de début de zone ZM2, qui représente une information d'allocation mémoire AL2, et une adresse AD4 de fin de zone ZM2 en association avec l'identifiant de contrôle ID2 de l'application AP2. L'adresse AD3 de début de zone ZM2 et l'adresse AD4 de fin de zone ZM2 sont des adresses physiques permettant au module de gestion SM2 d'accéder ensuite à la zone mémoire ZM2.

A titre d'alternative, le module de gestion SM2 enregistre dans la table de gestion TM2, l'adresse AD3 de début de zone ZM2 et le nombre NE d'enregistrements réservés.

Encore à titre d'alternative, l'information d'allocation mémoire AL2 est constituée de l'adresse AD3 de début de zone et de l'adresse AD4 de fin de zone.

Encore à titre d'alternative, l'information d'allocation mémoire AL2 est un identifiant permettant au module de gestion SM2 de retrouver l'adresse physique de la zone ZM2.

Lors d'une étape E224, l'information d'allocation mémoire AL2 est retransmise au module de contrôle SC2 du module de sécurité C2. Suite à la réception de cette information (étape E226), le module de contrôle SC2 enregistre, lors d'une étape

E228, cette information d'allocation mémoire AL2, dans la table de correspondance TC2 du module de sécurité C2, en association avec l'identifiant d'application IA2. Lors d'une étape E230 suivante, le module de contrôle SC2 transmet l'information d'allocation mémoire AL2 à l'application AP2.

Dans le mode de réalisation décrit, l'application AP2 transmet une requête d'enregistrement RE2 et une requête d'allocation RA2. A titre d'alternative, l'application transmet seulement une requête d'allocation et les étapes de détermination d'un identifiant de contrôle, de détermination des paramètres de sécurité et de stockage dans une table de correspondance sont réalisées par le module de contrôle lors de la réception de cette requête d'allocation.

Un mode de réalisation d'un procédé de gestion dans lequel l'application AP2 transmet une requête d'écriture va maintenant être décrit en référence à la figure 6. Ce procédé de gestion est mis en œuvre suite à l'allocation d'une zone mémoire

ZM2 associée à l'application AP2 et externe au module de sécurité C2, selon par exemple un procédé d'allocation tel que décrit précédemment. Lors d'une étape E240, l'application AP2 transmet au module de contrôle SC2 une requête d'écriture RW2. La requête d'écriture RW2 comporte l'identifiant d'application IA2 de l'application AP2, un type d'accès (lecture ou écriture), les caractéristiques de sécurité (P4, P5), une adresse ADW relative à la zone ZM2 allouée ainsi que des données DW à écrire. Par exemple, l'adresse ADW transmise est l'adresse d'un enregistrement à écrire et elle est calculée par l'application AP2 à partir de l'information d'allocation mémoire AL2, qui est ici l'adresse AD3 de début de zone ZM2, reçue en réponse à la requête d'allocation RA2.

La requête RW2 est reçue par le module de contrôle SC2 lors d'une étape E242.

Lors d'une étape E244 suivante, le module de contrôle SC2 vérifie que l'application AP2 est enregistrée par recherche de l'identifiant d'application IA2 dans la table de correspondance TC2 et qu'une zone mémoire a été allouée pour cette application.

Si aucune zone mémoire externe n'a été allouée pour cette application AP2, le module de contrôle SC2 ne peut traiter la requête reçue. Il renvoie alors à l'application AP2 un message d'erreur. A titre d'alternative, il ne répond pas. Si une zone mémoire a été allouée, le module de contrôle SC2 vérifie ensuite que l'adresse ADW contenue dans la requête correspond à l'adresse d'un enregistrement accessible par l'application AP2 en utilisant l'information d'allocation mémoire AL2 enregistrée dans la table TC2 en association avec l'identifiant d'application IA2 de l'application AP2.

Si la caractéristique de sécurité P4 contenue dans la requête d'écriture RW2 est positionnée par exemple à la valeur 1 , les données DW doivent être écrites de façon confidentielle et, lors d'une étape E246, le module de contrôle SC2 chiffre les données à écrire avec la clé kc lue dans la table de correspondance TC2 en association avec l'identifiant d'application IA2. Il obtient ainsi les données chiffrées DCW.

Si la caractéristique de sécurité P5 est positionnée par exemple à la valeur "01", l'application AP2 souhaite un contrôle d'intégrité simple sur les données et, lors d'une étape E248, le module de contrôle SC2 calcule une signature SW des données DW à écrire en utilisant la clé ks enregistrée dans la table de correspondance TC2 en association avec l'identifiant d'application IA2.

Puis, lors d'une étape E250, le module SC2 détermine une commande d'écriture CW2 en fonction de la requête RW2 reçue. Plus précisément, la commande d'écriture CW2 contient le type de la commande (commande d'écriture), l'identifiant de contrôle ID2, l'adresse ADW, les données chiffrées DCW et la signature SW.

Lors d'une étape suivante E252, la commande d'écriture CW2 est transmise au module de gestion SM2 du terminal T2 qui la reçoit lors d'une étape E254.

L'étape E254 est suivie d'une étape E256 lors de laquelle le module de gestion

SM2 vérifie dans la table de gestion TM2 du terminal T2 que la zone demandée en écriture est réservée pour l'application AP2. Puis, si tel est le cas, il commande l'écriture des données chiffrées DCW et de la signature SW dans la zone ZM2 à l'adresse ADW (étape E258).

L'étape E258 est suivie d'une étape E260 lors de laquelle le module de gestion SM2 renvoie au module de contrôle SC2 une information ACK relative à l'exécution de la commande CW2. L'information ACK est ensuite transmise par le module de gestion SC2 à l'application AP2 (étape E262).

Un mode de réalisation d'un procédé de gestion dans lequel l'application AP2 transmet une requête de lecture va maintenant être décrit en référence à la figure 7.

Ce procédé de gestion est mis en œuvre suite à l'allocation d'une zone mémoire ZM2 associée à l'application AP2 et externe au module de sécurité C2, selon par exemple un procédé d'allocation tel que décrit précédemment.

Lors d'une étape E270, l'application AP2 transmet au module de contrôle SC2 du module de sécurité C2, une requête de lecture RR2. Cette requête de lecture RR2 comporte l'identifiant d'application IA2 de l'application AP2, les caractéristiques de sécurité (P4, P5) et l'adresse ADR d'un enregistrement de la zone mémoire externe

ZM2 allouée pour l'application AP2. L'adresse ADR de l'enregistrement est calculée par l'application AP2 à partir de l'adresse AD3 de début de zone reçue en réponse à la requête d'allocation RA2.

La requête de lecture RR2 est reçue par le module de contrôle SC2 lors d'une étape E272. Lors d'une étape E274, le module de contrôle SC2 vérifie que l'adresse ADR contenue dans la requête RR2 correspond à l'adresse d'un enregistrement accessible par l'application AP2 en utilisant l'information d'allocation mémoire AL2 enregistrée dans la table de correspondance TC2 du module de sécurité C2, pour l'application AP2.

Si l'adresse ADR ne correspond pas à l'adresse d'un enregistrement accessible par l'application AP2, le module de contrôle SC2 n'exécute pas la requête de lecture RR2 reçue. Sinon, lors d'une étape E276, le module de contrôle SC2 détermine une commande de lecture CR2 en fonction de la requête de lecture RR2. Plus précisément, la commande de lecture CR2 contient le type de la commande (commande de lecture), l'identifiant de contrôle ID2, lu dans la table de correspondance TC2 et l'adresse ADR de l'enregistrement à lire. Lors d'une étape suivante E278, la commande de lecture CR2 est transmise au module de gestion SM2 du terminal T2 qui la reçoit lors d'une étape E280.

L'étape E280 est suivie d'une étape E282 lors de laquelle le module de gestion

SM2 vérifie dans la table de gestion TM2 que l'adresse ADR reçue est une adresse de la zone allouée ZM2 pour l'application AP2. Puis, si tel est le cas, le module de gestion SM2 commande la lecture dans la zone ZM2 et obtient les données D (étape

E284).

L'étape E284 est suivie d'une étape E286 lors de laquelle le module de gestion SM2 renvoie au module de contrôle SC2 les données D.

Le module de contrôle SC2 reçoit ces données D lors d'une étape E288. Si la caractéristique de sécurité P5 est positionnée, les données D comportent des données DCR et une signature SW.

Si la caractéristique de sécurité P4 contenue dans la requête de lecture RR2 est positionnée par exemple à la valeur 1, la confidentialité est requise et les données DCR sont des données chiffrées. Lors d'une étape E290, le module de contrôle SC2 déchiffre les données reçues DCR avec la clé kc lue dans la table de correspondance TC2 en association avec l'identifiant de contrôle ID2. Il obtient ainsi les données déchiffrées DR.

Si la caractéristique de sécurité P5 est positionnée par exemple à la valeur "01", l'application AP2 souhaite un contrôle d'intégrité simple sur les données et, lors d'une étape E292, le module de contrôle SC2 calcule une signature SR des données déchiffrées DR en utilisant la clé ks enregistrée dans la table de correspondance TC2 en association avec l'identifiant de contrôle ID2 et vérifie que la signature SR calculée correspond à la signature SW reçue avec les données. Ce contrôle permet de vérifier l'intégrité des données reçues. Lors d'une étape E294, un message de réponse contenant les données déchiffrées DR est ensuite transmis par le module de contrôle SC2 à l'application AP2.

Dans le mode de réalisation décrit, l'application AP2 est une application contenue dans le module de sécurité SC2. L'invention peut également s'appliquer à une application enregistrée dans le terminal T2. Le procédé d'allocation comporte alors, outre les étapes décrites précédemment, une étape supplémentaire lors de laquelle le module de contrôle SC2 génère une clé Kv, enregistre la clé kv générée dans la table de correspondance TC2 en association avec l'identifiant de contrôle ID2 et transmet cette clé kv à l'application. Tous les échanges entre l'application et le module de contrôle sont ensuite signés avec cette clé Kv permettant ainsi à l'application d'une part et au module de sécurité d'autre part de vérifier l'intégrité des données échangées.

Selon un mode de réalisation choisi et représenté à la figure 8, un système mettant en œuvre un procédé d'allocation et/ou un procédé de gestion selon l'invention est constitué, par exemple, d'un terminal mobile 500 et d'un module de sécurité 520.

Le terminal mobile 500 comporte de façon connue, notamment une unité de traitement 502 équipée d'un microprocesseur, une mémoire morte de type ROM ou EEPROM 503, une mémoire additionnelle de type EEPROM 504, une mémoire vive de type RAM 505 et un module d'émission réception 506 pour communiquer avec le module de sécurité 520 inséré dans le terminal.

Le terminal 500 peut comporter de manière classique et non exhaustive les éléments suivants: une interface de communication avec un réseau de communication, un clavier, un écran, un microphone, un haut-parleur, un lecteur de disque, un moyen de stockage...

La mémoire morte 503 du terminal 500 comporte des registres mémorisant un programme d'ordinateur PGT comportant des instructions de programme adaptées à recevoir une commande d'allocation de mémoire en provenance d'un module de sécurité, à allouer une zone mémoire en fonction de la commande d'allocation reçue, à déterminer une information d'allocation mémoire relative à ladite zone allouée, à transmettre ladite information d'allocation mémoire, à recevoir une commande de lecture ou d'écriture dans ladite zone mémoire allouée, à accéder à ladite zone allouée et à transmettre les données lues dans ladite zone allouée. Lors de la mise sous tension, le programme PGT stocké dans la mémoire morte 503 est transféré dans la mémoire vive du terminal qui contiendra alors un code exécutable ainsi que des registres pour mémoriser les variables nécessaires à la mise en œuvre de l'invention. De manière plus générale, un moyen de stockage, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en œuvre l'invention.

Le module sécurisé 520 est par exemple une carte d'abonné qui comporte de façon connue, notamment une unité de traitement 521 équipée d'un microprocesseur, une mémoire morte de type ROM 522, une mémoire vive de type RAM 523, un module d'émission réception 525 pour communiquer avec le terminal mobile 500.

La mémoire morte 522 du module de sécurité 520 comporte des registres mémorisant un ou plusieurs programmes d'ordinateur comportant des instructions de programme adaptées à exécuter une ou plusieurs applications (APl, AP2, ...). Elle comporte également des registres mémorisant un programme d'ordinateur PGC comportant des instructions de programme adaptées à mettre en œuvre un procédé d'allocation et/ou de gestion selon l'invention tel que décrit en référence aux figures 1 à 7. Ce programme est ainsi adapté à recevoir une requête d'allocation de mémoire externe en provenance d'une application, à transmettre une commande d'allocation de mémoire en fonction de ladite requête, à recevoir une information d'allocation mémoire déterminée à partir de la commande d'allocation, à stocker l'information d'allocation mémoire reçue en association avec un identifiant de ladite application, à recevoir une requête de lecture ou d'écriture dans une mémoire externe, ladite requête comportant l'identifiant d'application, à déterminer une commande de lecture ou d'écriture en fonction de ladite requête et de l'information d'allocation mémoire associée à l'identifiant d'application et à transmettre ladite commande de lecture ou d'écriture en vue de la lecture ou de l'écriture de données dans la mémoire externe.

Lors de la mise sous tension, le programme PGC stocké dans la mémoire morte 522 du module de sécurité 520 est transféré dans la mémoire vive du module de sécurité qui contiendra alors un code exécutable ainsi que des registres pour mémoriser les variables nécessaires à la mise en œuvre de l'invention.

De manière plus générale, un moyen de stockage, lisible par un ordinateur ou par un microprocesseur, intégré ou non au dispositif, éventuellement amovible, mémorise un programme mettant en œuvre l'invention.