IL237180A

Secure mechanism to switch between different domains of operation in a data processor

Abstract

This record has no abstract on file.

IL237180A, drawing sheet 1
Sheet 1 of 9

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

21 claims: 3 independent, 18 dependent

  1. 1
    27 237180/2 CLAIMS 1. A data processing apparatus comprising:processing circuitry configured to perform data processing operations in response to program instructions, said processing circuitry having a plurality of domains of operation having different secure levels, comprising a secure domain and a further different secure domain, wherein when operating in said secure domain said processing circuitry has access to at least some data that is not accessible in said further different secure domain;a data store for storing data and instructions, said data store comprising a plurality of regions each corresponding to one of said plurality of domains of operation, and comprising at least one secure region for storing sensitive data accessible by said data processing circuitry operating in said secure domain and not accessible by said data processing circuitry operating in said further different secure domain and a less secure region for storing less sensitive data;said processing circuitry being configured: to verify for a program instruction to be executed that a region of said data store storing said program instruction to be executed corresponds to a current domain of operation of said processing circuitry;and in response to detecting that said program instruction to be executed is stored in a region of said data store that does not correspond to said current domain of operation of said processing circuitry: to verify whether said program instruction to be executed comprises a guard instruction;and if said program instruction to be executed comprises said guard instruction to switch said current domain of operation to a domain corresponding to said region of said data store storing said program instruction to be executed;and if said program instruction to be executed does not comprise said guard instruction to generate a security violation indication.
  2. 20
    A data processing method for an apparatus comprising:processing circuitry for performing data processing operations in response to program instructions, said processing circuitry having a plurality of domains of operation having different secure levels, comprising a secure domain and a further different secure domain, wherein when operating in said secure domain said processing circuitry has access to at least some data that is not accessible in said further different secure domain, and a data store for storing data and instructions, said data store comprising a plurality of different secure regions, each region corresponding to one of said plurality of domains of operation;the method comprising (i) verifying for a program instruction to be executed, that a region of said data store storing said program instruction to be executed corresponds to a current domain of operation of said processing circuitry;and (ii) in response to detecting that said program instruction to be executed is stored in a region of said data store that does not correspond to said current domain of operation of said processing circuitry: (iii) verifying whether said program instruction to be executed comprises a guard instruction;and (iv) if said program instruction to be executed comprises said guard instruction, switching said current domain of operation to a domain corresponding to said region of said data store storing said program instruction to be executed;and 31 237180/2 (v) if said program instruction to be executed does not comprise said guard instruction generating a security violation indication.
  3. 21
    A data processing apparatus comprising:processing means for performing data processing operations in response to program instructions, said processing means having a plurality of domains of operation having different secure levels, comprising a secure domain and a further different secure domain, wherein when operating in said secure domain said processing means has access to at least some data that is not accessible in said further different secure domain;a data storage means for storing data and instructions, said data storage means comprising a plurality of regions each corresponding to one of said plurality of domains of operation—, and comprising at least one secure region for storing sensitive data accessible by said data processing means operating in said secure domain and not accessible by said data processing means operating in said further different secure domain and a less secure region for storing less sensitive data;said processing means being for: verifying for a program instruction to be executed that a region of said data storage means storing said program instruction to be executed corresponds to a current domain of operation of said processing means;and in response to detecting that said program instruction to be executed is stored in a region of said data storage means that does not correspond to said current domain of operation of said processing means: verifying whether said program instruction to be executed comprises a guard instruction;and if said program instruction to be executed comprises said guard instruction, switching said current domain of operation to a domain corresponding to said region of said data storage means storing said program instruction to be executed;and if said program instruction to be executed does not comprise said guard instruction to generating a security violation indication.