[go: up one dir, main page]

WO2006013279A2 - Procede de partage de temps d'un processeur - Google Patents

Procede de partage de temps d'un processeur Download PDF

Info

Publication number
WO2006013279A2
WO2006013279A2 PCT/FR2005/001712 FR2005001712W WO2006013279A2 WO 2006013279 A2 WO2006013279 A2 WO 2006013279A2 FR 2005001712 W FR2005001712 W FR 2005001712W WO 2006013279 A2 WO2006013279 A2 WO 2006013279A2
Authority
WO
WIPO (PCT)
Prior art keywords
software
execution
sharing
secure
security
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.)
Ceased
Application number
PCT/FR2005/001712
Other languages
English (en)
Other versions
WO2006013279A3 (fr
Inventor
Jean-Bernard Blanchet
Alexandre Frey
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.)
Trusted Logic SAS
Original Assignee
Trusted Logic SAS
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 Trusted Logic SAS filed Critical Trusted Logic SAS
Priority to US11/631,511 priority Critical patent/US20070283361A1/en
Priority to EP05786106A priority patent/EP1766519A2/fr
Publication of WO2006013279A2 publication Critical patent/WO2006013279A2/fr
Publication of WO2006013279A3 publication Critical patent/WO2006013279A3/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Definitions

  • Time sharing method of a processor The present invention relates to a method and system for sharing the execution time of a single physical processor between at least two software.
  • Software security has become a major issue in the industry with the networking of more and more machines and more and more powerful.
  • ARM Ltd (Cambridge, UK) is proposing a new security extension for its ARMv ⁇ microprocessor architecture, which it calls TrustZone (trademark of ARM Ltd).
  • This extension adds a special permission domain complementary to the "privileged" and "normal” modes already existing. To enter this domain, the operating system must invoke a special instruction that is accessible only in "privileged" mode.
  • This instruction then executes a context switch to give access to the security software of this domain and sets a special bit to 1.
  • Some parts of the memory, or some devices, selected at the time of system initialization, are accessible only when this special bit is set to 1. This allows to isolate the elements used by the security software and thus prohibit malicious software executed by the non-secure operating system from having access to it.
  • the security software is the slave of the unsecured operating system since it is the latter who calls it. This can be a major disadvantage since malicious software that takes control of the machine may decide never to run the security software and thereby prevent it from performing its functions.
  • the object of the invention is to solve these disadvantages.
  • the object of the invention is therefore a method of sharing the running time of a physical processor between at least two software programs, said processor comprising a plurality of execution modes and accessing a plurality of resources, each of said modes execution guaranteeing specific access rights to said resources, and, among the plurality of execution modes, at least one particular mode of execution, said secure mode, having exclusive access to certain resources, and, at least one software, said security, being executed exclusively in one of the secure execution modes, and at least one software, said unsafe, being executed in at least one mode of execution other than the secure execution modes, the method comprises the following steps, executed in secure mode: a) definition of a periodic cycle of execution of the software by the processor, b) splitting of this cycle into a predefined integer number of time slots, the first fraction of which is allocated to the security software and the remainder of which is assigned to the unsafe software, said method being characterized in that it further comprises the steps of: c) configuring an interrupt to trip at the beginning of each preset interval of
  • a second object is a system for sharing the execution time of a physical processor between at least two software programs, said processor comprising a plurality of execution modes and accessing a plurality of resources, each of said execution modes guaranteeing specific access rights to said resources, and among the plurality of execution modes, at least one particular mode of execution, said secure mode, having exclusive access to certain resources, characterized in that, at least one software, said being executed exclusively in one of the secure execution modes, and at least one unsafe software being executed in at least one of the execution modes other than the secure execution mode, the system comprises:
  • Context change means called monitor, operating in secure mode, for transferring the execution of the first software to the second and vice versa, these context switching means being actuated by the event triggered by the clock, and said context changing means comprising at least one periodic total time counter and a timer running time of the secure software on each period and means for comparing these counters with a predetermined value such that if the execution time of the secure software over the period is less than the predetermined value then the context switching means switch the context to the execution of the secure software.
  • the execution time of the software during the cycle is expressed as the modulo of the sequence number of the interrupt by the number of intervals of the cycle.
  • the interruption is triggered by a clock accessible only in secure mode.
  • an interrupt is configured to be triggered at the end of each part of the cycle in order to transfer the running time of the software running to the other software.
  • - triggering is caused by a watchdog, accessible only in secure mode.
  • the interrupt is executed in the secure mode.
  • At least one unsafe software is a multi-tasking operating system that uses a regular time-out of changing tasks.
  • the multi-task operating system does not configure a clock to trigger its regular time interruption, it uses the interruption of transfer from one software to another to perform the interrupt function related to the temporal interruption regular job change.
  • said method further comprises the steps of detecting the interrupts of the multi-tasking operating system and then delaying the execution of the security software so that it runs outside regular time interrupts of the multi-tasking operating system; and the security software comprises a virtual machine; and
  • the security software includes an interpreted programmatic environment for executing secure or banking programs such as a STIP environment; and the secure software comprises means for protecting the integrity of the software, or for protecting identifiers, or for protecting access to a data network, or cryptographic service, or management of confidential data, or electronic signature, or management of copyright, or remote administration of a payment device.
  • the method and system are usable in a cellular telephone, a personal digital assistant, a bank payment terminal or a portable payment terminal.
  • FIG. 1 is a diagram of a system comprising a processor, secure resources and insecure resources,
  • FIG. 2 is a flow chart of time management between unsafe software and security software
  • FIG. 3 is a flow chart of a distribution time calculation function
  • FIG. 4 is a chronogram of time distribution between security software and insecure software
  • FIG. 5 is a flow chart of a second implementation of time management between insecure software and security software
  • FIGS. 6, 7, 8 and 9 are chronograms of time distribution between insecure software and security software in different interrupt modes.
  • a safe environment is understood to mean an environment that guarantees the proper execution of the software.
  • a processor 1 is shown in FIG. 1. It comprises a plurality of execution modes as well as various resources such as memory 2, 2a, arithmetic and logic units and peripherals.
  • These resources can be internal to the processor such as arithmetic and logical or external units like some devices or memory
  • each mode of execution allows access or not to a particular resource.
  • the processor 1 has a particular mode of execution, said secure mode, such that certain resources are only accessible in this embodiment. These particular resources are symbolized in Figure 1 by a blackened lower right corner.
  • the program memory 2 of the processor is divided into zones 3, 3a, 4, 5, 6 and 7 each corresponding to a particular program.
  • the program residing in the secure zone 3, 3a executes only in secure mode and only it has access to resources 8 and 9 which are defined as secure.
  • processor 1 must operate security software using the security memory zone 3, 3a, and unsafe software, using the unsecure memory area 4.
  • the processor 1 also comprises a clock 8 operating in secure mode and capable of triggering an interruption 9 at regular intervals and / or predetermined.
  • a periodic and regular cycle of software execution is defined by the processor, and this cycle is divided into two parts, one for the execution of the security software. and the other for running unsafe software.
  • an environment, or context is defined for the security software and a different environment, corresponding to unsecured execution modes, is defined for the unsafe software.
  • the clock 8 is configured to trigger a TICK-IRQ interrupt 9 at regular intervals of a duration TICK, this time being chosen to cut the execution cycle into an integer number of intervals.
  • TICK-HANDLER The corresponding interrupt function, named TICK-HANDLER, is always called in secure mode.
  • an interrupt function is the function performed by the processor upon receipt of the corresponding interrupt.
  • the timer triggers the TICK-IRQ interrupt which calls the TICK-HANDLER function at 11.
  • TRATIO-SELECTION (x) which determines the distribution of processor time between the security software and the unsafe software.
  • step 13 thus indicates to TICK-HANDLER that the security software must continue to benefit from the processor time at 14 if it was executing during the interruption or if the context must be switched. for the security software to be executed if it was the insecure software that was running during the interrupt.
  • the value 0, step 13 tells TICK-HANDLER that it is the unsafe software that must now benefit, at 15, from the processor time, and therefore, as in the previous situation, the function returns without doing anything. or it changes context depending on the state before the interruption.
  • a context change consists of saving the current context and then restoring the saved context corresponding to the software to be executed.
  • the TRATI O-SELECT function allows you to divide the processor time between the security software and the unsafe software, or in other words, Assign certain intervals to the security software and other intervals to unsafe software.
  • TRATIO be the desired ratio between the time given to the safe software and the total running time of the processor.
  • TRATIO-SELECT takes as input an integer x increasing with each call of the function.
  • x is the serial number of the TICK-IRQ interrupt.
  • N and P are chosen such that P is less than or equal to N and the division of P by N is equal to TRATIO.
  • TRATIO-SELECT returns 1 and 0 otherwise.
  • N and P should be chosen as small as possible.
  • the TOS line represents the time of the security software and the NTOS line the time of the unsafe software.
  • none of the software is a multitask system preemptive by time interruption.
  • a preemptive multi-task system by time interruption uses a regular time interruption, of a duration
  • NTTICK such that, at each NTTICK-IRQ interrupt, an NTTICK-HANDLER function is called whose role is to switch between tasks.
  • the unsafe software is therefore a multitask system preemptive by time interruption.
  • NTTICK is equal to L times TICK, L being an integer.
  • the unsafe software sets an interrupt vector for NTTICK-HANDLER but does not configure a clock to trigger the NTTICK-IRQ interrupts.
  • the TICK-HANDLER function is then used to call the NTTICK-HANDLER function. It performs the following operations, Figure 5.
  • C 2 is equal to 0 at each NTTICK duration.
  • Ci is zero, it means that the unsafe software must run at 23, or continue to run.
  • NTTICK-HANDLER is called, step 24, remaining in the unsafe context.
  • Ci is non-zero, then the security software must be running, or must continue to run. If C 2 is also zero, the function NTTICK-HANDLER is called in 25 in the unsafe context, but on its return, the safe context is restored to 26 and the control is given in 27 to the security software.
  • HANDLER is called with an NTTICK interval as expected by the unsafe software.
  • the insecure software is a preemptive multitask system by time interrupt which configures a clock of its own to generate the NTTICK interrupts, and thus call the NTTICK-HANDLER function.
  • This interruption can take place during the normal course of unsafe software as during the course of the security software.
  • FIG. 7 illustrates this periodicity in the case where the NTTICK-IRQ interrupt occurs during the course of the unsafe software.
  • this constant delay may be such that the NTTICK-IRQ interrupt occurs during the course of the security software.
  • the preemption of the security software by the NTTICK-HANDLER function requires the transition from the safe environment to the unsafe environment and then to the execution context of the NTTICK-HANDLER interrupt function. to finally return to the safe environment.
  • the TICK-HANDLER function is modified so that the order number increment of the TICK-COUNT interrupt takes place only if the previous indicator is not set. Otherwise, the incrementation does not take place and the indicator is reset.
  • the method thus described also applies when the security software is a multi-tasking system using a time interrupt whose duration is regular.
  • the unsafe software can be a standard operating system.
  • the security software can run even if the insecure software has been designed without considering the presence of other environments.
  • the security software can take different forms. It can include a secure virtual machine such as a virtual machine
  • the latter specifying an environment and a virtual machine dedicated to payment terminals, typically needs to be run in a security environment.
  • the STIP environment is a special case of an interpreted programmatic environment, that is to say an environment allowing the execution of an interpreted program.
  • the secure software may also include means for protecting the integrity of the software, or protecting identifiers, or protecting access to a data network, or cryptographic service, or management of confidential data, or electronic signature, or management of copyright, or remote administration of a payment device.
  • This method comprises the following steps: a) defining a periodic and regular cycle of software execution by the processor, b) cutting this cycle into two parts, one for the execution of the security software, and the other for running unsafe software.
  • the periodic cycle defined in this process is divided into a predefined integer number of time slots, a first fraction of which is assigned to the security software and the remainder of which is assigned to the unsafe software.
  • a) an interruption is triggered at the beginning of each predefined interval of the cycle
  • b) the execution time, in the form of number of intervals, of the security software during the cycle is calculated
  • the execution time of the software during the cycle is expressed in the form of the modulo of the sequence number of the interrupt by the number of intervals of the cycle.
  • an interrupt is triggered at the end of each part of the cycle in order to transfer the execution time of the software running to the other software.
  • the interrupt is executed in the secure mode. It can, for example, be triggered by a clock accessible only in secure mode.
  • non-secure software it can be a multi-tasking operating system that uses a regular time-shift of task changes. If it does not configure a clock to trigger its regular time-out, the software transfer interrupt is used to perform the interrupt function linked to the regular temporal interruption of the task change.
  • the method further comprises the steps of detecting interrupts of the multi-task operating system and then delaying the execution of the secure software so that that it runs outside the regular time interruptions of the multi-tasking operating system.
  • a system for sharing the execution time of a physical processor between at least two software programs comprising a plurality of execution modes and accessing a plurality of resources, each of said execution modes guaranteeing access rights specific to said resources, and among the plurality of execution modes, a particular mode of execution, said secure mode, having exclusive access to certain resources, and a first software, said security, being executed exclusively in the secure execution mode, and a second software, said unsafe, being executed in at least one mode of execution other than the secure execution mode, which comprises:
  • a clock able to trigger an interruption on a regular basis, this being only accessible in secure mode
  • - Context change means operating in secure mode, for transferring the execution of the first software to the second and vice versa, these context change means being triggered by the interruption of the clock
  • said means of change context comprising at least one periodic total time counter and a secure software execution time counter on each period and means for comparing these counters with a predetermined value such as if the execution time of the secure software on Ia period is less than the predetermined value then the context switching means switch the context to the execution of the secure software.

Landscapes

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

Abstract

Le procédé de partage de temps d'exécution d'un processeur (1) physique entre au moins deux logiciels, ledit processeur comportant un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources (3, 8, 9), et un premier logiciel, dit de sécurité, étant exécuté exclusivement dans le mode d'exécution sécurisé, et un second logiciel, dit non sûr, étant exécuté dans un mode d'exécution autre que le mode d'exécution sécurisé, est caractérisé en ce qu'il comprend les étapes suivantes : a) on définit un cycle périodique et régulier d'exécution des logiciels par le processeur, b) on découpe ce cycle en deux parties, l'une pour l'exécution du logiciel de sécurité, et l'autre pour l'exécution du logiciel non sûr.

Description

Procédé de partage de temps d'un processeur. La présente invention concerne un procédé et un système de partage du temps d'exécution d'un processeur physique unique entre au moins deux logiciels. La sécurité des logiciels est devenue un enjeu majeur de l'industrie avec la mise en réseau de machines de plus en plus nombreuses et de plus en plus puissantes.
Cet enjeu n'est pas limité aux ordinateurs « classiques » mais existe également pour les téléphones portables, les systèmes embarqués, ... qui intègrent de plus en plus de fonctions.
Les systèmes d'exploitation sont particulièrement vulnérables à cause de leur complexité. L'énorme volume de code d'un système d'exploitation moderne rend en effet la vérification du code, pour le rendre invulnérable, impossible. Pour améliorer la sécurité des systèmes, il a été proposé d'isoler les fonctions de sécurité du reste du logiciel.
Cependant, cette isolation ne peut pas être purement logicielle sous peine d'être défaite par un code malicieux exécuté par les parties non protégées du système d'exploitation. Une première réponse a été apportée par les fabricants de microprocesseurs en créant un mode « privilégié » qui a accès à plus de ressources que le mode « normal » de l'utilisateur.
Dans le fonctionnement normal d'un système informatique, le mode « privilégié » n'est utilisé que par le système d'exploitation. Cependant, il apparaît que, pour différentes raisons, et en particulier pour l'accès aisé aux périphériques, des parties de code de plus en plus importantes sont exécutées dans ce mode « privilégié », et donc le problème de l'audit de sécurité de ce code devient difficile à résoudre.
La société ARM Ltd (Cambridge, UK) propose une nouvelle extension de sécurité pour son architecture de microprocesseur ARMvθ qu'elle appelle TrustZone (marque déposée de ARM Ltd).
Cette extension est décrite dans une note de cette société intitulée « A new Foundation for CPU Systems Security » par Richard York (Mai 2003) ainsi que dans un article « ARM Dons Armor » par Tom R. Halfhill (Microprocessor Report/1 n-Stat, 25 août 2003).
Cette extension ajoute un domaine de permission spécial complémentaire aux modes « privilégié » et « normal » déjà existants. Pour entrer dans ce domaine, le système d'exploitation doit invoquer une instruction spéciale qui n'est accessible qu'en mode « privilégié ».
Cette instruction exécute alors un changement de contexte pour donner accès au logiciel de sécurité de ce domaine et met un bit spécial à 1.
Certaines parties de la mémoire, ou certains périphériques, sélectionnés au moment de l'initialisation du système, ne sont accessibles que quand ce bit spécial est positionné à 1. Cela permet d'isoler ainsi les éléments utilisés par le logiciel de sécurité et donc d'interdire à un logiciel malveillant exécuté par Ie système d'exploitation non sécurisé d'y avoir accès.
Or, dans ce mode de fonctionnement, le logiciel de sécurité est l'esclave du système d'exploitation non sécurisé puisque c'est celui-ci qui l'appelle. Ceci peut être un inconvénient majeur puisque un logiciel malveillant qui prendrait le contrôle de la machine pourrait décider de ne jamais exécuter le logiciel de sécurité et l'empêcher ainsi de remplir ses fonctions.
De plus, cela nécessite de modifier le système d'exploitation pour qu'il prenne en compte le logiciel de sécurité. Or, comme indiqué précédemment, les systèmes d'exploitation sont des logiciels complexes sur lesquels il est difficile d'intervenir et qui, de plus, sont souvent propriété d'un éditeur qui n'a pas obligatoirement la volonté ou le désir d'effectuer des modifications.
Le but de l'invention est de résoudre ces inconvénients. L'objet de l'invention est donc un procédé de partage du temps d'exécution d'un processeur physique entre au moins deux logiciels, ledit processeur comportant une pluralité de modes d'exécution et accédant à une pluralité de ressources, chacun desdits modes d'exécution garantissant des droits d'accès spécifiques auxdites ressources, et, parmi la pluralité des modes d'exécution, au moins un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources, et, au moins un logiciel, dit de sécurité, étant exécuté exclusivement dans un des modes d'exécution sécurisés, et au moins un logiciel, dit non sûr, étant exécuté dans au moins un mode d'exécution autre que les modes d'exécution sécurisés, le procédé comprend les étapes suivantes, exécutées en mode sécurisé : a) définition d'un cycle périodique d'exécution des logiciels par le processeur, b) découpage de ce cycle en un nombre entier prédéfini d'intervalles de temps dont une première fraction est affectée au logiciel de sécurité et dont le reliquat est affecté au logiciel non sûr, ledit procédé étant caractérisé en ce qu'il comprend en outre les étapes de : c) configuration d'une interruption pour qu'elle se déclenche au début de chaque intervalle prédéfini du cycle, d) calcul du temps d'exécution, sous forme de nombre d'intervalles, du logiciel de sécurité pendant le cycle, e) si le nombre d'intervalle ainsi calculé est inférieur à la première fraction prédéfinie alors exécution du logiciel de sécurité sinon exécution du logiciel non sûr.
Un second objet est un système de partage du temps d'exécution d'un processeur physique entre au moins deux logiciels, ledit processeur comportant une pluralité de modes d'exécution et accédant à une pluralité de ressources, chacun desdits modes d'exécution garantissant des droits d'accès spécifiques auxdites ressources, et parmi la pluralité des modes d'exécution, au moins un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources, caractérisé en ce que, au moins un logiciel, dit de sécurité, étant exécuté exclusivement dans un des modes d'exécution sécurisés, et au moins un logiciel, dit non sûr, étant exécuté dans au moins un des modes d'exécution autre que le mode d'exécution sécurisés, le système comporte :
- une horloge apte à déclencher un événement de façon régulière, celle-ci n'étant accessible qu'en mode sécurisé,
- des moyens de changement de contexte, appelé moniteur, fonctionnant en mode sécurisé, permettant de transférer l'exécution du premier logiciel vers le second et réciproquement, ces moyens de changement de contexte étant actionnés par l'événement déclenché par l'horloge, et lesdits moyens de changement de contexte comportant au moins un compteur de temps total périodique et un compteur de temps d'exécution du logiciel sécurisé sur chaque période et des moyens de comparaison de ces compteurs avec une valeur prédéterminée tels que si le temps d'exécution du logiciel sécurisé sur la période est inférieure à la valeur prédéterminée alors les moyens de changement de contexte basculent le contexte vers l'exécution du logiciel sécurisé. D'autres avantages de l'invention sont :
- le temps d'exécution du logiciel pendant le cycle s'exprime sous la forme du modulo du numéro d'ordre de l'interruption par le nombre d'intervalles du cycle.
- l'interruption est déclenchée par une horloge accessible uniquement en mode sécurisé.
- on configure une interruption pour qu'elle se déclenche à la fin de chaque partie du cycle afin de transférer le temps d'exécution du logiciel en cours d'exécution vers l'autre logiciel.
- le déclenchement est provoqué par une horloge de surveillance, accessible uniquement en mode sécurisé.
- l'interruption est exécutée dans le mode sécurisé.
- l'un au moins des logiciels non sûrs est un système d'exploitation multi-tâches utilisant une interruption temporelle régulière de changement de tâches. - Ie système d'exploitation multi-tâches ne configurant pas d'horloge pour déclencher son interruption temporelle régulière, on utilise l'interruption de transfert d'un logiciel vers l'autre pour exécuter la fonction d'interruption liée à l'interruption temporelle régulière de changement de tâches.
- le système d'exploitation multi-tâches configurant sa propre horloge pour déclencher son interruption temporelle régulière, ledit procédé comporte en outre les étapes de détection des interruptions du système d'exploitation multi¬ tâches puis de temporisation de l'exécution du logiciel de sécurité de façon à ce que celui-ci s'exécute en dehors des interruptions temporelles régulières du système d'exploitation multi-tâches ; et - le logiciel de sécurité comporte une machine virtuelle ; et
- le logiciel de sécurité comporte un environnement programmatique interprété destiné à l'exécution de programmes sécurisés ou bancaires tel qu'un environnement STIP ; et - le logiciel sécurisé comporte des moyens de protection de l'intégrité des logiciels, ou de protection d'identifiants, ou de protection d'accès à un réseau de données, ou de service cryptographique, ou de gestion de données confidentielles, ou de signature électronique, ou de gestion des droits d'auteurs, ou d'administration à distance d'un dispositif de paiement. Le procédé et le système sont utilisables dans un téléphone cellulaire, un assistant numérique personnel, un terminal de paiement bancaire ou un terminal de paiement portatif.
L'invention sera mieux comprise à la lumière de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés et dans lesquels :
- la figure 1 est un schéma d'un système comportant un processeur, des ressources sécurisées et des ressources non sécurisées,
- la figure 2 est un ordinogramme de la gestion des temps entre un logiciel non-sûr et un logiciel de sécurité, - la figure 3 est un ordinogramme d'une fonction de calcul de temps de répartition,
- la figure 4 est un chronogramme de répartition du temps entre un logiciel de sécurité et un logiciel non sûr,
- la figure 5 est un ordinogramme d'une deuxième implémentation de la gestion des temps entre un logiciel non sûr et un logiciel de sécurité, et
- les figures 6, 7, 8 et 9 sont des chronogrammes de répartition du temps entre un logiciel non sûr et un logiciel de sécurité dans différents modes d'interruption.
Bien qu'il ait été fait référence au système de sécurité de la société ARM, la description qui va suivre n'est pas limitée à ce système et l'homme du métier pourra sans difficulté adapter cet enseignement à une autre architecture de microprocesseur disposant d'un environnement de sécurité similaire.
On entend par environnement sûr, un environnement qui garantit une exécution conforme du logiciel. Un processeur 1 est représenté figure 1. Il comporte une pluralité de modes d'exécution ainsi que des ressources diverses comme de la mémoire 2, 2a des unités arithmétiques et logiques et des périphériques.
Ces ressources peuvent être internes au processeur comme les unités arithmétiques et logiques ou externes comme certains périphériques ou la mémoire
Comme il est bien connu de l'homme du métier, chaque mode d'exécution permet d'accéder ou non à une ressource particulière.
Le processeur 1 possède un mode particulier d'exécution, dit mode sécurisé, tel que certaines ressources ne sont accessibles que dans ce mode d'exécution. Ces ressources particulières sont symbolisées sur la figure 1 par un angle inférieur droit noirci.
Ainsi, par exemple, la mémoire programme 2 du processeur est découpée en zones 3, 3a, 4, 5, 6 et 7 correspondant chacune à un programme particulier. Le programme résidant dans la zone 3, 3a sécurisée s'exécute uniquement en mode sécurisé et lui seul a accès aux ressources 8 et 9 qui sont définies comme sécurisées.
Pour la clarté de la description, et sans que cela nuise à la généralité de celle-ci, un seul logiciel est supposé fonctionner en mode non sécurisé, ce logiciel sera défini comme non sûr.
Il est ainsi supposé que le processeur 1 doit faire fonctionner un logiciel de sécurité en utilisant la zone mémoire 3, 3a de sécurité, et un logiciel non sûr, en utilisant la zone mémoire 4 non sécurisée.
Le processeur 1 comporte également une horloge 8 fonctionnant en mode sécurisé et capable de déclencher une interruption 9 à intervalle régulier et/ou prédéterminé.
Afin de garantir au logiciel de sécurité un temps d'exécution minimum, on définit un cycle périodique et régulier d'exécution des logiciels par le processeur, et on découpe ce cycle en deux parties, l'une pour l'exécution du logiciel de sécurité et l'autre pour l'exécution du logiciel non sûr.
A cette fin, lors de l'initialisation du processeur, celui-ci démarre en mode sécurisé afin de permettre une initialisation de l'ensemble sans risque de compromission en provenance du logiciel non sûr. Ainsi, un environnement, ou contexte, est défini pour le logiciel de sécurité et un environnement différent, correspondant à des modes d'exécution non sécurisés, est défini pour le logiciel non sûr.
Puis l'horloge 8 est configurée pour déclencher une interruption TICK- IRQ 9 à intervalle régulier d'une durée TICK, cette durée étant choisie pour découper le cycle d'exécution en un nombre entier d'intervalles.
La fonction d'interruption correspondante, nommée TICK-HANDLER, est toujours appelée en mode sécurisé. Pour mémoire, on rappelle qu'une fonction d'interruption est la fonction exécutée par le processeur à la réception de l'interruption correspondante.
Pendant le fonctionnement normal du processeur, figure 2, et au bout d'une durée TICK, l'horloge déclenche en 10 l'interruption TICK-IRQ qui appelle en 11 la fonction TICK-HANDLER.
Celle-ci appelle en 12 une fonction TRATIO-SELECTION (x) qui détermine la répartition du temps processeur entre le logiciel de sécurité et le logiciel non sûr.
Si cette répartition est telle que le logiciel de sécurité a bénéficié de moins de temps que prévu, la fonction retourne une valeur 1 et 0 sinon.
La valeur 1 , étape 13, indique ainsi à TICK-HANDLER que le logiciel de sécurité doit continuer à bénéficier du temps processeur en 14 s'il était en train de s'exécuter lors de l'interruption ou bien que le contexte doit être basculé pour que le logiciel de sécurité soit exécuté si c'était le logiciel non sûr qui était en train de s'exécuter lors de l'interruption.
Réciproquement, la valeur 0, étape 13, indique à TICK-HANDLER que c'est le logiciel non sûr qui doit désormais bénéficier, en 15, du temps processeur, et donc, comme dans la situation précédente, soit la fonction retourne sans rien faire, soit elle effectue un changement de contexte en fonction de l'état avant l'interruption.
Comme il est bien connu de l'homme du métier, un changement de contexte consiste à sauvegarder le contexte courant puis à rétablir le contexte sauvegardé correspondant au logiciel à exécuter.
La fonction TRATI O-SELECT permet donc de répartir le temps processeur entre le logiciel de sécurité et le logiciel non sûr, ou autrement dit, d'affecter certains intervalles au logiciel de sécurité et les autres intervalles au logiciel non sûr.
Un fonctionnement possible, donné à titre d'exemple, est le suivant, figure 3. Soit TRATIO le rapport désiré entre le temps donné au logiciel sûr et le temps total d'exécution du processeur. TRATIO-SELECT prend en entrée un entier x croissant à chaque appel de la fonction. Par exemple x est le numéro d'ordre chronologique de l'interruption TICK-IRQ.
Deux entiers N et P sont choisis tels que P est inférieur ou égal à N et la division de P par N est égale à TRATIO.
Alors si x modulo N est strictement inférieur à P, TRATIO-SELECT retourne 1 et 0 sinon.
Il doit être noté que pour limiter le nombre d'interruptions afin de minimiser l'impact de ces interruptions sur le fonctionnement global du système, N et P doivent être choisis le plus petit possible.
Un exemple avec N = 5 et P = 2 est donné figure 4 sous la forme d'un chronogramme de répartition des temps entre les deux logiciels. La ligne TOS représente le temps du logiciel de sécurité et la ligne NTOS le temps du logiciel non sûr. Dans l'exemple de fonctionnement présenté, aucun des logiciels n'est un système multi-tâches préemptif par interruption temporelle.
Pour mémoire, on rappelle qu'un système multi-tâches préemptif par interruption temporelle utilise une interruption temporelle régulière, d'une durée
NTTICK, telle que, à chaque interruption NTTICK-IRQ, une fonction NTTICK- HANDLER est appelée dont le rôle est d'effectuer un basculement entre les tâches.
Dans un deuxième exemple de réalisation, le logiciel non sûr est donc un système multi-tâches préemptif par interruption temporelle.
Le procédé est alors similaire à celui décrit précédemment mais les durées TICK et NTTICK sont choisies de façon à ce que NTTICK soit un multiple de TICK. Par exemple, NTTICK est égal à L fois TICK, L étant un entier.
Dans ce deuxième mode de réalisation, le logiciel non sûr positionne un vecteur d'interruption pour NTTICK-HANDLER mais ne configure pas d'horloge pour déclencher les interruptions NTTICK-IRQ. La fonction TICK-HANDLER est alors utilisée pour appeler la fonction NTTICK-HANDLER. Elle exécute les opérations suivantes, figure 5.
- incrémentation en 20 du numéro d'ordre de l'interruption TICK- COUNT de 1, - appel en 21 de la fonction TRATIO-SELECT (TICK-COUNT) qui retourne Ci,
- calcul en 22 de TICK-COUNT modulo L, désigné C2. Ainsi C2 est égal à 0 à chaque durée NTTICK.
- si Ci est nul, cela veut dire que le logiciel non sûr doit s'exécuter en 23, ou continuer à s'exécuter.
Si C2 est également nul, NTTICK-HANDLER est appelé, étape 24, en restant dans le contexte non sûr.
- si Ci est non nul, alors le logiciel de sécurité doit être exécuté, ou doit continuer de s'exécuter. - Si C2 est également nul, la fonction NTTICK-HANDLER est appelée en 25 dans le contexte non sûr, mais à son retour, le contexte sûr est rétabli en 26 et le contrôle est donné en 27 au logiciel de sécurité.
La figure 6 est un chronogramme illustrant le fonctionnement précédent avec TRATIO = 40% et L = 5. On constate que la contrainte NTTICK=L*TICK induit que NTTICK-
HANDLER est appelée avec un intervalle de NTTICK comme attendu par le logiciel non sûr.
Dans un troisième exemple de fonctionnement, le logiciel non sûr est un système multi-tâches préemptif par interruption temporelle qui configure une horloge qui lui est propre pour générer les interruptions NTTICK, et appeler ainsi la fonction NTTICK-HANDLER.
Cette interruption peut avoir lieu pendant Ie déroulement normal du logiciel non sûr comme pendant le déroulement du logiciel de sécurité.
Si la période de déclenchement de cette horloge est identique à la période d'accès du logiciel de sécurité, alors l'interruption intervient avec un retard constant par rapport à la préemption du logiciel non sûr par le logiciel de sécurité. Si la contrainte NTTICK=L*TICK est toujours respectée, cette périodicité commune peut s'écrire TRATIO-SELECT(x) = TRATIO-SELECT (x modulo L).
La figure 7 illustre cette périodicité dans le cas où l'interruption NTTICK-IRQ intervient pendant le déroulement du logiciel non sûr.
Cependant, ce retard constant peut être tel que l'interruption NTTICK- IRQ intervienne pendant le déroulement du logiciel de sécurité. Dans ce cas, figure 8, la préemption du logiciel de sécurité par la fonction NTTICK-HANDLER nécessite de passer de l'environnement sûr à l'environnement non sûr puis de passer au contexte d'exécution de la fonction d'interruption NTTICK-HANDLER pour, finalement, retourner à l'environnement sûr. Ces opérations répétées à intervalles réguliers peuvent engendrer des problèmes de performance.
De plus, figure 9, certaines implémentations de système d'exploitation multi-tâches préemptif sont telles que la fonction d'interruption NTICK-HANDLER ne retourne jamais : elle procède au changement de contexte de tâche du logiciel non sûr et passe directement à l'exécution de cette nouvelle tâche. Ainsi, dans un tel système, le contrôle est rendu en fin d'interruption au logiciel non sûr et non au logiciel de sécurité.
Dans cette situation, le temps d'exécution affecté au logiciel de sécurité est fortement diminué.
Pour corriger ce problème, il est nécessaire que le logiciel de sécurité puisse intervenir sur l'interruption matérielle avant que la fonction d'interruption NTTICK-HANDLER soit appelée.
Il suffit alors d'examiner si l'environnement courant, lors de l'interruption, était l'environnement de sécurité ou l'environnement non sûr. Si c'est l'environnement de sécurité, un indicateur est positionné en mémoire pour indiquer le problème. Puis la fonction NTTICK-HANDLER est appelée normalement.
La fonction TICK-HANDLER est modifiée pour que l'incrémentation de numéro d'ordre de l'interruption TICK-COUNT n'ait lieu que si l'indicateur précédent n'est pas positionné. Sinon, l'incrémentation n'a pas lieu et l'indicateur est remis à zéro.
Cela provoque un décalage d'une unité TICK du basculement de l'environnement non sûr vers l'environnement de sécurité, et réciproquement. Et ainsi, progressivement, l'interruption NTTICK-IRQ est calée pour se déclencher pendant la phase d'exécution du logiciel non sûr.
Le procédé ainsi décrit s'applique également quand le logiciel de sécurité est un système multi-tâches utilisant une interruption temporelle dont la durée est régulière.
Dans une variante du procédé, on peut avantageusement remplacer le déclenchement des interruptions TICK-IRQ à intervalle régulier par le déclenchement d'une interruption seulement quand le temps imparti pour un logiciel donné est écoulé. En prenant l'exemple illustré sur la figure 4, cela veut dire que l'interrogation TICK-IRQ ne sera déclenchée que alternativement, tous les deux ou trois TICK.
Comme le procédé décrit permet au logiciel de sécurité d'avoir accès aux ressources du processeur et, en particulier, à certains vecteurs d'interruption et aux paramètres de la protection mémoire, le logiciel non sûr peut être un système d'exploitation standard. En particulier, le logiciel de sécurité peut s'exécuter même si le logiciel non sûr a été conçu sans tenir compte de la présence d'autres environnements.
On conçoit que le logiciel de sécurité peut prendre différentes formes. Il peut comporter une machine virtuelle sécurisée comme une machine virtuelle
JAVA ou C# ou comme un environnement STIP (Small Terminal Interoperability
Platform). Ce dernier, spécifiant un environnement et une machine virtuelle dédiée aux terminaux de paiement, a typiquement besoin d'être exécuté dans un environnement de sécurité. L'environnement STIP est un cas particulier d'environnement programmatique interprété, c'est-à-dire d'environnement permettant l'exécution de programme interprété.
Le logiciel sécurisé peut également comporter des moyens de protection de l'intégrité des logiciels, ou de protection d'identifiants, ou de protection d'accès à un réseau de données, ou de service cryptographique, ou de gestion de données confidentielles, ou de signature électronique, ou de gestion des droits d'auteurs, ou d'administration à distance d'un dispositif de paiement.
Cette exécution est possible grâce à l'interception et à la manipulation des vecteurs d'interruption et des paramètres de protection mémoire du logiciel. Le procédé et le système ainsi décrits peuvent être mis en oeuvre sur de nombreuses architectures.
On conçoit donc qu'on a ainsi un procédé de partage de temps d'exécution d'un processeur physique 1 entre au moins deux logiciels, ledit processeur comportant une pluralité de modes d'exécution et accédant à une pluralité de ressources 3, 4, 5, 6, 7, 8, et 9, chacun desdits modes d'exécution garantissant des droits d'accès spécifiques auxdites ressources, et, parmi la pluralité des modes d'exécution, au moins un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources 3, 8, et 9, et au moins un premier logiciel, dit de sécurité, étant exécuté exclusivement dans le mode d'exécution sécurisé, et au moins un second logiciel, dit non sûr, étant exécuté dans au moins un mode d'exécution autre que les modes d'exécution sécurisés.
Ce procédé comprend les étapes suivantes : a) on définit un cycle périodique et régulier d'exécution des logiciels par le processeur, b) on découpe ce cycle en deux parties, l'une pour l'exécution du logiciel de sécurité, et l'autre pour l'exécution du logiciel non sûr.
Le cycle périodique définit dans ce procédé est découpé en un nombre entier prédéfini d'intervalles de temps dont une première fraction est affectée au logiciel de sécurité et dont le reliquat est affecté au logiciel non sûr. Pour ce faire, a) on déclenche une interruption au début de chaque intervalle prédéfini du cycle, b) on calcule le temps d'exécution, sous forme de nombre d'intervalles, du logiciel de sécurité pendant le cycle, c) si le nombre d'intervalle ainsi calculé est inférieur à la première fraction prédéfinie alors le logiciel de sécurité est exécuté sinon le logiciel non sûr est exécuté. Comme indiqué précédemment, le temps d'exécution du logiciel pendant le cycle s'exprime sous la forme du modulo du numéro d'ordre de l'interruption par le nombre d'intervalles du cycle. Dans un autre mode de réalisation, on déclenche une interruption à la fin de chaque partie du cycle afin de transférer le temps d'exécution du logiciel en cours d'exécution vers l'autre logiciel.
Dans tous les cas, l'interruption est exécutée dans le mode sécurisé. Elle peut, par exemple, être déclenchée par une horloge accessible uniquement en mode sécurisé.
Concernant le logiciel non sûr, il peut être un système d'exploitation multi-tâches utilisant une interruption temporelle régulière de changement de tâches. Si il ne configure pas d'horloge pour déclencher son interruption temporelle régulière, on utilise l'interruption de transfert d'un logiciel vers l'autre pour exécuter la fonction d'interruption liée à l'interruption temporelle régulière de changement de tâches.
Si, par contre, il configure sa propre horloge pour déclencher son interruption temporelle régulière, le procédé comporte en outre les étapes de détection des interruptions du système d'exploitation multi-tâches puis de temporisation de l'exécution du logiciel sécurisé de façon à ce que celui-ci s'exécute en dehors des interruptions temporelles régulières du système d'exploitation multi-tâches. On a également décrit un système de partage de temps d'exécution d'un processeur physique entre au moins deux logiciels, ledit processeur comportant une pluralité de modes d'exécution et accédant à une pluralité de ressources, chacun desdits modes d'exécution garantissant des droits d'accès spécifiques auxdites ressources, et parmi la pluralité des modes d'exécution, un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources, et un premier logiciel, dit de sécurité, étant exécuté exclusivement dans le mode d'exécution sécurisé, et un second logiciel, dit non sûr, étant exécuté dans au moins un mode d'exécution autre que Ie mode d'exécution sécurisé, qui comporte :
- une horloge apte à déclencher une interruption de façon régulière, celle-ci n'étant accessible qu'en mode sécurisé, - des moyens de changement de contexte, fonctionnant en mode sécurisé, permettant de transférer l'exécution du premier logiciel vers le second et réciproquement, ces moyens de changement de contexte étant déclenchés par l'interruption de l'horloge, et lesdits moyens de changement de contexte comportant au moins un compteur de temps total périodique et un compteur de temps d'exécution du logiciel sécurisé sur chaque période et des moyens de comparaison de ces compteurs avec une valeur prédéterminée tels que si le temps d'exécution du logiciel sécurisé sur Ia période est inférieure à la valeur prédéterminée alors les moyens de changement de contexte basculent le contexte vers l'exécution du logiciel sécurisé.
Ainsi, grâce au procédé et au système décrits, il est, de façon avantageuse, possible de garantir un temps d'exécution à un logiciel de sécurité. De plus, on constate aisément que les systèmes d'exploitation, ou plus généralement les logiciels, résidents en zone non sécurisée n'ont pas besoin d'être modifiés pour permettre cette exécution de logiciel sécurisé.
Ceci permet d'utiliser le procédé et le système décrit dans des téléphones cellulaires, des assistants numériques personnels, des terminaux de paiement bancaires ou portatifs afin d'y installer et de garantir le fonctionnement de fonctions de sécurité.

Claims

REVENDICATIONS
1. Procédé de partage du temps d'exécution d'un processeur physique (1) entre au moins deux logiciels, ledit processeur comportant une pluralité de modes d'exécution et accédant à une pluralité de ressources (3, 4, 5, 6, 7, 8, 9), chacun desdits modes d'exécution garantissant des droits d'accès spécifiques auxdites ressources, et, parmi la pluralité des modes d'exécution, au moins un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources (3, 8, 9), et , au moins un logiciel, dit de sécurité, étant exécuté exclusivement dans un des modes d'exécution sécurisés, et au moins un logiciel, dit non sûr, étant exécuté dans au moins un mode d'exécution autre que les modes d'exécution sécurisés, le procédé comprend les étapes suivantes, exécutées en mode sécurisé : a) définition d'un cycle périodique d'exécution des logiciels par le processeur, b) découpage de ce cycle en un nombre entier prédéfini d'intervalles de temps dont une première fraction est affectée au logiciel de sécurité et dont le reliquat est affecté au logiciel non sûr, ledit procédé étant caractérisé en ce qu'il comprend en outre les étapes de : c) configuration d'une interruption pour qu'elle se déclenche au début de chaque intervalle prédéfini du cycle, d) calcul du temps d'exécution, sous forme de nombre d'intervalles, du logiciel de sécurité pendant le cycle, e) si le nombre d'intervalle ainsi calculé est inférieur à la première fraction prédéfinie alors exécution du logiciel de sécurité sinon exécution du logiciel non sûr.
2. Procédé de partage du temps d'exécution d'un processeur selon la revendication 1, caractérisé en ce que le temps d'exécution du logiciel pendant le cycle s'exprime sous la forme du modulo du numéro d'ordre de l'interruption par le nombre d'intervalles du cycle.
3. Procédé de partage du temps d'exécution d'un processeur selon l'une des revendications 1 ou 2, caractérisé en ce que l'interruption est déclenchée par une horloge accessible uniquement en mode sécurisé.
4. Procédé de partage du temps d'exécution d'un processeur selon la revendication 1 , caractérisé en ce qu'on configure une interruption pour qu'elle se déclenche à la fin de chaque partie du cycle afin de transférer le temps d'exécution du logiciel en cours d'exécution vers l'autre logiciel.
5. Procédé de partage du temps d'exécution d'un processeur selon la revendication 4, caractérisé en ce que le déclenchement est provoqué par une horloge de surveillance, accessible uniquement en mode sécurisé.
6. Procédé de partage du temps d'exécution d'un processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que l'interruption est exécutée dans le mode sécurisé.
7. Procédé de partage du temps d'exécution d'un processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que l'un au moins des logiciels non sûrs est un système d'exploitation multi-tâches utilisant une interruption temporelle régulière de changement de tâches.
8. Procédé de partage du temps d'exécution d'un processeur selon la revendication 7, caractérisé en ce que le système d'exploitation multi-tâches ne configurant pas d'horloge pour déclencher son interruption temporelle régulière, on utilise l'interruption de transfert d'un logiciel vers l'autre pour exécuter la fonction d'interruption liée à l'interruption temporelle régulière de changement de tâches.
9. Procédé de partage du temps d'exécution d'un processeur selon la revendication 7, caractérisé en ce que le système d'exploitation multi-tâches configurant sa propre horloge pour déclencher son interruption temporelle régulière, ledit procédé comporte en outre les étapes de détection des interruptions du système d'exploitation multi-tâches puis de temporisation de l'exécution du logiciel de sécurité de façon à ce que celui-ci s'exécute en dehors des interruptions temporelles régulières du système d'exploitation multi-tâches.
10. Procédé de partage du temps d'exécution d'un processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que le logiciel de sécurité comporte une machine virtuelle.
11. Procédé de partage du temps d'exécution d'un processeur selon la revendication 10, caractérisé en ce que le logiciel de sécurité comporte un environnement programmatique interprété destiné à l'exécution de programmes sécurisés ou bancaires tel qu'un environnement STIP.
12. Système de partage du temps d'exécution d'un processeur physique entre au moins deux logiciels, ledit processeur comportant une pluralité de modes d'exécution et accédant à une pluralité de ressources, chacun desdits modes d'exécution garantissant des droits d'accès spécifiques auxdites ressources, et parmi la pluralité des modes d'exécution, au moins un mode d'exécution particulier, dit mode sécurisé, ayant un accès exclusif sur certaines ressources, caractérisé en ce que, au moins un logiciel, dit de sécurité, étant exécuté exclusivement dans un des modes d'exécution sécurisés, et au moins un logiciel, dit non sûr, étant exécuté dans au moins un des modes d'exécution autre que le mode d'exécution sécurisés, le système comporte :
- une horloge apte à déclencher un événement de façon régulière, celle-ci n'étant accessible qu'en mode sécurisé,
- un moyen de changement de contexte, appelé moniteur, fonctionnant en mode sécurisé, permettant de transférer l'exécution du premier logiciel vers le second et réciproquement, ce moyen de changement de contexte étant actionné par l'événement déclenché par l'horloge, et ledit moyen de changement de contexte comportant au moins un compteur de temps total périodique et un compteur de temps d'exécution du logiciel de sécurité sur chaque période et des moyens de comparaison de ces compteurs avec une valeur prédéterminée tels que si le temps d'exécution du logiciel de sécurité sur la période est inférieure à la valeur prédéterminée alors le moyen de changement de contexte bascule le contexte vers l'exécution du logiciel de sécurité.
13. Système de partage du temps d'exécution d'un processeur physique entre au moins deux logiciels suivant la revendication 12, caractérisé en ce que le logiciel de sécurité comporte une machine virtuelle.
14. Système de partage du temps d'exécution d'un processeur physique entre au moins deux logiciels suivant la revendication 13, caractérisé en ce que le logiciel de sécurité comporte un environnement programmatique interprété destiné à l'exécution de programmes sécurisés ou bancaires tel qu'un environnement STIP.
15. Système de partage du temps d'exécution d'un processeur physique entre au moins deux logiciels suivant l'une des revendications 12, 13 ou
14, caractérisé en ce que le logiciel de sécurité comporte des moyens de protection de l'intégrité des logiciels, ou de protection d'identifiants, ou de protection d'accès à un réseau de données, ou de service cryptographique, ou de gestion de données confidentielles, ou de signature électronique, ou de gestion des droits d'auteurs, ou d'administration à distance d'un dispositif de paiement.
16. Utilisation du procédé selon l'une quelconque des revendications 1 à 11 , ou de système selon l'une quelconque des revendications 12 ou 15, dans un téléphone cellulaire, un assistant numérique personnel, un terminal de paiement bancaire ou un terminal de paiement portatif.
PCT/FR2005/001712 2004-07-06 2005-07-04 Procede de partage de temps d'un processeur Ceased WO2006013279A2 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/631,511 US20070283361A1 (en) 2004-07-06 2005-07-04 Processor Time-Sharing Method
EP05786106A EP1766519A2 (fr) 2004-07-06 2005-07-04 Procede de partage de temps d'un processeur

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0407496A FR2872933B1 (fr) 2004-07-06 2004-07-06 Procede de partage de temps d'un processeur
FR0407496 2004-07-06

Publications (2)

Publication Number Publication Date
WO2006013279A2 true WO2006013279A2 (fr) 2006-02-09
WO2006013279A3 WO2006013279A3 (fr) 2006-05-04

Family

ID=34949106

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/001712 Ceased WO2006013279A2 (fr) 2004-07-06 2005-07-04 Procede de partage de temps d'un processeur

Country Status (4)

Country Link
US (1) US20070283361A1 (fr)
EP (1) EP1766519A2 (fr)
FR (1) FR2872933B1 (fr)
WO (1) WO2006013279A2 (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101189586B (zh) * 2005-06-01 2011-06-15 松下电器产业株式会社 计算机系统及程序生成装置
US8214296B2 (en) * 2006-02-14 2012-07-03 Microsoft Corporation Disaggregated secure execution environment
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US8793803B2 (en) 2008-05-24 2014-07-29 Via Technologies, Inc. Termination of secure execution mode in a microprocessor providing for execution of secure code
US8819839B2 (en) 2008-05-24 2014-08-26 Via Technologies, Inc. Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels
US20120102242A1 (en) * 2010-10-26 2012-04-26 Kaminario Technologies Ltd. Controlling data destaging within a multi-tiered storage system
CN105068861A (zh) * 2015-07-09 2015-11-18 合肥君正科技有限公司 一种事务执行方法及装置
FR3086772B1 (fr) * 2018-10-01 2021-11-12 Stmicroelectronics Grand Ouest Sas Procede de gestion d'une alimentation dvfs et systeme correspondant
FR3100901B1 (fr) * 2019-09-12 2021-08-27 Stmicroelectronics Grand Ouest Sas Système de protection de la mémoire

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
JP2900767B2 (ja) * 1993-09-20 1999-06-02 株式会社日立製作所 仮想計算機システムの仮想計算機走行時間間隔制御方式
US6078747A (en) * 1998-01-05 2000-06-20 Jewitt; James W. Application program interface to physical devices
CN1425157A (zh) * 1999-12-23 2003-06-18 通用仪器公司 双模式处理器
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7370210B2 (en) * 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
US7370324B2 (en) * 2003-09-30 2008-05-06 Intel Corporation Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment
US7475002B1 (en) * 2004-02-18 2009-01-06 Vmware, Inc. Method and apparatus for emulating multiple virtual timers in a virtual computer system when the virtual timers fall behind the real time of a physical computer system

Also Published As

Publication number Publication date
FR2872933A1 (fr) 2006-01-13
FR2872933B1 (fr) 2008-01-25
US20070283361A1 (en) 2007-12-06
WO2006013279A3 (fr) 2006-05-04
EP1766519A2 (fr) 2007-03-28

Similar Documents

Publication Publication Date Title
US9813445B2 (en) Taint injection and tracking
USRE43529E1 (en) System and method for protecting a computer system from malicious software
EP3132375B1 (fr) Systeme d'execution de code avec mecanisme d'hypervision en aveugle
ES2871898T3 (es) Indicador de reputación dinámica para optimizar operaciones de seguridad informática
US11042633B2 (en) Methods for protecting software hooks, and related computer security systems and apparatus
US20130081134A1 (en) Instruction set adapted for security risk monitoring
US20140359768A1 (en) System and method for detecting, alerting and blocking data leakage, eavesdropping and spyware
EP3797371B1 (fr) Systèmes et procédés de commande d'un lancement d'application sur la base d'une politique de sécurité
Riddle et al. A survey on the security of hypervisors in cloud computing
KR20180097527A (ko) 다수의 네트워크 종점들을 보호하기 위한 듀얼 메모리 인트로스펙션
CN107077566A (zh) 计算平台安全方法和装置
AU2014393471A1 (en) Systems and methods for using a reputation indicator to facilitate malware scanning
CA2624371C (fr) Procede et systeme de chronometrage redondant
US8887302B2 (en) System, method and computer program product for utilizing code stored in a protected area of memory for securing an associated system
EP1766519A2 (fr) Procede de partage de temps d'un processeur
KR20210075901A (ko) 롤백 방지 시스템 및 방법
US20130042297A1 (en) Method and apparatus for providing secure software execution environment based on domain separation
US11113389B1 (en) Systems and methods for providing persistent visual warnings for application launchers
Hao et al. SMOC: A secure mobile cloud computing platform
US11366903B1 (en) Systems and methods to mitigate stalkerware by rendering it useless
WO2015000967A1 (fr) Dispositif, système et procédé de sécurisation de transfert de données entre un dispositif de stockage de données portable source et un système informatique destinataire
Van Eyck et al. Mr-tee: Practical trusted execution of mixed-criticality code
EP1715438A1 (fr) Procédé de traitement d'interruptions non sécurisées par un processeur opérant dans le mode sécurisé, processeur associé
US20210157632A1 (en) Controlling calls to kernels
EP1526431B1 (fr) Contrôle d'accès à des périphériques d'un microprocesseur

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2005786106

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 11631511

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2005786106

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11631511

Country of ref document: US