FR2909466A1 - Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs - Google Patents

Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs Download PDF

Info

Publication number
FR2909466A1
FR2909466A1 FR0655322A FR0655322A FR2909466A1 FR 2909466 A1 FR2909466 A1 FR 2909466A1 FR 0655322 A FR0655322 A FR 0655322A FR 0655322 A FR0655322 A FR 0655322A FR 2909466 A1 FR2909466 A1 FR 2909466A1
Authority
FR
France
Prior art keywords
processing
block
data
information
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR0655322A
Other languages
English (en)
Inventor
Alain Catrevaux
Christian Benardeau
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LOGIWAYS FRANCE SA
Original Assignee
LOGIWAYS FRANCE SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LOGIWAYS FRANCE SA filed Critical LOGIWAYS FRANCE SA
Priority to FR0655322A priority Critical patent/FR2909466A1/fr
Publication of FR2909466A1 publication Critical patent/FR2909466A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne un procédé et un dispositif de mémorisation sécurisée de données dans une mémoire permanente de type à adressage par blocs.Un bloc #i de mémoire Flash (50) est sélectionné par un sélecteur de blocs (42) puis est lu et traité selon un traitement sélectionné par un module de traitement (44). A l'issue de ce traitement, le bloc est alors enregistré à nouveau à la même adresse ou à celle d'un autre bloc.

Description

1 Procédé et dispositif de mémorisation sécurisée de données dans une
mémoire permanente de type à adressage par blocs La présente invention concerne un procédé et un dispositif de mémorisation sécurisée de données dans une mémoire 5 permanente de type à adressage par blocs. Il est connu dans l'état de la technique qu'un dispositif de traitement d'information peut être composé d'un processeur, d'une mémoire de données et d'une mémoire de programmes. Selon le niveau d'intégration, le processeur et l'une ou l'autre des deux 10 mémoires de données et de programmes peuvent être intégrées sur une même puce électronique. Particulièrement, la disposition matérielle des mémoires est entièrement contrôlée notamment par des processus permettant de localiser la zone d'enregistrement d'une donnée ou 15 d'un élément de programme dans un espace d'adressage référencé. De la sorte, il est possible pour le processeur d'exécuter l'adressage d'un morceau de code, comme une routine ou une instruction, aussi bien que d'exécuter l'adressage en lecture et ou en écriture d'une unité de données. 20 Par ailleurs, dans l'état de la technique, il est connu d'utiliser des mémoires de programmes et/ou de données qui, malgré la coupure de l'alimentation électrique du processeur ou dispositif complet intégrant de telles mémoires, permettent de conserver la mémoire des informations, code ou donnée, qui y 25 sont inscrits préalablement avant la coupure. Particulièrement parmi ces mémoires se trouvent des mémoires par exemple de type flash qui sont organisées en blocs d'adresses, un cycle de lecture ou d'écriture mettant en oeuvre tout le bloc d'adresses, souvent dénommé page . 30 Enfin, il est connu dans l'état de la technique que l'accès par un processus non autorisé au contenu d'une mémoire de données, ou plus encore d'une mémoire de programmes, devrait être empêché de manière sûre. Dans le cadre de la présente 2909466 2 invention, on dira qu'une exécution est sûre quand l'ensemble des mesures connues pour un processus non autorisé ou illicite d'accéder à une section de données ou de programmes ont été exécutées sans succès de la part de ce processus non autorisé.
Dans l'état de la technique, on a déjà proposé des moyens en vue d'interdire l'accès à une section de données et/ou de programme dans un espace d'adressage. Parmi ces moyens, on peut citer l'utilisation du chiffrement. Dans ce but, un contrôleur de mémoire qui échange des données entre l'espace d'adressage et au moins un processeur autorisé, exécute le chiffrement ou le déchiffrement de la section de données ou de la section de programmes avant son échange avec le processeur autorisé. Pour interdire les accès non autorisés comme ceux exécutés par un processus illicite, le processeur et son espace d'adressage sont constitués dans une zone de circuit intégré qui est physiquement inaccessible. Un exemple d'utilisation d'une telle technique se trouve dans la technique de fabrication et d'exploitation des cartes à microcircuit de sécurité. Cependant, de telles dispositions sont soumises à deux risques principaux. Particulièrement, lors des échanges chiffrés entre le processeur et son espace mémoire, il est possible de réaliser une crypto analyse en vue de casser le chiffrement. Par ailleurs, même si des moyens de sécurité ont été prévus dans la production du circuit intégré sur lequel sont intégrés le processeur et son espace d'adressage, il est possible de réaliser à l'aide de moyens physiques une analyse micro physique des variations de signaux électriques ou de signaux électromagnétiques produits par la circulation de courant sur les couches supérieures du circuit intégré à l'aide de microsondes adaptées. Par ailleurs, quand l'espace d'adressage comporte des mémoires permanentes comme par exemple des mémoires flash, et plus encore quand ces mémoires sont externes à un 2909466 3 processeur de sécurité, il est possible de réaliser de manière non autorisée une analyse des données et ou des morceaux de programmes qui sont enregistrés. Particulièrement, la présente invention trouve application 5 dans le domaine des dispositifs décodeurs de contenus multimédias, comme par exemple celles reçues par un décodeur de télévision numérique à accès contrôlé. Dans un tel décodeur, il est connu d'utiliser particulièrement un lecteur de cartes à microcircuit chiffré. Lorsque une carte effectuant un traitement 10 sécurisé est insérée dans le lecteur de cartes à microcircuit utilisant des traitements sécurisés, à l'aide d'une interface utilisateur préprogrammée, l'utilisateur peut alors accéder au contenu multimédia reçu par le décodeur de télévision numérique via les droits reçus dans la carte.
15 Cependant, une telle technique basée seulement sur une technique de chiffrement ne permet pas d'obtenir une sécurité suffisante pour un tel décodeur. En effet, il est possible d'utiliser des techniques de cryptanalyse pour casser les clés de chiffrement et obtenir ainsi l'accès libre au contenu des données 20 multimédias diffusées. De même, il est connu d'utiliser des techniques de micro analyse physique et ou chimique pour parvenir à une connaissance des signaux électriques et ou radio fréquence émis ou échangés sur la surface de silicium du circuit intégré sur lequel est réalisé la partie utilisant des techniques de 25 chiffrement du processeur, par exemple du processeur de sécurité de la carte à puce. Par ailleurs, de telles mesures de protection sont particulièrement contraignantes pour l'exécution de tout processus licite qui doit procéder à des accès autorisés à la 30 mémoire permanente de blocs alors que, justement, l'adressage par blocs est destiné aussi à simplifier le travail d'un processus d'accès sur le processeur associé à cet espace d'adressage.
2909466 4 La présente invention apporte remède à cet état de technique. En effet, elle concerne un procédé de mémorisation sécurisée de données enregistrés et/ou utilisant des données enregistrées dans une mémoire permanente de type à adressage 5 par blocs. La mémoire permanente occupe un espace mémoire associé à un processeur permettant d'accéder aux dites données ou à d'autres données provenant d'une source externe par blocs. L'invention se caractérise en ce que il est exécuté à des instants prédéterminés lors de l'exécution d'au moins un 10 processus licite un traitement destiné à empêcher l'accès aux informations contenues dans au moins un bloc d'accès de l'espace d'adressage et/ou l'analyse du transfert de ces informations sur des bus d'adresses et/ou de données avec un processeur de traitement des informations.
15 Selon un aspect de l'invention, le traitement comporte un traitement d'échange entre au moins deux blocs de la mémoire permanente par blocs. Selon un aspect de l'invention, le traitement comporte un traitement d'obfuscation d'au moins un bloc de la mémoire 20 permanente par blocs. Selon un aspect de l'invention, le traitement comporte un traitement de chiffrement d'au moins un bloc de la mémoire permanente par bloc. Selon un aspect de l'invention, le traitement d'obfuscation 25 est précédé d'une étape de détermination du type d'informations contenus dans le ou les blocs à traiter entre une donnée ou une section de programme. Selon un aspect de l'invention, le traitement d'obfuscation pour une section de programme comporte une étape de détection 30 de l'appel d'un pointeur. Selon un aspect de l'invention, le traitement pour une section de programme comporte une étape d'inhibition du 2909466 5 traitement d'échange si l'étape de détection de l'appel d'un pointeur est positive. Selon un aspect de l'invention, le traitement pour une section de programme comporte une étape de redirection de 5 l'adresse associée au pointeur. L'invention concerne aussi un dispositif de mémorisation sécurisée de données dans une mémoire permanente de type à adressage par blocs. Il est prévu au moins un dispositif de sécurité pour exécuter un traitement destiné à empêcher l'accès 10 aux informations contenues dans au moins un bloc d'accès de l'espace d'adressage et/ou l'analyse du transfert de ces informations sur des bus d'adresses et/ou de données avec un processeur de traitement des informations. Selon un aspect de l'invention, le dispositif de sécurité est 15 intégré dans un processeur accueillant au moins un processus licite. Selon un aspect de l'invention, le dispositif de sécurité est extérieur à un processeur accueillant au moins un processus licite.
20 Selon un aspect de l'invention, le dispositif de sécurité est intégré avec la mémoire de pages et dialogue avec un processeur accueillant au moins un processus licite. Selon un aspect de l'invention, le dispositif de sécurité comporte une ressource pour déterminer des instants de 25 traitement de sécurité. Selon un aspect de l'invention, le dispositif de sécurité comporte une ressource pour sélectionner les blocs auquel sont appliqués le traitement de sécurité. Selon un aspect de l'invention, le dispositif de sécurité 30 comporte une ressource pour déterminer le type des données enregistrées dans la mémoire de blocs.
2909466 6 Selon un aspect de l'invention, le dispositif de sécurité comporte une ressource pour tenir à jour les références du traitement appliqué à au moins un bloc déterminé. D'autres caractéristiques et avantages de la présente 5 invention seront mieux compris à l'aide de la description et des dessins annexés parmi lesquels : - - la figure 1 représente l'architecture d'un système de traitement de données exploitant une mémoire permanente ; - - la figure 2 représente un mode de réalisation d'un 10 système de traitement de l'information sécurisée selon l'invention ; - - la figure 3 représente un autre mode de réalisation d'un système de traitement de l'information sécurisée selon l'invention ; 15 -- les figures 4a et 4b représentent des organigrammes de parties du procédé de l'invention ; - - la figure 5 représente un schéma bloc ainsi que un flux d'informations expliquant le fonctionnement d'une partie de dispositif de traitement selon l'invention ; 20 -- la figure 6 représente un organigramme d'une partie du procédé de l'invention ; et - - la figure 7 représente un organigramme d'une autre partie du procédé de l'invention. À la figure 1, on a représenté une architecture de 25 traitement de données exploitant une mémoire permanente, du genre d'une mémoire de type flash. Un processeur 1 est connecté par l'intermédiaire de deux bus à une mémoire flash 3. Le cas échéant, la mémoire flash est contrôlée par l'intermédiaire d'un contrôleur d'adressage de mémoire flash 5.
30 Les deux bus de connexion sont constitués respectivement ainsi qu'il est connu par le bus d'adresses 7 et par le bus de données 9. La mémoire flash 3 est composée essentiellement par une pluralité de blocs de mémoire 13 qui peuvent être lus ou 2909466 7 écrits chacun en une seule séquence d'adressage sous le contrôle d'un contrôleur d'adressage et de lecture-écriture 11. Dans le cadre d'un dispositif de mémorisation sécurisée de données dans une mémoire permanente de type à adressage par 5 blocs pour mettre en oeuvre la présente invention, le processeur 1 est connecté au bus d'adresses 7 et/ou au bus de données 9 par l'intermédiaire d'un contrôleur de chiffrement et de déchiffrement 15. Il résulte que les informations qui transitent par le bus de données et/ou par le bus d'adresses ainsi que les 10 informations qui sont inscrites dans la mémoire externe flash 3 sont sous forme chiffrée. À la sortie du contrôleur de chiffrement et de déchiffrement 15, les données sont traitées par une unité arithmétique logique ou un dispositif du même genre ainsi qu'il est connu dans la technique des processeurs numériques, et des 15 registres ainsi que d'autres ressources comme des horloges qui sont disposées dans un bloc 19 pour permettre l'exécution des traitements commandés par les programmes exécutés sur le processeur 1. Selon l'invention, le processeur 1 comporte au niveau du 20 contrôleur de chiffrement et de déchiffrement 15 une batterie de circuits de traitement de sécurité pour mettre en oeuvre le procédé de l'invention qui sera décrit plus loin. Dans un autre mode de réalisation, une partie au moins du dispositif de mémorisation sécurisée de données dans une mémoire 25 permanente de type à adressage par blocs, dit ci-dessous dispositif d'exécution sûre est implémentée sur un circuit extérieur au processeur 1. Particulièrement dans ce cas, les échanges entre le dispositif d'exécution sûre externe et le processeur 1 sont aussi réalisés sous forme chiffrée, le processeur 1 incorporant 30 une section d'entrée de chiffrement et de déchiffrement. A la figure 2, on a représenté un autre mode de réalisation d'un dispositif d'exécution sûre pour mettre en oeuvre la présente 2909466 8 invention. Les mêmes éléments que ceux de la figure 1 portent les mêmes numéros de référence et ne seront pas plus décrits. La section d'entrée/sortie 15 du processeur 1 peut ou non comporter une section de chiffrement et de déchiffrement des 5 échanges avec les bus 7 et 9 ainsi qu'il est connu. Mais elle est prolongée par une nouvelle section 21 dans laquelle sont implémentées sous forme d'une zone d'intégration dans la surface de silicium disponible pour le processeur 1, des fonctions de traitement permettant d'appliquer les mesures de sécurité pour 10 mettre en oeuvre le procédé de l'invention qui sera décrit plus loin. Il en résulte que les sections suivantes du processeur 1 pour échanger des données, notamment avec la mémoire flash 3, qui ne seront plus accessibles par le simple examen du contenu de la mémoire flash 3 et ou par l'analyse des informations transférées, 15 code ou données, sur les bus 7 ou 9. A la figure 3, on a représenté un autre mode de réalisation d'un système de traitement de l'information sécurisée pour mettre en oeuvre la présente invention. Les mêmes éléments que ceux de la figure 1 portent les mêmes numéros de référence et ne 20 seront pas plus décrits. La section d'entrée/sortie 15 du processeur peut ou non comporter une section de chiffrement et ou de déchiffrement des échanges avec les bus 7 et 9 ainsi qu'il est connu. Le processeur peut ou non être strictement identique au processeur 1 représenté 25 à la figure 1 et caractéristique de l'état de la technique. Mais dans le système de traitement de l'information sécurisée selon l'invention représenté à la figure 3, un circuit supplémentaire 23 est connecté sur le bus de données 7 et/ou sur le bus d'adresses 9.
30 Le circuit supplémentaire 23 comporte des moyens permettant de mettre en oeuvre le procédé de l'invention à l'extérieur du processeur 1 par exemple dans le cas où les données transitant sur le bus de données sont chiffrés. Le circuit 2909466 9 23 exécute les opérations pour rendre inopérant la lecture ou la modification de la mémoire flash 3 et/ou l'analyse des signaux transitant sur les bus de données 7 et/ou d'adresses 9. À la figure 4a, on a représenté une séquence d'opérations 5 exécutées lors de la création de la mémoire flash. L'environnement technique prévu dans le cas de la Figure 4A est celui des décodeurs de TV numérique dans lesquels une mémoire Flash est disposée qui contient des données et des programmes, notamment des programmes permettant le contrôle de l'accès du 10 décodeur de TV numérique à une source de contenus multimédia, comme celle produite par un canal satellite, ou un canal de diffusion par câble ou tout autre dispositif de diffusion. La mémorisation sécurisée de l'invention apporte un avantage particulier à l'application. Particulièrement, dans une demande de 15 brevet du même jour, le déposant a décrit un dispositif semi-conducteur de sécurité et son application à un système d'accès à un réseau de diffusion multimédias. Dans cette demande de brevet, le déposant a notamment décrit un circuit intégré implémentant un système contrôlé hôte.
20 Ce système hôte comporte au moins un microprocesseur destiné à exécuter le contrôle de l'accès à un contenu de données accessible. Un microprocesseur destiné à exécuter le contrôle d'accès du système contrôlé hôte est implémenté sur le circuit intégré implémentant le système contrôlé hôte. Sur ce circuit 25 intégré sont arbitrairement réparties : - - au moins une première zone pour constituer un processeur de sécurité et préférentiellement une multiplicité de zones pour constituer ensemble un tel processeur et réparties arbitrairement dans le circuit intégré en respectant des 30 contraintes de fabrication de circuits intégrés, et - - et au moins une seconde zone, destinée à servir de zone mémoire pour maintenir des données et ou des programmes pour faire fonctionner ladite première zone de processeur de sécurité 2909466 10 et préférentiellement une multiplicité de zones pour constituer ensemble un tel processeur et réparties arbitrairement dans le circuit intégré en respectant des contraintes de fabrication de circuits intégrés.
5 Bien entendu, la mémoire FLASH ou de blocs de la présente invention peut bénéficier des mesures décrites dans la demande de brevet précitée intitulée Dispositif semi-conducteur de sécurité et application à un système d'accès à un réseau de diffusion multimédias .
10 Particulièrement, on rappelle ci-dessous les mesures de sécurité qui peuvent aussi être appliquées à la mémoire FLASH ou de blocs de la présente invention et à son dispositif de traitement de sécurité. Dans un mode de réalisation, des masques de protection 15 sont établis sur au moins une zone composante de la mémoire de blocs et/ou de son dispositif de traitement de sécurité. Dans un mode de réalisation, le masque de protection est établi aussi sur au moins une zone du dispositif de traitement de sécurité hôte.
20 Dans un mode de réalisation, le masque de protection est porté à un potentiel déterminé. Dans un mode de réalisation, le masque de protection est établi à l'intérieur du circuit intégré. Dans un mode de réalisation, le masque de protection est 25 établi sur l'ensemble de la périphérie du circuit intégré. Dans un mode de réalisation, la mémoire à adressage par blocs comme une mémoire FLASH est divisée en au moins une zone composante. Dans un mode de réalisation, au moins une zone 30 composante de mémoire de pages coopère avec un module de gestion de données qui applique au moins un traitement déterminé des données d'au moins un bloc.
2909466 11 Dans un mode de réalisation, le module de gestion de données est configuré de manière à échanger les données entre au moins deux blocs de ladite zone mémoire. Dans un mode de réalisation, le module de gestion de 5 données comporte un moyen pour détecter une période de non utilisation pour initier un traitement déterminé des données d'au moins un bloc. Dans un mode de réalisation, au moins l'une des dites zones composantes est réservée pour le dépôt d'un détecteur de 10 rayonnement optique caractéristique d'une agression. Selon un autre aspect de l'invention, au moins l'une des dites zones composantes est réservée pour le dépôt d'un détecteur de courants. Dans un mode de réalisation, le dispositif comporte aussi 15 un circuit d'alarme connecté le cas échéant à un circuit d'action déclenchant une action de protection ou pour appliquer des contre-mesures électromagnétiques électriques et toute autre nature physiquement réalisable. Particulièrement, la création d'une mémoire FLASH a lieu 20 lorsque le décodeur auquel l'invention est appliquée est fabriqué et que sa mémoire flash reçoit au moins un programme de services permettant d'exécuter l'accès et le décodage autorisé à au moins un contenu multimédia reçu sur une entrée de source externe du décodeur de télévision numérique. Plus généralement, 25 une création de mémoire flash a lieu à chaque fois qu'un programme et/ou des données initiales sont inscrites pour la première fois dans la mémoire flash qui est une mémoire permanente par bloc. Dans une étape ultérieure non directement concernée par 30 la présente invention, le programme à enregistrer et à traiter selon le procédé de l'invention, aussi bien que le lot de données à enregistrer et à traiter selon un procédé de l'invention, est développé sous forme par exemple de code source qui est ensuite 2909466 12 compilé et passé dans un éditeur de liens pour produire un code exécutable. Le code exécutable est lui-même enregistré dans la mémoire flash associée au processeur qui devra l'exécuter par bloc. Chaque bloc est déterminé par la structure de la mémoire 5 flash utilisée. Dans une première étape El, le procédé objet de l'invention consiste à déterminer un bloc dans la séquence du programme ou du lot de données à traiter. Dans une seconde étape E2, un traitement déterminé est sélectionné pour être appliquée au bloc.
10 Dans une troisième étape E3, sur la base des caractéristiques des blocs de la mémoire flash sur laquelle les données devront être écrites, un contenu du bloc est déterminé dans les données provenant du programme ou du lot de données à traiter.
15 Dans une quatrième étape E4, le traitement déterminé lors de l'étape E2 est appliqué sur le bloc sélectionner dans la troisième étape E3. Enfin, dans une cinquième étape E5, le bloc traité dans la quatrième étape E4 est enregistré dans le bloc sélectionné lors de 20 la première étape El. Le contrôle peut alors passer à un bloc ultérieur. Selon l'invention, le procédé de traitement d'un bloc de données, les données provenant d'un programme ou d'un lot de données destinées à être enregistrées pour la première fois dans 25 une mémoire flash ne sont pas nécessairement toutes traitées, mais seulement certains blocs de ces données, et de plus plusieurs traitements seront envisagés. Particulièrement, trois traitements sont prévus dans le cadre de la présente invention qui sont : 30 -- un traitement d'échange ; - - un traitement d'obfuscation ; et - - un traitement de chiffrement selon une clé et un algorithme déterminés.
2909466 13 Le traitement d'obfuscation, le terme provenant de l'opération désignée en anglais par le terme obfuscating permet de transformer les informations d'un ensemble de données de façon à en rendre le sens moins facilement perceptible. Il se 5 distingue du traitement de chiffrement en ce qu'il respecte des règles permettant le fonctionnement sensiblement direct des données ayant subies le traitement d'obfuscation alors que le chiffrement exige un traitement réciproque de déchiffrement suivant le type d'algorithme utilisé.
10 Selon l'invention, il est prévu que le traitement d'échange puisse être appliqué préalablement à un traitement d'obfuscation et/ou à un traitement de chiffrement. Il est aussi possible que seul un traitement d'échange soit réalisé. À la figure 4b, on a représenté le procédé de l'invention 15 pendant l'exploitation de la mémoire flash associée au processeur dans un dispositif de l'invention. En effet, selon l'invention, il est prévu de réitérer au moins un des trois traitement précités qui auraient déjà par exemple été appliqués lors de la création de la mémoire flash, mais pas nécessairement, pendant l'exécution 20 d'un processus licite sur le dispositif d'exécution sûre selon l'invention. Dans un exemple préféré de réalisation, il est prévu de sélectionner au moins un bloc de la mémoire flash pendant une période où la mémoire flash n'est pas utilisée. Il en résulte que, si 25 une tentative d'analyse du contenu de la mémoire flash et ou d'analyse des signaux transitant sur les bus de données et/ou d'adresses est exécutée, le contenu de la mémoire flash ayant changé, il devient très difficile sinon impossible de reconstituer le contenu des données.
30 Dans ce but, par exemple lorsque l'on détecte que le processeur, dans le cas notamment d'un système de traitement d'information mono processeur, dispose de la possibilité d'ouvrir un canal de traitement (thread) capable d'exécuter le procédé de 2909466 14 l'invention, lors d'une étape E6, le procédé de l'invention consiste à déterminer un bloc de la mémoire flash à retraiter. Dans une étape ultérieure E7, un traitement est sélectionné parmi un groupe des trois traitements précités 5 comprenant la fragmentation, l'obfuscation, et/ou le chiffrement. Dans une étape ultérieure E8, la lecture du bloc est exécutée sur le canal de traitement capable d'exécuter le procédé de l'invention. Dans une étape ultérieure E9, le bloc associé au canal de 10 traitement capable d'exécuter le procédé de l'invention est traité selon le traitement sélectionné lors de l'étape E7. Enfin dans une étape ultérieure E10, les données traitées lors de l'étape E9 sont enregistrées dans un bloc de la mémoire flash du dispositif d'exécution sûre de l'invention.
15 Particulièrement, on notera que l'adresse à laquelle le bloc a été traité lors de l'étape E9 n'est pas nécessairement l'adresse à laquelle le bloc se trouvait lorsqu'il a été lu lors de l'étape E8. À la figure 5, on a représenté un mode particulier de réalisation d'un dispositif de traitement intégré au dispositif 20 d'exécution sûre selon l'invention et qui implémente le procédé décrit ci-dessus. À la figure 5, on a représenté dans la partie gauche du dessin une succession ou séquence 50 de blocs de données ou de programmes destinés à être enregistrés ou provenant d'une 25 mémoire flash, ou plus généralement d'une mémoire organisée par blocs. On a représenté dans la partie droite du dessin l'architecture 40, du dispositif de traitement de l'invention. Le dispositif de traitement 40 comporte un module de sélection de blocs 42 qui coopère avec une mémoire locale 46 tenant à jour 30 les références du traitement appliqué au bloc sélectionné. En particulier, lorsqu'un bloc ou un groupe de bloc a été sélectionné pour recevoir un traitement déterminé, l'adresse du bloc ou de groupes de bloc ainsi que les spécifications du traitement 2909466 15 sélectionné sont enregistrées de manière à permettre de retrouver les données originales du bloc à l'intérieur du dispositif 40. À cette fin, la mémoire locale 46 de tenue à jour des références de traitement coopère AR avec un circuit de 5 lecture/enregistrement 48 des données de référence de traitement qui peuvent être enregistré par exemple dans un bloc particulier de la mémoire flash traitée selon l'invention. Lorsque l'adresse d'un bloc #i du programme 50 est détecté comme devant être traitée, les données de traitement 10 sont lues LR dans la mémoire locale 46 de tenue des références de traitement par le circuit de sélection de bloc. Le bloc déterminé #i est alors chargé L dans un circuit de traitement 44 du dispositif 40 selon l'invention. Le traitement référencé dans la mémoire locale 46 avec l'adresse #i est alors appliqué par le circuit de 15 traitement 44. À l'issue du traitement sélectionné, le bloc traité est alors enregistré E dans la même adresse dans le mode de réalisation représenté à la figure 5. Ainsi qu'on a déjà expliqué ci-dessus, dans un autre mode de réalisation le circuit de traitement 44 applique une translation 20 d'adresse pour le bloc #i qui est alors écrit E dans la mémoire flash à une nouvelle adresse de bloc. Particulièrement, si un autre traitement a été sélectionné selon le procédé de l'invention, la nouvelle adresse de bloc et/ou la référence du nouveau traitement appliqué est enregistrée ER dans la mémoire locale 46 25 de tenue des références de traitement. Par exemple, à la fin du traitement du programme 50, le contenu de la mémoire locale 46 de tenue des références de traitement estalors enregistrée AR par l'intermédiaire du circuit 48 de lecture/enregistrement dans une zone ou bloc de mémoire 30 pour pouvoir être exploité ultérieurement. Particulièrement, la zone ou bloc de mémoire dans laquelle sont maintenues les adresses et/ou données ou référence de traitement des blocs de la mémoire flash traitée selon l'invention 2909466 16 est aussi exploitée par le dispositif d'exécution sûre lors d'une exploitation normale de la mémoire flash par les processus licites. À la figure 6, on a représenté un organigramme d'une partie du procédé de l'invention. Dans cette partie du procédé de 5 l'invention, on détermine le choix d'un traitement à appliquer à au moins un bloc de la mémoire flash. La sélection du traitement est effectuée lors de l'étape El O. Lors d'un test E11, on détermine si un traitement de fragmentation du code doit être exécuté.
10 Dans un mode particulier de réalisation de l'invention, particulièrement lorsque les données contenues dans la mémoire flash sous traitement sont des données de programmes, il faut d'abord déterminer si le traitement particulier d'un bloc ne viendra pas bloquer le traitement normal du programme. Une telle 15 situation surviendrait notamment si un premier bloc était en cours d'accès tandis que le bloc suivant est choisi pour recevoir un traitement ou si une partie de ce bloc en cours de traitement recevait alors un appel pour un processus normal. Dans une telle situation, le traitement du bloc sélectionné entraînerait une panne 20 générale du système de traitement de l'information. Selon l'invention, les frontières des blocs qu'il est possible de traiter sont déterminées de façon à assurer que le traitement ultérieur selon l'invention du bloc n'entraînera pas une panne générale du système de traitement de l'information.
25 Particulièrement, le procédé de l'invention consiste à déterminer que, lorsque le bloc à traiter devra être traité, il est assuré qu'aucun autre processus autorisé n'exécutera un appel à ce bloc. Si le test El 1 de fragmentation est incorrect (KO) le contrôle passe à une étape de sortie E16. Si le test E11 de 30 fragmentation est correct (OK), le contrôle passe alors à un test ultérieur E12 dans lequel on détermine si un traitement supplémentaire doit être exécuté ou non.
2909466 17 Si aucun traitement supplémentaire après celui de fragmentation ne doit être exécuté en réponse (KO) au test E12, le contrôle passe à une étape ultérieure E15 dans lequel le traitement sélectionné à l'étape E11 est exécuté. Particulièrement 5 un tel traitement réduit à une fragmentation permet de réécrire le bloc sélectionné d'une adresse initiale #i à une adresse de traitement #j différente de l'adresse initiale. Si un traitement supplémentaire après celui de fragmentation doit être exécuté en réponse (OK) au test E12, le 10 contrôle passe à une étape ultérieure E13 dans laquelle un traitement d'obfuscation est sélectionné. Selon l'invention, un traitement d'obfuscation est appliqué sous la forme d'une transformation des données d'un bloc. Le traitement du bloc permet à la différence du chiffrement que 15 l'obfuscation du bloc sauvegarde ses fonctionnalités, particulièrement quand le bloc est un bloc de programme. Dans l'état de la technique, il existe un grand nombre de techniques permettant d'exécuter une obfuscation. Elles seront dans le cadre de la présente invention décrites à l'aide de la 20 figure 7 plus loin. Si le test de l'étape E13 est négatif (KO), le contrôle passe à un test ultérieur E14 dans lequel on sélectionne ou non un traitement de cryptage. Si le test E14 est négatif (KO), le contrôle passe à l'étape de sortie E16. Si le test E14 est positif (OK), le 25 contrôle passe à l'étape de traitement El 5 au cours duquel le traitement sélectionné lors de l'étape El0 décrite ci-dessus est exécuté. À la figure 7, on a représenté une partie du procédé de l'invention. Dans le procédé de l'invention, on exécute une étape 30 de traitement d'obfuscation E20. Lors d'une étape de test E21, on détermine ainsi les données du bloc à traiter sont des données correspondants à du code. Si le test E21 est négatif (KO), le contrôle passe à une 2909466 18 étape de test E22 au cours duquel on détermine si le bloc contient des données susceptibles de recevoir un traitement d'obfuscation. Si le test E22 est positif (OK), le contrôle passe à une étape d'exécution de détermination des spécifications d'un traitement 5 d'obfuscation de données E24. Si le test E22 est négatif (KO), le contrôle passe à une étape de sortie. Si le test E21 est positif (OK), le contrôle passe à une étape d'obfuscation de code E23. Particulièrement, les traitements d'obfuscation de code 10 sont sélectionnés parmi les traitements d'obfuscation de code connu dans l'état de la technique. Parmi ceux-ci, on trouve le traitement permettant de rendre inaccessibles des appels à des librairies extérieures au programme proprement dit. Particulièrement les traitements d'obfuscation de données 15 sont sélectionnés parmi les traitements d'obfuscation de données connues dans l'état la technique. Parmi ceux-ci, on trouve le traitement permettant de rendre illisibles les données de tables structurées. Particulièrement, de tels traitements consistent à appliquer des modifications prédéterminées de ces données de 20 façon à rendre indétectable la structure de la table traitée. Par exemple, si une succession de données provenant d'une table structurée correspond à des données d'un type déterminé, au moins certaines d'entre elles sont transformées de manière à appartenir à d'autres types.
25 Selon un mode de réalisation du procédé de l'invention, une étape de détection d'un instant permettant le traitement sécurisé est exécutée. A cette fin, il est prévu de tester une condition d'autorisation de traitement, à l'issue duquel test, le traitement de l'invention est appliqué ainsi qu'il a été décrit plus 30 haut. Dans un autre mode de réalisation, l'instant prédéterminé d'exécution d'un traitement est calculé en fonction d'une stratégie 2909466 19 prédéterminée de priorités. A l'issue de la recherche dans la stratégie, il est décidé d'exécuter ou non le traitement sécurisé. Dans un autre mode de réalisation, le processus licite en cours d'exécution produit un signal d'autorisation de traitement 5 sécurisé au bénéfice de la mémoire de blocs complété le cas échéant d'un signal déterminant les blocs pour lequel le traitement sécurisé est autorisé. Une fois l'instant de traitement déterminé, le traitement sécurisé est exécuté qui est un traitement destiné à empêcher 10 l'accès aux informations contenues dans au moins un bloc d'accès de l'espace d'adressage et/ou l'analyse du transfert de ces informations sur des bus d'adresses et/ou de données avec un processeur de traitement des informations. Dans un mode de réalisation de l'invention, parmi les 15 traitements envisagés, et qui peuvent être combinés, le traitement d'obfuscation est précédé d'une étape de détermination du type d'informations contenues dans le ou les blocs à traiter. En effet, les techniques connues d'obfuscation sont distinguées entre les obfuscations de données, et particulièrement des données 20 structurées, comme des tables, ou des tables relationnelles, et les obfuscations de programmes. Particulièrement, la détection du type de bloc peut être tenue par inscription d'une étiquette de bloc dans un registre d'étiquettes de blocs. D'autres techniques sont possibles.
25 Dans un mode de réalisation de l'invention, le traitement d'obfuscation pour une section de programme est précédé par une étape de détection de l'appel d'un pointeur. En effet, si le bloc qui va être traité contient l'appel d'une adresse qui a changé parce qu'elle pointe par un pointeur vers une page qui a été traitée 30 selon le procédé de l'invention, son appel produira au moins une erreur d'exécution puisqu'à l'adresse ou sur la valeur de l'adresse se trouve une donnée qui ne correspond plus à une donnée correspondant au code de programme visé.
2909466 20 Selon un aspect de l'invention, le traitement pour une section de programme comporte une étape d'inhibition du traitement d'échange si l'étape de détection de l'appel d'un pointeur est positive.
5 Selon un aspect de l'invention, le traitement pour une section de programme comporte une étape de redirection de l'adresse associée au pointeur, cette redirection étant calculée en fonction du traitement qui a été appliqué à la page dans laquelle se trouve l'adresse associée au pointeur et/ou à la valeur de 10 l'adresse associée au pointeur.

Claims (8)

REVENDICATIONS
1 - Procédé de mémorisation sécurisée de données enregistrés et/ou utilisant des données enregistrées dans une mémoire permanente de type à adressage par blocs, caractérisé en ce que il est exécuté à des instants prédéterminés lors de l'exécution d'au moins un processus licite un traitement destiné à empêcher l'accès aux informations contenues dans au moins un bloc d'accès de l'espace d'adressage et/ou l'analyse du transfert de ces informations sur des bus d'adresses et/ou de données avec un processeur de traitement des informations.
2 û Procédé selon la revendication 1, caractérisé en ce que le traitement comporte un traitement d'échange entre au moins deux blocs de la mémoire permanente par blocs.
3 û Procédé selon la revendication 1, caractérisé en ce que le traitement comporte un traitement d'obfuscation d'au moins un bloc de la mémoire permanente par blocs.
4 û Procédé selon la revendication 1, caractérisé en ce que le traitement comporte un traitement de chiffrement d'au moins un bloc de la mémoire permanente par bloc.
5 û Procédé selon la revendication 3, caractérisé en ce que le traitement d'obfuscation est précédé d'une étape de détermination du type d'informations contenues dans le ou les blocs à traiter entre une donnée ou une section de programme.
6 û Procédé selon la revendication 5, caractérisé en ce que le traitement d'obfuscation pour une section de programme comporte une étape de détection de l'appel d'un pointeur.
7 û Procédé selon la revendication 6, caractérisé en ce que le traitement pour une section de programme comporte une étape d'inhibition du traitement d'échange si l'étape de détection de l'appel d'un pointeur est positive.
8 û Procédé selon la revendication 6, caractérisé en ce que le traitement pour une section de programme comporte une étape de redirection de l'adresse associée au pointeur. 2909466 22 9 -Dispositif de mémorisation sécurisée de données dans une mémoire permanente de type à adressage par blocs, caractérisé en ce qu'il est prévu au moins un dispositif de sécurité (19 ; 27) pour exécuter un traitement destiné à empêcher l'accès 5 aux informations contenues dans au moins un bloc d'accès de l'espace d'adressage et/ou l'analyse du transfert de ces informations sur des bus d'adresses et/ou de données avec un processeur de traitement des informations. 10 û Dispositif selon la revendication 9, caractérisé en ce 10 que le dispositif de sécurité (19) est intégré dans un processeur (1) accueillant au moins un processus licite. 11 û Dispositif selon la revendication 9, caractérisé en ce que le dispositif de sécurité (23) est extérieur à un processeur (1) accueillant au moins un processus licite. 15 1 2 û Dispositif selon l a revendication 1 1 , caractérisé en ce que le dispositif de sécurité (23) est intégré avec la mémoire de pages (3) et dialogue avec un processeur (1) accueillant au moins un processus licite. 13 û Dispositif selon l'une quelconque des revendications 9 20 à 12, caractérisé en ce qu'il comporte une ressource pour déterminer des instants de traitement de sécurité 14 -Dispositif selon l'une quelconque des revendications 9 à 13, caractérisé en ce qu'il comporte une ressource pour sélectionner les blocs auquel sont appliqués le traitement de 25 sécurité. 15 - Dispositif selon l'une quelconque des revendications 9 à 14, caractérisé en ce qu'il comporte une ressource pour déterminer le type des données enregistrées dans la mémoire de blocs (1). 30 16 - Dispositif selon l'une quelconque des revendications 14 ou 15, caractérisé en ce qu'il comporte une ressource pour tenir à jour les références du traitement appliqué à au moins un bloc déterminé.
FR0655322A 2006-12-05 2006-12-05 Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs Pending FR2909466A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0655322A FR2909466A1 (fr) 2006-12-05 2006-12-05 Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0655322A FR2909466A1 (fr) 2006-12-05 2006-12-05 Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs

Publications (1)

Publication Number Publication Date
FR2909466A1 true FR2909466A1 (fr) 2008-06-06

Family

ID=38235456

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0655322A Pending FR2909466A1 (fr) 2006-12-05 2006-12-05 Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs

Country Status (1)

Country Link
FR (1) FR2909466A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0908810A2 (fr) * 1997-10-10 1999-04-14 General Instrument Corporation Processeur sécurisé avec mémoire externe utilisant le chaínage par blocs et reséquencement des blocs
US6792528B1 (en) * 2000-05-17 2004-09-14 Chien-Tzu Hou Method and apparatus for securing data contents of a non-volatile memory device
US20050216611A1 (en) * 2004-03-29 2005-09-29 Martinez Alberto J Method and apparatus to achieve data pointer obfuscation for content protection of streaming media DMA engines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0908810A2 (fr) * 1997-10-10 1999-04-14 General Instrument Corporation Processeur sécurisé avec mémoire externe utilisant le chaínage par blocs et reséquencement des blocs
US6792528B1 (en) * 2000-05-17 2004-09-14 Chien-Tzu Hou Method and apparatus for securing data contents of a non-volatile memory device
US20050216611A1 (en) * 2004-03-29 2005-09-29 Martinez Alberto J Method and apparatus to achieve data pointer obfuscation for content protection of streaming media DMA engines

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
COLLBERG C ET AL: "A Taxonomy of Obfuscating Transformations", TECHNICAL REPORT DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF AUCKLAND, XX, XX, no. 148, July 1997 (1997-07-01), pages 1 - 36, XP002140038 *

Similar Documents

Publication Publication Date Title
EP2380305B1 (fr) Circuit de cryptographie, protégé notamment contre les attaques par observation de fuites d'information par leur chiffrement
FR2861875A1 (fr) Dispositif de stockage de donnees portable a interface usb protege par des parametres biometriques, comportant un processeur de donnees biometriques accessible par l'interface usb
FR2948795A1 (fr) Detecteur d'injection de fautes dans un circuit integre
EP1766588A2 (fr) Composant pour module de sécurité
FR2989504A1 (fr) Registre protege contre des attaques par injection de fautes
FR2840421A1 (fr) Systemes informatiques tels que des cartes a puce ayant des architectures de memoire capables de proteger une information de securite, et procedes d'utilisation de ceux-ci
EP0572515A1 (fr) Procede de protection d'un circuit integre contre les utilisations frauduleuses
FR2728980A1 (fr) Dispositif de securisation de systemes d'information organises autour de microprocesseurs
FR2833374A1 (fr) Procede et dispositif de controle d'acces dans un systeme embarque
EP1163562B1 (fr) Procede de securisation d'un enchainement d'operations realisees par un circuit electronique dans le cadre de l'execution d'un algorithme
FR2670595A1 (fr) Carte a circuit integre.
FR2923923A1 (fr) Verification de donnees lues en memoire
FR2909466A1 (fr) Procede et dispositif de memorisation securisee de donnees dans une memoire permanente de type a adressage par blocs
FR2903508A1 (fr) Protection d'un programme interprete par une machine virtuelle
EP3350745B1 (fr) Gestion d'un affichage d'une vue d'une application sur un écran d'un dispositif électronique de saisie de données, procédé, dispositif et produit programme d'ordinateur correspondants
WO2004084525A2 (fr) Procede de protection d’un terminal de telecommunication de type telephone mobile
WO1997040474A1 (fr) Systeme securise de controle d'acces permettant le transfert d'habilitation a produire des cles
EP0851359B1 (fr) Procédé et dispositif de lecture de mémoire ayant des zones protégées en lecture
FR2747813A1 (fr) Systeme securise de controle d'acces permettant l'invalidation automatique de cles electroniques volees ou perdues et/ou le transfert d'habilitation a produire des cles
EP1713023A1 (fr) Protection de données contenues dans un circuit intégré
EP1803084B1 (fr) Verrouillage d'un circuit integre
FR2909467A1 (fr) Procede et dispositif de protection d'un systeme de traitement de l'information
EP2280380A1 (fr) Procédé de personnalisation d'une entité électronique, et entité électronique mettant en oeuvre ce procédé
FR2661532A1 (fr) Memoire a acces protege mot par mot.
FR3124288A1 (fr) Technique d’accès à un support de stockage.