EP2490147B1

A secure processor and a program for a secure processor

Abstract

This record has no abstract on file.

EP2490147B1, drawing sheet 1
Sheet 1 of 75

Term

Term ended

Expired 23 February 2025, 1.6 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

13 claims: 2 independent, 11 dependent

  1. 1
    A secure processor (100), comprising:an instruction execution unit (144) for executing an execution code of a process in a memory;a secure process identifier generation unit (109) for generating a secure process identifier when an instruction to generate the process is issued;a process information retention unit (115) for retaining the secure process identifier and an authentication key for authentication of the execution code while the process is still present as information related to the process;a translation look aside buffer (114) including a page table entry (122) of a page storing the execution code, the secure process identifier read from the process information retention unit (115) being set up in the page table entry (122) when paging-in the execution code into the memory;an authentication unit (107) for setting the secure page flag in the page table entry (122) when the execution code corresponding to the process is successfully authenticated using the authentication key, after the execution code corresponding to the process is stored in an unused page in the memory and the secure process identifier corresponding to an address of the unused page is stored in the page table entry;a memory access control unit (105) for comparing the secure process identifier stored in the page table entry (122), in which the corresponding secure page flag is set, with the secure process identifier which is retained in the process information retention unit (115), and for permitting the instruction execution unit (144) to access the page in the memory where the execution code is stored and execute the execution code, if the secure process identifier retained by the process information retention unit (115) matches with the secure process identifier set up in the page table entry (122).
  2. 2
    The secure processor according to Claim 1, further comprising a secure process identifier elimination unit (110) for eliminating the secure process identifier which is generated and retained in the process information retention unit when the process disappears.
  3. 3
    The secure processor according to Claim 1, wherein the secure processor pages-in the execution code in a format in which authentication information is added.
  4. 4
    The secure processor according to Claim 3, wherein the authentication information added to the execution code is information at a page unit in the memory.
  5. 5
    The secure processor according to Claim 1, further comprising a direct memory access unit (113) for performing a calculation which is necessary for the authentication of the execution code in parallel with storing of the execution code in the memory, retaining the results of the calculation, and giving the results to the authentication unit.
  6. 6
    The secure processor according to Claim 1, further comprising:a specific key (111) for encryption/decryption which is specific to the processor;and an encryption processing unit (165, 168, 174) for performing encryption/decryption of information which includes a secure page flag and a secure process identifier stored in the page table entry (122) and an address of a memory page storing an execution code, using the processor specific key before evacuating the information to the outside or retrieving back the information from the outside.
  7. 7
    The secure processor according to Claim 1, further comprising:a specific key (111) for encryption/decryption which is specific to the processor;and a falsification detection unit (169, 172) generating a falsification detection information for information which includes a secure page flag and a secure process identifier stored in the page table entry (122) and an address of a memory page storing an execution code, using the processor-specific key when saving the information to the outside, or detecting falsification for the information using the specific key when retrieving the information back from the outside.
  8. 8
    The secure processor according to Claim 1, further comprising cores (151, 152) having respective instruction execution unit and a cache:a secure core (151) for executing only the execution code which is authenticated, and a normal core (152) for executing regular execution code which is not authenticated.
  9. 9
    The secure processor according to Claim 8, wherein the normal core also executes the authenticated code in addition to the regular non-authenticated code.
  10. 10
    The secure processor according to Claim 1, further comprising a mode specifying unit (155) for selecting either a secure mode in which the secure processor having the execution unit executes only the authenticated execution code or a normal mode in which the secure processor executes only the non authenticated regular execution code, wherein the secure processor executes either in a secure mode or in a normal mode in response to the selection by the mode specifying unit.
  11. 11
    The secure processor according to Claim 1, further comprising:a key (111) for encryption/decryption specific to the processor;and an encryption processing unit (165, 168, 174) for performing encryption/decryption of the information which contains the secure process identifier and is retained in the process information retention unit, using the processor-specific key when evacuating the information to the outside or when retrieving it back from the outside.
  12. 12
    The secure processor according to Claim 1, further comprising:a specific key (111) which is specific to the processor;and a falsification detection unit (169, 172) for generating falsification detection information for the information which contains the secure process identifier and is retained in the process information retention unit using the processor-specific key when evacuating the information to the outside, adding the falsification detection information to the information, and detecting falsification of the information using the specific key when retrieving the information back from the outside.
  13. 13
    A computer readable storage medium (201, 202, 204, 210) used by a computer when paging-in an execution code into memory, storing a program for causing the computer to execute the following operations:generating a secure process identifier and retaining the secure process identifier by a process information retention unit (115) when an instruction to generate a process corresponding to the execution code is issued, prior to the execution of the process corresponding to the execution code;requesting a direct memory access mechanism (113) in the computer to transfer a page storing the execution code in an unused page in a memory;setting up data regarding this page in a page table entry (122) in a translation look aside buffer (114) of the computer and storing the secure process identifier corresponding to an address of the unused page in the page table entry (122), after the page is transferred successfully;requesting hardware (107) to perform authentication of the page and to set a secure page flag in the page table entry (122) when the execution code corresponding to the process is successfully authenticated by using an authentication key after the execution code is stored in an unused page in the memory and the secure process identifier corresponding to an address of the unused page is stored in the page table entry (122);comparing the secure process identifier retained by the process information retention unit (115) with the secure process identifier set up in the page table entry before an instruction execution unit (144) of the computer executes the execution code, and permitting the instruction execution unit to execute the execution code when the secure process identifier retained by the process information retention unit (115) matches with the secure process identifier set up in the page entry table.