FR3028071A1 - ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS - Google Patents

ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS Download PDF

Info

Publication number
FR3028071A1
FR3028071A1 FR1460678A FR1460678A FR3028071A1 FR 3028071 A1 FR3028071 A1 FR 3028071A1 FR 1460678 A FR1460678 A FR 1460678A FR 1460678 A FR1460678 A FR 1460678A FR 3028071 A1 FR3028071 A1 FR 3028071A1
Authority
FR
France
Prior art keywords
resource
security monitor
execution
tee
ree
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
FR1460678A
Other languages
French (fr)
Other versions
FR3028071B1 (en
Inventor
Michele Sartori
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.)
Idemia France SAS
Original Assignee
Oberthur Technologies SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oberthur Technologies SA filed Critical Oberthur Technologies SA
Priority to FR1460678A priority Critical patent/FR3028071B1/en
Publication of FR3028071A1 publication Critical patent/FR3028071A1/en
Application granted granted Critical
Publication of FR3028071B1 publication Critical patent/FR3028071B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

L'invention concerne un appareil électronique comprenant un processeur et une mémoire vive, et conçu pour mettre en œuvre un moniteur de sécurité apte à faire basculer (E114) le fonctionnement de l'appareil électronique entre un premier environnement d'exécution (TEE) et un second environnement d'exécution (REE). L'appareil électronique est conçu pour faire exécuter par le processeur, dans le premier environnement d'exécution (TEE), une première application (E102) utilisant une ressource mémorisée dans une partie de la mémoire vive et, dans le second environnement d'exécution (REE), une seconde application (E118) requérant une ressource mémorisée dans ladite partie de la mémoire vive, Le moniteur de sécurité est conçu pour déterminer (E108, E110) si la ressource requise correspond à la ressource utilisée et pour charger (E112) la ressource requise dans ladite partie de la mémoire vive si la ressource requise ne correspond pas à la ressource utilisée. Un procédé mis en œuvre dans un tel appareil électronique est également proposé.An electronic apparatus comprising a processor and a random access memory, and adapted to implement a security monitor adapted to switch (E114) the operation of the electronic apparatus between a first execution environment (TEE) and a second execution environment (REE). The electronic apparatus is adapted to cause the processor, in the first execution environment (TEE), to execute a first application (E102) using a resource stored in a portion of the random access memory and, in the second execution environment (REE), a second application (E118) requiring a resource stored in said portion of the RAM, the security monitor is adapted to determine (E108, E110) whether the required resource corresponds to the resource used and to load (E112) the resource required in the said portion of the RAM if the requested resource does not correspond to the resource used. A method implemented in such an electronic device is also proposed.

Description

DOMAINE TECHNIQUE AUQUEL SE RAPPORTE L'INVENTION La présente invention concerne le basculement entre deux environnements d'exécution dans un appareil électronique. Elle concerne plus particulièrement un appareil électronique et procédé mis en oeuvre dans un tel appareil électronique. L'invention s'applique particulièrement avantageusement dans le cas où des bibliothèques ou des données sont utilisées par différentes applications exécutées dans l'appareil électronique. ARRIERE-PLAN TECHNOLOGIQUE Comme expliqué par exemple dans l'article "The Untapped Potential of Trusted Execution Envi ronments on Mobile Devices" de J.-E. Ekberg, K. Kostiainen et N. Asokan in IEEE Security & Privacy, volume PP édition 99, 16 avril 2014, il est connu de sécuriser le fonctionnement des appareils électroniques par l'utilisation d'un système d'exploitation de confiance (ou "Trusted OS" selon la dénomination anglo-saxonne), qui permet de fournir un environnement d'exécution de confiance (ou TEE pour "Trusted Execution Environment") dans lequel certaines applications seulement peuvent être installées et exécutées.TECHNICAL FIELD TO WHICH THE INVENTION RELATES The present invention relates to switching between two execution environments in an electronic device. It relates more particularly to an electronic device and method implemented in such an electronic device. The invention applies particularly advantageously in the case where libraries or data are used by different applications executed in the electronic device. BACKGROUND ART As explained for example in the article "The Untapped Potential of Trusted Execution Environments on Mobile Devices" of J.-E. Ekberg, K. Kostiainen and N. Asokan in IEEE Security & Privacy, volume PP edition 99, April 16, 2014, it is known to secure the operation of electronic devices by the use of a trusted operating system (or " Trusted OS, which provides a Trusted Execution Environment (TEE) in which only certain applications can be installed and executed.

Un tel environnement de confiance est en général proposé à côté d'un environnement polyvalent (ou REE pour "Rich Execution Environment") dans lequel les contraintes de sécurité sont moindres et un plus grand nombre d'applications peuvent donc être installées. L'environnement polyvalent repose sur l'exécution au sein de l'appareil électronique d'un système d'exploitation polyvalent (ou "Rich OS" selon la dénomination anglo-saxonne), distinct du système d'exploitation de confiance. Afin de garantir une bonne isolation entre les deux environnements, on prévoit en général que le basculement du fonctionnement de l'appareil électronique d'un environnement à l'autre soit géré par un moniteur de sécurité (ou "secure monitor" selon la dénomination anglo-saxonne). OBJET DE L'INVENTION Dans ce contexte, la présente invention propose un appareil électronique comprenant un processeur et une mémoire vive, et conçu pour mettre en oeuvre un moniteur de sécurité apte à faire basculer le fonctionnement de l'appareil électronique entre un premier environnement d'exécution et un second environnement d'exécution, dans lequel l'appareil électronique est conçu pour faire exécuter par le processeur, dans le premier environnement d'exécution, une première application utilisant une ressource (première ressource) mémorisée dans une partie de la mémoire vive et, dans le second environnement d'exécution, une seconde application requérant une ressource (seconde ressource) mémorisée dans ladite partie de la mémoire vive, caractérisé en ce que le moniteur de sécurité est conçu pour déterminer si la ressource requise (seconde ressource) correspond à la ressource utilisée (première ressource) et pour charger la ressource requise (seconde ressource) dans ladite partie de la mémoire vive si la ressource requise (seconde ressource) ne correspond pas à la ressource utilisée (première ressource). Le moniteur de sécurité vérifie ainsi que la (seconde) ressource, requise par la seconde application exécutée dans le second environnement (c'est-à-dire après changement de contexte), ne correspond pas à la (première) ressource présente en mémoire vive. Le chargement de la ressource requise (seconde ressource), qui peut nécessiter un temps non-négligeable, par exemple en provenance d'une mémoire non-volatile réinscriptible, est ainsi effectué seulement lorsque cela est nécessaire.Such a trusted environment is generally offered alongside a versatile environment (or REE for "Rich Execution Environment") in which the security constraints are lower and a greater number of applications can be installed. The versatile environment is based on the execution within the electronic device of a versatile operating system (or "Rich OS" according to the English name), distinct from the trusted operating system. In order to guarantee good isolation between the two environments, it is generally provided that the switching of the operation of the electronic device from one environment to another is managed by a security monitor (or "secure monitor" according to the English name). -saxonne). OBJECT OF THE INVENTION In this context, the present invention proposes an electronic device comprising a processor and a random access memory, and designed to implement a safety monitor able to switch the operation of the electronic device between a first environment of the device. and a second execution environment, wherein the electronic apparatus is adapted to cause the processor, in the first execution environment, to execute a first application using a resource (first resource) stored in a portion of the memory and in the second execution environment, a second application requiring a resource (second resource) stored in said portion of the random access memory, characterized in that the security monitor is adapted to determine if the required resource (second resource) corresponds to the resource used (first resource) and to load the required resource (second e resource) in said portion of the RAM if the required resource (second resource) does not match the resource used (first resource). The security monitor thus verifies that the (second) resource, required by the second application executed in the second environment (that is to say after change of context), does not correspond to the (first) resource present in RAM. . The loading of the required resource (second resource), which may require a non-negligible time, for example from a rewritable non-volatile memory, is thus performed only when necessary.

On remarque que, dans certaines applications, le chargement de la ressource requise (seconde ressource) peut dans certains cas être réalisé même lorsque la ressource requise (seconde ressource) correspond à la ressource utilisée (première ressource), par exemple s'il est en outre détecté que les données formant la ressource utilisée (première ressource) ont été corrompues, comme expliqué dans la description qui suit. Dans une telle application, on évite toutefois un chargement de la ressource requise (seconde ressource) lorsque la ressource requise (seconde ressource) correspond à la ressource utilisée (première ressource) et que les données formant la ressource utilisée (première ressource) n'ont pas été corrompues.Note that in some applications, the loading of the required resource (second resource) can in some cases be realized even when the required resource (second resource) corresponds to the resource used (first resource), for example if it is in furthermore detected that the data forming the resource used (first resource) has been corrupted, as explained in the description which follows. In such an application, however, a loading of the required resource (second resource) is avoided when the required resource (second resource) corresponds to the resource used (first resource) and the data forming the resource used (first resource) have not been used. not been corrupted.

D'autres caractéristiques avantageuses et non limitatives de l'appareil électronique conforme à l'invention sont les suivantes : - le moniteur de sécurité est conçu pour charger en mémoire vive une pile d'exécution du second environnement et pour déterminer si la ressource requise (seconde ressource) correspond à la ressource utilisée (première ressource) notamment (c'est-à-dire au moins) par lecture de la pile d'exécution chargée ; - le moniteur de sécurité est conçu pour lire au moins une information relative à la ressource utilisée (première ressource) dans une table et pour déterminer si la ressource requise (seconde ressource) correspond à la ressource utilisée (première ressource) sur la base notamment (c'est-à-dire au moins sur la base) de l'information lue ; - l'appareil électronique est conçu pour mettre en oeuvre des moyens de vérification de l'intégrité de la ressource utilisée (première ressource) lorsque le moniteur de sécurité détermine que la ressource utilisée (première ressource) correspond à la ressource requise (seconde ressource) ; - les moyens de vérification de l'intégrité comprennent notamment des moyens de détermination de données de vérification, mis en oeuvre par le moniteur de sécurité ou par le système d'exploitation de confiance ; - la ressource utilisée (première ressource) est une bibliothèque ; - la ressource requise (seconde ressource) est une bibliothèque ; - la ressource utilisée (première ressource) est un ensemble de données ; - la ressource requise (second ressource) est un ensemble de données.Other advantageous and non-limiting features of the electronic device according to the invention are the following: the security monitor is designed to load in RAM an execution stack of the second environment and to determine if the required resource ( second resource) corresponds to the resource used (first resource) including (i.e. at least) by reading the loaded execution stack; the security monitor is designed to read at least one information relating to the resource used (first resource) in a table and to determine if the required resource (second resource) corresponds to the resource used (first resource) on the basis notably ( that is, at least on the basis of the information read; the electronic device is designed to implement means for verifying the integrity of the resource used (first resource) when the security monitor determines that the resource used (first resource) corresponds to the required resource (second resource) ; the means for verifying the integrity comprise, in particular, means for determining verification data, implemented by the security monitor or by the trusted operating system; - the resource used (first resource) is a library; - the required resource (second resource) is a library; - the resource used (first resource) is a set of data; - the required resource (second resource) is a set of data.

L'invention propose également un procédé mis en oeuvre dans un appareil électronique comprenant un processeur et une mémoire vive, caractérisé en ce qu'il comprend les étapes suivantes : - mise en oeuvre, dans un premier environnement d'exécution, d'une première application utilisant une (première) ressource mémorisée dans une partie de la mémoire vive ; - réception, par un moniteur de sécurité, d'une demande de basculement du premier environnement d'exécution à un second environnement d'exécution ; - détermination, par le moniteur de sécurité, si une (seconde) ressource requise par une seconde application exécutable dans le second environnement d'exécution correspond à la ressource utilisée (première ressource) ; - si le moniteur de sécurité détermine que la ressource requise (seconde ressource) ne correspond pas à la ressource utilisée (première ressource), chargement de la ressource requise (seconde ressource) dans ladite partie de la mémoire vive ; - basculement, par le moniteur de sécurité, du premier environnement d'exécution au second environnement d'exécution ; - exécution de la seconde application. D'autres caractéristiques avantageuses et non limitatives de l'appareil électronique conforme à l'invention sont les suivantes : - le procédé comprend une étape de chargement en mémoire vive, par le moniteur de sécurité, d'une pile d'exécution du second environnement ; - l'étape de détermination inclut une sous-étape de lecture de la pile d'exécution chargée ; - le procédé comprend une étape de lecture, par le moniteur de sécurité, d'au moins une information relative à la ressource utilisée (première ressource) dans une table ; - l'étape de détermination utilise l'information lue ; - le procédé comprend une étape de vérification de l'intégrité de la ressource utilisée (première ressource) lorsque le moniteur de sécurité détermine que la ressource utilisée (première ressource) correspond à la ressource requise (seconde ressource). DESCRIPTION DETAILLEE D'UN EXEMPLE DE REALISATION La description qui va suivre en regard des dessins annexés, donnés à titre d'exemples non limitatifs, fera bien comprendre en quoi consiste l'invention et comment elle peut être réalisée. Sur les dessins annexés : - la figure 1 représente schématiquement l'utilisation de deux environnements d'exécution au sein d'un appareil électronique dans lequel est mise en oeuvre l'invention ; - la figure 2 représente des entités fonctionnelles mémorisées au sein de l'appareil électronique 10 et utilisées dans le cadre de la présente invention ; - la figure 3 représente un procédé de basculement de l'environnement d'exécution de confiance à l'environnement d'exécution polyvalent conforme aux enseignements de l'invention ; et - la figure 4 représente un procédé de basculement de l'environnement d'exécution polyvalent à l'environnement d'exécution de confiance conforme aux enseignements de l'invention. La figure 1 représente schématiquement l'utilisation de deux environnements d'exécution au sein d'un appareil électronique 10 dans lequel est mise en oeuvre l'invention. Cet appareil électronique 10, ici un terminal (par exemple de type téléphone intelligent ou "smartphone" selon la dénomination anglo-saxonne), 5 comprend une architecture à base de microprocesseur. Deux systèmes d'exploitation distincts sont utilisés au sein de l'appareil électronique 10: un système d'exploitation polyvalent 20 (ou "Rich OS" selon l'appellation anglo-saxonne) et un système d'exploitation de confiance 30 (ou "Trusted OS"), parfois dénommé système d'exploitation sécurisé ("Secure OS"). 10 Le système d'exploitation polyvalent 20 permet le téléchargement, l'installation et l'exécution d'applications avec une grande liberté pour l'utilisateur. La mise en oeuvre du système d'exploitation polyvalent 20 crée ainsi un environnement polyvalent ou REE (pour "Rich Execution Environment"). Au contraire, dans le cadre du fonctionnement de l'appareil électronique 15 10 sur la base du système d'exploitation de confiance 30, les possibilités de téléchargement et d'installation d'applications sont limitées (par exemple à des applications ayant reçu une certification particulière) de sorte que l'utilisation du système d'exploitation de confiance permet de créer au sein de l'appareil électronique 10 un environnement d'exécution de confiance ou TEE (pour 20 "Trusted Execution Environment"). Cet environnement d'exécution de confiance offre par exemple un niveau de sécurité conforme aux critères communs EAL (pour "Evaluation Assurance Lever), correspondant à la norme ISO 15408, avec un niveau compris entre 2 et 7, ou à la norme FIPS (pour "Federal Information Processing Standard') 140-2. 25 Dans l'exemple décrit ici, le système d'exploitation polyvalent 20 et le système d'exploitation de confiance 30 sont exécutés par un même processeur de l'appareil électronique, par exemple un processeur d'un système sur puce (ou SoC pour "System on Chip"). Outre le processeur, un tel système sur puce comprend d'autres éléments électroniques ayant diverses fonctionnalités, 30 notamment une ou plusieurs mémoires (par exemple une mémoire morte - ou ROM pour "Read Only Memory", une mémoire vive - ou RAM pour "Random Access Memory" - et une mémoire non-volatile réinscriptible, par exemple de type EEPROM pour "Electrically Erasable and Programmable Read Only Memory"); une partie d'au moins une de ces mémoires peut être réservée au système d'exploitation de confiance 30 (c'est-à-dire que cette partie de mémoire peut être lue et/ou écrite seulement par le système d'exploitation de confiance 30 ou, ici, par le moniteur de sécurité 40, et non par le système d'exploitation polyvalent 20). On remarque qu'à l'inverse, le système d'exploitation de confiance 30 (comme d'ailleurs le moniteur de sécurité 40) peut accéder en lecture et/ou en écriture les zones de mémoire utilisées par le système d'exploitation polyvalent 20. On pourrait en variante utiliser un appareil électronique comportant deux processeurs, le système d'exploitation polyvalent 20 étant exécuté sur l'un et le système d'exploitation de confiance 30 étant exécuté sur l'autre. L'appareil électronique 10 met également en oeuvre un moniteur de sécurité 40 (ou "Secure Monitor" selon l'appellation anglo-saxonne), qui s'exécute dans le cas qui vient d'être mentionné sur le processeur de l'appareil électronique 10. Le moniteur de sécurité 40 commande (comme expliqué plus bas) le basculement entre le fonctionnement de l'appareil électronique 10 sur la base du système d'exploitation polyvalent 20 et le fonctionnement de l'appareil électronique 10 sur la base du système d'exploitation de confiance 30 (et vice versa), de sorte que l'appareil électronique 10 fonctionne à chaque instant sur la base d'un seul des deux systèmes d'exploitation 20, 30 (c'est-à-dire dans un seul des deux environnements mentionnés ci-dessus). Selon un mode de réalisation envisageable, le système d'exploitation exécuté avant basculement (par exemple le système d'exploitation polyvalent 20) est mis en veille par le basculement et tout accès à des éléments externes au processeur (par exemple l'interface homme machine comprenant notamment un clavier et/ou un écran et/ou un autre module d'entrée-sortie) est alors inhibé pour le système d'exploitation en veille, de sorte que le système d'exploitation activé par le basculement (ici le système d'exploitation de confiance 30) contrôle totalement l'élément externe, ici l'interface homme machine. La figure 2 représente des entités fonctionnelles mémorisées au sein de l'appareil électronique 10 et utilisées dans le cadre de la présente invention. Une pile d'exécution (en anglais "execution stack") 50 est mémorisée en mémoire vive et comprend une liste ordonnée des prochaines applications APPLI1, APPLI2 dont l'exécution est prévue. Pour chaque application APPLI1, APPLI2, la pile d'exécution indique par exemple un identifiant de l'application et une adresse de mémorisation de l'application (qui peut pointer par exemple vers une zone mémoire située en mémoire vive ou en mémoire non-volatile réinscriptible). On prévoit ici que soient également indiquées dans la pile d'exécution les bibliothèques (en anglais "fibraries") ou les données auxquelles l'application concernée fait appel pour son exécution. En variante, ces indications pourraient être contenues dans une table séparée qui liste, pour chaque application mémorisée dans l'appareil électronique 10, les bibliothèques et les données auxquelles cette application fait appel.The invention also proposes a method implemented in an electronic apparatus comprising a processor and a random access memory, characterized in that it comprises the following steps: implementation, in a first execution environment, of a first application using a (first) resource stored in a portion of the RAM; receiving, by a security monitor, a request to switch from the first execution environment to a second execution environment; determining, by the security monitor, whether a (second) resource required by a second executable application in the second execution environment corresponds to the resource used (first resource); if the security monitor determines that the required resource (second resource) does not correspond to the resource used (first resource), loading the required resource (second resource) in said part of the random access memory; - Failover, by the security monitor, the first runtime environment to the second runtime environment; - execution of the second application. Other advantageous and non-limiting characteristics of the electronic device according to the invention are the following: the method comprises a step of loading in RAM, by the safety monitor, a run stack of the second environment ; the determination step includes a substep of reading the loaded execution stack; the method comprises a step of reading, by the security monitor, at least one information relating to the resource used (first resource) in a table; the determination step uses the information read; the method comprises a step of verifying the integrity of the resource used (first resource) when the security monitor determines that the resource used (first resource) corresponds to the required resource (second resource). DETAILED DESCRIPTION OF AN EXEMPLARY EMBODIMENT The following description with reference to the accompanying drawings, given as non-limiting examples, will make it clear what the invention consists of and how it can be achieved. In the accompanying drawings: FIG. 1 schematically represents the use of two execution environments within an electronic device in which the invention is implemented; FIG. 2 represents functional entities stored in the electronic device 10 and used in the context of the present invention; FIG. 3 represents a method of switching from the trusted execution environment to the polyvalent execution environment in accordance with the teachings of the invention; and FIG. 4 represents a method of switching from the polyvalent execution environment to the trusted execution environment in accordance with the teachings of the invention. FIG. 1 schematically represents the use of two execution environments within an electronic device 10 in which the invention is implemented. This electronic device 10, here a terminal (for example of the smart phone type or "smartphone" according to the English name), 5 comprises a microprocessor-based architecture. Two different operating systems are used within the electronic apparatus 10: a versatile operating system 20 (or "Rich OS") and a trusted operating system (or " Trusted OS "), sometimes referred to as a secure operating system (" Secure OS "). The versatile operating system 20 allows the download, installation and execution of applications with great freedom for the user. The implementation of the versatile operating system 20 thus creates a versatile environment or REE (for "Rich Execution Environment"). On the contrary, in the context of the operation of the electronic apparatus 15 based on the trusted operating system 30, the possibilities of downloading and installing applications are limited (for example to applications having received a certification particular) so that the use of the trusted operating system makes it possible to create within the electronic apparatus 10 a trusted execution environment or TEE (for 20 "Trusted Execution Environment"). This trusted execution environment offers, for example, a level of security in accordance with the common criteria EAL (for "Evaluation Assurance Lever"), corresponding to the ISO 15408 standard, with a level between 2 and 7, or to the FIPS standard (for "Federal Information Processing Standard") 140-2. In the example described here, the versatile operating system 20 and the trusted operating system 30 are executed by the same processor of the electronic apparatus, for example a system-on-a-chip (or SoC) processor. "System on Chip"). In addition to the processor, such a system-on-a-chip comprises other electronic elements having various functionalities, including one or more memories (for example a read-only memory or ROM for "Read Only Memory", a RAM - or RAM for "Random"). Access Memory "- and a rewritable non-volatile memory, for example of the EEPROM type for" Electrically Erasable and Programmable Read Only Memory "); a portion of at least one of these memories may be reserved for the trusted operating system (i.e., that portion of memory may be read and / or written only by the trusted operating system 30 or, here, by the security monitor 40, and not by the versatile operating system 20). Note that conversely, the trusted operating system 30 (as also the security monitor 40) can access read and / or write memory areas used by the versatile operating system 20 Alternatively, an electronic apparatus with two processors could be used with the versatile operating system 20 running on one and the trusted operating system 30 running on the other. The electronic device 10 also implements a security monitor 40 (or "Secure Monitor" in English), which executes in the case just mentioned on the processor of the electronic device 10. The safety monitor 40 controls (as explained below) the switchover between the operation of the electronic apparatus 10 based on the multipurpose operating system 20 and the operation of the electronic apparatus 10 based on the computer system. operation of trust 30 (and vice versa), so that the electronic apparatus 10 operates at all times on the basis of only one of the two operating systems 20, 30 (i.e. in a single of the two environments mentioned above). According to one conceivable embodiment, the operating system executed before switchingover (for example the polyvalent operating system 20) is put on standby by the switchover and any access to elements external to the processor (for example the human machine interface including a keyboard and / or a screen and / or other input-output module) is then inhibited for the operating system in standby, so that the operating system activated by the failover (here the system of 'exploitation of confidence 30) totally controls the external element, here the man-machine interface. FIG. 2 represents functional entities stored in the electronic device 10 and used in the context of the present invention. An execution stack 50 is stored in RAM and comprises an ordered list of the next applications APPLI1, APPLI2 whose execution is planned. For each application APPLI1, APPLI2, the execution stack indicates for example an identifier of the application and an address of storage of the application (which can point for example to a memory zone located in random access memory or in non-volatile memory rewritable). It is provided here that are also indicated in the execution stack libraries (in English "fibraries") or data to which the application concerned uses for its execution. As a variant, these indications could be contained in a separate table which lists, for each application stored in the electronic apparatus 10, the libraries and the data to which this application makes use.

Lors d'un changement d'environnement d'exécution, la pile d'exécution courante est sauvegardée en mémoire non-volatile réinscriptible afin que la pile d'exécution puisse être restaurée en l'état lors d'un éventuel retour ultérieur à l'environnement d'exécution actif avant changement. Une zone 60 de la mémoire non-volatile réinscriptible mémorise des bibliothèques identifiées chacune par leur type Ti et par leur identifiant lj. Le type Ti désigne ici la classe (par exemple : chiffrement) et la sous-classe (par exemple : RSA) de la bibliothèque concernée. L'identifiant lj est quant à lui indicatif d'un niveau de performance (compris ici entre 0 et 99), lié par exemple au temps d'exécution de la fonction concernée, et d'un niveau de sécurité (également compris entre 0 et 99 dans l'exemple décrit ici). L'appareil électronique 10 mémorise, par exemple en mémoire vive, une table 70 qui répertorie les bibliothèques LIB1, LIB2 mémorisées dans une zone dédiée 80 de la mémoire vive (après recopie à partir de la zone 60 de la mémoire non-volatile réinscriptible lorsqu'une application a utilisé cette bibliothèque). Pour chaque bibliothèque LIB1, LIB2 mémorisée dans la zone dédiée 80 de la mémoire vive, la table comprend l'adresse de mémorisation en mémoire vive de la bibliothèque concernée LIB1, LIB2. Ainsi, dans l'exemple représenté en figure 2, sont mémorisées dans la zone dédiée 80 de la mémoire vive une bibliothèque LIB1 de type Ti et d'identifiant 112 et une bibliothèque LIB2 de type T2 et d'identifiant 121. On peut prévoir de même que la mémoire non-volatile réinscriptible mémorise des données utilisées par les applications exécutées au sein de l'appareil électronique 10. Ces données sont organisées en ensembles de données, chaque ensemble pouvant être identifié comme indiqué ci-dessus à propos des bibliothèques. Un ensemble de données comprend par exemple des données d'identification de l'utilisateur, des données de connexion à un serveur distant, etc. Comme indiqué pour les bibliothèques, la table 70 (ou, en variante, une autre table du même type) répertorie les ensembles de données qui ont été chargées en mémoire vive. La figure 3 représente un procédé de basculement de l'environnement d'exécution de confiance à l'environnement d'exécution polyvalent conforme aux enseignements de l'invention. Ce procédé débute donc dans le cadre du fonctionnement de l'appareil électronique 10 dans l'environnement d'exécution de confiance TEE, c'est-à-dire que les fonctionnalités de base de l'appareil électronique 10 sont mises en oeuvre par l'exécution du système d'exploitation de confiance 30. Une bibliothèque (par exemple la bibliothèque LIB2) est chargée à l'étape E100 dans la zone dédiée 80 de la mémoire vive à partir de la zone 60 de la mémoire non-volatile. La bibliothèque est alors utilisée à l'étape E102, par exemple du fait d'un appel d'une fonction de cette bibliothèque par une application exécutée dans le cadre de l'environnement d'exécution de confiance. Le procédé se poursuit normalement dans le cadre de l'environnement d'exécution de confiance jusqu'à l'étape E104 où une interruption provoque un appel au moniteur de sécurité 40 en vue du changement d'environnement d'exécution. Une telle interruption est par exemple générée lorsque l'utilisateur bascule sur une application ne demandant pas un contexte sécurisé pour son exécution (telle qu'une application de jeu).During a change of execution environment, the current execution stack is saved in rewritable non-volatile memory so that the execution stack can be restored to the state for any subsequent return to the Active runtime environment before change. An area 60 of the non-volatile rewritable memory stores libraries each identified by their type Ti and by their identifier lj. The type Ti here denotes the class (for example: encryption) and the subclass (for example: RSA) of the library concerned. The identifier lj is indicative of a performance level (here between 0 and 99), related for example to the execution time of the function concerned, and a security level (also between 0 and 99 in the example described here). The electronic device 10 stores, for example in random access memory, a table 70 which lists the libraries LIB1, LIB2 stored in a dedicated area 80 of the random access memory (after copying from the area 60 of the non-volatile memory rewritable when an application used this library). For each library LIB1, LIB2 stored in the dedicated area 80 of the RAM, the table includes the RAM storage address of the library concerned LIB1, LIB2. Thus, in the example shown in FIG. 2, a library LIB1 of type Ti and identifier 112 and a library LIB2 of type T2 and of identifier 121 are stored in the dedicated zone 80 of the random access memory. same as the rewritable non-volatile memory stores data used by the applications executed within the electronic device 10. These data are organized into data sets, each set can be identified as indicated above about the libraries. A data set includes, for example, user identification data, connection data to a remote server, and so on. As indicated for the libraries, the table 70 (or, alternatively, another table of the same type) lists the data sets that have been loaded into RAM. FIG. 3 represents a method of switching from the trusted execution environment to the polyvalent execution environment in accordance with the teachings of the invention. This method therefore starts as part of the operation of the electronic apparatus 10 in the trusted execution environment TEE, that is to say that the basic functionalities of the electronic apparatus 10 are implemented by the Execution of the Trusted Operating System 30. A library (e.g. library LIB2) is loaded in step E100 into the dedicated area 80 of the RAM from the area 60 of the non-volatile memory. The library is then used in step E102, for example due to a call of a function of this library by an application executed as part of the trusted execution environment. The method continues normally as part of the trusted execution environment until step E104 where an interrupt causes a call to the security monitor 40 for the purpose of changing the execution environment. Such an interruption is for example generated when the user switches to an application that does not require a secure context for its execution (such as a game application).

Le moniteur de sécurité 40 prend alors la main et commande à l'étape E106 le chargement de la pile d'exécution 50 avec la liste des applications exécutées dans le cadre de l'environnement d'exécution polyvalent REE. Comme indiqué ci-dessus, cette liste a été mémorisée en mémoire non-volatile réinscriptible lors de la précédente sortie de l'environnement d'exécution polyvalent. Le moniteur de sécurité 40 consulte alors la pile d'exécution 50 à l'étape E108 afin de déterminer les bibliothèques utilisées par la prochaine application à exécuter. Dans la variante mentionnée ci-dessus, le moniteur de sécurité 40 consulte la table séparée qui indique, notamment pour la prochaine application à exécuter (indiquée par la pile d'exécution), les bibliothèques utilisées par cette application. Le moniteur de sécurité 40 peut ainsi déterminer à l'étape E110 si la (ou les) bibliothèque(s) utilisée(s) par la prochaine application à exécuter est (sont) 5 déjà mémorisée(s) dans la zone dédiée 80 de la mémoire vive. En pratique, le moniteur de sécurité 40 lit par exemple (dans la pile d'exécution 50 ou dans la table séparée susmentionnée) le type Ti et l'identifiant lj d'une bibliothèque requise par la prochaine application à exécuter, consulte la zone 60 de la mémoire non-volatile réinscriptible afin de déterminer quelle 10 bibliothèque du type Ti indiqué (mémorisée dans cette zone 60) répond le mieux aux critères définis par l'identifiant lj indiqué (ici comme indiqué ci-dessus un niveau de performance et un niveau de sécurité) et détermine si cette bibliothèque est présente dans la zone dédiée 80 de la mémoire vive. Dans l'affirmative, le procédé se poursuit à l'étape E114 décrite plus bas. 15 Dans la négative, le moniteur de sécurité 40 commande à l'étape E112 le chargement dans la mémoire vive, à partir de la zone 60 de mémorisation des bibliothèques dans la mémoire non-volatile réinscriptible, de la bibliothèque utilisée par la prochaine application à exécuter (c'est-à-dire, dans l'exemple mentionné ci-dessus, de la bibliothèque qui répond le mieux aux critères définis 20 par l'identifiant lj). On procède ainsi éventuellement au chargement de plusieurs bibliothèques utilisées par l'application à exécuter qui ne sont pas présentes dans la zone dédiée 80 de la mémoire vive. On remarque que le moniteur de sécurité 40 peut éventuellement procéder, avant chargement de la (ou des) bibliothèque(s) utilisée(s) par 25 l'application à exécuter, à l'effacement des bibliothèques présentes dans la zone dédiée 80 de la mémoire vive mais non utilisées par l'application à exécuter. En variante, cet effacement n'est réalisé que s'il est nécessaire pour libérer de l'espace mémoire en vue du chargement de la (ou des) bibliothèque(s) utilisée(s) par l'application à exécuter, par exemple selon une méthode de gestion de pages 30 mémoire de type FIFO (de l'anglais "First in, first out), ou LRU (de l'anglais "Least Recently Used', ou LFU (de l'anglais "Least Frequently Used'), ou encore de type priorité aléatoire (ou "Random Priority"). Un processus similaire peut également être mis en oeuvre pour les données : le moniteur de sécurité 40 détermine quels ensembles de données sont utilisés par la prochaine application à exécuter (indiquée dans la pile d'exécution 50), par exemple sur la base des informations contenues dans la pile d'exécution 50 ou dans la table séparée mentionné plus haut, puis détermine si ces ensembles de données sont déjà présents en mémoire vive, et ne charge en mémoire vive à partir de la mémoire non-volatile réinscriptible que les ensembles de données qui n'y sont pas déjà présents. Le moniteur de sécurité 40 commande alors le changement de contexte (changement d'environnement d'exécution) et passe la main à l'environnement d'exécution polyvalent REE à l'étape E114: les fonctionnalités de base du système seront mises en oeuvre par l'exécution du système d'exploitation polyvalent 20 et la première application rencontrée APPUI rencontrée dans la pile d'exécution 50 est exécutée dans cet environnement à l'étape E116. L'exécution de l'application APPUI provoque un appel à une bibliothèque mémorisée dans la zone dédiée 80 (par exemple la bibliothèque LIB1) à l'étape E118. Pour ce faire, l'application APPUI consulte la table 70 et y lit l'adresse ADR de mémorisation en mémoire vive de la bibliothèque concernée. La figure 4 représente un procédé de basculement de l'environnement d'exécution polyvalent à l'environnement d'exécution de confiance conforme aux enseignements de l'invention.The safety monitor 40 then takes control and controls in step E106 the loading of the execution stack 50 with the list of applications executed as part of the versatile REE runtime environment. As noted above, this list has been stored in rewritable non-volatile memory at the previous output of the multi-purpose runtime environment. The security monitor 40 then consults the execution stack 50 in step E108 to determine the libraries used by the next application to be executed. In the variant mentioned above, the security monitor 40 consults the separate table which indicates, in particular for the next application to be executed (indicated by the execution stack), the libraries used by this application. The safety monitor 40 can thus determine in step E110 whether the library (or libraries) used by the next application to be executed is (are) already stored in the dedicated zone 80 of the RAM. In practice, the security monitor 40 reads for example (in the execution stack 50 or in the aforementioned separate table) the type Ti and the identifier lj of a library required by the next application to be executed, consult the zone 60 re-writable non-volatile memory to determine which library of the indicated type Ti (stored in this area 60) best meets the criteria defined by the indicated identifier ij (here as indicated above a level of performance and a level). security) and determines if this library is present in the dedicated area 80 of the RAM. If so, the method continues in step E114 described below. If not, the security monitor 40 controls in step E112 the loading in the random access memory, from the zone 60 for storing the libraries in the non-volatile rewritable memory, of the library used by the next application to perform (i.e., in the example mentioned above, the library that best meets the criteria defined by the identifier lj). This is possibly the process of loading several libraries used by the application to be executed that are not present in the dedicated area 80 of the RAM. It should be noted that the security monitor 40 may possibly proceed, before loading the library (s) used by the application to be executed, to erase the libraries present in the dedicated zone 80 of the RAM but not used by the application to execute. As a variant, this erasure is realized only if it is necessary to release memory space for the purpose of loading the library (or libraries) used by the application to be executed, for example according to FIFO (first in, first out) memory management method, or LRU (Least Recently Used) (LFU). or a random priority (or "Random Priority") method A similar process can also be implemented for the data: the security monitor 40 determines which data sets are used by the next application to be executed (indicated in FIG. execution stack 50), for example on the basis of the information contained in the execution stack 50 or in the separate table mentioned above, then determines whether these sets of data are already present in RAM, and do not load in memory live from the non-volatile memory writable only data sets that are not already present. The security monitor 40 then controls the change of context (change of execution environment) and passes the hand to the versatile execution environment REE in step E114: the basic functionalities of the system will be implemented by execution of the versatile operating system 20 and the first encountered APP encountered in the execution stack 50 is executed in this environment in step E116. The execution of the APPUI application causes a call to a library stored in the dedicated zone 80 (for example the LIB1 library) in step E118. To do this, the APPUI application consults the table 70 and reads there the address ADR of storage in RAM of the library concerned. FIG. 4 represents a method of switching from the polyvalent execution environment to the trusted execution environment in accordance with the teachings of the invention.

Ce procédé débute dans le cadre du fonctionnement de l'appareil électronique 10 dans l'environnement d'exécution polyvalent REE, c'est-à-dire que les fonctionnalités de base de l'appareil électronique 10 sont mises en oeuvre par l'exécution du système d'exploitation polyvalent 20. Une bibliothèque (par exemple la bibliothèque LIB2) est chargée à l'étape E200 dans la zone dédiée 80 de la mémoire vive à partir de la zone 60 de mémorisation des bibliothèques dans la mémoire non-volatile. Dès que le chargement est effectué, le système d'exploitation polyvalent 20 détermine à l'étape E202 des données de vérification CRC associées à la bibliothèque chargée LIB2. Dans l'exemple décrit ici, les données de vérification CRC sont obtenues par application d'un algorithme de contrôle de redondance cyclique (en anglais "Cyclic Redundancy Check') aux plages mémoire où est mémorisée la bibliothèque chargée LIB2. On utilise par exemple un des algorithmes suivants : SHA-2, SHA-3 (SHA provenant de l'anglais "Secure Nash Algorithm"), ou MD5 (de l'anglais "Message-Digest" 5). En variante, on pourrait utiliser une somme de contrôle (en anglais "checksum") ou un code d'authentification (ou MAC de l'anglais "Message Authentication Code"). Les données de vérification obtenues sont communiquées au moniteur de sécurité 40, qui mémorise ces données de vérification à l'étape E204, par 5 exemple au sein de la table 70 et/ou dans une zone accessible en écriture par le moniteur de sécurité uniquement. En variante, les données de vérification pourraient être communiquées au système d'exploitation de confiance 30 et mémorisées dans une zone dédiée au système d'exploitation de confiance 30. On remarque que, selon une variante envisageable, les données de 10 vérification relatives à une bibliothèque donnée pourraient être mémorisées au préalable dans une mémoire accessible par le moniteur de sécurité 40 ou par le système d'exploitation de confiance 30 (sans être calculées par conséquent par le système d'exploitation polyvalent 20 comme indiqué ci-dessus à l'étape E202). Cette variante est envisageable en particulier lorsque la bibliothèque est une 15 bibliothèque de base ou fondamentale (mettant en oeuvre par exemple des algorithmes cryptographiques, tels que RSA ou DES), d'utilisation commune, dont les données de vérification peuvent être mémorisées à l'avance. Une fois chargée comme indiqué plus haut, la bibliothèque peut être utilisée à l'étape E206, par exemple du fait d'un appel d'une fonction de cette 20 bibliothèque par une application exécutée dans le cadre de l'environnement d'exécution polyvalent REE. Le procédé se poursuit normalement dans le cadre de l'environnement d'exécution polyvalent jusqu'à l'étape E208 où une interruption provoque un appel au moniteur de sécurité 40 en vue du changement d'environnement d'exécution 25 (ou changement de contexte) ; une telle interruption est générée par exemple par une application qui nécessite la mise en oeuvre d'un service sécurisé, par le système d'exploitation lui-même qui nécessite d'exécuter des instructions en mode sécurisé, par un ordonnanceur du système d'exploitation qui donne périodiquement le contrôle au système d'exploitation de confiance 30, par un 30 événement extérieur (par exemple déclenché par un utilisateur) ou par une exception (générée par exemple par une détection d'erreur de fonctionnement). Le moniteur de sécurité 40 prend alors la main et commande à l'étape E210 le chargement de la pile d'exécution 50 avec la liste des applications exécutées dans le cadre de l'environnement d'exécution de confiance TEE.This method starts as part of the operation of the electronic apparatus 10 in the versatile REE execution environment, i.e. the basic functionality of the electronic apparatus 10 is implemented by the execution of the versatile operating system 20. A library (for example the library LIB2) is loaded in step E200 in the dedicated area 80 of the random access memory from the zone 60 for storing the libraries in the non-volatile memory. As soon as the loading is carried out, the polyvalent operating system 20 determines in step E202 CRC verification data associated with the loaded library LIB2. In the example described here, the CRC verification data are obtained by applying a cyclic redundancy check algorithm to the memory areas where the LIB2 loaded library is stored. the following algorithms: SHA-2, SHA-3 (SHA from the "Secure Nash Algorithm"), or MD5 (from the English "Message-Digest" 5) Alternatively, one could use a checksum (in English "checksum") or an authentication code (or MAC of the English "Message Authentication Code"). The verification data obtained are communicated to the security monitor 40, which stores these verification data in step E204, for example in table 70 and / or in a write-accessible area by the safety monitor only Alternatively, the verification data could be communicated to the trusted operating system 30 and stored in an area It will be noted that, according to one conceivable variant, the verification data relating to a given library could be stored beforehand in a memory accessible by the security monitor 40 or by the system of the security system. trusted operation 30 (therefore not computed by the versatile operating system as described above in step E202). This variant can be envisaged, in particular when the library is a basic or basic library (using, for example, cryptographic algorithms, such as RSA or DES), of common use, whose verification data can be stored in memory. advanced. Once loaded as indicated above, the library can be used in step E206, for example because of a call of a function of this library by an application executed as part of the versatile execution environment REE. The method continues normally as part of the multi-purpose execution environment until step E208 where an interrupt causes a call to the security monitor 40 for the purpose of changing the execution environment (or changing context ); such an interruption is generated for example by an application which requires the implementation of a secure service, by the operating system itself which requires executing instructions in secure mode, by a scheduler of the operating system which periodically gives control to the trusted operating system 30, by an external event (for example triggered by a user) or by an exception (generated for example by an operating error detection). The security monitor 40 then takes control and controls in step E210 the loading of the execution stack 50 with the list of applications executed as part of the trusted execution environment TEE.

Comme déjà indiqué, cette liste a été mémorisée en mémoire non-volatile réinscriptible lors de la précédente sortie de l'environnement d'exécution de confiance. Le moniteur de sécurité 40 consulte alors la pile d'exécution 50 à l'étape E212 afin de déterminer les bibliothèques utilisées par la prochaine application à exécuter. Dans la variante mentionnée ci-dessus, le moniteur de sécurité 40 consulte la table séparée qui indique, notamment pour la prochaine application à exécuter (indiquée par la pile d'exécution), les bibliothèques utilisées par cette application.As already indicated, this list has been stored in non-volatile rewritable memory during the previous output of the trusted execution environment. The security monitor 40 then consults the execution stack 50 in step E212 to determine the libraries used by the next application to be executed. In the variant mentioned above, the security monitor 40 consults the separate table which indicates, in particular for the next application to be executed (indicated by the execution stack), the libraries used by this application.

Le moniteur de sécurité 40 peut ainsi déterminer à l'étape E214 si la (ou les) bibliothèque(s) utilisée(s) par la prochaine application à exécuter est (sont) déjà mémorisée(s) dans la zone dédiée 80 de la mémoire vive. Cette vérification peut être réalisée en pratique de la même manière que ce qui a été indiqué pour l'étape E110 décrite ci-dessus en référence à la figure 3.The security monitor 40 can thus determine in step E214 whether the library (or libraries) used by the next application to be executed is (are) already stored in the dedicated area 80 of the memory vivid. This verification can be carried out in practice in the same way as that indicated for step E110 described above with reference to FIG.

Dans l'affirmative (et pour chaque bibliothèque utilisée par la prochaine application à exécuter et déjà mémorisée dans la zone dédiée 80 de la mémoire vive), le moniteur de sécurité 40 vérifie à l'étape E218 l'intégrité (c'est-à-dire l'absence d'altération) de la bibliothèque, ici en déterminant des données de vérification associées à la bibliothèque concernée (dans son état actuel), au moyen de l'algorithme utilisé à l'étape E202, et en comparant les données de vérification ainsi obtenues aux données de vérification mémorisées à l'étape E204. Dans la variante indiquée ci-dessus où les données de vérification sont mémorisées à l'étape E204 par le système d'exploitation de confiance 30, cette étape de vérification peut être réalisée par le système d'exploitation de confiance 30. Si la vérification se solde par un résultat positif (égalité entre les données de vérification obtenues à l'étape E218 et les données de vérification mémorisées à l'étape E204), le procédé se poursuit normalement à l'étape E222 décrite plus bas.If so (and for each library used by the next application to be executed and already stored in the dedicated area 80 of the RAM), the security monitor 40 verifies in step E218 the integrity (ie the absence of alteration) of the library, here by determining verification data associated with the library concerned (in its current state), using the algorithm used in step E202, and comparing the data thus obtained verification data stored in step E204. In the variant indicated above where the verification data are stored in step E204 by the trusted operating system 30, this verification step can be performed by the trusted operating system 30. If the verification is balance by a positive result (equality between the verification data obtained in step E218 and the verification data stored in step E204), the method continues normally in step E222 described below.

Si la vérification se solde par un résultat négatif (différence entre les données de vérification obtenues à l'étape E218 et les données de vérification mémorisées à l'étape E204), on lance à l'étape E220 un mécanisme de traitement d'erreur. Selon les applications, un tel mécanisme de traitement d'erreur pourra être par exemple un blocage de l'entité électronique 10, l'arrêt du basculement vers l'environnement d'exécution de confiance TEE (avec retour à l'environnement d'exécution polyvalent sans exécution d'une application sécurisée) ou un saut (représenté en pointillés en figure 4) à l'étape E216 décrite ci-dessous de manière à forcer un nouveau chargement de la bibliothèque concernée, avec effacement éventuel de l'ensemble des ressources (bibliothèques et données) mémorisées en mémoire vive afin d'éviter tout problème de sécurité. Dans la négative à l'étape E214 (c'est-à-dire si la bibliothèque n'est pas présente en mémoire vive), le moniteur de sécurité 40 commande à l'étape E216 le chargement dans la mémoire vive, à partir de la zone 60 de mémorisation des bibliothèques dans la mémoire non-volatile réinscriptible, de la bibliothèque utilisée par la prochaine application à exécuter. En variante, ce chargement pourrait également être effectué par le système d'exploitation de confiance 30. Les étapes E214 à E218 sont répétées pour chacune des bibliothèques utilisées par la prochaine application à exécuter (indiquée par la pile d'exécution 15 50). On propose ici que le moniteur de sécurité 40 procède, avant chargement de la (ou des) bibliothèque(s) utilisée(s) par l'application à exécuter, à l'effacement des bibliothèques présentes dans la zone dédiée 80 de la mémoire vive mais non utilisées par l'application à exécuter, ou pour lesquelles la 20 vérification d'intégrité de l'étape E218 s'est soldée de manière négative. Ainsi, la zone dédiée 80 de la mémoire vive ne contient alors que des bibliothèques pour lesquelles les données de vérification ont été vérifiées (par le moniteur de sécurité 40 ou, en variante, par le système d'exploitation de confiance 30) à l'étape E218 ou des bibliothèques chargées par le moniteur de sécurité 40 (ou, en variante, le 25 système d'exploitation de confiance 30) à l'étape E216. Dans l'exemple qui vient d'être décrit, la vérification de l'intégrité de la bibliothèque est confiée au moniteur de sécurité 40. On peut prévoir en variante qu'une bibliothèque inclut une fonction de vérification de sa propre intégrité, et retourne un code d'authentification au moniteur de sécurité 40 lorsque l'intégrité 30 est vérifiée. On remarque par ailleurs qu'un processus similaire peut également être mis en oeuvre pour les données : le moniteur de sécurité 40 détermine quels ensembles de données sont utilisés par la prochaine application à exécuter (indiquée dans la pile d'exécution 50), puis détermine si ces ensembles de données sont déjà présents en mémoire vive et si leur intégrité est respectée, et ne charge un ensemble de données en mémoire vive à partir de la mémoire non-volatile réinscriptible que si cet ensemble n'y est pas déjà présent ou si les données de cet ensemble ont été corrompues (intégrité non respectée).If the verification results in a negative result (difference between the verification data obtained in step E218 and the verification data stored in step E204), step E220 initiates an error processing mechanism. Depending on the application, such an error-handling mechanism could for example be a blocking of the electronic entity 10, stopping the switchover to the trusted execution environment TEE (with return to the execution environment versatile without running a secure application) or a jump (shown in dashed lines in Figure 4) in step E216 described below so as to force a new load of the library concerned, with eventual erasure of all resources (libraries and data) stored in RAM to avoid any security problem. If not in step E214 (that is, if the library is not present in RAM), the security monitor 40 controls at step E216 the loading in the random access memory, starting from the zone 60 for storing the libraries in the rewritable non-volatile memory of the library used by the next application to be executed. Alternatively, this loading could also be performed by the trusted operating system 30. The steps E214 to E218 are repeated for each of the libraries used by the next application to be executed (indicated by the execution stack 50). It is proposed here that the security monitor 40 proceeds, before loading the (or) library (s) used by the application to be executed, the erasure libraries present in the dedicated area 80 of the RAM but not used by the application to be performed, or for which the integrity check of step E218 ended negatively. Thus, the dedicated zone 80 of the random access memory only contains libraries for which the verification data have been verified (by the security monitor 40 or, alternatively, by the trusted operating system 30) at the same time. step E218 or libraries loaded by the security monitor 40 (or, alternatively, the trusted operating system 30) in step E216. In the example which has just been described, the verification of the integrity of the library is entrusted to the security monitor 40. It may be provided in a variant that a library includes a function of checking its own integrity, and returns a authentication code to the security monitor 40 when integrity 30 is verified. Note also that a similar process can also be implemented for the data: the security monitor 40 determines which sets of data are used by the next application to be executed (indicated in the execution stack 50) and then determines if these data sets are already present in RAM and if their integrity is respected, and only load a set of RAM data from the non-volatile rewritable memory if this set is not already present there or if the data in this set has been corrupted (integrity not respected).

Le moniteur de sécurité 40 commande ensuite à l'étape E222 le changement de contexte (changement d'environnement d'exécution) et passe la main à l'environnement d'exécution de confiance TEE : les fonctionnalités de base du système seront mises en oeuvre par l'exécution du système d'exploitation de confiance 30 et la première application APPUI rencontrée dans la pile d'exécution 50 est exécutée dans cet environnement à l'étape E224. L'exécution de l'application APPUI provoque un appel à une bibliothèque mémorisée dans la zone dédiée 80 (par exemple la bibliothèque LIB1) à l'étape E226. Dans l'exemple qui vient d'être décrit, les étapes de vérification de l'intégrité E218 et E220 sont mises en oeuvre par le moniteur de sécurité 40. On pourrait toutefois prévoir en variante que ces étapes soient mises en oeuvre par le système d'exploitation de confiance 30, après basculement dans l'environnement d'exécution de confiance TEE (la vérification de l'intégrité pouvant alors par exemple être réalisée pour toutes les bibliothèques mémorisées dans la zone dédiée 80, c'est-à-dire pour les bibliothèques déjà présentes dans la zone dédiée 80 avant appel du moniteur de sécurité 40 à l'étape E208 comme pour les bibliothèques chargées dans la zone dédiée 80 par le moniteur de sécurité à l'étape E216).The security monitor 40 then controls the change of context (change of execution environment) in step E222 and hands over to the TEE trusted execution environment: the basic functionalities of the system will be implemented by the execution of the trusted operating system 30 and the first APPUI application encountered in the execution stack 50 is executed in this environment in step E224. The execution of the APPUI application causes a call to a library stored in the dedicated area 80 (for example the library LIB1) in step E226. In the example just described, the integrity verification steps E218 and E220 are implemented by the security monitor 40. However, it could alternatively be provided that these steps are implemented by the security system. trusted operation 30, after switching to the trusted execution environment TEE (the integrity check can then for example be performed for all the libraries stored in the dedicated zone 80, that is to say for the libraries already present in the dedicated zone 80 before calling the security monitor 40 in step E208 as for the libraries loaded in the dedicated zone 80 by the security monitor in step E216).

Claims (12)

REVENDICATIONS1. Appareil électronique (10) comprenant un processeur et une mémoire vive, et conçu pour mettre en oeuvre un moniteur de sécurité (40) apte à faire basculer (E114; E222) le fonctionnement de l'appareil électronique (10) entre un premier environnement d'exécution (TEE; REE) et un second environnement d'exécution (REE ; TEE), dans lequel l'appareil électronique (10) est conçu pour faire exécuter par le processeur, dans le premier environnement d'exécution (TEE ; REE), une première application (E102 ; E206) utilisant une ressource mémorisée dans une partie de la mémoire vive et, dans le second environnement d'exécution (REE; TEE), une seconde application (E118 ; E226) requérant une ressource mémorisée dans ladite partie de la mémoire vive, caractérisé en ce que le moniteur de sécurité (40) est conçu pour déterminer (E108, E110 ; E212, E214) si la ressource requise correspond à la ressource utilisée et pour charger (E112; E216) la ressource requise dans ladite partie de la mémoire vive si la ressource requise ne correspond pas à la ressource utilisée.REVENDICATIONS1. An electronic apparatus (10) comprising a processor and a random access memory, and adapted to implement a security monitor (40) adapted to switch (E114; E222) the operation of the electronic apparatus (10) between a first environment execution (TEE; REE) and a second execution environment (REE; TEE), wherein the electronic apparatus (10) is adapted to execute by the processor in the first execution environment (TEE; REE) , a first application (E102; E206) using a resource stored in a part of the random access memory and, in the second execution environment (REE; TEE), a second application (E118; E226) requiring a resource stored in said part RAM, characterized in that the security monitor (40) is adapted to determine (E108, E110; E212, E214) whether the required resource corresponds to the resource used and to load (E112; E216) the required resource in said p part of the RAM if the required resource does not match the resource used. 2. Appareil électronique selon la revendication 1, dans lequel le moniteur de sécurité (40) est conçu pour charger en mémoire vive une pile d'exécution (50) du second environnement (REE; TEE) et pour déterminer si la ressource requise correspond à la ressource utilisée notamment par lecture de la pile d'exécution chargée (50).An electronic apparatus according to claim 1, wherein the security monitor (40) is adapted to load in RAM an execution stack (50) of the second environment (REE; TEE) and to determine if the requested resource corresponds to the resource used in particular by reading the loaded execution stack (50). 3. Appareil électronique selon la revendication 1 ou 2, dans lequel le moniteur de sécurité (40) est conçu pour lire au moins une information (Ti, 112, T2, 121) relative à la ressource utilisée dans une table (70) et pour déterminer si la ressource requise correspond à la ressource utilisée sur la base notamment de l'information lue (Ti, 112, T2, 121).An electronic apparatus according to claim 1 or 2, wherein the security monitor (40) is adapted to read at least one information (Ti, 112, T2, 121) relating to the resource used in a table (70) and to determining whether the resource required corresponds to the resource used based in particular on the information read (Ti, 112, T2, 121). 4. Appareil électronique selon l'une des revendications 1 à 3, conçu pour mettre en oeuvre (E218) des moyens de vérification de l'intégrité de la ressource utilisée lorsque le moniteur de sécurité détermine que la ressource utilisée correspond à la ressource requise.4. Electronic device according to one of claims 1 to 3, adapted to implement (E218) means for verifying the integrity of the resource used when the security monitor determines that the resource used corresponds to the required resource. 5. Appareil électronique selon l'une des revendications 1 à 4, dans lequel la ressource utilisée est une bibliothèque (LIB1, LIB2).5. Electronic device according to one of claims 1 to 4, wherein the resource used is a library (LIB1, LIB2). 6. Appareil électronique selon l'une des revendications 1 à 4, dans lequella ressource utilisée est un ensemble de données.6. Electronic device according to one of claims 1 to 4, in which the resource used is a set of data. 7. Procédé mis en oeuvre dans un appareil électronique (10) comprenant un processeur et une mémoire vive, caractérisé en ce qu'il comprend les étapes suivantes : - mise en oeuvre (E102; E206), dans un premier environnement d'exécution (TEE ; REE), d'une première application utilisant une ressource mémorisée dans une partie de la mémoire vive ; - réception (E104; E208), par un moniteur de sécurité (40), d'une demande de basculement du premier environnement d'exécution (TEE; REE) à 10 un second environnement d'exécution (REE ; TEE) ; - détermination (E108, E110 ; E212, E214), par le moniteur de sécurité (40), si une ressource requise par une seconde application exécutable dans le second environnement d'exécution (REE ; TEE) correspond à la ressource utilisée ; 15 - si le moniteur de sécurité (40) détermine que la ressource requise ne correspond pas à la ressource utilisée, chargement (E112 ; E216) de la ressource requise dans ladite partie de la mémoire vive ; - basculement (E114; E222), par le moniteur de sécurité (40), du premier environnement d'exécution (TEE ; REE) au second environnement 20 d'exécution (REE ; TEE) ; - exécution (E118 ; E226) de la seconde application.7. A method implemented in an electronic apparatus (10) comprising a processor and a random access memory, characterized in that it comprises the following steps: - implementation (E102; E206), in a first execution environment ( TEE; REE), of a first application using a resource stored in a part of the random access memory; receiving (E104; E208), by a security monitor (40), a request to switch from the first execution environment (TEE; REE) to a second execution environment (REE; TEE); determination (E108, E110, E212, E214) by the security monitor (40), if a resource required by a second application executable in the second execution environment (REE; TEE) corresponds to the resource used; - if the security monitor (40) determines that the requested resource does not correspond to the resource used, loading (E112; E216) the required resource in said portion of the RAM; - switching (E114; E222), by the security monitor (40), from the first execution environment (TEE; REE) to the second execution environment (REE; TEE); - execution (E118; E226) of the second application. 8. Procédé selon la revendication 7, comprenant une étape (E106; E210) de chargement en mémoire vive, par le moniteur de sécurité (40), d'une pile d'exécution (50) du second environnement (REE ; TEE) et dans lequel l'étape de 25 détermination inclut une sous-étape (E108; E212) de lecture de la pile d'exécution chargée (50).8. A method according to claim 7, comprising a step (E106; E210) of loading in RAM, by the safety monitor (40), of an execution stack (50) of the second environment (REE, TEE) and wherein the determining step includes a read sub-step (E108; E212) of the loaded execution stack (50). 9. Procédé selon la revendication 7 ou 8, comprenant une étape de lecture, par le moniteur de sécurité (40), d'au moins une information (Ti, 112, T2, 121) relative à la ressource utilisée dans une table (70) et dans lequel l'étape de 30 détermination utilise l'information lue (Ti, 112, T2, 121).9. The method of claim 7 or 8, comprising a step of reading, by the security monitor (40), at least one information (Ti, 112, T2, 121) relating to the resource used in a table (70). ) and wherein the determining step uses the information read (Ti, 112, T2, 121). 10. Procédé selon l'une des revendications 7 à 9, comprenant une étape (E128) de vérification de l'intégrité de la ressource utilisée lorsque le moniteur de sécurité (40) détermine que la ressource utilisée correspond à la ressource requise.The method according to one of claims 7 to 9, comprising a step (E128) for verifying the integrity of the resource used when the security monitor (40) determines that the resource used corresponds to the resource required. 11. Procédé selon l'une des revendications 7 à 10, dans lequel la ressource utilisée est une bibliothèque (LIB1, LIB2).11. Method according to one of claims 7 to 10, wherein the resource used is a library (LIB1, LIB2). 12. Procédé selon l'une des revendications 7 à 10, dans lequel la ressource utilisée est un ensemble de données.512. Method according to one of claims 7 to 10, wherein the resource used is a set of data.
FR1460678A 2014-11-05 2014-11-05 ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS Active FR3028071B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1460678A FR3028071B1 (en) 2014-11-05 2014-11-05 ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1460678A FR3028071B1 (en) 2014-11-05 2014-11-05 ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS

Publications (2)

Publication Number Publication Date
FR3028071A1 true FR3028071A1 (en) 2016-05-06
FR3028071B1 FR3028071B1 (en) 2016-11-04

Family

ID=53039483

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1460678A Active FR3028071B1 (en) 2014-11-05 2014-11-05 ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS

Country Status (1)

Country Link
FR (1) FR3028071B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093401A1 (en) * 2001-11-14 2003-05-15 Czajkowski Grzegorz J. Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
US20070198841A1 (en) * 2006-02-23 2007-08-23 Laurence Lundblade Trusted code groups
US20140298026A1 (en) * 2013-03-26 2014-10-02 Kabushiki Kaisha Toshiba Information processing device and computer program product

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093401A1 (en) * 2001-11-14 2003-05-15 Czajkowski Grzegorz J. Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
US20070198841A1 (en) * 2006-02-23 2007-08-23 Laurence Lundblade Trusted code groups
US20140298026A1 (en) * 2013-03-26 2014-10-02 Kabushiki Kaisha Toshiba Information processing device and computer program product

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RICHARD P. DRAVES ET AL: "Unifying the User and Kernel Environments - Technical Report MSR-TR-97-10", MICROSOFT CORPORATION - MICROSOFT RESEARCH TECHNICAL REPORTS, 12 March 1997 (1997-03-12), Microsoft Corporation - One Microsoft Way Redmond, WA 98052, pages 1 - 18, XP055019705, Retrieved from the Internet <URL:http://research.microsoft.com/pubs/69550/tr-97-10.pdf> [retrieved on 20120217] *

Also Published As

Publication number Publication date
FR3028071B1 (en) 2016-11-04

Similar Documents

Publication Publication Date Title
EP3018609B1 (en) Method for loading a file into ram in an electronic apparatus and associated electronic apparatus
EP1616242B1 (en) Method and device for controlling an access to peripherals
FR2937437A1 (en) METHOD FOR OPERATING AN ONBOARD EQUIPMENT, ASSOCIATED EQUIPMENT AND AN AIRCRAFT INCLUDING SUCH AN EQUIPMENT
EP2735969B1 (en) Electronic assembly including a deactivation module
FR3017725A1 (en) METHOD OF DEPLOYING A SOFTWARE APPLICATION SET (S)
CN110851204B (en) Application starting method and device and application packaging method and device
EP3063693B1 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
EP2124153A1 (en) Methods and device for implementing multi-functional peripherals using a single standard driver
FR2982445A1 (en) METHOD AND SYSTEM FOR ASSOCIATION OF EQUIPMENT WITH A GATEWAY
FR3028071A1 (en) ELECTRONIC APPARATUS AND METHOD IMPLEMENTED IN SUCH AN ELECTRONIC APPARATUS
FR3019351A1 (en) METHOD FOR SECURELY CONFIGURING AN APPLICATION IN A USER TERMINAL
FR3071630A1 (en) METHOD FOR MANAGING ONBOARD SOFTWARE MODULES FOR AN ELECTRONIC COMPUTER OF AN ELECTRICAL CUTTING APPARATUS
EP0838053A1 (en) Method and device enabling a fixed programme to be developed
EP3032451B1 (en) Method for running a program by a processor and electronic entity comprising such a processor
US10521592B2 (en) Application translocation
WO2019175482A1 (en) Secure data processing
EP3547602A1 (en) Method for implementing a cryptographic function for a secret key
FR2910658A1 (en) Electronic system e.g. subscriber identification module card, for portable mobile phone, has physical address allocating module for allocating addresses in memory by variant according to behavioral factors of system
FR3035984A1 (en) METHOD FOR DETECTING MALWARE SOFTWARE
FR2998747A1 (en) METHOD FOR CALLING A MESSAGE
EP2907029B1 (en) Circuit for verifying the execution of critical software
FR3075430A1 (en) DATA PROCESSING METHOD AND ASSOCIATED ELECTRONIC DEVICE
WO2020016511A1 (en) Method for accelerating the execution of a single-path program by the parallel execution of conditionally concurrent sequences
FR2998694A1 (en) ELECTRONIC MODULE FOR MAKING A MESSAGE ACCESSIBLE BY AN OPERATING SYSTEM
FR3074323A1 (en) METHOD AND DEVICE FOR CRYPTOGRAPHIC DATA PROCESSING

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160506

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

CA Change of address

Effective date: 20200826

CJ Change in legal form

Effective date: 20200826

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10