FR2914448A1 - Secured execution computer environment protecting system for very high security digital apparatus i.e. payment terminal, has transcoder detecting whether descriptor returned by memory associates virtual address at physical address of ROM - Google Patents

Secured execution computer environment protecting system for very high security digital apparatus i.e. payment terminal, has transcoder detecting whether descriptor returned by memory associates virtual address at physical address of ROM Download PDF

Info

Publication number
FR2914448A1
FR2914448A1 FR0754149A FR0754149A FR2914448A1 FR 2914448 A1 FR2914448 A1 FR 2914448A1 FR 0754149 A FR0754149 A FR 0754149A FR 0754149 A FR0754149 A FR 0754149A FR 2914448 A1 FR2914448 A1 FR 2914448A1
Authority
FR
France
Prior art keywords
translation
descriptor
secure
address
htw
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.)
Granted
Application number
FR0754149A
Other languages
French (fr)
Other versions
FR2914448B1 (en
Inventor
Fabrice Devaux
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.)
Trango Virtual Processors SRL
Original Assignee
Trango Virtual Processors SRL
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 Trango Virtual Processors SRL filed Critical Trango Virtual Processors SRL
Priority to FR0754149A priority Critical patent/FR2914448B1/en
Priority to PCT/FR2008/000436 priority patent/WO2008142246A2/en
Publication of FR2914448A1 publication Critical patent/FR2914448A1/en
Application granted granted Critical
Publication of FR2914448B1 publication Critical patent/FR2914448B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The system has a processor (10) e.g. Intel(RTM: Not defined), with a hardware page table walker (HTW) mechanism (102) to transmit read request of terminal translation descriptors stored in an external memory (2) when an operating system (OS) (21) Linux(RTM: multi-user operating system), and applications (22) emit a virtual address. A transcoder (15) receives one descriptor in response to the request, and detects whether the descriptor returned by the memory associates the virtual address at a physical address of a static RAM (11), a ROM (12) and internal peripherals (13). An independent claim is also included for a method for protecting a secured execution computer environment.

Description

SYSTEME ET PROCEDE POUR LA PROTECTION D'UN ENVIRONNEMENT INFORMATIQUESYSTEM AND METHOD FOR PROTECTING A COMPUTER ENVIRONMENT

D'EXECUTION SECURISE La présente invention concerne le domaine de la gestion de mémoires informatiques et se rapporte plus particulièrement à un système et un procédé pour sécuriser les tables de translations stockées dans une mémoire externe à un module de processeur sécurisé. Dans certains appareils digitaux de très haute sécurité, par exemple des terminaux de paiement, une partie des informations sensibles utilisées pendant leur fonctionnement sont, afin d'en garantir la sécurité, stockées dans une ou des mémoires internes au circuit contenant le processeur en fonction. De tels circuits comprennent une puce de silicium miniaturisée ou un ensemble de telles puces collées entre-elles, ou sur un même support. Il est important de noter que la miniaturisation des interconnexions à l'intérieur d'un tel circuit rend l'observation et l'altération des signaux qui y sont véhiculés difficile et donc onéreuse. Il est donc efficace de garder, à l'intérieur d'un même circuit, ci-après nommé circuit, circuit de processeur ou circuit sécurisé, les informations sensibles. Une réalisation de ces circuits sécurisés peut être encapsulée dans un boîtier de protection, par exemple une réalisation sous forme de puce électronique ("chip"). En effet, si les informations sensibles étaient stockées sur une mémoire externe à ce circuit, par exemple sur une mémoire vive dynamique DRAM (Dynamique Random Access Memory) de la carte électronique de l'appareil, elles pourraient être divulguées ou modifiées frauduleusement par l'observation et/ou l'altération des signaux véhiculés par les pistes électriques reliant le circuit du processeur aux circuits de la mémoire externe, lesquelles pistes électriques sont dans ce cas facilement accessibles.  The present invention relates to the field of computer memory management and relates more particularly to a system and a method for securing translation tables stored in an external memory to a secure processor module. In some very high-security digital devices, for example payment terminals, part of the sensitive information used during their operation is, in order to guarantee security, stored in one or more memories internal to the circuit containing the processor in operation. Such circuits include a miniaturized silicon chip or a set of such chips glued together, or on the same support. It is important to note that the miniaturization of the interconnections inside such a circuit makes the observation and the alteration of the signals which are conveyed there difficult and thus expensive. It is therefore effective to keep, within the same circuit, hereinafter named circuit, processor circuit or secure circuit, the sensitive information. One embodiment of these secure circuits can be encapsulated in a protective housing, for example an embodiment in the form of an electronic chip ("chip"). Indeed, if the sensitive information was stored on a memory external to this circuit, for example on a dynamic random access memory DRAM (Dynamic Random Access Memory) of the electronic card of the device, they could be disclosed or fraudulently modified by the observation and / or alteration of the signals conveyed by the electrical tracks connecting the processor circuit to the circuits of the external memory, which electrical tracks are in this case easily accessible.

On recherche donc, autant que possible, à conserver, dans les mémoires internes du circuit de processeur, un maximum de données sensibles. Néanmoins, la taille, en surface et octets, de la mémoire interne dont on dispose à l'intérieur du circuit accueillant un processeur est limitée. Les systèmes actuels comprennent donc à la fois une mémoire interne sécurisée dans le circuit et une mémoire externe de capacité plus importe reliée à ce circuit sécurisé.  It is therefore sought, as much as possible, to keep in the internal memories of the processor circuit, a maximum of sensitive data. Nevertheless, the size, surface and bytes, of the internal memory available inside the circuit hosting a processor is limited. Current systems therefore include both a secure internal memory in the circuit and an external memory of greater capacity connected to this secure circuit.

De façon plus détaillée, un circuit sécurisé de processeur contient en général un certain nombre de macroblocs logiques. Le concepteur d'un tel circuit utilise en général, et donc achète, des macroblocs logiques préconçus pour réaliser une partie du circuit, par exemple un modèle de processeur. Il développe en parallèle d'autres macroblocs logiques spécialisés, pour l'autre partie du circuit. Du fait de sa complexité, le macrobloc logique processeur, le "processeur" dans la suite du document, est en général préconçu et fourni par des fournisseurs de solutions spécialisées dans le domaine des processeurs, par exemple les sociétés ARM Ltd ou MIPS Technology (noms commerciaux). Dans un système comprenant un circuit sécurisé de processeur et une mémoire externe connectée, par exemple un terminal de paiement tel que mentionné ci-dessus, deux univers logiciels (ou environnements d'exécution) exécutés sur le même processeur coexistent généralement : - d'un côté, un univers sécurisé s'appuyant sur, outre le processeur, les mémoires et périphériques internes au circuit sécurisé. Cet environnement est très sensible et ne doit jamais être compromis, en particulier lorsque la mémoire externe (qui ne le concerne pas) est altérée ; - d'un autre côté, un univers moins sécurisé pour lequel il est moins dommageable et donc acceptable que ses fonctionnalités puissent être compromises, entre autres, par la modification du contenu de la mémoire externe, par exemple au travers de l'interception de signaux par une personne malintentionnée. L'univers moins sécurisé comprend, outre la mémoire externe, des périphériques externes et éventuellement certains mémoires ou périphériques internes au circuit, non partagés avec ceux de l'univers sécurisé. Que ce soit lors de l'exécution de l'environnement sécurisé ou de l'environnement moins sécurisé, le processeur s'appuie sur une unité de gestion de mémoire (MMU û Memory Management Unit) pour déterminer les adresses mémoires de données ou d'instructions, notamment par la translation d'adresses. Une translation fournit, pour un contexte d'exécution donné, l'adresse physique correspondant à l'adresse virtuelle (ou logique) émise par une application exécutée. L'unité MMU comprend notamment une mémoire cache, également nommée TLB (Translation Look-aside Buffer), contenant les translations les plus récentes entre adresse virtuelle et adresse physique. Sur certaines architectures de processeurs, MIPS (nom commercial) par exemple, ce cache de translations est rempli par l'exécution d'une routine logicielle. Sur d'autres architectures de processeurs, par exemple ARM ou Intel (noms commerciaux), ce cache de translation est rempli automatiquement par un mécanisme matériel. Ce mécanisme, qui fait partie intégrante du processeur, est habituellement nommé un "Hardware page Table Walker", également désigné, dans la suite, par l'acronyme HTW.  In more detail, a secure processor circuit generally contains a number of logical macroblocks. The designer of such a circuit generally uses, and therefore buys, logic macroblocks preconceived to achieve part of the circuit, for example a processor model. It develops in parallel other specialized logic macroblocks, for the other part of the circuit. Because of its complexity, the logical processor macroblock, the "processor" in the rest of the document, is generally preconceived and provided by suppliers of solutions specialized in the field of processors, for example ARM Ltd or MIPS Technology (names commercial). In a system comprising a secure processor circuit and a connected external memory, for example a payment terminal as mentioned above, two software universes (or execution environments) executed on the same processor generally coexist: side, a secure universe based on, in addition to the processor, the memories and peripherals internal to the secure circuit. This environment is very sensitive and should never be compromised, especially when the external memory (which does not concern it) is corrupted; on the other hand, a less secure universe for which it is less damaging and therefore acceptable than its functionalities may be compromised, inter alia, by modifying the content of the external memory, for example through the interception of signals by a malicious person. The less secure universe includes, in addition to the external memory, external peripherals and possibly some memories or peripherals internal to the circuit, not shared with those of the secure universe. When executing the secure environment or the less secure environment, the processor relies on a memory management unit (MMU) to determine the data or data memory addresses. instructions, in particular by the translation of addresses. A translation provides, for a given execution context, the physical address corresponding to the virtual (or logical) address issued by an executed application. The MMU unit includes a cache memory, also called Translation Look-aside Buffer (TLB), containing the most recent translations between virtual address and physical address. On some processor architectures, MIPS (commercial name) for example, this translation cache is filled by the execution of a software routine. On other processor architectures, for example ARM or Intel (commercial names), this translation cache is filled automatically by a hardware mechanism. This mechanism, which is an integral part of the processor, is usually called a "Hardware Page Walker Table", also referred to in the following, by the acronym HTW.

Le HTW exploite une base de données de tables de translations présente en mémoire. Cette base de données, dont l'architecture interne peut être plus ou moins complexe, a pour finalité de fournir au HTW, lorsque celui-ci la consulte, des descripteurs de translation permettant directement ou indirectement de déterminer l'adresse physique associé à une adresse virtuelle. La base de données peut combiner des descripteurs de translation terminaux qui associent une adresse de page virtuelle à une adresse de page physique, et des descripteurs de table de translations qui associent à une plage d'adresses de pages virtuelles une nouvelle table (par une adresse physique) de la base de données comprenant d'autres descripteurs de translation. Il peut en résulter une arborescence de tables. Ces descripteurs de translations sont utilisés par le HTW pour déterminer de nouvelles translations non présentes dans le cache de translation TLB et mettre à jour, le cas échéant, ce dernier. La mise à jour de cette base de données est effectuée sous la responsabilité du système d'exploitation ou d'un logiciel de virtualisation (hyperviseur) lorsque cette technologie est utilisée. Pour la suite de l'exposé, on suppose que le mécanisme HTW parcourt cette base de données en utilisant des adresses physiques uniquement et non des adresses virtuelles, car autrement il pourrait être confronté à des recherches récursives (car des adresses virtuelles auraient elles-mêmes à être translatées et pourraient donc potentiellement lancer de nouveaux parcours de la base de données par le HTW). Cependant l'homme de l'art n'aura aucun mal à étendre l'exposé de l'invention qui suit dans le cas où, si le mécanisme HTW le supporte, ces accès se font en utilisant des adresses virtuelles. La mémoire externe étant beaucoup plus grande que la mémoire interne, l'univers moins sécurisé est beaucoup plus grand que l'univers sécurisé. Aussi, la majorité de la base de données de translations concerne l'univers moins sécurisé. Pour des raisons évidentes de place mémoire, il convient donc de placer la partie de la base de données de translations concernant seulement l'univers moins sécurisé, dans une mémoire externe au circuit sécurisé du processeur. La présente invention concerne les processeurs dotés d'un mécanisme HTW et concerne plus particulièrement un système pour la protection d'un environnement informatique d'exécution sécurisé, comprenant un circuit sécurisé de processeur, au moins une ressource définissant un premier univers non sécurisé, ladite ressource comprenant une mémoire externe connectée audit circuit sécurisé, ladite mémoire externe comprenant une pluralité de descripteurs de translation (partie de la base de données de translations) agencée pour associer des adresses virtuelles à des adresses physiques appartenant à l'univers moins sécurisé, c'est-à-dire désignant une ressource de cet univers, ledit circuit sécurisé de processeur comprenant au moins une ressource interne (généralement une mémoire interne et éventuellement d'autres ressources internes) et un processeur pour l'exécution d'au moins une application, ladite au moins une ressource interne définissant un deuxième univers sécurisé, le processeur comprenant un mécanisme matériel HTW agencé pour émettre au moins une requête (ou accès) en lecture d'un ou plusieurs descripteurs de translation stocké en mémoire externe, lorsque l'exécution d'une application émet une adresse virtuelle. De telles requêtes sont généralement émises lorsque la translation demandée n'est pas présente dans le cache TLB de la MMU.  The HTW uses a database of translation tables present in memory. This database, whose internal architecture can be more or less complex, is intended to provide the HTW, when it consults, translational descriptors for directly or indirectly determine the physical address associated with an address Virtual. The database may combine terminal translation descriptors that associate a virtual page address with a physical page address, and translation table descriptors that associate a range of virtual page addresses with a new table (by an address physical) of the database including other translation descriptors. This can result in a table tree. These translation descriptors are used by the HTW to determine new translations not present in the translation cache TLB and update, if necessary, the latter. The update of this database is performed under the responsibility of the operating system or a virtualization software (hypervisor) when this technology is used. For the rest of the talk, it is assumed that the HTW mechanism traverses this database using physical addresses only and not virtual addresses, otherwise it may be faced with recursive searches (because virtual addresses would themselves to be translated and could potentially launch new routes of the database by the HTW). However, those skilled in the art will have no difficulty in extending the following description of the invention in the case where, if the HTW mechanism supports it, these accesses are made using virtual addresses. The external memory being much larger than the internal memory, the less secure universe is much larger than the secure universe. Also, the majority of the translations database concerns the less secure universe. For obvious reasons of memory space, it is therefore appropriate to place the part of the translation database concerning only the less secure universe, in a memory external to the secure circuit of the processor. The present invention relates to processors with a HTW mechanism and more particularly relates to a system for protecting a secure execution computing environment, comprising a secure processor circuit, at least one resource defining a first unsecured universe, said resource comprising an external memory connected to said secure circuit, said external memory comprising a plurality of translation descriptors (part of the translation database) arranged to associate virtual addresses with physical addresses belonging to the less secure universe, c ' that is, designating a resource of this universe, said secure processor circuit including at least one internal resource (usually an internal memory and possibly other internal resources) and a processor for executing at least one application, said at least one internal resource defining a second united to secure, the processor comprising a hardware mechanism HTW arranged to issue at least one request (or access) for reading one or more translation descriptors stored in external memory, when the execution of an application sends a virtual address. Such requests are usually issued when the requested translation is not present in the MMU's TLB cache.

En pratique le HTW émet des requêtes en lecture jusqu'à ce qu'il obtienne un descripteur de translation terminal. Les premières requêtes permettent de parcourir la base de données de translations via des descripteurs de tables et la dernière requête fournit un descripteur de terminal comprenant l'adresse physique de translation recherchée. Ce descripteur permet de mettre à jour le cache de translation TLB de l'unité de gestion mémoire MMU, quand celle-ci doit translater une adresse virtuelle, émise par l'application en cours d'exécution, en une adresse physique, et que le descripteur de translation terminal correspondant, ou son équivalent, n'est pas présent dans son cache de translation TLB.  In practice the HTW issues read requests until it obtains a terminal translation descriptor. The first requests make it possible to browse the translation database via table descriptors and the last request provides a terminal descriptor including the desired translation physical address. This descriptor makes it possible to update the translation cache TLB of the memory management unit MMU, when it has to translate a virtual address, issued by the running application, into a physical address, and that the corresponding terminal translation descriptor, or its equivalent, is not present in its translation cache TLB.

La base de données de translations placée en mémoire externe et utilisée par un système d'exploitation de l'univers moins sécurisé pour spécifier l'adressage et l'utilisation de la mémoire physique des applications qu'il exécute, peut être, de par son emplacement externe et en cas de mauvaise intention, modifiée de telle sorte que ces applications se trouvent avoir accès à des plages d'adresses physiques de l'univers sécurisé. Un tel accès est préjudiciable en ce qu'il risque d'altérer l'intégrité de l'environnement sécurisé. La solution qui consiste à placer cette base de données en mémoire interne sécurisée n'apparaît pas opportune pour les raisons mentionnées ci-dessus (ressources de stockage interne limitées). Une solution à ce problème est proposée par le brevet US-7,124,274 qui concerne un système tel que présenté ci-dessus dans lequel le HTW du processeur dispose de deux registres, un premier attribué à l'univers sécurisé et pointant vers une base de données de translations dite sécurisée , et un deuxième attribué à l'univers moins sécurisé et pointant vers une deuxième base de données de translations dite non sécurisée . Chaque base de données comprend les translations associées à l'univers correspondant. Le processeur bascule d'un registre à l'autre lorsqu'il exécute des instructions relatives à une application sécurisée ou une application non sécurisée. Ainsi, le mécanisme HTW résout les translations dans un univers ou dans l'autre. Un filtre est cependant appliqué pour détecter lorsqu'un descripteur de translation, retourné par la base de données non sécurisée , décrit une adresse physique de l'univers sécurisé. Des contre-mesures appropriées sont alors prises.  The translation database placed in external memory and used by a less secure operating system of the universe to specify the addressing and the use of the physical memory of the applications that it executes, can be, by its external location and in case of bad intention, modified so that these applications are to have access to ranges of physical addresses of the secure universe. Such access is detrimental in that it may alter the integrity of the secure environment. The solution of placing this database in secure internal memory does not seem appropriate for the reasons mentioned above (limited internal storage resources). A solution to this problem is proposed by US Pat. No. 7,124,274 which relates to a system as presented above in which the HTW of the processor has two registers, a first one assigned to the secure universe and pointing to a database of translations said secure, and a second assigned to the less secure universe and pointing to a second database of translations said unsecured. Each database includes the translations associated with the corresponding universe. The processor switches from one registry to another when it executes instructions for a secure application or an insecure application. Thus, the HTW mechanism solves translations in one universe or the other. However, a filter is applied to detect when a translation descriptor, returned by the unsecured database, describes a physical address of the secure universe. Appropriate countermeasures are then taken.

Néanmoins, cette solution nécessite un certain nombre de modifications des architectures de processeur déjà existantes et, en particulier, la modification du HTW de telle façon qu'il comporte deux registres désignant deux bases de données de translations, le registre couramment utilisé dépendant du fait que le processeur soit dans un mode d'exploitation appartenant au domaine sécurisé ou non. Le mécanisme HTW est également modifié pour détecter l'environnement auquel s'adresse la demande de translation qu'il doit traiter et pour basculer sur le bon registre associé. Ces modifications ne sont disponibles que sur un petit nombre de modèles de processeur, plus coûteux que les modèles de processeur comparables non modifiés. Un but de l'invention est de fournir une solution au problème ci-dessus sans modifier les modèles de processeurs actuels. Ainsi, un objectif de l'invention est de permettre au concepteur de circuit mentionné ci-dessus, via la réalisation d'un bloc logique de faible complexité additionnel au bloc processeur, de résoudre le problème particulier de sécurité décrit précédemment, en utilisant pour le circuit sécurisé un modèle de processeur préconçu standard peu onéreux, au lieu de devoir utiliser un modèle de processeur préconçu plus onéreux car possédant des dispositifs particuliers de sécurité. L'invention atteint ce but par l'utilisation d'un bloc logique intégré au circuit sécurisé, ci-après "moyen de transcodage", et placé pour recevoir les données (les descripteurs de translation) retournées à destination du HTW par la mémoire externe, et éventuellement les modifier avant de les transmettre au HTW. Ce moyen de transcodage filtre alors les descripteurs de translation reçus de la mémoire externe, et, lorsqu'il détermine que ceux-ci décrivent une adresse physique de l'univers sécurisé, émet une erreur. A cet effet, l'invention a tout d'abord pour objet un système tel que présenté ci-dessus dans lequel ledit circuit sécurisé de processeur30 comprend, en outre, un moyen de transcodage disposé entre ledit processeur et la mémoire externe de sorte à recevoir (ou intercepter) au moins un descripteur de translation en réponse à ladite requête en lecture de la mémoire externe émise par ledit mécanisme HTW (lorsque celui ci consulte la base de donnée de translation), et ledit moyen de transcodage étant agencé pour détecter si ledit descripteur de translation retourné par la mémoire externe associe une adresse virtuelle à une adresse physique de l'univers sécurisé. Ainsi, les processeurs actuels, disposant d'un mécanisme HTW habituel, ayant un seul registre de désignation de base de données de translations, sont conservés pour fournir le degré de sécurité souhaité. Le moyen de transcodage peut prendre place en tant que relais des requêtes en lecture de la base de données de translations, émises par le mécanisme HTW et filtre les descripteurs de translation qui y sont apportées en réponse. On prévoit alors que ledit moyen de transcodage est également agencé pour recevoir la ou les requête(s) en lecture émise(s) par le HTW, à des fins de synchronisation logique avec le HTW. En fonction du mode de réalisation du moyen de transcodage, celui-ci peut aussi recevoir les descripteurs de translation reçus de la mémoire interne, à des fins de synchronisation logique avec le HTW. La réalisation de l'invention ne nécessite pas la modification du modèle préconçu du processeur, modification que le concepteur de circuit ne pourrait en général pas mener à bien, en raison, entre autres, d'obstacles techniques et juridiques. De la sorte, une protection de l'environnement sécurisée est apportée à tous les modèles de processeur déjà existants. Puisque la mémoire externe est susceptible d'être corrompue, le moyen de transcodage assure que les descripteurs de translation qui sont retournées spécifient des adresses physiques de l'univers moins sécurisé. Des réponses comportementales peuvent alors être prises en réponse à cette détection pour garantir une sécurité de l'univers sécurisé. De ce fait, le moyen de transcodage permet de limiter la plage d'adresses physiques qui peuvent être décrites par toute table de translations située dans la mémoire externe.  Nevertheless, this solution requires a certain number of modifications of the existing processor architectures and, in particular, the modification of the HTW in such a way that it comprises two registers designating two translation databases, the register commonly used depending on the fact that the processor is in an operating mode belonging to the secure domain or not. The HTW mechanism is also modified to detect the environment to which the translation request is to be processed and to switch to the correct associated register. These changes are only available on a small number of processor models, which are more expensive than comparable unmodified processor models. An object of the invention is to provide a solution to the above problem without modifying the current processor models. Thus, an object of the invention is to enable the circuit designer mentioned above, by making a logic block of low additional complexity to the processor block, to solve the particular security problem described above, by using for the secure circuit a low-cost standard preconception processor model, instead of having to use a preconceived processor model that is more expensive because it has special security features. The invention achieves this goal by using a logic block integrated in the secure circuit, hereinafter "transcoding means", and set to receive the data (the translation descriptors) returned to the HTW by the external memory. , and possibly modify them before transmitting them to the HTW. This transcoding means then filters the translation descriptors received from the external memory, and when it determines that they describe a physical address of the secure universe, issues an error. For this purpose, the invention firstly relates to a system as presented above in which said secure processor circuit further comprises a transcoding means disposed between said processor and the external memory so as to receive (or intercept) at least one translational descriptor in response to said read request of the external memory transmitted by said HTW mechanism (when it consults the translation database), and said transcoding means being arranged to detect if said translation descriptor returned by the external memory associates a virtual address with a physical address of the secure universe. Thus, the current processors, having a usual HTW mechanism, having a single translation database designation register, are kept to provide the desired degree of security. The transcoding means can take place as a relay of read requests of the translation database, issued by the HTW mechanism and filters the translation descriptors that are made in response thereto. It is then expected that said transcoding means is also arranged to receive the read request (s) issued by the HTW for purposes of logical synchronization with the HTW. Depending on the embodiment of the transcoding means, it may also receive translation descriptors received from the internal memory, for logical synchronization with the HTW. The embodiment of the invention does not require the modification of the preconceived model of the processor, a modification that the circuit designer generally could not carry out, due, among other things, to technical and legal obstacles. In this way, secure environment protection is provided to all existing processor models. Since the external memory is likely to be corrupted, the transcoding means ensures that the translation descriptors that are returned specify physical addresses of the less secure universe. Behavioral responses can then be made in response to this detection to ensure security of the secure universe. As a result, the transcoding means makes it possible to limit the range of physical addresses that can be described by any translation table located in the external memory.

L'invention empêche, par conséquent, l'accès sans autorisation à l'univers sécurisé, via une adresse virtuelle, dont la translation en adresse physique dépend, même partiellement, d'une table de translations située en mémoire externe susceptible d'être altérée.  The invention therefore prevents unauthorized access to the secure universe via a virtual address whose translation into a physical address depends, even partially, on a translation table located in external memory that can be altered. .

Dans un mode de réalisation, il est prévu que ledit moyen de transcodage est apte à générer, suite à ladite détection, une exception informatique afin que le processeur ou le système d'exploitation (éventuellement hyperviseur) prenne les dispositions nécessaires pour garantir l'herméticité de l'environnement sécurisé.  In one embodiment, it is provided that said transcoding means is capable of generating, following said detection, a computer exception so that the processor or the operating system (possibly a hypervisor) takes the necessary steps to guarantee the hermeticity. of the secure environment.

Une exception est un signal émis lors de l'exécution d'une application pour avertir d'une situation exceptionnelle ne correspondant pas à une exécution normale de l'application, et pour laquelle le système d'exploitation, le processeur ou des routines adaptées prend des actions réparatrices.  An exception is a signal issued when running an application to warn of an exceptional situation that does not correspond to a normal execution of the application, and for which the operating system, the processor or adapted routines takes restorative actions.

L'exception est émise aussi bien lorsque l'adresse physique non valide, car appartenant à l'univers sécurisé, est retournée via un descripteur de translation terminal ou via un descripteur de table de translation. Cette exception informatique peut être réalisée, par exemple, par l'application des règles suivantes : - si le descripteur de translation fautif est un descripteur de translation terminal, il est modifié de telle sorte qu'il spécifie que l'adresse logique à traduire est invalide, aucune adresse physique n'y étant associée. Ainsi l'exception d'accès invalide est générée. La routine du système d'exploitation OS (ou de l'hyperviseur) associée à cette exception peut alors déterminer si l'invalidité de l'accès résulte de l'action du moyen de transcodage ou non, par exemple en lisant un registre de statut de ce mécanisme de transcodage, le concepteur du système ayant pris soin de rendre ce registre accessible au processeur en tant que registre périphérique. - si le descripteur de translation fautif est un descripteur de table de translation, et s'il peut être modifié en un descripteur de translation terminal, alors il est modifié en un descripteur de translation terminal invalide tel que décrit ci-dessus, - si le descripteur de translation fautif est un descripteur de table de translation, mais qui ne peut pas être modifié en un descripteur de translation terminal car l'accès mémoire du HTW correspond à un niveau hiérarchique de l'arborescence de la base de données de translations où le HTW ne s'attend pas à recevoir de descripteur de translation terminal, alors l'adresse spécifiée par le descripteur fautif est transformée de telle façon qu'elle spécifie une adresse physique valide de la mémoire externe. Un automate d'état du mécanisme de transcodage note qu'il doit signaler une exception, par l'une des deux règles précédemment décrites, dès que l'accès généré par le HTW correspond à un niveau hiérarchique où il est possible de retourner un descripteur de translation terminal invalide.  The exception is issued when the invalid physical address, because it belongs to the secure universe, is returned via a terminal translation descriptor or via a translation table descriptor. This computer exception can be realized, for example, by applying the following rules: - if the faulty translation descriptor is a terminal translation descriptor, it is modified so that it specifies that the logical address to be translated is invalid, no physical address associated with it. Thus the invalid access exception is generated. The OS operating system routine (or the hypervisor) associated with this exception can then determine whether the invalidity of the access results from the action of the transcoding means or not, for example by reading a status register. of this transcoding mechanism, the designer of the system having taken care to make this register accessible to the processor as a peripheral register. if the faulty translation descriptor is a translation table descriptor, and if it can be modified into a terminal translation descriptor, then it is modified to an invalid terminal translation descriptor as described above, if the Offending translation descriptor is a translation table descriptor, but can not be modified into a terminal translation descriptor because the memory access of the HTW corresponds to a hierarchical level of the translation database tree where the HTW does not expect to receive a terminal translation descriptor, so the address specified by the offending descriptor is transformed in such a way that it specifies a valid physical address of the external memory. A state machine of the transcoding mechanism notes that it must signal an exception, by one of the two previously described rules, as soon as the access generated by the HTW corresponds to a hierarchical level where it is possible to return a descriptor terminal translation invalid.

Si le concepteur du système ne souhaite pas modifier la gestion par l'OS (ou l'hyperviseur) des exceptions, et donc ne pas générer une exception inhabituelle, résultant de l'action du mécanisme de transcodage, il est prévu que, pour assurer la suite de l'exécution de l'application en cours, ledit moyen de transcodage est apte à modifier, suite à ladite détection (c'est-à-dire lorsque l'adresse physique spécifiée par le descripteur de translation désigne l'univers sécurisé), ledit descripteur de translation reçu en spécifiant une adresse physique désignant l'univers moins sécurisé. On s'assure ainsi que la poursuite de l'exécution de l'application ne vient pas lire ou altérer des données de l'univers sécurisé. L'exécution de l'application est désormais corrompue, ce qui est sans importance puisque de toute façon la mémoire externe est également corrompue. Mais, cela est sans dommage pour l'univers sécurisé. Dans un mode de réalisation, ladite pluralité de descripteurs de translation est regroupée en une pluralité de tables de translations dans la base de données de translations, lesdites tables de translations étant regroupées en types de tables. Selon le type de la table considérée, une entrée d'une table peut, en fonction éventuellement de la valeur d'un champ binaire de cette entrée, soit contenir un descripteur de translation terminal associant une plage d'adresses virtuelles à une plage d'adresses physiques, soit un descripteur de translation de table décrivant une autre table de la base de données de translations. Un descripteur de table contient, outre d'autres informations éventuelles, l'adresse physique, ou du moins une partie suffisante de celle-ci, de la table qu'il décrit. La base de données de translations peut ainsi être organisée de façon arborescente, notamment sous la forme d'un arbre hiérarchique, lesdits types correspondant aux différents niveaux hiérarchiques. Le HTW, quand il consulte la base de données, poursuit la recherche dans celle-ci, descendant éventuellement dans les sous-arborescences de la base de données de translations, tant que la donnée lue correspond à un descripteur de table. Seule la lecture d'un descripteur de translation terminal met un terme à la recherche. L'organisation des tables en types permet notamment d'ajouter une sécurité supplémentaire en vérifiant la compatibilité des adresses spécifiées par les descripteurs de table de translations reçus avec le type de table de translations courant. Le moyen de transcodage est agencé pour appliquer à l'adresse physique d'un descripteur de translation reçu en réponse à une requête en lecture du HTW, une règle de traitement avant transmission du descripteur de translation reçu au mécanisme matériel HTW, ladite règle étant fonction dudit type de table de translation contenant ledit descripteur reçu. A cet effet, ledit moyen de transcodage comprend une unité logique stockant, à chaque requête en lecture émise par le HTW, le type associé à la table de translations visée dans la requête. De ce fait, le moyen de transcodage connaît continuellement le type associé à la requête et donc la règle à appliquer à la réponse reçue, si celle-ci provient de la mémoire externe, de telle façon qu'il puisse modifier de façon adéquate le descripteur reçu avant de le transmettre au HTW. Plusieurs règles applicables sont décrites plus en détail par la suite. 10 Lorsqu'au moins un descripteur de translation associe une plage d'adresses virtuelles à une autre table de translations en indiquant une adresse physique de ladite autre table, on prévoit que les adresses physiques des tables de translations d'un même type de tables 15 appartiennent à une même plage d'adresses associée audit type, et le moyen de transcodage est alors agencé pour vérifier que ladite adresse physique de table dudit descripteur reçu en réponse à la requête en lecture appartient à la plage d'adresses associée au type de ladite autre table spécifiée par le descripteur reçu, et transmettre, en cas de 20 vérification positive, ledit descripteur de translation reçu audit mécanisme matériel HTW. Le mécanisme HTW vérifie ainsi à chaque étape du parcours de l'arbre en vue de la résolution d'une translation d'adresse, généralement les 25 arbres de tables de translations comprennent deux à trois niveaux, que les adresses physiques spécifiées par les descripteurs de translation renvoyés sont compatibles avec celles attendues. Lorsque c'est le cas, les descripteurs de translation sont transmis au HTW pour suite à donner, notamment par l'émission d'une nouvelle requête en lecture de 30 la base de données avec l'adresse d'une nouvelle table afin de poursuivre la résolution de l'adresse virtuelle.  If the system designer does not wish to modify the management by the OS (or hypervisor) of the exceptions, and thus not generate an unusual exception, resulting from the action of the transcoding mechanism, it is expected that, to ensure following the execution of the current application, said transcoding means is able to modify following said detection (that is to say when the physical address specified by the translation descriptor designates the secure universe ), said translation descriptor received by specifying a physical address designating the less secure universe. This ensures that the continued execution of the application does not read or alter data of the secure universe. The execution of the application is now corrupted, which is irrelevant because anyway the external memory is also corrupted. But, this is without damage to the secure universe. In one embodiment, said plurality of translation descriptors is grouped into a plurality of translation tables in the translation database, said translation tables being grouped into table types. Depending on the type of the table considered, an entry of a table may, depending on the value of a binary field of this entry, contain a terminal translation descriptor associating a range of virtual addresses with a range of physical addresses, ie a table translation descriptor describing another table of the translation database. A table descriptor contains, in addition to other possible information, the physical address, or at least a sufficient part of it, of the table it describes. The translation database can thus be organized in a tree-like manner, in particular in the form of a hierarchical tree, said types corresponding to the different hierarchical levels. The HTW, when it consults the database, continues the search in it, possibly descending into the subtrees of the translation database, as long as the read data corresponds to a table descriptor. Only reading a terminal translation descriptor terminates the search. The organization of type tables makes it possible, in particular, to add additional security by verifying the compatibility of the addresses specified by the received translation table descriptors with the type of current translation table. The transcoding means is arranged to apply to the physical address of a translation descriptor received in response to a read request from the HTW, a processing rule before transmission of the translation descriptor received to the hardware mechanism HTW, said rule being function said type of translation table containing said received descriptor. For this purpose, said transcoding means comprises a logic unit storing, at each read request sent by the HTW, the type associated with the translation table referred to in the request. As a result, the transcoding means continually knows the type associated with the request and therefore the rule to be applied to the response received, if it comes from the external memory, so that it can modify the descriptor appropriately. received before transmitting it to the HTW. Several applicable rules are described in more detail later. When at least one translation descriptor associates a range of virtual addresses with another translation table by indicating a physical address of said other table, it is expected that the physical addresses of the translation tables of the same type of tables belong to the same address range associated with said type, and the transcoding means is then arranged to verify that said physical table address of said descriptor received in response to the read request belongs to the range of addresses associated with the type of said another table specified by the descriptor received, and transmit, in case of positive verification, said translated descriptor received to said hardware mechanism HTW. The HTW mechanism thus verifies at each step of the path of the tree in order to resolve an address translation, generally the translation table trees comprise two to three levels, that the physical addresses specified by the descriptors of translated translations are compatible with those expected. When this is the case, the translation descriptors are transmitted to the HTW for further action, in particular by issuing a new request to read the database with the address of a new table in order to proceed. the resolution of the virtual address.

Si ce n'est pas le cas (vérification négative), le moyen de transcodage est alors agencé pour modifier le descripteur de translation avant sa transmission au HTW de sorte à: - transformer ladite adresse physique en une adresse physique valide appartenant à la plage d'adresses associée au type de la table de translation spécifiée par le descripteur de translation reçu, c'est-à-dire que l'adresse que le descripteur retourné spécifie est située dans la plage d'adresses associée au type attendu ; ou - modifier le type de table de translation spécifié par le descripteur de translation en le type correspondant à la plage d'adresses à laquelle appartient l'adresse physique spécifiée par le descripteur reçu. Ainsi, en cas de vérification négative, soit le type de la table de translation décrite, soit l'adresse physique de la table de translation décrite, est modifié de telle sorte que le type et l'adresse soient compatibles entre eux. La première méthode est préférée en ce que la modification de l'adresse est toujours réalisable, la seconde méthode suppose que le HTW décode le type du descripteur depuis un champs de bit du descripteur lui-même (ce que ce qui n'est pas toujours le cas) afin que le transcodeur puisse modifier ce champ de bit, et donc modifier le type du descripteur tel que décodé par le HTW. Si le HTW calcule le type du descripteur d'une façon implicite, la deuxième méthode n'est pas réalisable. Si le HTW décode d'une façon partiellement implicite le type du descripteur en utilisant un encodage explicite d'un type parmi un sous-ensemble implicite des types possibles, la deuxième méthode, en fonction des caractéristiques précises du HTW, peut être ou ne pas être réalisable. Pour simplifier les traitements que le moyen de transcodage effectue, il est prévu que les types de tables sont encodées dans des bits parmi les plus significatifs des adresses. A ce titre, les adresses mémoires de chaque plage d'adresses associée à un type ont des bits, parmi par exemple les plus significatifs, fonction dudit type. Cette réalisation correspond à un mappage (correspondance) de la mémoire externe, c'est-à-dire que les adresses effectives sont encodées sur les bits restants ; des bits, parmi les plus significatifs, n'étant utilisés que pour encoder le type de table courant et par conséquent connaître le niveau actuel dans le parcours de l'arbre et les règles à appliquer aux descripteurs de translation qui y sont lus. Cette organisation des adresses permet de réaliser la fonction de filtrage (de transcodage) bien que le processeur ou le HTW ne donne aucune information, au moyen de transcodage, sur le type (accès normal, ou type d'accès HTW donné) de ses accès en lecture. On note que les accès normaux utilisent des adresses dont des bits, parmi les plus significatifs, ont une combinaison différente des combinaisons utilisées pour indiquer les types d'accès HTW donnés, cette combinaison étant référée en tant que combinaison d'accès normal. Les adresses physiques spécifiées par les descripteurs de translation terminaux utilisent la combinaison d'accès normal, car ces adresses sont destinées à translater des adresses virtuelles émises par les applications.  If this is not the case (negative verification), the transcoding means is then arranged to modify the translation descriptor before transmission to the HTW so as to: transform said physical address into a valid physical address belonging to the range of addresses associated with the type of translation table specified by the received translation descriptor, that is, the address that the returned descriptor specifies is in the address range associated with the expected type; or - modify the type of translation table specified by the translation descriptor to the type corresponding to the address range to which the physical address specified by the received descriptor belongs. Thus, in the case of a negative verification, either the type of the translation table described or the physical address of the translation table described, is modified so that the type and the address are compatible with each other. The first method is preferred in that the modification of the address is always feasible, the second method assumes that the HTW decodes the descriptor type from a bit field of the descriptor itself (which is not always the case) so that the transcoder can modify this bit field, and thus modify the type of the descriptor as decoded by the HTW. If the HTW calculates the descriptor type implicitly, the second method is not feasible. If the HTW partially decodes the descriptor type using an explicit encoding of one type among an implicit subset of possible types, the second method, depending on the precise characteristics of the HTW, may or may not be to be achievable. To simplify the processing that the transcoding means performs, it is expected that the types of tables are encoded in bits among the most significant addresses. As such, the memory addresses of each address range associated with a type have bits, among them the most significant, depending on the type. This embodiment corresponds to a mapping (correspondence) of the external memory, that is to say that the effective addresses are encoded on the remaining bits; bits, among the most significant, being used only to encode the current type of table and therefore know the current level in the path of the tree and the rules to be applied to the translation descriptors that are read. This organization of addresses makes it possible to perform the filtering (transcoding) function even though the processor or the HTW gives no information, by means of transcoding, on the type (normal access, or type of HTW access given) of its accesses. read. It should be noted that normal accesses use addresses whose most significant bits have a different combination of the combinations used to indicate the given types of HTW access, which combination is referred to as a normal access combination. The physical addresses specified by the terminal translation descriptors use the normal access combination because these addresses are intended to translate virtual addresses issued by the applications.

Dans ce mode de réalisation, il peut être prévu plus particulièrement, dans le cas où le descripteur reçu en réponse est un descripteur terminal spécifiant une adresse physique de page mémoire, que le moyen de transcodage est un filtre de ladite adresse physique reçue réalisant, avant transmission du descripteur terminal reçu audit mécanisme matériel HTW, la fonction suivante : l'altération desdits bits les plus significatifs de l'adresse physique fournie, les bits encodant les adresses physiques effectives n'étant, quant à eux, pas altérés.  In this embodiment, it can be provided more particularly, in the case where the descriptor received in response is a terminal descriptor specifying a physical memory page address, that the transcoding means is a filter of said received physical address, before transmission of the received terminal descriptor to said HTW hardware mechanism, the following function: the alteration of said most significant bits of the physical address provided, the bits encoding the actual physical addresses being, in turn, not altered.

Ce nettoyage éventuel vise à rétablir, au sein de l'adresse indiquée dans le descripteur retourné, un type correct d'adresse (la combinaison d'accès normal) afin que cet encodage précis soit utilisé lors de l'émission de requêtes mémoire par les applications (les accès normaux donc). Afin d'appliquer le filtrage adéquat fonction du type courant, il importe que le transcodeur connaisse efficacement le parcours dans la base de données. L'utilisation des bits les plus significatifs à cette fin comme décrit ci-dessus est une solution. En fonction des caractéristiques du HTW, le moyen de transcodage peut être amené à enregistrer les requêtes émises par le HTW (il peut les reconnaître car leur adresse n'utilise pas la combinaison normale d'accès telle que définie ci-dessus). A cette fin d'enregistrement, il peut être prévu l'utilisation d'un registre tel quementionné précédemment afin de mémoriser le type de descripteur attendu (et donc les opérations de filtrage à appliquer au retour). Pour mettre à jour ce registre, il convient que le moyen de transcodage répertorie l'ensemble des requêtes émises par le HTW pour accéder aux descripteurs en mémoire. Pour ce faire, il est prévu que lequel ledit moyen de transcodage est agencé pour recevoir ladite au moins une requête en lecture de la mémoire externe. En outre, les accès à des descripteurs en mémoire interne peuvent faire évoluer le parcours dans la base de données. Ainsi, on prévoit que ladite au moins une ressource interne comprend au moins une mémoire interne stockant des descripteurs de translation, ledit mécanisme matériel HTW est alors également agencé pour émettre au moins une requête en lecture d'un descripteur de translation stocké en mémoire interne lors de l'émission d'une adresse virtuelle par l'exécution d'une application, et ledit moyen de transcodage est également agencé pour recevoir ladite au moins une requête en lecture de la mémoire interne.  This possible cleaning aims to restore, within the address indicated in the descriptor returned, a correct type of address (the combination of normal access) so that this precise encoding is used when issuing memory requests by the applications (so normal accesses). In order to apply the appropriate filtering function of the current type, it is important for the transcoder to effectively know the path in the database. The use of the most significant bits for this purpose as described above is a solution. Depending on the characteristics of the HTW, the transcoding means may be required to record the requests issued by the HTW (it can recognize them because their address does not use the normal access combination as defined above). For this purpose of recording, it may be provided the use of a register as previously described in order to memorize the type of descriptor expected (and therefore the filtering operations to be applied to the return). To update this register, the transcoding means should list all requests issued by the HTW to access the descriptors in memory. To do this, it is provided that said transcoding means is arranged to receive said at least one read request from the external memory. In addition, access to descriptors in internal memory can change the course in the database. Thus, it is provided that said at least one internal resource comprises at least one internal memory storing translation descriptors, said hardware mechanism HTW is then also arranged to transmit at least one read request of a translation descriptor stored in internal memory when the transmission of a virtual address by the execution of an application, and said transcoding means is also arranged to receive said at least one read request from the internal memory.

Dans une configuration telle que présentée ci-dessus, dans laquelle un processeur permet l'exécution de plusieurs environnements dont certains sont sécurisés, il convient d'utiliser un hyperviseur (logiciel de virtualisation du processeur) afin de cloisonner diverses applications à exécuter (notamment des systèmes d'exploitation vis-à-vis d'applications sécurisées très sensibles, par exemple celles relatives au paiement par terminaux carte bancaire). Notamment, ladite application est un hyperviseur exécuté dans un mode privilégié du processeur. Cet hyperviseur contrôle ainsi l'accès aux ressources matérielles du circuit sécurisé par les applications et systèmes d'exploitation exécutés sur le processeur. Selon deux modes de réalisation : - ladite mémoire externe comprend un système d'exploitation pour l'exécution d'une pluralité d'applications, ledit système d'exploitation étant exécuté par ledit processeur sous le contrôle et la supervision dudit hyperviseur, ladite mémoire interne comprend au moins une application sécurisée, pouvant être elle-même un système d'exploitation, cette application étant exécutée sous le contrôle et la supervision dudit hyperviseur. Comme mentionné précédemment, ledit processeur peut comprendre une unité de gestion de mémoire MMU contenant un cache de translations d'adresses récentes TLB, ledit mécanisme matériel HTW étant agencé pour mettre à jour ledit cache TLB en réponse à ladite requête en consultation.  In a configuration as presented above, in which a processor allows the execution of several environments some of which are secured, it is appropriate to use a hypervisor (processor virtualization software) to partition various applications to be executed (including operating systems vis-à-vis very sensitive secure applications, for example those relating to payment by credit card terminals). In particular, said application is a hypervisor executed in a privileged mode of the processor. This hypervisor thus controls access to hardware resources of the secure circuit by the applications and operating systems running on the processor. According to two embodiments: said external memory comprises an operating system for executing a plurality of applications, said operating system being executed by said processor under the control and supervision of said hypervisor, said internal memory comprises at least one secure application, which may itself be an operating system, this application being executed under the control and supervision of said hypervisor. As mentioned above, said processor may comprise a MMU memory management unit containing a cache of recent address translations TLB, said hardware mechanism HTW being arranged to update said TLB cache in response to said request for consultation.

Dans un mode de réalisation de l'invention, il est prévu que ledit circuit sécurisé comprend un contrôleur de mémoire externe par lequel ledit circuit sécurisé communique avec ladite mémoire externe, ledit moyen de transcodage étant disposé entre le processeur et ledit contrôleur de mémoire externe. Le moyen de transcodage concerne donc un module spécifique intégré dans le circuit sécurisé au niveau d'une matrice de communication permettant la communication entre le HTW et le contrôleur de mémoire externe.  In one embodiment of the invention, it is provided that said secure circuit comprises an external memory controller by which said secure circuit communicates with said external memory, said transcoding means being disposed between the processor and said external memory controller. The transcoding means therefore relates to a specific module integrated in the secure circuit at a communication matrix for communication between the HTW and the external memory controller.

Selon une variante, ledit moyen de transcodage comprend des fonctionnalités de contrôleur de mémoire externe grâce auxquelles ledit circuit sécurisé communique avec ladite mémoire externe. De façon avantageuse, ledit moyen de transcodage est une unité matérielle intégrée dans le module sécurisé. Une telle réalisation, à partir des spécificités fonctionnelles décrites ci avant, ne présente aucune complexité technique. Le processeur et éventuellement d'autres unités du circuit peuvent également accéder à la mémoire externe. Dans ce cas, il est prévu que ledit moyen de transcodage est agencé pour recevoir également une requête en lecture non générée par le mécanisme matériel HTW et pour transmettre, à l'émetteur de ladite requête et sans modification, la donnée reçue en réponse à cette requête. On délimite ainsi l'invention à la sécurisation de la gestion de la mémoire par le processeur (au travers de la MMU et du HTW). L'invention a également pour objet un procédé de protection d'un environnement informatique sécurisé exécuté dans un circuit sécurisé 20 de processeur, le procédé comprenant : - l'exécution d'une application par un processeur dans ledit circuit sécurisé, - lorsque l'application émet une adresse virtuelle, une étape par laquelle un mécanisme matériel HTW dudit processeur émet au 25 moins une requête en lecture d'au moins un descripteur de translation stocké dans une mémoire externe, ladite mémoire externe étant connectée audit module sécurisé et comprenant une pluralité de descripteurs de translation agencée pour associer des adresses virtuelles à des adresses physiques appartenant à un univers moins 30 sécurisé.  According to one variant, said transcoding means comprises external memory controller functions by virtue of which said secure circuit communicates with said external memory. Advantageously, said transcoding means is a hardware unit integrated in the secure module. Such an embodiment, from the functional specificities described above, has no technical complexity. The processor and possibly other units of the circuit can also access the external memory. In this case, it is provided that said transcoding means is arranged to also receive a read request not generated by the hardware mechanism HTW and to transmit, to the transmitter of said request and without modification, the data received in response to this request. Thus delimits the invention to secure the management of memory by the processor (through the MMU and HTW). The invention also relates to a method for protecting a secure computing environment executed in a secure processor circuit 20, the method comprising: executing an application by a processor in said secure circuit; application transmits a virtual address, a step by which a hardware mechanism HTW of said processor issues at least a read request of at least one translation descriptor stored in an external memory, said external memory being connected to said secure module and comprising a plurality translation descriptors arranged to associate virtual addresses with physical addresses belonging to a less secure universe.

Le procédé s'appuie sur un moyen de transcodage recevant la réponse à ladite au moins une requête en lecture, ce moyen de transcodage étant disposé, dans ledit circuit sécurisé de processeur, entre ledit processeur et la mémoire externe. Le procédé comprend, en outre, les étapes suivantes : - la réception, par ledit moyen de transcodage, d'au moins un descripteur de translation en réponse à ladite au moins une requête en lecture, et - la vérification, par ledit moyen de transcodage, de savoir si ledit descripteur reçu associe une adresse virtuelle à une adresse physique d'un univers sécurisé, ledit univers sécurisé comprenant au moins une ressource interne audit circuit sécurisé. Dans un mode de réalisation, le procédé comprend, lorsque ladite vérification est positive (association d'une adresse virtuelle à une adresse de l'univers sécurisé), une étape de génération, par ledit moyen de transcodage, d'une exception informatique. Dans un autre mode de réalisation, le procédé comprend, lorsque ladite vérification est positive, une étape de modification dudit descripteur de translation reçu en spécifiant une adresse physique désignant ledit univers non sécurisé, avant transmission de cette adresse modifiée audit mécanisme matériel HTW. Particulièrement, ladite pluralité de descripteurs de translation est regroupée en une pluralité de tables de translations, lesdites tables de translations étant regroupées en types de tables, au moins un descripteur de translation associe une plage d'adresses virtuelles à une autre table de translations en indiquant une adresse physique de ladite autre table, les adresses physiques des tables de translations d'un même type de tables appartenant à une même plage d'adresses associée audit type, le procédé comprenant, en outre, une deuxième étape de vérification, par ledit moyen de transcodage, que ladite adresse physique du descripteur reçu en réponse à la requête en lecture appartient à la plage d'adresses associée au type de ladite autre table de translation spécifiée dans le descripteur reçu, et une étape ultérieure de transmission, en cas de deuxième vérification positive, dudit descripteur de translation reçu audit mécanisme matériel HTW. Dans ce mode de réalisation, il est également envisagé qu'au moins un descripteur de translation est un descripteur de translation terminal associant une plage d'adresses virtuelles à une plage d'adresses physiques de l'univers moins sécurisé, lesdites adresses de descripteur encodant, dans une partie de leurs bits, le type de table auquel elles se réfèrent. Le procédé comprend alors, en outre lorsqu'un descripteur de translation terminal est reçu par le mécanisme de transcodage, une étape d'altération desdits bits du descripteur terminal reçu dans un format spécifique (ci-dessus nommé "combinaison d'accès normal"). Plus particulièrement, le procédé peut comprendre, en outre, à l'émission de ladite au moins une requête, une étape de mise à jour d'un registre dudit moyen de transcodage, ledit registre comprenant le type associé à la table de translations visée dans ladite requête, et au moins une étape de traitement dudit descripteur de translation reçu par ledit moyen de transcodage, ledit traitement étant fonction dudit type de table enregistré dans le registre.  The method relies on a transcoding means receiving the response to said at least one read request, this transcoding means being disposed in said secure processor circuit between said processor and the external memory. The method further comprises the steps of: - receiving, by said transcoding means, at least one translation descriptor in response to said at least one read request, and - checking, by said transcoding means whether said received descriptor associates a virtual address with a physical address of a secure universe, said secure universe comprising at least one resource internal to said secure circuit. In one embodiment, the method comprises, when said verification is positive (association of a virtual address to an address of the secure universe), a step of generating, by said transcoding means, a computer exception. In another embodiment, the method comprises, when said verification is positive, a step of modifying said received translation descriptor by specifying a physical address designating said insecure universe, before transmission of this modified address to said hardware mechanism HTW. In particular, said plurality of translation descriptors is grouped into a plurality of translation tables, said translation tables being grouped into table types, at least one translation descriptor associates a range of virtual addresses with another translation table indicating a physical address of said other table, the physical addresses of the translation tables of the same type of tables belonging to the same address range associated with said type, the method further comprising a second verification step, by said means of transcoding, that said physical address of the descriptor received in response to the read request belongs to the address range associated with the type of said other translation table specified in the received descriptor, and a subsequent transmission step, in the case of second positive verification of said translated translation descriptor to said HTW hardware mechanism. In this embodiment, it is also envisaged that at least one translation descriptor is a terminal translation descriptor associating a range of virtual addresses with a range of physical addresses of the less secure universe, said descriptor addresses encoding in a part of their bits, the type of table to which they refer. The method then further comprises, when a terminal translation descriptor is received by the transcoding mechanism, a step of altering said received end descriptor bits into a specific format (hereafter referred to as "normal access combination"). . More particularly, the method may further comprise, at the time of transmission of said at least one request, a step of updating a register of said transcoding means, said register comprising the type associated with the translation table referred to in FIG. said request, and at least one step of processing said translation descriptor received by said transcoding means, said processing being a function of said type of table registered in the register.

Dans un mode de réalisation, les applications sont exécutées sous le contrôle d'un hyperviseur, et le procédé comprend, suite à la détection de l'exception par ledit hyperviseur, une étape d'altération de données confidentielles stockées en mémoire interne, afin d'empêcher tout accès à celles-ci.  In one embodiment, the applications are executed under the control of a hypervisor, and the method comprises, following the detection of the exception by said hypervisor, a step of altering confidential data stored in internal memory, in order to prevent access to them.

On comprendra mieux l'invention à l'aide de la description, faite ci-après à titre purement explicatif, d'un mode de réalisation de l'invention, en référence aux figures annexées : - Fig. 1 illustre l'architecture générale de la présente invention ; - Fig. 2 représente un exemple d'architecture logicielle dans laquelle s'inscrit l'invention ; - Fig. 3 est un exemple de structure de tables de translations pour la mise en oeuvre de l'invention ; et - Fig. 4 illustre un exemple de formatage des adresses et le principe de correspondance (mappage) associé de la mémoire. En référence à la Fig. 1, un module ou circuit sécurisé 1 comprend un processeur 10, des mémoires internes 11 et 12, un ou des périphérique(s) interne(s) 13, un contrôleur de mémoire externe 14, une unité transcodeur matérielle 15 et un bus ou matrice de communication 16 entre ces diverses entités. Le transcodeur 15 est situé entre le processeur 10 et le contrôleur de mémoire externe 14, de telle façon que tous les accès en lecture à une mémoire externe 2 reliée par le contrôleur et générés par le HTW passent par le transcodeur 15. Ces entités sont situées soit sur une même puce de silicium, cette puce de silicium étant encapsulée dans un boîtier, soit réparties sur des puces de silicium distinctes, ces puces de silicium et leurs interconnections étant encapsulées dans un même boîtier.  The invention will be better understood by means of the description, given below purely for explanatory purposes, of one embodiment of the invention, with reference to the appended figures: FIG. 1 illustrates the general architecture of the present invention; - Fig. 2 represents an example of software architecture in which the invention is inscribed; - Fig. 3 is an example of translation table structure for the implementation of the invention; and - Fig. 4 illustrates an example of formatting addresses and the principle of correspondence (mapping) associated memory. With reference to FIG. 1, a module or secure circuit 1 comprises a processor 10, internal memories 11 and 12, one or more internal peripheral (s) 13, an external memory controller 14, a hardware transcoder unit 15 and a bus or matrix 16 between these various entities. The transcoder 15 is located between the processor 10 and the external memory controller 14, so that all read accesses to an external memory 2 connected by the controller and generated by the HTW pass through the transcoder 15. These entities are located either on the same silicon chip, this silicon chip being encapsulated in a housing, or distributed on separate silicon chips, these silicon chips and their interconnections being encapsulated in the same housing.

L'encapsulation dans le même boîtier est réalisée de sorte qu'il ne soit possible ni d'observer ni d'altérer les signaux de communication entre ces entités sans des moyens techniques très importants. Le processeur 10 comprend une unité de gestion de la mémoire MMU 100, une table TLB 101 des translations récentes et un mécanisme 30 Hardware page Table Walker HTW 102 pour mettre à jour la TLB 101.  The encapsulation in the same housing is carried out so that it is not possible to observe or alter the communication signals between these entities without very important technical means. The processor 10 includes a MMU memory management unit 100, a recent translation table TLB 101 and a Walker Table HTW 102 hardware page mechanism to update the TLB 101.

Un unique registre 1020 est associé au mécanisme matériel HTW 102 et lui indique l'emplacement de la table de translations initiale 111 à partir de laquelle la résolution d'une adresse logique pour le processeur peut être menée.  A single register 1020 is associated with the hardware mechanism HTW 102 and indicates the location of the initial translation table 111 from which the resolution of a logical address for the processor can be conducted.

Egalement en référence à la Fig. 2, le processeur 10 permet l'exécution d'un hyperviseur 17 dans un mode privilégie du processeur et d'au moins une application sécurisée 18 utilisant des données sensibles stockées en mémoire SRAM 11 (Static Random Access Memory) du module 1. Le code de l'hyperviseur et de l'application sécurisée, ainsi que les données non modifiables qu'ils utilisent, sont stockées dans la mémoire ROM 12 (Read Only Memory) du module sécurisé 1. Le module sécurisé 1 est relié à la mémoire externe 2 (limitée à 512 Mo) et d'éventuels périphériques externes 2' par une matrice de connexion 3 du type piste de circuit imprimé et connecteurs. La mémoire externe comprend un système d'exploitation OS 21, par exemple Linux, adapté à être exécuté sur le processeur 10 sous le contrôle de l'hyperviseur 17 et des applications 22 exécutées par ce système d'exploitation. Ces applications et OS utilisent des codes instructions et des données 23 stockées dans cette mémoire externe 2.  Also with reference to FIG. 2, the processor 10 allows the execution of a hypervisor 17 in a privileged mode of the processor and at least one secure application 18 using sensitive data stored in the SRAM 11 memory (Static Random Access Memory) module 1. The code the hypervisor and the secure application, and the non-modifiable data they use, are stored in the ROM 12 (Read Only Memory) of the secure module 1. The secure module 1 is connected to the external memory 2 (limited to 512 MB) and any external peripherals 2 'by a connection matrix 3 of the printed circuit track type and connectors. The external memory comprises an operating system OS 21, for example Linux, adapted to be executed on the processor 10 under the control of the hypervisor 17 and the applications 22 executed by this operating system. These applications and OS use instruction codes and data 23 stored in this external memory 2.

Le mécanisme HTW 102 du processeur 10 s'appuie sur une base de données de tables de translations 24 stockée en mémoire externe 2 pour résoudre les translations d'adresses logiques utilisées par le système d'exploitation 21 et les applications 22 lorsqu'ils sont exécutés par le processeur 10.  The HTW mechanism 102 of the processor 10 relies on a translation table database 24 stored in external memory 2 to resolve the logical address translations used by the operating system 21 and the applications 22 when they are executed. by the processor 10.

L'application sécurisée 18 et les entités du module sécurisé 1 constituent un environnement d'exécution sensible et à ce titre sécurisé ENVIR-S. La mémoire externe 2, les applications 22, le système d'exploitation 21 et les périphériques 2' constituent un univers moins sécurisé ENVIR-NS, notamment parce que les échanges avec le module 1 peuvent être interceptés au niveau de la matrice de connexion 3.  The secure application 18 and the entities of the secure module 1 constitute a sensitive execution environment and for this secure SEC-S. The external memory 2, the applications 22, the operating system 21 and the peripherals 2 'constitute a less secure universe ENVIR-NS, in particular because the exchanges with the module 1 can be intercepted at the level of the connection matrix 3.

L'univers moins sécurisé ENVIR-NS peut aussi comprendre certaines des mémoires et périphériques internes au boîtier 1. L'univers moins sécurisé ENVIR-NS résiste néanmoins aux attaques uniquement logicielles, grâce à l'utilisation de la MMU du processeur et de l'isolation logicielle que celle-ci procure. Ces deux univers ENVIR-S et ENVIR-NS cohabitent sur un même processeur 10 grâce au logiciel spécialisé de virtualisation de processeur, (hyperviseur 17). Les ressources (mémoire(s), périphérique(s)) utilisées par l'hyperviseur opèrent dans l'univers sécurisé. Le système d'exploitation généraliste protège ses applications entre elles par l'utilisation d'une MMU virtuelle qui est réalisée par des services logiciels fournis par l'hyperviseur 17, ces services utilisant la MMU réelle du processeur. Une telle solution est décrite notamment dans la demande de brevet WO-2006/027488. Maintenant en référence à la Fig. 3, puisque le processeur 10 est dédié à la fois à l'univers sécurisé ENVIR-S et à l'univers moins sécurisé ENVIR-NS, la table de translations initiale 111 est stockée dans la mémoire interne 11 sécurisée. Sa taille est réduite, par exemple 16 Ko et renvoie, en ce qui concerne les données de l'univers non sécurisé aux tables de translations de la base 24. En revanche, pour ce qui est des données sécurisées en mémoire interne 11 ou 12, cette table 111 contient soit directement les translations adresse logique-adresse physique des pages mémoires de la mémoire interne, soit l'adresse d'une autre table de translations stockée dans la mémoire interne. Des mécanismes traditionnels s'appliquent alors. L'invention visant principalement à protéger le système lors de l'accès aux tables de translations en mémoire externe, la résolution des adresses logiques relatives aux données sécurisées n'est pas traitée plus avant.  The less secure universe ENVIR-NS may also include some of the internal memory and peripherals of the enclosure 1. The less secure universe ENVIR-NS is nonetheless resistant to software-only attacks, thanks to the use of the processor MMU and the software isolation that it provides. These two universes ENVIR-S and ENVIR-NS coexist on the same processor 10 thanks to the specialized processor virtualization software, (hypervisor 17). The resources (memory (s), device (s)) used by the hypervisor operate in the secure universe. The general-purpose operating system protects its applications with each other by the use of a virtual MMU which is performed by software services provided by the hypervisor 17, these services using the actual MMU of the processor. Such a solution is described in particular in the patent application WO-2006/027488. Now with reference to FIG. 3, since the processor 10 is dedicated both to the secure universe ENVIR-S and to the less secure environment ENVIR-NS, the initial translation table 111 is stored in the internal memory 11 secured. Its size is reduced, for example 16 KB, and refers, as regards the data of the insecure universe to the translation tables of the base 24. On the other hand, with regard to the data secured in the internal memory 11 or 12, this table 111 contains either directly the logical address-physical address translations of the memory pages of the internal memory, or the address of another translation table stored in the internal memory. Traditional mechanisms apply then. The invention aimed primarily at protecting the system when accessing translation tables in external memory, the resolution of logical addresses for secure data is not discussed further.

La base de données 24 est constituée en un assemblage de tables de translations 240 de façon arborescente. A cette fin, trois types de tables de translation sont utilisés. Les tables de translations terminales sont des tables dont chaque entrée E décrit la translation d'adresse d'une page d'adresse logique (ou virtuelle) correspondant à l'entrée E en une page d'adresse physique de la mémoire (descripteur de translation final). Les pages physiques de la mémoire sont généralement d'une taille de l'ordre de 4 kilo-octets.  The database 24 consists of an assembly of translation tables 240 in a tree-like manner. For this purpose, three types of translation tables are used. Terminal translation tables are tables where each E entry describes the address translation of a logical (or virtual) address page corresponding to the E entry into a physical address page of the memory (translation descriptor). final). The physical pages of the memory are generally of a size of the order of 4 kilobytes.

Les tables de translations X non terminales sont des tables dont chaque entrée E (dite descripteur de translation de table) décrit une autre table de translation Y (par exemple, renseigne l'adresse @Y de cette autre table Y). Cette table Y, qui peut être terminale, non terminale ou mixte, décrit, avec une granularité plus fine, la plage d'adresses logiques qui correspond à l'entrée E considérée de la table X. Le type de la table Y peut être soit implicite, soit encodé dans l'entrée E éventuellement à partir d'un sous-ensemble implicite des types de tables de translations. Les tables de translations X mixtes sont des tables dont chaque entrée E peut décrire: soit la translation d'adresse de la plage d'adresses logiques correspondant à l'entrée E en une plage d'adresses physiques ; -soit une autre table de translation Y, terminale, non terminale ou mixte, qui va décrire avec une granularité plus fine, la plage d'adresses logiques qui correspond à l'entrée E considérée de la table X. Dans chaque entrée d'une table de translation mixte X, un encodage indique laquelle de ces deux fonctions est réalisée. Quand une autre table Y de translation est décrite, le type de la table Y peut être soit implicite, soit encodé dans l'entrée E, éventuellement à partir d'un sous-ensemble implicite des types de table de translations.  The non-terminal X translation tables are tables of which each entry E (called table translation descriptor) describes another translation table Y (for example, fill in the @Y address of this other table Y). This table Y, which can be terminal, non-terminal or mixed, describes, with a finer granularity, the range of logical addresses which corresponds to the entry E considered of the table X. The type of the table Y can be either implicit, either encoded in the entry E possibly from an implicit subset of the translation table types. Mixed X translation tables are tables of which each entry E can describe: either the translation of the address of the range of logical addresses corresponding to the entry E into a range of physical addresses; -is another Y, terminal, non-terminal or mixed translation table, which will describe with a finer granularity, the range of logical addresses which corresponds to the entry E considered of the table X. In each entry of a mixed translation table X, an encoding indicates which of these two functions is performed. When another translation table Y is described, the type of the table Y can be either implicit or encoded in the entry E, possibly from an implicit subset of the translation table types.

Chaque descripteur de translation correspond au minimum à un accès du processeur soit, par exemple, 32 bits. En référence également à la Fig. 4, les adresses physiques stockées dans les entrées (descripteurs) des tables de translations sont codées sur 32 bits. Une page physique fait, par exemple, au minimum 4 ko, donc seuls les 20 bits les plus significatifs (MSB) de l'adresse physique 32 bits sont nécessaires pour coder l'adresse de page physique, les 12 bits restant étant utilisés : pour éventuellement indiquer le type du descripteur de translation, par exemple à partir d'un sous-ensemble implicite des types de descripteur de translation (aux fins du HTW), - pour les descripteurs de translation terminaux seulement, pour coder diverses informations sur les propriétés de la page physique, comme par exemple son accessibilité en lecture, en écriture, éventuellement en fonction du mode d'exploitation du processeur dans lequel l'accès est effectué. L'arborescence des tables de translations 240 dans la base 24 permet de définir ces trois (N) types de tables, chaque type correspondant à un niveau de l'arborescence comme illustré sur la Fig. 3.  Each translation descriptor corresponds to at least one access of the processor, for example, 32 bits. Also referring to FIG. 4, the physical addresses stored in the entries (descriptors) of translation tables are encoded on 32 bits. For example, a physical page is at least 4 KB, so only the 20 most significant bits (MSB) of the 32-bit physical address are needed to encode the physical page address, the remaining 12 bits being used: possibly indicate the type of the translation descriptor, for example from an implicit subset of translation descriptor types (for HTW purposes), - for terminal translation descriptors only, to encode various information about the properties of the translation descriptor the physical page, such as its accessibility read, write, possibly depending on the operating mode of the processor in which access is made. The tree of translation tables 240 in the base 24 defines these three (N) types of tables, each type corresponding to a level of the tree as illustrated in FIG. 3.

Le mécanisme HTW reconnaît trois types différents de tables HTW-1, HTW-2 et HTW-3 (HTW-N). Un accès mémoire généré par le HTW 102 pour résoudre une translation d'adresse est dit de type P quand il correspond à la lecture d'une table de translation de type P. Le processeur 10 n'indique pas, lors d'un accès en lecture de la mémoire, si l'accès a été généré par le HTW 102, ou résulte de l'exécution habituelle d'une instruction de lecture mémoire. Si le transcodeur 15 est placé de telle sorte qu'il intercepte aussi des accès en lecture qui ne sont pas générés par le HTW 102, alors l'accès de type 0 est défini comme étant un accès qui n'est pas généré par le HTW.  The HTW mechanism recognizes three different types of HTW-1, HTW-2 and HTW-3 (HTW-N) tables. A memory access generated by the HTW 102 for resolving an address translation is said to be of type P when it corresponds to the reading of a translation table of type P. The processor 10 does not indicate, when accessing reading the memory, if the access was generated by the HTW 102, or results from the usual execution of a memory read instruction. If the transcoder 15 is set so that it also intercepts read accesses that are not generated by the HTW 102, then the type 0 access is defined as an access that is not generated by the HTW. .

Si le type 0 existe, la mémoire externe est mappée quatre (N+1) fois : elle peut être accédée via quatre (N+1) Plages d'Adresses Physiques 20 différentes désignées PAP[0] jusqu'à PAP[3] (PAP[N]).  If type 0 exists, the external memory is mapped four (N + 1) times: it can be accessed via four (N + 1) different physical address ranges designated PAP [0] to PAP [3] ( PAP [N]).

Si le type 0 n'existe pas, la mémoire externe est mappée trois (N) fois: elle peut être accédée via trois (N) Plages d'Adresses Physique 20 différentes numérotées PAP[1] jusqu'à PAP[3] (PAP[N]). Dans les deux cas, les PAP font toutes la même taille et permettent d'accéder à l'ensemble de la mémoire externe 2. Les deux bits les plus significatifs [31;29] des adresses physiques sont décodées de la façon suivante : - 00 -> indique que l'accès est interne au circuit sécurisé. Un accès interne reste à l'intérieur du circuit sécurisé 1, de telle sorte que 15 depuis l'extérieur du circuit 1, l'on ne puisse pas l'altérer ni même savoir qu'il a eu lieu, - 01 -> indique que l'accès est externe et concerne les ressources externes 2', - lx -> indique que l'accès est externe, et concerne la mémoire 20 externe 2 (x valant 0 ou 1, comme décrit ci-après). Un accès externe, quant à lui, est véhiculé sur les pistes électriques de la matrice de communication 3 externe afin d'accéder à une des ressources externes 2 ou 2' (donc obligatoirement de l'univers moins sécurisé). Lorsque l'adresse physique correspond à une adresse de la mémoire externe 2 (c'est-à-dire le bit [31] vaut 1), les bits [30:29] indiquent le numéro de type : 00 -> l'accès n'a pas été généré par le HTW (le filtre est inactif), 30 01 -> l'accès doit être filtré, et correspond au type HTW 1 25 10 -> l'accès doit être filtré, et correspond au type HTW 2 11 -> l'accès doit être filtré, et correspond au type HTW 3, Lorsque l'adresse correspond à la mémoire externe 2, les bits [28 :0] correspondent à l'adresse effective dans la mémoire externe 2.  If type 0 does not exist, the external memory is mapped three (N) times: it can be accessed via three (N) ranges of different Physical Addresses numbered PAP [1] to PAP [3] (PAP) [NOT]). In both cases, the PAPs are all the same size and allow access to all the external memory 2. The two most significant bits [31; 29] of the physical addresses are decoded as follows: - 00 -> indicates that the access is internal to the secure circuit. Internal access remains inside the secure circuit 1, so that from outside the circuit 1, it can not be altered or even known that it has occurred, - 01 -> indicates that the access is external and relates to the external resources 2 ', - lx -> indicates that the access is external, and relates to the external memory 2 (x being 0 or 1, as described below). External access, meanwhile, is conveyed on the electrical tracks of the external communication matrix 3 in order to access one of the external resources 2 or 2 '(thus necessarily the less secure universe). When the physical address corresponds to an address of the external memory 2 (that is, the bit [31] is 1), the bits [30:29] indicate the type number: 00 -> access was not generated by the HTW (the filter is inactive), 30 01 -> access must be filtered, and corresponds to type HTW 1 25 10 -> access must be filtered, and corresponds to type HTW 2 11 -> the access must be filtered, and corresponds to the type HTW 3, When the address corresponds to the external memory 2, the bits [28: 0] correspond to the effective address in the external memory 2.

Cela signifie que les adresses physiques dont les bits [31, 30, 29] : -valent 100, forment la PAP[0] ; - valent 101, forment la PAP[l] ; valent 110, forment la PAP[2] ; - valent 1 1 1 , forment la PAP[3].  This means that the physical addresses whose bits [31, 30, 29]: -valent 100, form the PAP [0]; - are 101, form the PAP [l]; worth 110, form the PAP [2]; - are 1 1 1, form the PAP [3].

Lors de l'exécution des applications et systèmes d'exploitation par le processeur, l'hyperviseur 17 enregistre les adresses de données sous la forme indiquée ci-dessus, c'est-à-dire en utilisant les trois bits les plus significatifs pour encoder l'externalité et le type de table concerné.  When executing the applications and operating systems by the processor, the hypervisor 17 stores the data addresses in the form indicated above, that is to say using the three most significant bits to encode the externality and the type of table concerned.

L'hyperviseur organise ainsi la gestion de l'adressage logique et physique de telle sorte que les accès de type i utilisent la PAP[i]. Le transcodeur 15 possède une unité logique ou registre 150, qui lui permet de reconnaître à quelle PAP une adresse physique appartient. Il met à jour cette unité logique lorsque l'arbre est parcouru, par exemple en incrémentant de 1 l'unité si le parcours de l'arbre est fait niveau par niveau, sinon en mettant à jour l'unité logique 150 en fonction du type correspondant à la table de translations visée dans la requête en lecture émise par le HTW 102.  The hypervisor thus organizes logical and physical addressing management so that type i accesses use the PAP [i]. The transcoder 15 has a logical unit or register 150, which allows it to recognize which PAP a physical address belongs to. It updates this logical unit when the tree is traversed, for example by incrementing by 1 the unit if the course of the tree is done level by level, otherwise by updating the logic unit 150 according to the type corresponding to the translation table referred to in the read request issued by the HTW 102.

Lors du processus de rechargement par le HTW 15 d'une entrée de TLB 101, une ou plusieurs tables de translations (111 puis 240) sont accédées. L'accès à une table de translation (1 1 1 , 240) consiste en la lecture 30 d'une de ses entrées.  During the HTW 15 reloading process of a TLB 101 input, one or more translation tables (111 then 240) are accessed. Access to a translation table (1 1 1, 240) consists of reading one of its inputs.

La lecture d'une entrée de table de translations 240 d'un type donné en mémoire externe 2 est réalisée soit : - par un unique accès en lecture de la mémoire, - par une série consécutive d'accès en lecture de la mémoire.  The reading of a translation table input 240 of a given type in external memory 2 is performed either: - by a single read access of the memory, - by a consecutive series of read accesses of the memory.

Le nombre d'accès en lecture pour lire une entrée d'une table de translation d'un type donné est spécifique à ce type. Dans la suite de ce document, et pour simplifier les explications sans nuire à la généralité, la lecture d'une entrée de table est considérée comme étant réalisé par un accès en lecture unique. Quand la lecture d'une entrée nécessite plusieurs accès, l'homme de l'art extrapolera simplement les explications en considérant par exemple qu'une série de i accès consécutifs, sur un bus de largeur I bit, peut être vue comme un accès unique, de largeur (i x I) bits.  The number of read accesses to read an entry of a translation table of a given type is specific to this type. In the remainder of this document, and to simplify the explanations without affecting the generality, the reading of a table entry is considered to be performed by a single read access. When the reading of an entry requires several accesses, those skilled in the art will simply extrapolate the explanations by considering for example that a series of consecutive accesses, on a bus of width I bit, can be seen as a single access. , of width (ix I) bits.

Ainsi, lors d'un accès en lecture à la mémoire externe 2 pour résoudre une translation, le transcodeur 15 reconnaît la PAP concernée par l'adresse recherchée grâce aux trois bits [31,30,29] les plus significatifs de l'adresse demandée. Le transcodeur 15 met alors à jour le registre 150 avec la valeur des bits [30,29]. Généralement le type vaut 01 lorsqu'une nouvelle adresse virtuelle doit être translatée. Ce type s'incrémente au fur et à mesure du parcours de l'arborescence des tables et donc des adresses indiquant de nouveaux types dans les bits correspondants. A ce stade, le transcodeur 15 est en attente de la réponse à la requête pour appliquer des traitements adéquats fonction du type mémorisé dans le registre 150. Les mécanismes de la mémoire externe 2 résolvent la requête en lecture émise et retourne le descripteur de la base 24 qui est associé à l'adresse envoyée. Ce descripteur de translation indique soit une adresse physique de page mémoire (descripteur final) soit l'adresse d'une autre table de translation à laquelle il faut accéder, par une requête supplémentaire en lecture, pour poursuivre la translation de l'adresse virtuelle.  Thus, during a read access to the external memory 2 to resolve a translation, the transcoder 15 recognizes the PAP concerned by the address sought by the three most significant bits [31,30,29] of the requested address. . The transcoder 15 then updates the register 150 with the value of the bits [30,29]. Generally the type is 01 when a new virtual address must be translated. This type is incremented as the tree of the tables progresses and thus addresses indicating new types in the corresponding bits. At this stage, the transcoder 15 is waiting for the response to the request to apply appropriate processing according to the type stored in the register 150. The mechanisms of the external memory 2 resolve the read request issued and returns the descriptor of the base 24 which is associated with the address sent. This translation descriptor indicates either a physical memory page address (final descriptor) or the address of another translation table which must be accessed, by an additional request for reading, to continue the translation of the virtual address.

A réception de la réponse, le transcodeur 15 applique différentes règles. Pour les accès à la PAP[O] (ne concernent pas des requêtes émises par le mécanisme HTW 102), le transcodeur transmet la donnée lue de façon inchangée au processeur ou à l'émetteur de la requête. Pour les accès aux PAP d'indice non nul (relatifs à des requêtes émises par le HTW 102), le transcodeur modifie la donnée lue, avant de la fournir au HTW du processeur, à partir d'une règle qui dépend de l'indice de la PAP stockée dans le registre 150. Cette modification assure les règles suivantes dans deux cas distincts. Dans un premier cas, si le descripteur de translation retourné décrit directement la translation d'une plage d'adresses logiques en une plage d'adresses physiques, alors le transcodeur 15 altère certains bits de son contenu, de telle façon que: 1. soit la translation ne puisse spécifier que des adresses physiques de l'univers moins sécurisé ; 2. soit si la translation spécifie une adresse physique de l'univers sécurisé, alors l'accessibilité spécifiée est nulle (invalide). En fonction de son exigence en matière de sécurité, le concepteur du système peut moduler et réduire l'accessibilité : exécution seulement et/ou lecture seulement, au lieu de forcer cette accessibilité à être nulle ; 3. soit si la translation spécifie une adresse physique de l'univers sécurisé, le transcodeur indique au CPU que l'instruction qui a causé la recherche dans la base de données de translation doit être annulée ou abandonnée. Dans ce cas, le transcodeur ne réalise plus en fait une fonction de transcodage, mais plutôt une fonction de détection.  Upon receipt of the response, the transcoder 15 applies different rules. For access to the PAP [O] (do not concern requests issued by the HTW mechanism 102), the transcoder transmits the data read unchanged to the processor or to the sender of the request. For non-zero index PAP accesses (relating to requests issued by the HTW 102), the transcoder modifies the read data, before supplying it to the processor HTW, from a rule that depends on the index of the PAP stored in the register 150. This modification ensures the following rules in two separate cases. In a first case, if the returned translation descriptor directly describes the translation of a range of logical addresses into a range of physical addresses, then the transcoder 15 alters certain bits of its contents, so that: 1. either the translation can only specify physical addresses of the less secure universe; 2. If the translation specifies a physical address of the secure universe, then the specified accessibility is null (invalid). Depending on its security requirement, the system designer can modulate and reduce accessibility: run-only and / or read-only, instead of forcing this accessibility to be nil; 3. If the translation specifies a physical address of the secure universe, the transcoder tells the CPU that the instruction that caused the search in the translation database must be canceled or aborted. In this case, the transcoder no longer realizes a transcoding function, but rather a detection function.

Pour ces trois actions, le transcodeur génère une interruption ou une exception, pour signaler le problème à l'hyperviseur. En outre, il peut renseigner un registre indépendant "statut" par lequel il indique (valeur =1) que c'est lui qui a émis une interruption/exception. L'hyperviseur, considérant le système attaqué, peut, par exemple, décider d'effacer préventivement des clefs de chiffrement stockées en mémoire interne ou toute autre contre-mesure adaptée. Néanmoins, si le registre a la valeur 0 et qu'une interruption/exception est reçue par l'hyperviseur, ce dernier peut décider d'en tenir compte différemment, comme par exemple mettre fin à l'application en cours d'exécution qui est à l'origine de la demande de translation interrompue. En effet, cette exception ne relève peut-être que d'un bogue de l'application qui ne mérite pas de contre-mesure extrême, mais uniquement le redémarrage de l'application. Dans un deuxième cas, si le descripteur de translation retourné décrit une table de translation d'un type donné T, le transcodeur 15 vérifie que l'adresse de la table T est bien dans la PAP[T]. Le type de table T est donné par les bits [30,29] de l'adresse retournée dans le descripteur. Si tel est le cas, la donnée lue est fournie au HTW inchangée (sauf cas indéfini décrit plus bas). Autrement le transcodeur assure que: a) préférentiellement l'adresse est transformée en une adresse valide appartenant à PAP[T], b) soit, si l'adresse appartient à la PAP[S] et si le HTW décode depuis une partie du descripteur, le type de ce dernier (éventuellement à partir d'un sous-ensemble implicite des types de descripteurs, ce sous-ensemble contenant au moins le type S), alors le transcodeur peut modifier le descripteur de telle façon que celui-ci soit reconnu par le HTW comme étant bien du type S. L'adresse peut dans ce processus être modifiée aussi pour respecter, par exemple, des contraintes d'alignement propres au type S, ainsi que pour avoir ses bits 30 et 29 mis à la valeur de type correspondante La méthode a) est préférée en ce qu'elle est plus simple et marche dans tous les cas de figure, contrairement à la méthode b) qui nécessite la condition supplémentaire exposée dans sa description.  For these three actions, the transcoder generates an interrupt or exception to report the problem to the hypervisor. In addition, it can provide an independent register "status" by which it indicates (value = 1) that it is he who issued an interruption / exception. The hypervisor, considering the attacked system, may, for example, decide to prevent the erasure of encryption keys stored in internal memory or any other adapted countermeasure. However, if the register is 0 and an interrupt / exception is received by the hypervisor, the hypervisor may decide to consider it differently, such as terminating the running application which is at the origin of the translation request interrupted. Indeed, this exception is perhaps only a bug in the application that does not deserve extreme countermeasure, but only the restart of the application. In a second case, if the returned translation descriptor describes a translation table of a given type T, the transcoder 15 verifies that the address of the table T is in the PAP [T]. The type of table T is given by the bits [30,29] of the address returned in the descriptor. If this is the case, the read data is provided to the HTW unchanged (except indefinite case described below). Otherwise the transcoder ensures that: a) preferentially the address is transformed into a valid address belonging to PAP [T], b) is, if the address belongs to the PAP [S] and if the HTW decodes from part of the descriptor , the type of the latter (possibly from an implicit subset of the types of descriptors, this subset containing at least the type S), then the transcoder can modify the descriptor so that it is recognized the address can in this process be modified also to respect, for example corresponding type Method a) is preferred in that it is simpler and works in all cases, unlike method b) which requires the additional condition set out in its description.

En général, le concepteur de HTW cherche à permettre la réalisation de bases de données de translations compactes en mémoire. Aussi habituellement toutes les combinaisons possibles pour un format de page donnée sont significatives, c'est-à-dire qu'il n'y a pas de combinaison binaire pour un descripteur de translation, qui ne puissent être décodée par le HTW, et conduire à un comportement prédictible et légal de celui-ci. Mais dans le cas où le HTW 102 ne supporte pas toutes les combinaisons possibles, et dans l'éventualité d'une entrée de table comprenant des combinaisons non supportées, d'un agencement non supporté (création de boucle dans la structure par exemple), ou de quelque autre réalisation incorrecte de la base de données de translation, le HTW 102 pourrait alors adopter un comportement indéfini, ce qui représente une menace pour la sécurité de l'univers sécurisé. En conséquence le transcodeur 15 a aussi comme rôle de protéger le HTW contre tous lesdéfauts ou malfaçons de la base de données de translation, ces défauts ou malfaçons ayant pu être réalisés, à des fins d'attaque, par la modification du contenu de la mémoire externe, par des moyens d'altération des signaux. A cette fin, le transcodeur 15 détecte ces défauts et malfaçons. Cette détection est réalisée, par exemple, de la façon suivante : - lors de l'émission d'une requête par le HTW, le transcodeur repère quel est le type attendu. Quand le descripteur est retourné par la mémoire externe, le transcodeur vérifie sa conformité avec le type attendu, en fonction de règles propres à chaque type (par exemple vérifier qu'une contrainte d'alignement d'adresse de table de translation est respectée) ; - quand une malfaçon est détectée alors le transcodeur : • soit transforme la ou les données incorrecte(s) en donnée(s) correcte(s), puis applique un transcodage respectant l'une des règles 1, 2 ou 3 précédentes ; • soit indique au CPU que l'instruction qui a causé la recherche dans la base de données de translations doit être annulée ou abandonnée. Dans ces deux cas, le transcodeur 15 génère alors une interruption ou une exception pour signaler le problème à l'hyperviseur.  In general, the designer of HTW seeks to allow the realization of databases of compact translations in memory. Also usually all possible combinations for a given page format are significant, that is, there is no binary combination for a translation descriptor, which can not be decoded by the HTW, and lead to a predictable and legal behavior of it. But in the case where the HTW 102 does not support all the possible combinations, and in the event of a table entry comprising unsupported combinations, an unsupported arrangement (creation of loop in the structure for example), or some other improper realization of the translation database, the HTW 102 could then behave indefinitely, posing a threat to the security of the secure universe. Consequently, the transcoder 15 also has the role of protecting the HTW against all the defects or deficiencies of the translation database, these defects or defects that could be achieved, for attack purposes, by modifying the contents of the memory. external, by means of alteration of the signals. To this end, the transcoder 15 detects these defects and defects. This detection is carried out, for example, as follows: - when a request is sent by the HTW, the transcoder locates what is the expected type. When the descriptor is returned by the external memory, the transcoder checks its conformity with the expected type, according to rules specific to each type (for example to check that a translation table address alignment constraint is respected); - When a defect is detected then the Transcoder: • either transforms the incorrect data (s) into correct data (s), then applies a transcoding complying with one of the rules 1, 2 or 3 above; • tell the CPU that the instruction that caused the search in the translations database must be canceled or abandoned. In both cases, the transcoder 15 then generates an interrupt or an exception to report the problem to the hypervisor.

Au lieu d'utiliser une mémoire externe 2 mappée plusieurs fois par des PAP 20, celle-ci peut être mappée une seule fois. La plage d'adresses physiques correspondantes est divisée en ZONEs, de taille égale ou non, jouant le même rôle que les PAPs. L'hyperviseur doit dans ce cas ne placer les tables de translations que dans les zones correspondantes, ce qui peut représenter une contrainte non négligeable (traitements plus importants). Mais cette variante a l'avantage de réduire l'espace d'adressage physique consommé par la mémoire externe. Un mélange du concept de PAP et de ZONE peut être utilisé pour obtenir un compromis entre flexibilité et taille de l'espace d'adresse physique consommé par la mémoire externe. Le bus 16 peut avoir des signaux dont des combinaisons peuvent renseigner sur le fait que le HTW 102 fait un accès ou non, et de quel type est cet accès. Le transcodeur 15 n'a plus besoin donc du concept de PAP car il obtient, par ces signaux, l'information de TYPE nécessaire pour appliquer la règle de transcodage adéquate.  Instead of using an external memory 2 mapped several times by PAPs 20, it can be mapped once. The corresponding physical address range is divided into ZONEs, of equal size or not, playing the same role as the PAPs. In this case, the hypervisor must place translation tables only in the corresponding zones, which can represent a significant constraint (more important treatments). But this variant has the advantage of reducing the physical address space consumed by the external memory. A mixture of the concept of PAP and ZONE can be used to achieve a compromise between flexibility and size of the physical address space consumed by the external memory. The bus 16 may have signals whose combinations can indicate whether the HTW 102 is accessing or not, and what type this access is. The transcoder 15 therefore no longer needs the concept of PAP because it obtains, by these signals, the TYPE information needed to apply the appropriate transcoding rule.

Claims (22)

REVENDICATIONS 1. Système pour la protection d'un environnement informatique d'exécution sécurisé, comprenant un circuit sécurisé de processeur (1), au moins une ressource (2, 2') définissant un univers non sécurisé, ladite ressource comprenant une mémoire externe (2) connectée audit circuit sécurisé (1), ladite mémoire externe (2) comprenant une pluralité de descripteurs de translation agencée pour associer des adresses virtuelles à des adresses physiques appartenant à l'univers moins sécurisé (2, 2'), ledit circuit sécurisé (1) comprenant au moins une ressource interne (1 1 , 12, 13) et un processeur (10) pour l'exécution d'au moins une application (21, 22), ladite au moins une ressource interne définissant un univers sécurisé, le processeur comprenant un mécanisme matériel HTW (102) agencé pour émettre au moins une requête en lecture d'un ou plusieurs descripteurs de translation stocké en mémoire externe (2), lorsque l'exécution de l'application (21, 22) émet une adresse virtuelle, caractérisé en ce que ledit circuit sécurisé de processeur (1) comprend, en outre, un moyen de transcodage (15) disposé entre ledit processeur (10) et la mémoire externe (2) de sorte à recevoir au moins un descripteur de translation en réponse à ladite au moins une requête en lecture de la mémoire externe émise par ledit mécanisme matériel HTW, ledit moyen de transcodage (15) étant agencé pour détecter si le descripteur de translation retourné par la mémoire externe associe une adresse virtuelle à une adresse physique de l'univers sécurisé (11, 12, 13).  A system for protecting a secure execution computing environment, comprising a secure processor circuit (1), at least one resource (2, 2 ') defining an insecure universe, said resource comprising an external memory (2) ) connected to said secure circuit (1), said external memory (2) comprising a plurality of translation descriptors arranged to associate virtual addresses with physical addresses belonging to the less secure universe (2, 2 '), said secure circuit ( 1) comprising at least one internal resource (1 1, 12, 13) and a processor (10) for executing at least one application (21, 22), said at least one internal resource defining a secure universe, the processor comprising a hardware mechanism HTW (102) arranged to transmit at least one read request of one or more translation descriptors stored in external memory (2), when the execution of the application (21, 22) issues a virtual address, characterized in that said secure processor circuit (1) further comprises transcoding means (15) disposed between said processor (10) and the external memory (2) so as to receive at least one descriptor of translation in response to said at least one read request of the external memory transmitted by said hardware mechanism HTW, said transcoding means (15) being arranged to detect whether the translation descriptor returned by the external memory associates a virtual address with an address physics of the secure universe (11, 12, 13). 2. Système selon la revendication 1, dans lequel ledit moyen de transcodage (15) est apte à générer, suite à ladite détection, une exception informatique.  2. System according to claim 1, wherein said transcoding means (15) is capable of generating, following said detection, a computer exception. 3. Système selon la revendication 1 ou 2, dans lequel ledit moyen de transcodage (15) est apte à modifier, suite à ladite détection, ledit descripteur de translation reçu en spécifiant une adresse physique désignant l'univers moins sécurisé (2, 2').  3. System according to claim 1 or 2, wherein said transcoding means (15) is able to modify, following said detection, said translated translation descriptor by specifying a physical address designating the less secure universe (2, 2 '). ). 4. Système selon l'une des revendications 1 à 3, dans lequel ladite pluralité de descripteurs de translation est regroupée en une pluralité de tables de translations (240), lesdites tables de translations étant regroupées en types de tables, au moins un descripteur de translation associe une plage d'adresses virtuelles à une plage d'adresses physiques de l'univers moins sécurisé (2 2 ) le moyen de transcodage (15) étant agencé pour appliquer, à ladite adresse physique dudit descripteur de translation reçu en réponse, une règle de traitement avant transmission du descripteur de translation reçu au mécanisme matériel HTW (102), ladite règle étant fonction dudit type de table contenant ledit descripteur reçu.  4. System according to one of claims 1 to 3, wherein said plurality of translation descriptors is grouped into a plurality of translation tables (240), said translation tables being grouped into table types, at least one descriptor of translation associates a range of virtual addresses with a range of physical addresses of the less secure universe (2 2) the transcoding means (15) being arranged to apply, to said physical address of said translation descriptor received in response, a processing rule before transmitting the received translation descriptor to the HTW hardware mechanism (102), said rule being a function of said type of table containing said received descriptor. 5. Système selon la revendication précédente, dans lequel ledit moyen de transcodage (15) comprend une unité logique (150) stockant, à chaque requête en lecture, le type associé à la table de translations visée dans la requête.  5. System according to the preceding claim, wherein said transcoding means (15) comprises a logic unit (150) storing, at each read request, the type associated with the translation table referred to in the request. 6. Système selon l'une des revendications 1 à 3, dans lequel ladite pluralité de descripteurs de translation est regroupée en une pluralité de tables de translations (240), lesdites tables de translations étant regroupées en types de tables, au moins un descripteur de translation associe une plage d'adresses virtuelles à une autre table de translations (240) en indiquant une adresse physique de ladite autre table,les adresses physiques des tables de translations d'un même type de tables appartenant à une même plage d'adresses (20) associée audit type, le moyen de transcodage (15) étant agencé pour vérifier que ladite adresse physique de table dudit descripteur de translation reçu en réponse à la requête en lecture appartient à la plage d'adresses (20) associée au type de ladite autre table de translation (240) spécifiée par descripteur reçu, et transmettre, en cas de vérification positive, ledit descripteur de translation reçu audit mécanisme matériel HTW.  6. System according to one of claims 1 to 3, wherein said plurality of translation descriptors is grouped into a plurality of translation tables (240), said translation tables being grouped into table types, at least one descriptor of translation associates a range of virtual addresses with another translation table (240) by indicating a physical address of said other table, the physical addresses of the translation tables of the same type of tables belonging to the same range of addresses ( 20) associated with said type, the transcoding means (15) being arranged to verify that said physical table address of said translation descriptor received in response to the read request belongs to the address range (20) associated with the type of said another translation table (240) specified by descriptor received, and transmit, in case of positive verification, said translated translation descriptor to said hardware mechanism HTW. 7. Système selon la revendication 6, dans lequel le moyen de transcodage (15) est agencé, en cas de vérification négative, pour transformer ladite adresse physique du descripteur reçu en une adresse physique valide appartenant à la plage d'adresses (20) associée au type de la table de translation (240) spécifiée par le descripteur reçu.  The system according to claim 6, wherein the transcoding means (15) is arranged, in the case of a negative check, to transform said received descriptor physical address into a valid physical address belonging to the associated address range (20). the type of translation table (240) specified by the received descriptor. 8. Système selon la revendication 6, dans lequel le moyen de transcodage (15) est agencé, en cas de vérification négative, pour modifier le type de la table (240) de translation spécifiée par le descripteur reçu en le type correspondant à la plage d'adresses (20) à laquelle appartient ladite adresse physique de descripteur reçu.  8. System according to claim 6, wherein the transcoding means (15) is arranged, in the case of negative verification, to modify the type of translation table (240) specified by the received descriptor in the type corresponding to the range. address (20) to which said received descriptor physical address belongs. 9. Système selon la revendication 5 ou 8, dans lequel les adresses de chaque plage d'adresses (20) associée à un type ont les bits les plus significatifs fonction dudit type.  The system of claim 5 or 8, wherein the addresses of each address range (20) associated with a type have the most significant bits depending on said type. 10. Système selon la revendication 4 à 9, dans lequel ladite pluralité de tables (240) est organisée sous forme d'un arbre hiérarchique, lesdits types correspondant aux différents niveaux hiérarchiques.  10. System according to claim 4 to 9, wherein said plurality of tables (240) is organized in the form of a hierarchical tree, said types corresponding to different hierarchical levels. 11. Système selon l'une des revendications précédentes, dans lequel ledit moyen de transcodage est également agencé pour recevoir ladite au moins une requête en lecture de la mémoire externe (2).  11. System according to one of the preceding claims, wherein said transcoding means is also arranged to receive said at least one read request from the external memory (2). 12. Système selon la revendication précédente, dans lequel ladite au moins une ressource interne (11, 12,  12. System according to the preceding claim, wherein said at least one internal resource (11, 12, 13) comprend au moins une mémoire interne (1 1 , 12) stockant des descripteurs de translation, ledit mécanisme matériel HTW (102) est également agencé pour émettre au moins une requête en lecture d'un descripteur de translation stocké en mémoire interne (11, 12) lors de l'émission d'une adresse virtuelle par l'exécution d'une application (17, 18, 21, 22), et ledit moyen de transcodage (15) est également agencé pour recevoir ladite au moins une requête en lecture de la mémoire interne (11, 12). 13. Système selon l'une des revendications précédentes, dans lequel ledit processeur (10) comprend une unité de gestion de mémoire (100) contenant un cache de translations d'adresses récentes TLB (101), ledit mécanisme matériel HTW (102) étant agencé pour mettre à jour ledit cache TLB (101) en réponse à ladite requête en consultation.  13) comprises at least one internal memory (1 1, 12) storing translation descriptors, said HTW hardware mechanism (102) is also arranged to transmit at least one read request of a translation descriptor stored in internal memory (11). , 12) during the transmission of a virtual address by the execution of an application (17, 18, 21, 22), and said transcoding means (15) is also arranged to receive said at least one request for reading the internal memory (11, 12). The system of one of the preceding claims, wherein said processor (10) comprises a memory management unit (100) containing a recent TLB address translation cache (101), said HTW hardware mechanism (102) being arranged to update said TLB cache (101) in response to said request for consultation. 14. Système selon l'une des revendications précédentes, dans lequel ledit module sécurisé (1) comprend un contrôleur de mémoire externe (14) par lequel ledit module sécurisé (1) communique avec ladite mémoire externe (2), ledit moyen de transcodage (15) étant disposé entre le processeur (10) et ledit contrôleur de mémoire externe (14).  The system according to one of the preceding claims, wherein said secure module (1) comprises an external memory controller (14) by which said secure module (1) communicates with said external memory (2), said transcoding means ( 15) being disposed between the processor (10) and said external memory controller (14). 15. Système selon l'une des revendications précédentes, dans lequel ledit moyen de transcodage (15) comprend des fonctionnalités de contrôleur de mémoire externe (14) grâce auxquelles ledit module sécurisé (1) communique avec ladite mémoire externe (2).  15. System according to one of the preceding claims, wherein said transcoding means (15) comprises external memory controller functions (14) with which said secure module (1) communicates with said external memory (2). 16. Système selon l'une des revendications précédentes, dans lequel ledit moyen de transcodage (15) est agencé pour recevoir également une requête en lecture non générée par le mécanisme matériel HTW (102) et pour transmettre, sans modification, la donnée reçue en réponse à cette requête, à l'émetteur de ladite requête.  The system according to one of the preceding claims, wherein said transcoding means (15) is arranged to also receive a read request not generated by the HTW hardware mechanism (102) and to transmit, without modification, the received data item. response to this request, to the issuer of said request. 17. Procédé de protection d'un environnement informatique sécurisé exécuté dans un circuit sécurisé de processeur (1), le procédé 10 comprenant : l'exécution d'une application (21, 22) par un processeur (10) dans ledit circuit sécurisé (1), lorsque l'application (21, 22) émet une adresse virtuelle, une étape par laquelle un mécanisme matériel HTW (102) dudit processeur (10) émet 15 au moins une requête en lecture d'au moins un descripteur de translation stocké dans une mémoire externe (2), ladite mémoire externe (2) étant connectée audit module sécurisé (1) et comprenant une pluralité de descripteurs de translation agencée pour associer des adresses virtuelles à des adresses physiques appartenant à un univers 20 moins sécurisé (2, 2'), caractérisé en ce que le procédé comprend, en outre, les étapes suivantes : la réception, par un moyen de transcodage (15) disposé, dans ledit circuit sécurisé de processeur (1), entre ledit processeur (10) et la 25 mémoire externe (2), d'au moins un descripteur de translation en réponse à ladite au moins une requête en lecture, et la vérification, par ledit moyen de transcodage (15), de savoir si ledit descripteur reçu associe une adresse virtuelle à une adresse physique d'un univers sécurisé, ledit univers sécurisé comprenant au moins une 30 ressource interne (11, 12, 13') audit circuit sécurisé (1).  A method for protecting a secure computing environment executed in a secure processor circuit (1), the method comprising: executing an application (21, 22) by a processor (10) in said secure circuit ( 1), when the application (21, 22) issues a virtual address, a step by which a hardware mechanism HTW (102) of said processor (10) issues at least one read request of at least one stored translation descriptor in an external memory (2), said external memory (2) being connected to said secure module (1) and comprising a plurality of translation descriptors arranged to associate virtual addresses with physical addresses belonging to a less secure universe (2, 2 '), characterized in that the method further comprises the steps of: receiving, by transcoding means (15) disposed in said secure processor circuit (1), between said processor (10) and theExternal memory (2), at least one translation descriptor in response to said at least one read request, and verification, by said transcoding means (15), whether said received descriptor associates a virtual address with a physical address of a secure universe, said secure universe comprising at least one internal resource (11, 12, 13 ') to said secure circuit (1). 18. Procédé selon la revendication 17, comprenant, lorsque ladite vérification est positive, une étape de génération, par ledit moyen de transcodage (15), d'une exception informatique.  18. The method of claim 17, comprising, when said verification is positive, a step of generating, by said transcoding means (15), a computer exception. 19. Procédé selon la revendication 17 ou 18, comprenant, lorsque ladite vérification est positive, une étape de modification dudit descripteur de translation reçu en spécifiant une adresse physique désignant ledit univers non sécurisé (2, 2'), avant transmission de cette adresse modifiée audit mécanisme matériel HTW (102).  19. The method of claim 17 or 18, comprising, when said verification is positive, a step of modifying said received translation descriptor by specifying a physical address designating said insecure universe (2, 2 '), before transmission of this modified address. to the hardware mechanism HTW (102). 20. Procédé selon l'une des revendications 17 à 19, dans lequel ladite pluralité de descripteurs de translation est regroupée en une pluralité de tables de translations (240), lesdites tables de translations (240) étant regroupées en types de tables, au moins un descripteur de translation associe une plage d'adresses virtuelles à une autre table de translations en indiquant une adresse physique de ladite autre table, les adresses physiques des tables de translations d'un même type de tables appartenant à une même plage d'adresses associée audit type, le procédé comprenant, en outre, une deuxième étape de vérification, par ledit moyen de transcodage (15), que ladite adresse physique du descripteur reçu en réponse à la requête en lecture appartient à la plage d'adresses (20) associée au type de ladite autre table de translation (240) spécifiée dans le descripteur reçu, et une étape ultérieure de transmission, en cas de deuxième vérification positive, dudit descripteur de translation reçu audit mécanisme matériel HTW (102).  The method according to one of claims 17 to 19, wherein said plurality of translation descriptors is grouped into a plurality of translation tables (240), said translation tables (240) being grouped into table types, at least a translation descriptor associates a range of virtual addresses with another translation table by indicating a physical address of said other table, the physical addresses of the translation tables of the same type of tables belonging to the same associated address range said type, the method further comprising a second step of verifying, by said transcoding means (15), that said physical address of the descriptor received in response to the read request belongs to the associated address range (20) to the type of said other translation table (240) specified in the received descriptor, and a subsequent transmission step, in case of a second positive check, of said translated translation descriptor received at said HTW hardware mechanism (102). 21. Procédé selon la revendication précédente, dans lequel au moins un descripteur de translation est un descripteur de translationterminal associant une plage d'adresses virtuelles à une plage d'adresses physiques de l'univers moins sécurisé (2, 2'), lesdites adresses de descripteur encodant, dans une partie de leurs bits, le type de table auquel elles se réfèrent, le procédé comprenant, en outre lorsqu'un descripteur de translation terminal est reçu par le mécanisme de transcodage, une étape d'altération desdits bits du descripteur terminal reçu dans un format spécifique.  21. Method according to the preceding claim, wherein at least one translation descriptor is a translationterminal descriptor associating a range of virtual addresses to a range of physical addresses of the less secure universe (2, 2 '), said addresses. descriptor encoding, in a portion of their bits, the type of table to which they refer, the method further comprising, when a terminal translation descriptor is received by the transcoding mechanism, a step of altering said descriptor bits; terminal received in a specific format. 22. Procédé selon l'une des revendications 17 à 21, comprenant, en outre, à l'émission de ladite au moins une requête, une étape de mise à jour d'un registre (110) dudit moyen de transcodage, ledit registre (110) comprenant le type associé à la table de translations (240) visée dans ladite requête, et au moins une étape de traitement dudit descripteur de translation reçu par ledit moyen de transcodage (15), ledit traitement étant fonction dudit type de table enregistré dans le registre (110).  22. Method according to one of claims 17 to 21, further comprising, at the transmission of said at least one request, a step of updating a register (110) of said transcoding means, said register ( 110) comprising the type associated with the translation table (240) referred to in said request, and at least one step of processing said translation descriptor received by said transcoding means (15), said processing being a function of said type of table stored in said the register (110).
FR0754149A 2007-03-30 2007-03-30 SYSTEM AND METHOD FOR PROTECTING A SECURE EXECUTION COMPUTER ENVIRONMENT. Expired - Fee Related FR2914448B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0754149A FR2914448B1 (en) 2007-03-30 2007-03-30 SYSTEM AND METHOD FOR PROTECTING A SECURE EXECUTION COMPUTER ENVIRONMENT.
PCT/FR2008/000436 WO2008142246A2 (en) 2007-03-30 2008-03-28 System and method for protecting a secured execution computer environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0754149A FR2914448B1 (en) 2007-03-30 2007-03-30 SYSTEM AND METHOD FOR PROTECTING A SECURE EXECUTION COMPUTER ENVIRONMENT.

Publications (2)

Publication Number Publication Date
FR2914448A1 true FR2914448A1 (en) 2008-10-03
FR2914448B1 FR2914448B1 (en) 2009-05-22

Family

ID=38475995

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0754149A Expired - Fee Related FR2914448B1 (en) 2007-03-30 2007-03-30 SYSTEM AND METHOD FOR PROTECTING A SECURE EXECUTION COMPUTER ENVIRONMENT.

Country Status (2)

Country Link
FR (1) FR2914448B1 (en)
WO (1) WO2008142246A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023857B (en) * 2010-12-02 2012-10-10 清华大学 ServiceOS-based multi-platform application program service management method and system
CN116069711B (en) * 2023-04-07 2023-07-14 浪潮电子信息产业股份有限公司 Direct memory access controller, heterogeneous device, memory access method and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998044419A1 (en) * 1997-03-31 1998-10-08 Intel Corporation A method and apparatus for implementing a page table walker with a sliding field
US6745306B1 (en) * 1999-07-29 2004-06-01 Microsoft Corporation Method and system for restricting the load of physical address translations of virtual addresses
US7124274B2 (en) * 2002-11-18 2006-10-17 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998044419A1 (en) * 1997-03-31 1998-10-08 Intel Corporation A method and apparatus for implementing a page table walker with a sliding field
US6745306B1 (en) * 1999-07-29 2004-06-01 Microsoft Corporation Method and system for restricting the load of physical address translations of virtual addresses
US7124274B2 (en) * 2002-11-18 2006-10-17 Arm Limited Virtual to physical memory address mapping within a system having a secure domain and a non-secure domain

Also Published As

Publication number Publication date
WO2008142246A2 (en) 2008-11-27
WO2008142246A3 (en) 2009-01-22
FR2914448B1 (en) 2009-05-22

Similar Documents

Publication Publication Date Title
US8689349B2 (en) Information flow tracking and protection
US9251201B2 (en) Compatibly extending offload token size
KR101378639B1 (en) Security protection for memory content of processor main memory
JP5611598B2 (en) Encryption key container on USB token
FR2910985A1 (en) Client physical address translating apparatus i.e. bare platform hardware, for partitioning information processing system e.g. personal computer, has logics translating two addresses to other addresses in partitions, respectively
WO2019072158A1 (en) Security control method and computer system
US20160350530A1 (en) Data blackhole processing method based on mobile storage device, and mobile storage device
FR2989801A1 (en) METHOD FOR SECURE MANAGEMENT OF MEMORY SPACE FOR MICROCONTROLLER
US10091213B2 (en) Systems and methods to provide secure storage
CN115378735B (en) Data processing method and device, storage medium and electronic equipment
US11288344B2 (en) Protecting an application via an intra-application firewall
JP2022100217A (en) Isolation of memory in reliable execution environment
WO2017111973A1 (en) Efficient and secure sharing of large data repositories
EP1607878B1 (en) Method for managing a virtual address used to program a DMA controller, computer program and system on a chip therefor.
US7979911B2 (en) First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US11886350B2 (en) System memory context determination for integrity monitoring and related techniques
Huber et al. A flexible framework for mobile device forensics based on cold boot attacks
FR2914448A1 (en) Secured execution computer environment protecting system for very high security digital apparatus i.e. payment terminal, has transcoder detecting whether descriptor returned by memory associates virtual address at physical address of ROM
US20230205732A1 (en) Data masking method, data masking apparatus, and storage device
EP2212824A2 (en) Verification of data read in memory
FR2609195A1 (en) METHOD FOR MANAGING ANEMEMOIRES ASSOCIATED WITH PROCESSORS IN A SINGLE-BUS MULTIPROCESSOR ARCHITECTURE AND DATA PROCESSING SYSTEM OPERATING IN SUCH A METHOD
EP1548601A1 (en) Memory access control in an electronic apparatus
Muramoto et al. Improving Hardware Security on Talos II Architecture Through Boot Image Encryption
US20220358208A1 (en) Systems and methods for enabling accelerator-based secure execution zones
FR2963128A1 (en) METHOD FOR DETECTING FAULT INJECTION ATTACK IN MEMORY DEVICE, AND CORRESPONDING DETECTION SYSTEM

Legal Events

Date Code Title Description
CD Change of name or company name
ST Notification of lapse

Effective date: 20091130