Brevet FR2910202A1 — publié le 20080620

Traitement de donnée relative à un réseau de données La présente invention concerne un traitement d'une donnée numérique qui est relative à un réseau de données. Plus particulièrement, elle a trait à la protection par chiffrement/déchiffrement d'une donnée numérique relative à un réseau de données. Dans le cadre de la présente invention, on appellera "réseau de données" un ensemble de ressources constitué par tout ou partie d'un équipement informatique et/ou un réseau de communication pouvant être une pluralité de réseaux de communication interconnectés, et désigné de manière unique par un identificateur appelé "identificateur de réseau de données". Le terme de réseau de données désignera par la suite indifféremment un ensemble de ressources et l'ensemble des données stockées ou transférées au sein de cet ensemble de ressources. Par ailleurs, deux réseaux de données quelconques sont supposés disjoints. Les réseaux de communication concernés sont de tout type connu. Un exemple d'un réseau de communication, emprunté à la norme GPRS/UMTS ("General Packet Radio System"/"Universal Mobile Telecommunications System" en anglais), est un espace d'adressage identifié par un nom de point d'accès APN ("Access Point Naine" en anglais). Un réseau de données peut être, par exemple : un réseau de communication accessible via un réseau d'accès cellulaire numérique du type UMTS, ou 2910202 2 le réseau Internet rendu accessible depuis un réseau d'accès WiFi ("Wireless Fidelity" en anglais), ou un réseau de services bancaires accessible 5 depuis un terminal bancaire avec un réseau d'accès sans contact, ou une carte mémoire amovible, telle qu'une carte à puce, insérable dans un terminal et contenant un logiciel informatique, ou bien encore 10 tout ou partie d'un terminal. Une "application" est classiquement définie comme une unité d'exécution d'un programme exécutable par un terminal. Un même programme peut être exécuté 15 plusieurs fois de manière à ce que différentes applications requises par l'exécution du programme soient respectivement dédiées à des réseaux de données différents. Par exemple, un lecteur de média peut être exécuté à la fois pour lire un fichier 20 appartenant au réseau Internet, et pour lire un fichier appartenant à un réseau de données proposant des services de musique à la demande. Une application est dite "dédiée à un réseau de données" lorsque son exécution est lancée dans le 25 contexte du réseau de données, c'est-à-dire sur les données stockées ou transférées au sein du réseau de données. Une donnée numérique est dite "relative à un réseau de données" si cette donnée numérique est 30 créée, mémorisée, utilisée, ou destinée à être utilisée, par une application dédiée à ce réseau de données. Dans ce cas, le réseau de données est dit "à l'origine de la donnée numérique" en question. Par exemple, des données mémorisées dans un terminal peuvent comprendre, d'une part, des données de 2910202 3 l'interface utilisateur du terminal relativement à un réseau de données interne au terminal, et d'autre part des données d'un porte-monnaie électronique inclus dans le terminal relativement à un réseau de 5 données fournissant un service bancaire. Dans la suite de la description, un "réseau de services" désigne un réseau de données offrant un ou plusieurs services, les services étant considérés 10 comme des données du point de vue du réseau de données. Actuellement, certains réseaux de services offrent divers types de services dont la sécurité des données doit être garantie. Par exemple, des données numériques fournies par un service issu d'un réseau 15 de services payants de téléchargement d'enregistrements vidéo ne doivent être exploitables que dans le cadre de ce réseau, et non pas dans le cadre d'un réseau de services gratuits. De même, des informations personnelles telles que des informations 20 de nature bancaire relatives à un utilisateur doivent être accessibles seulement dans le cadre du réseau bancaire qui en est à l'origine. Au travers d'un réseau d'accès cellulaire, un terminal mobile actuel peut accéder consécutivement à 25 plusieurs réseaux de données, mais n'est pas capable de confiner les données à leurs réseaux de données d'origine. Avec un tel terminal, il est par exemple possible de télécharger des données issues d'un réseau de données dans une mémoire amovible installée 30 dans un terminal mobile et de les copier dans un autre réseau de données après avoir installé la mémoire amovible sur un autre terminal. Ainsi, des données confidentielles issues d'un réseau bancaire peuvent être copiées sur le réseau Internet au moyen 35 de la mémoire amovible du terminal. 2910202 4 Pour pallier ce problème, une solution consiste à interdire la mémorisation de données sur un terminal. De ce fait, des services nécessitant la 5 mémorisation d'un nombre élevé de données sur le terminal sont pénalisés commercialement. Par exemple, un service de jeu en réseau nécessite le téléchargement d'un jeu qui peut requérir plus d'une heure. Dans ce cas, le téléchargement systématique du 10 jeu à chaque utilisation de ce dernier est une contrainte rédhibitoire à la commercialisation du jeu. Une autre solution consiste à contrôler l'usage des ressources mémoire d'un terminal. Plusieurs 15 approches existent actuellement. Une première approche consiste à contrôler le droit d'accès aux différentes ressources mémoire d'un terminal par le système d'exploitation gérant ces ressources, notamment les systèmes de fichiers. Le système 20 d'exploitation vérifie qu'une application exécutée pour le compte d'un utilisateur donné possède bien les droits d'accès en écriture ou en lecture au fichier concerné avant de satisfaire la requête. Ainsi, à chaque fichier peuvent être associés des 25 droits différents en fonction de l'utilisateur. Une seconde approche consiste à protéger directement les données destinées à être mémorisées, en fonction de l'utilisateur de ces données. Plus précisément, cela consiste à rendre les données inintelligibles en 30 l'absence d'un décodeur approprié activable par un ayant-droit, et ce, via un mécanisme de chiffrement. Ce dernier est mis en oeuvre par le système d'exploitation d'un terminal qui peut chiffrer un fichier donné, avec une clé attribuée à l'utilisateur 35 du terminal pour le compte duquel le fichier est 2910202 5 manipulé. Ces deux dernières approches ont pour inconvénient majeur d'être "orientées utilisateur". Ainsi, aucune d'elle n'interdit à un utilisateur quelconque d'échanger des données entre deux 5 applications dédiées respectivement à deux réseaux de données distincts et s'exécutant sur un même système d'exploitation. Pour remédier aux inconvénients évoqués ci- 10 dessus, un procédé selon l'invention pour traiter une donnée numérique créée, mémorisée, utilisée, ou destinée à être utilisée par une application dédiée à un réseau de données et exécutée dans un terminal, une requête d'accès mémoire incluant la donnée 15 numérique ayant été émise par l'application à destination d'un système d'exploitation du terminal, est caractérisé en ce qu'il comprend les étapes suivantes . après interception de la requête d'accès mémoire 20 destinée au système d'exploitation, identifier l'application à l'origine de ladite requête, déterminer un identificateur du réseau de données associé à l'application identifiée, générer une clé en fonction de l'identificateur 25 du réseau de données déterminé, et traiter la donnée numérique en fonction de la clé générée. Dans le cadre de la présente invention, il est supposé qu'une application est toujours lancée dans 30 le contexte d'un et un seul réseau de données, généralement à l'initiative de l'utilisateur. Le lien entre une application et le réseau de données peut par exemple être effectué par le système d'exploitation du terminal lors du lancement de 2910202 6 l'exécution de l'application, éventuellement à l'insu de cette dernière. L'invention suppose par ailleurs que le système d'exploitation du terminal gère explicitement, c'est- 5 à-dire mémorise, protège et rend accessible, d'une part la correspondance entre un processus système et une application, et d'autre part la correspondance entre une application et un identificateur de réseau de données associé. 10 L'invention garantit l'absence totale d'échange de données entre deux réseaux de données distincts quelconques via un support mémoire, y compris via un support mémoire amovible. L'invention confine les données dans leurs réseaux de données d'origine, y 15 compris lorsque ces données résultent de l'exécution d'applications, en prolongeant ce confinement jusqu'à leur stockage en mémoire, y compris pour un stockage sur un support d'enregistrement du type mémoire persistante amovible. De ce fait, nous dirons de 20 l'invention qu'elle réalise un "confinement à l'exécution" des réseaux de données. Cela signifie en premier lieu que toute donnée résultant de l'exécution d'une application dédiée à un réseau de données est nécessairement "attribuée" à ce seul 25 réseau de données, et en second lieu qu'une application qui est lancée dans le contexte du réseau de données n'a accès à aucune donnée appartenant à un autre réseau de données ou résultant de l'exécution d'une application lancée dans le contexte d'un autre 30 réseau de données. Par ailleurs, un terminal est dit "compatible avec un réseau de données" lorsque ce terminal garantit un confinement à l'exécution de ce réseau de données. Par conséquent, l'accès à un réseau de 2910202 7 données est réservé aux terminaux compatibles avec ce réseau de données. Ainsi, dans un terminal compatible avec des premier et deuxième réseaux de données, une première 5 application relative au premier réseau de données ne peut accéder à une donnée élaborée par une deuxième application relative au deuxième réseau de données. De même, si une donnée est stockée dans une mémoire amovible par une première application dédiée à un 10 premier réseau de données et exécutée dans un premier terminal, une deuxième application dédiée à un deuxième réseau de données et exécutée dans un deuxième terminal ne peut accéder à la donnée lorsque la mémoire amovible est installée dans le deuxième 15 terminal. En proposant une solution au problème de sécurisation du stockage des données issues de réseaux de données, l'invention offre à l'utilisateur d'un terminal un gain de temps et d'argent résultant 20 d'une économie de chargements. Pour un opérateur de réseau de télécommunications, l'invention apporte un élargissement des opportunités de services, et un gain en exploitation en évitant de congestionner le réseau par le rechargement, à chaque utilisation, des 25 services auxquels l'utilisateur est déjà abonné. L'invention optimise de plus le téléchargement de données dans un terminal en facilitant la gestion des reprises sur incident, telle qu'une extinction du terminal. En effet, un téléchargement interrompu peut 30 être repris dès la fin de l'incident, et les données déjà téléchargées sont mémorisées dans une mémoire persistante du terminal pour ne pas perdre le bénéfice du téléchargement déjà réalisé. 2910202 8 Selon une autre caractéristique de l'invention, la donnée numérique peut être un identificateur d'un fichier mémorisé dans le terminal et des première et deuxième clés sont générées afin de traiter 5 l'identificateur de fichier et le fichier mémorisé respectivement en fonction des première et deuxième clés générées. Le traitement d'un identificateur d'un fichier par exemple téléchargé et mémorisé dans une mémoire 10 volatile du terminal assure un premier niveau de protection quant à la localisation du fichier mémorisé. L'invention concerne également un système pour 15 traiter une donnée numérique créée, mémorisée, utilisée, ou destinée à être utilisée par une application dédiée à un réseau de données et exécutée dans un terminal, une requête d'accès mémoire incluant la donnée numérique ayant été émise par 20 l'application à destination du système d'exploitation du terminal. Le système est caractérisé en ce qu'il comprend : - un moyen pour identifier l'application à l'origine de la requête d'accès mémoire destinée au 25 système d'exploitation, après interception de ladite requête, - un moyen pour déterminer un identificateur du réseau de données associé à l'application identifiée, - un moyen pour générer une clé en fonction de 30 l'identificateur du réseau de données déterminé, et - un moyen pour traiter la donnée numérique en fonction de la clé générée. Selon une autre caractéristique de l'invention, 35 le système peut comprendre un moyen interceptant la 2910202 9 requête d'accès mémoire destinée au système d'exploitation pour introduire des champs de paramètres de contexte, associés notamment au contexte de lancement et d'exécution de l'application 5 courante, dans la requête interceptée, et au moins un moyen pour renseigner les champs de paramètres de contexte par des valeurs dont une correspond à l'identificateur du réseau de données. 10 Le système de protection selon l'invention intercepte systématiquement tout appel à une mémoire du terminal par une application afin d'assurer une protection des accès en lecture ou en écriture à la mémoire. En particulier, des champs de paramètres de 15 contexte sont renseignés de manière à paramétrer l'appel à une mémoire par au moins un identificateur du réseau de données dans le contexte duquel s'exécute l'application. 20 Enfin, l'invention se rapporte à un programme d'ordinateur apte à être mis en oeuvre dans un système pour traiter une donnée numérique créée, mémorisée, utilisée, ou destinée à être utilisée par une application dédiée à un réseau de données et exécutée 25 dans un terminal, ledit programme comprenant des instructions qui, lorsque le programme est exécuté dans ledit système, réalisent les étapes selon le procédé de l'invention. 30 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 de l'invention données à titre d'exemples non limitatifs, en référence aux dessins 35 annexés correspondants dans lesquels : 2910202 10 - la figure 1 est un bloc-diagramme schématique d'un système de protection selon l'invention pour traiter une donnée relative à un réseau de données et 5 - la figure 2 est l'algorithme d'un procédé de traitement de donnée selon l'invention mis en oeuvre dans le système de protection. En référence à la figure 1, le système de 10 protection SP selon l'invention est inclus dans un terminal informatique capable de gérer des données numériques. Le terminal informatique peut être de tout type et peut gérer tout type de données. Par exemple, le 15 terminal est un ordinateur personnel, un terminal radio mobile, un terminal bancaire, un serveur applicatif ou encore une caméra de surveillance. Le système de protection SP comprend un gestionnaire de mémoire GM, un système de chiffrement 20 SC et au moins un serveur de paramètres SVP. Le système de chiffrement SC comprend un contrôleur de chiffrement CC, un générateur de clé GC et un module de chiffrement MC. Le serveur de paramètres SVP communique directement avec le gestionnaire de 25 mémoire GM et/ou le contrôleur de chiffrement CC. Les communications entre les différentes entités comprises dans le système de protection SP sont sécurisées, de manière à ce qu'aucun échange d'information ne puisse être intercepté pendant une 30 communication entre deux de ces entités. Le gestionnaire de mémoire GM gère à travers le système d'exploitation du terminal l'accès en écriture et en lecture à des mémoires MEM du terminal, telles qu'une mémoire persistante ou une 35 mémoire volatile. 2910202 11 Le serveur de paramètres SVP gère une base de données qui comprend notamment des informations nécessaires au système de protection selon l'invention telles que des paramètres requis par le 5 générateur de clé GC. Toujours en référence à la figure 1, le terminal comprend des mémoires MEM qui regroupent une ou plusieurs mémoires volatiles et une ou plusieurs 10 mémoires persistantes accessibles à travers le système d'exploitation depuis le gestionnaire de mémoire GM du système de protection. En outre, des mémoires persistantes peuvent être implantées sur un support amovible du terminal. 15 Le système d'exploitation du terminal exécute des applications AP et gère le partage des ressources du terminal entre les applications. Une application AP qui est exécutée par le système d'exploitation du terminal dans le contexte 20 d'un réseau de données RD peut demander la mémorisation d'une donnée dans l'une des mémoires MEM du terminal. En particulier, le système de protection SP peut être mis en oeuvre dans un composant électronique de 25 type microcontrôleur, circuit à microprocesseur ou carte à puce, afin que le système ne soit pas piraté, espionné ou modifié. Ce mode de réalisation est particulièrement intéressant lorsque le composant électronique inclut, en plus du système de protection 30 SP, une mémoire volatile, une mémoire persistante, stockant par exemple les codes applicatifs permettant au système d'exploitation de s'exécuter, et un processeur dans lequel s'exécute le code source du système de protection. En effet, une faiblesse du 35 système de protection est que son exécution réclame 2910202 12 que son code source soit écrit en "clair". Si le code source est écrit en mémoire volatile, il est possible de copier le code source de la mémoire, d'en comprendre le fonctionnement et de le détourner de ce 5 fonctionnement. En revanche, si le code source du système de protection est exécuté au sein du composant électronique, il est beaucoup plus difficile de le pirater. La mémoire persistante du composant électronique 10 contient des applications critiques comme, par exemple, un système d'exploitation certifié mettant en oeuvre le gestionnaire de mémoire GM, ou un navigateur certifié. Quand un service nécessitant un haut niveau de 15 sécurité doit être exécuté sur le terminal, il est alors exécuté au moyen du processeur et des mémoires volatiles et persistantes du composant électronique. Les capacités en mémoire volatile et persistante du composant électronique étant, par essence, limitées, 20 le composant électronique peut stocker des données relatives au service sur les mémoires volatiles ou persistantes du terminal. Toutes les données relatives au service nécessitant d'être sécurisées sont préalablement traitées par le système de 25 protection SP du composant électronique avant d'être stockées sur lesdites mémoires volatiles ou persistantes du terminal. Ainsi, même si une application dite "pirate" possède des moyens matériels d'espionner la mémoire 30 volatile du terminal pour extraire des données confidentielles provenant d'un service, l'application ne pourra pas accéder à ces données car ces dernières auront été préalablement chiffrées par le système de chiffrement SC. Par conséquent, il n'est pas possible 35 d'extraire des données provenant d'un réseau de 2910202 13 données, d'y accéder et de les copier dans un autre réseau de données de manière illégitime. Par ailleurs, le système de chiffrement SC peut être réalisé en logique câblée plutôt que sous forme 5 de logiciel. En effet, la logique câblée optimise le fonctionnement en augmentant considérablement les performances. Puisque le temps de traitement de données du système de chiffrement SC constitue le principal délai pour le stockage de données en 10 mémoire, si ce traitement est trop long, l'exécution des services peut être aussi perçue comme trop longue par l'utilisateur du terminal. Pour que le fonctionnement du terminal ne soit pas pénalisé par le temps de traitement du système de chiffrement SC, 15 ce dernier doit être de préférence optimisé, par exemple en ayant recours à une réalisation en logique câblée. Enfin, cette réalisation permet de faire appel à des applications certifiées qui seront stockées et 20 exécutées dans le composant électronique de manière à garantir que ces applications ne seront pas modifiées ou piratées, ce qui permet de prolonger leur certification jusqu'à l'exécution. On notera que l'usage d'applications certifiées est un pré-requis 25 exigé par la plupart des services nécessitant un haut degré de sécurité tels qu'un service bancaire, le contrôle d'accès à un site, ou la gestion des droits numériques DRM ("Digital Rights Management" en anglais). 30 En référence à la figure 2, le procédé selon l'invention comprend des étapes El à E7 exécutées automatiquement sous le contrôle du système de protection SP inclus dans le terminal et mises en 35 oeuvre par des instructions d'un programme 2910202 14 d'ordinateur enregistré sur un support d'enregistrement lisible par le système de protection SP. Au préalable, un utilisateur du terminal a 5 souscrit un abonnement auprès d'un opérateur gérant un réseau de données et devient ainsi un abonné à au moins un réseau de données. A l'étape El, une application AP est exécutée dans le terminal dans le contexte d'un réseau de 10 données RD. Par exemple, l'utilisateur du terminal a sélectionné le lancement de l'application via une interface homme-machine du terminal indiquant à l'utilisateur les réseaux de données auquel ce dernier est abonné et les applications disponibles 15 pour ces réseaux de données. A titre d'exemple, l'application est un lecteur de média qui est lancé dans le contexte d'un réseau de données proposant des services de musique à la demande. L'application exécutée AP transmet une requête 20 d'accès mémoire RA à destination du système d'exploitation du terminal afin d'accéder aux mémoires MEM du terminal. La requête d'accès mémoire RA inclut un type de requête TR indiquant le type d'accès à la mémoire MEM requis par l'application. 25 Par exemple, le type d'accès est une lecture ou une écriture de données. La requête d'accès mémoire RA inclut en outre une donnée numérique DAT à traiter, c'est-à-dire à chiffrer ou à déchiffrer. La donnée numérique DAT peut servir à identifier un contenu 30 numérique dit "simple" ou "structuré". Un contenu numérique simple peut être une variable ou une chaîne de caractères telle qu'un nom ou une date. Un contenu numérique structuré peut être un ensemble hétérogène de données simples, comme un fichier déjà mémorisé 2910202 15 dans l'une des mémoires MEM et référencé par un identificateur inclus dans la donnée à traiter. A titre d'exemple, la requête d'accès mémoire RA requiert l'écriture d'un fichier dans une mémoire 5 persistante des mémoires MEM du terminal, et inclut un identificateur de ce fichier qui est mémorisé dans une mémoire volatile des mémoires MEM. A l'étape E2, la requête RA destinée au système d'exploitation est interceptée par le gestionnaire de 10 mémoire GM du système de protection SP qui est à l'écoute de toute requête provenant de toute application à destination du système d'exploitation du terminal. Le gestionnaire de mémoire GM identifie alors l'application AP qui est à l'origine de la 15 requête RA, par exemple au moyen d'une correspondance entre un processus système et un identificateur de l'application. Le gestionnaire de mémoire GM modifie la requête interceptée RA en une requête modifiée RM en la 20 complétant par un ou plusieurs champs de paramètres de contexte CP, l'un d'eux étant nécessairement destiné à être renseigné par un identificateur IRD du réseau de données dans le contexte duquel l'application a été lançée. Les champs peuvent être 25 renseignés par les valeurs d'autres paramètres tels qu'un identificateur de l'utilisateur ou un identificateur du terminal. Optionnellement, le gestionnaire de mémoire GM mémorise temporairement la requête modifiée RM. 30 A l'étape E3, le gestionnaire de mémoire GM transmet la requête modifiée RM au contrôleur de chiffrement CC du système de chiffrement SC. Le contrôleur de chiffrement CC mémorise la requête modifiée RM, notamment le type de requête TR et la 35 donnée à traiter DAT inclus dans la requête RM. 2910202 16 A l'étape E4, le contrôleur de chiffrement CC interroge le serveur de paramètres SVP afin de renseigner les champs de paramètres de contexte CP dans la requête modifiée RM. 5 Le serveur de paramètres SVP détermine les valeurs des paramètres, notamment l'identificateur du réseau de données IRD, associés à l'application AP, afin de renseigner les champs de la requête modifiée par ces valeurs. Avantageusement, si le serveur SVP 10 ne peut pas renseigner la valeur du paramètre de contexte "identificateur du réseau de données", la procédure de cryptage échoue, entraînant ainsi l'échec de l'opération de lecture/écriture en mémoire et le procédé se termine, assurant ainsi la sécurité 15 des données. Par exemple, dans le cas d'un terminal compatible avec un réseau de données, le système d'exploitation du terminal gère une correspondance entre l'application AP, dont l'exécution est à 20 l'origine de la requête RA dans le terminal, et un identificateur du réseau de données auquel est dédiée l'application. Le serveur de paramètres SVP consulte alors une table de correspondances entre des identificateurs d'application et des identificateurs 25 de réseau de données IRD. Selon un autre exemple, l'application AP est spécifique à une carte à puce qui est reliée au terminal et considérée comme constituant un réseau de données RD. L'identificateur de réseau de données est 30 alors le numéro de série de la carte à puce. Le serveur de paramètres SVP transmet les champs de paramètres de contexte renseignés CPR au contrôleur de chiffrement CC qui les mémorise. 2910202 17 En variante, les étapes E3 et E4 sont remplacées respectivement par des étapes E31 et E41. A l'étape E31, le gestionnaire de mémoire GM interroge le serveur de paramètres SVP afin de 5 renseigner les champs de paramètres de contexte CP dans la requête modifiée RM. Le serveur de paramètres SVP détermine et transmet les paramètres de contexte renseignés CPR au gestionnaire de mémoire GM. A l'étape E41, le gestionnaire de mémoire GM 10 renseigne les champs de la requête modifiée par les paramètres de contexte associés dans la requête modifiée RM et transmet cette dernière au contrôleur de chiffrement CC du système de chiffrement SC qui la mémorise. 15 A l'étape E5, le contrôleur de chiffrement CC transmet les champs de paramètres de contexte renseignés CPR et le type de requête TR au générateur de clé GC. 20 Le générateur de clé GC génère au moins une clé de protection de données KPD en fonction des valeurs des champs de paramètres de contexte, et notamment de l'identificateur du réseau de données IRD, et en fonction du type de requête TR et de la nature des 25 données à traiter DAT incluses dans la requête RA. Par exemple, dans le cas où la donnée à traiter DAT représente un contenu numérique "simple", le contrôleur de chiffrement requiert au générateur de clé la génération d'une seule clé KPD. La clé KPD est 30 une clé de chiffrement si le type de requête TR est relatif à une écriture, ou est une clé de déchiffrement si le type de requête TR est relatif à une lecture. Dans un autre exemple, si la donnée à traiter 35 DAT est un identificateur référençant un contenu 2910202 18 numérique "structuré" tel qu'un fichier, et si le type de requête est relatif à une lecture, le contrôleur de chiffrement requiert de la part du générateur de clé lagénération d'une première clé 5 pour chiffrer l'identificateur de fichier et d'une deuxième clé pour déchiffrer le contenu du fichier référencé par l'identificateur. Si le type de requête est relatif à une écriture, le contrôleur de chiffrement requiert de la part du générateur de clé 10 la génération d'une seule clé pour chiffrer l'identificateur de fichier et le contenu du fichier référencé par l'identificateur. Le générateur de clé GC transmet alors la clé générée KPD au contrôleur de chiffrement CC. 15 La clé générée KPD est unique et irrévocable. Pour une liste de paramètres de contexte donnée est générée une unique clé KPD. Une donnée chiffrée au moyen d'une liste de paramètres de contexte ne pourra être déchiffrée 20 qu'au moyen d'une clé générée en fonction de cette même liste de paramètres de contexte. Puisque la liste de paramètres de contexte contient au moins un identificateur de réseau de données IRD, une donnée chiffrée à la demande d'une application issue d'un 25 réseau de données ne pourra être déchiffrée qu'à la demande d'une application qui est exécutée dans le contexte du même réseau de données. En variante, le générateur de clé GC extrait une clé de protection de données KPD parmi une liste de 30 clés pré-calculées en fonction de la liste de paramètres de contexte et du type de requête TR, la clé KPD étant soit une clé de chiffrement KC, soit une clé de déchiffrement KD. 2910202 19 A l'étape E6, le contrôleur de chiffrement CC transmet la donnée à traiter DAT, la clé générée KPD et le type de requête TR au module de chiffrement MC. Le module de chiffrement MC traite la donnée 5 reçue DAT en fonction du type de requête TR et de la clé générée KPD. Le module de chiffrement MC possède au moins deux types d'algorithme pour le traitement des données, par exemple un algorithme de chiffrement auquel est applicable toute clé de chiffrement et un 10 algorithme de déchiffrement auquel est applicable toute clé de déchiffrement. Par conséquent, l'algorithme de chiffrement ou de déchiffrement utilisé par le module de chiffrement MC est dual de l'algorithme de génération des clés de chiffrement ou 15 de déchiffrement utilisé par le générateur de clé GC. Le module de chiffrement MC chiffre la donnée reçue DAT avec la clé KPD si le type de requête TR est relatif à une écriture, ou déchiffre la donnée reçue DAT avec la clé KPD si le type de requête TR 20 est relatif à une lecture. La donnée chiffrée ou déchiffrée est alors une donnée traitée DT. Le module de chiffrement MC transmet alors la donnée traitée DT au contrôleur de chiffrement CC. En variante, la donnée à traiter DAT est 25 transmise par le contrôleur de chiffrement CC au module de chiffrement MC avant l'étape E5, c'est-à-dire avant la génération d'une clé KPD. A l'étape E7, le contrôleur de chiffrement CC transmet la donnée traitée DT au gestionnaire de 30 mémoire GM afin que ce dernier mémorise la donnée traitée DT dans l'une des mémoires MEM du terminal selon le type de requête TR. Par exemple, si le type de requête TR est relatif à une écriture, la donnée traitée DT pourra 35 être mémorisée dans une mémoire persistante, et si le 2910202 20 type de requête TR est relatif à une lecture, la donnée traitée DT pourra être mémorisée dans une mémoire volatile dont l'adresse est transmise à l'application AP pour que cette dernière lise la 5 donnée traitée mémorisée. Dans une variante, les étapes E6 et E7 sont complétées comme expliqué ci-après. La donnée à traiter DAT incluse dans la requête 10 est par exemple un identificateur d'un fichier mémorisé dans une mémoire volatile du terminal et le type de requête TR est relatif à une écriture. Dans cette variante, à l'étape E5, le contrôleur de chiffrement CC requiert de la part du générateur 15 de clé GC la génération d'une clé de chiffrement, et charge le fichier mémorisé dans la mémoire volatile via le gestionnaire de mémoire GM, par exemple au moyen d'une référence de l'adresse mémoire du fichier, telle qu'un pointeur initialement inclus 20 dans la requête d'accès mémoire RA. Puis à l'étape E6, le contrôleur de chiffrement CC transmet la donnée à traiter DAT, c'est-à-dire l'identificateur de fichier, ainsi que le fichier chargé, la clé générée et le type de requête TR au 25 module de chiffrement MC. Le module de chiffrement MC chiffre l'identificateur de fichier et le fichier avec la clé et transmet l'identificateur chiffré et le fichier chiffré au contrôleur de chiffrement CC. A l'étape E7, le contrôleur de chiffrement CC 30 commande au gestionnaire de mémoire GM la mémorisation de l'identificateur chiffré et du fichier chiffré dans une mémoire du terminal. Dans une autre variante, l'étape E6 est 35 complétée comme expliqué ci-après. 2910202 21 La donnée à traiter DAT est par exemple un identificateur d'un fichier mémorisé dans une mémoire persistante du terminal et le type de requête TR est relatif à une lecture. 5 Dans cette variante, à l'étape E5, le contrôleur de chiffrement CC requiert de la part du générateur de clé GC la génération d'une clé de chiffrement et d'une clé de déchiffrement qui peuvent être identiques. 10 Puis à l'étape E6, le contrôleur de chiffrement CC transmet la donnée à traiter DAT, c'est-à-dire l'identificateur de fichier, la clé de chiffrement et le type de requête TR au module de chiffrement MC. Le module de chiffrement MC chiffre l'identificateur de 15 fichier avec la clé de chiffrement et transmet l'identificateur chiffré au contrôleur de chiffrement CC. Le contrôleur de chiffrement CC charge le fichier chiffré mémorisé dans la mémoire volatile via 20 le gestionnaire de mémoire GM au moyen de l'identificateur chiffré. Le contrôleur de chiffrement CC transmet alors le fichier chiffré chargé, la clé de déchiffrement et le type de requête TR au module de chiffrement MC. Le module de 25 chiffrement MC déchiffre le fichier chiffré avec la clé de déchiffrement et transmet le fichier déchiffré au contrôleur de chiffrement CC. A l'étape E7, le contrôleur de chiffrement CC commande au gestionnaire de mémoire GM la 30 mémorisation du fichier déchiffré dans une mémoire volatile du terminal pour être lisible par l'application AP. Dans un souci de synchronisation entre les 35 opérations exécutées par le générateur de clé GC et 2910202 22 le module de chiffrement MC, le contrôleur de chiffrement CC reçoit une clé de protection de données KPD générée par le générateur de clé GC et associe la clé KPD à la donnée à traiter 5 préalablement chargée avant de les transmettre au module de chiffrement MC. Cette association garantit que la clé et la donnée à traiter transmises au module de chiffrement MC correspondent à une même requête. Ainsi, plusieurs requêtes peuvent être 10 traitées simultanément et indépendamment les unes des autres par le contrôleur de chiffrement CC. En variante, les fonctionnalités du contrôleur de chiffrement CC sont intégrées partiellement ou 15 totalement dans le gestionnaire de mémoire GM et/ou le générateur de clé GC et/ou le module de chiffrement MC. Dans ce cas, le gestionnaire de mémoire GM communique directement avec le générateur de clé GC et le module de chiffrement MC et ces deux 20 derniers communiquent également directement entre eux. L'invention décrite ici concerne un procédé et un système pour traiter une donnée numérique créée, 25 mémorisée, utilisée, ou destinée à être utilisée par une application AP dédiée à un réseau de données RD et exécutée dans un terminal. Selon une implémentation, les étapes du procédé de l'invention sont déterminées par les instructions d'un programme 30 d'ordinateur incorporé dans le système de protection selon l'invention. Le programme comporte des instructions de programme qui, lorsque ledit programme est exécuté dans le système dont le fonctionnement est alors commandé par l'exécution du 2910202 23 programme, réalisent les étapes du procédé selon l'invention. En conséquence, l'invention s'applique également à un programme d'ordinateur, notamment un programme 5 d'ordinateur enregistré sur ou dans un support d'informations lisible par un ordinateur et tout dispositif de traitements de données, adapté à mettre en oeuvre l'invention. Ce programme peut utiliser n'importe quel langage de programmation, et être sous 10 la forme de code source, code objet, ou de code intermédiaire entre code source et code objet tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable pour implémenter le procédé selon l'invention. 15 Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage ou support d'enregistrement sur lequel est enregistré le programme d'ordinateur selon 20 l'invention, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore une clé USB, ou un moyen d'enregistrement magnétique, par exemple une disquette ("floppy disc") ou un disque dur. 25 D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut 30 être en particulier téléchargé sur un réseau de type internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou 2910202 24 pour être utilisé dans l'exécution du procédé selon l'invention. REVENDICATIONS 1 - Procédé pour traiter une donnée numérique (DAT) créée, mémorisée, utilisée, ou destinée à être utilisée par une application (AP) dédiée à un réseau de données (RD) et exécutée dans un terminal, une requête d'accès mémoire (RA) incluant la donnée numérique (DAT) ayant été émise par l'application (AP) à destination d'un système d'exploitation du terminal, caractérisé en ce qu'il comprend les étapes suivantes . après interception (E2) de la requête d'accès mémoire (RA) destinée au système d'exploitation, identifier l'application (AP) à l'origine de ladite requête, déterminer (E4) un identificateur (IRD) du réseau de données associé à l'application identifiée (AP), générer (E5) une clé (KPD) en fonction de l'identificateur du réseau de données déterminé, et traiter (E6) la donnée numérique en fonction de la clé générée (KPD). 2 - Procédé conforme à la revendication 1, selon lequel la clé (KPD) est générée en outre en fonction d'un type de requête (TR) inclus dans la requête d'accès mémoire (RA). 3 - Procédé conforme à la revendication 1 ou 2, selon lequel la clé générée (KPD) est une clé de chiffrement et la donnée numérique (DAT) est chiffrée en fonction de la clé de chiffrement générée (KPD). 4 - Procédé conforme à la revendication 1 ou 2, selon lequel la clé générée (KPD) est une clé de 2910202 26 déchiffrement et la donnée numérique (DAT) est déchiffrée en fonction de la clé de déchiffrement générée (KPD). 5 5 - Procédé conforme à l'une des revendications 1 à 4, selon lequel la donnée numérique (DAT) est un identificateur d'un fichier mémorisé dans le terminal et des première et deuxième clés (KPD) sont générées afin de traiter la donnée numérique et le fichier 10 mémorisé respectivement en fonction des première et deuxième clés générées. 6 - Système pour traiter une donnée numérique (DAT) créée, mémorisée, utilisée, ou destinée à être 15 utilisée par une application (AP) dédiée à un réseau de données (RD) et exécutée dans un terminal, une requête d'accès mémoire (RA) incluant la donnée numérique (DAT) ayant été émise par l'application (AP) à destination du système d'exploitation du 20 terminal, caractérisé en ce qu'il comprend : - un moyen (GM) pour identifier l'application (AP) à l'origine la requête d'accès mémoire (RA) destinée au système d'exploitation, après interception de ladite requête, 25 - un moyen (SVP) pour déterminer un identificateur (IRD) du réseau de données associé à l'application identifiée (AP), - un moyen (GC) pour générer une clé (KPD) en fonction de l'identificateur du réseau de données 30 déterminé, et - un moyen (MC) pour traiter la donnée numérique (DAT) en fonction de la clé générée (KPD). 7 - Système conforme à la revendication 6, 35 comprenant un moyen (GM) interceptant la requête 2910202 27 d'accès mémoire (RA) destinée au système d'exploitation pour introduire des champs de paramètres de contexte (CP) dans la requête interceptée (RA), et au moins un moyen (SVP) pour 5 renseigner les champs de paramètres de contexte par des valeurs dont une correspond à l'identificateur (IRD) du réseau de données. 8 - Système conforme à la revendication 6 ou à 10 la revendication 7, inclus dans un composant électronique. 9 - Programme d'ordinateur apte à être mis en oeuvre dans un système pour traiter une donnée 15 numérique (DAT) créée, mémorisée, utilisée, ou destinée à être utilisée par une application (AP) dédiée à un réseau de données (RD) et exécutée dans un terminal, une requête d'accès mémoire (RA) incluant la donnée numérique (DAT) ayant été émise 20 par l'application (AP) à destination du système d'exploitation du terminal, ledit programme étant caractérisé en ce qu'il comprend des instructions qui, lorsque le programme est exécuté dans ledit système, réalisent les étapes de : 25 après interception (E2) de la requête d'accès mémoire (RA) destinée au système d'exploitation, identifier l'application (AP) à l'origine de ladite requête, déterminer (E4) un identificateur (IRD) du 30 réseau de données associé à l'application identifiée (AP), générer (E5) une clé (KPD) en fonction de l'identificateur du réseau de données déterminé, et traiter (E6) la donnée numérique (DAT) en 35 fonction de la clé générée (KPD). 2910202 28 10 - Support d'enregistrement lisible par un système pour traiter une donnée numérique (DAT) créée, mémorisée, utilisée, ou destinée à être 5 utilisée par une application (AP) dédiée à un réseau de données (RD) et exécutée dans un terminal, une requête d'accès mémoire (RA) incluant la donnée numérique (DAT) ayant été émise par l'application (AP) à destination d'un système d'exploitation du 10 terminal, caractérisé en ce qu'il a enregistré un programme d'ordinateur comportant des instructions pour l'exécution des étapes suivantes : après interception (E2) de la requête d'accès mémoire (RA) destinée au système d'exploitation, 15 identifier l'application (AP) à l'origine de ladite requête, déterminer (E4) un identificateur (IRD) du réseau de données associé à l'application identifiée (AP), 20 générer (E5) une clé (KPD) en fonction de l'identificateur du réseau de données déterminé, et traiter (E6) la donnée numérique (DAT) en fonction de la clé générée (KPD).