WO2006013279A2 - Procede de partage de temps d'un processeur - Google Patents
Procede de partage de temps d'un processeur Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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
Description
Claims
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)
| 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)
| 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 |
-
2004
- 2004-07-06 FR FR0407496A patent/FR2872933B1/fr not_active Expired - Fee Related
-
2005
- 2005-07-04 US US11/631,511 patent/US20070283361A1/en not_active Abandoned
- 2005-07-04 EP EP05786106A patent/EP1766519A2/fr not_active Withdrawn
- 2005-07-04 WO PCT/FR2005/001712 patent/WO2006013279A2/fr not_active Ceased
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 |