CN107408096A - 对硬件块的适应性存取控制 - Google Patents

对硬件块的适应性存取控制 Download PDF

Info

Publication number
CN107408096A
CN107408096A CN201680011363.2A CN201680011363A CN107408096A CN 107408096 A CN107408096 A CN 107408096A CN 201680011363 A CN201680011363 A CN 201680011363A CN 107408096 A CN107408096 A CN 107408096A
Authority
CN
China
Prior art keywords
access
main controller
identity
master identity
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680011363.2A
Other languages
English (en)
Other versions
CN107408096B (zh
Inventor
罗恩·凯达尔
奥斯曼·科云朱
迈克尔·巴腾堡
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107408096A publication Critical patent/CN107408096A/zh
Application granted granted Critical
Publication of CN107408096B publication Critical patent/CN107408096B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

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

Abstract

本发明涉及用于提供对计算机系统上的硬件块的适应性存取的技术。在一实例中,可接收第一存取请求和第二存取请求,使得在所述第一存取请求之后依序接收所述第二存取请求。所述第一存取请求和所述第二存取请求可包含相应主控器标识。如果第二主控器标识等于第一主控器标识,那么提供对所述第二存取请求的存取,使得所述第一主控器标识与一或多个硬件块接口值相关联。如果所述第二主控器标识不等于所述第一主控器标识,那么可使与所述第一主控器标识相关联的所述一或多个硬件块接口值失效。可使所述一或多个硬件块接口值与所述第二主控器标识和相应权限相关联。

Description

对硬件块的适应性存取控制
背景技术
随着对处理能力的需求增加,分布式计算系统正变得更流行。存在各种形式的分布式计算系统,例如,经分配用于共同任务的多个计算机的处理能力的部分。分布式计算系统可包括不同物理处理器、不同物理处理器的部分、驻留在多个处理器上的多个操作系统、驻留在单个处理器上的多个操作系统、这些中的任一个的两个或更多个的组合,或另外其它配置。一些分布式计算系统可包含多个处理单元、高级操作系统,以及全异(即不相关)且不形成信任集群的进程。在具有安全特性的系统中,存取控制可以是基本能力。具有存取控制的硬件(HW)资源可使用锁定机构来实施存取控制,以允许一个实体存取接口。某一分布式系统可使用虚拟化硬件来经由许多接口支持许多主控器。一般来说,配置存取控制机构可能是繁琐的,且可能需要集中式主管或管理员来管理资源以及主管与用户之间的协议以分配和发布资源。一些分布式系统通过仅支持静态资源分配而避免这种复杂度,且因此使硬件丧失了支持动态资源分配的能力。
发明内容
一种根据本发明的提供对计算机系统上的硬件块的适应性存取的实例方法包含:利用存取控制器接收第一存取请求和第二存取请求,使得在所述第一存取请求之后依序接收所述第二存取请求,且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;确定所述第二主控器标识是否等于所述第一主控器标识;如果所述第二主控器标识等于所述第一主控器标识,那么提供对所述第二存取请求的存取,使得所述第一主控器标识与一或多个硬件块接口值相关联;如果所述第二主控器标识不等于所述第一主控器标识,那么使与所述第一主控器标识相关联的所述一或多个硬件块接口值失效;以及使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联。
这种方法的实施方案可包含以下特征中的一或多个。可从计算机系统中的公共总线接收第一存取请求和第二存取请求。第一主控器标识或第二主控器标识中的一或两个可与监控程序控制式接口相关联。可从由以下组成的组中的一或多个执行环境接收第一存取请求和第二存取请求:信任区域执行环境、安全处理器执行环境、调制解调器和监控程序执行环境。第一主控器标识可以是第一虚拟机标识值,且第二主控器标识可以是第二虚拟机标识值。
根据本发明的基于主控器侧实体的身份提供对受控器侧存储器资源的存取的方法的实例包含:确定当前存取所有者;从主控器侧实体接收存储器存取命令;如果所述主控器侧实体是当前存取所有者,那么基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令;如果所述主控器侧实体不是当前存取所有者,那么使所有现有密钥失效;确定与所述主控器侧实体相关联的域掩码;基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令;以及将所述当前存取所有者设定为等于所述主控器侧实体。
这种方法的实施方案可包含以下特征中的一或多个。主控器侧实体可以是监控程序,且存储器存取命令可包含监控程序机器身份(HVID)值。可从存储器保护单元(MPU)的资源组接收存储器存取命令。存储器存取命令可包含机器身份(MID)值。确定与主控器侧实体相关联的域掩码可包含将MID值提供到一或多个多路复用器以及从所述一或多个多路复用器接收域标识。
根据本发明的用于提供对计算机系统上的硬件块的适应性存取的实例系统包含用于存储指令的存储器单元以及处理器单元,所述处理器单元耦合到所述存储器单元且经配置以:利用存取控制器接收第一存取请求和第二存取请求,使得在所述第一存取请求之后依序接收所述所述第二存取请求,且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;确定所述第二主控器标识是否等于所述第一主控器标识;如果所述第二主控器标识等于所述第一主控器标识,那么提供对所述第二存取请求的存取,使得所述第一主控器标识与一或多个硬件块接口值相关联;如果所述第二主控器标识不等于所述第一主控器标识,那么使与所述第一主控器标识相关联的一或多个硬件块接口值失效;以及使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联。
这种系统的实施方案可包含以下特征中的一或多个。可从计算机系统中的公共总线接收第一存取请求和第二存取请求。第一主控器标识或第二主控器标识中的一或两个可与监控程序控制式接口相关联。可从由以下组成的组中的一或多个执行环境接收第一存取请求和第二存取请求:信任区域执行环境、安全处理器执行环境、调制解调器和监控程序执行环境。第一主控器标识可以是第一虚拟机标识值,且第二主控器标识可以是第二虚拟机标识值。
根据本发明的用于基于主控器侧实体的身份提供对受控器侧存储器资源的存取的实例系统包含:用于存储指令的存储器单元以及处理器单元,所述处理器单元耦合到所述存储器单元且经配置以:确定当前存取所有者;从所述主控器侧实体接收存储器存取命令;如果所述主控器侧实体是当前存取所有者,那么基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令;如果所述主控器侧实体不是当前存取所有者,那么使所有现有密钥失效;确定与所述主控器侧实体相关联的域掩码;基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令;且将所述当前存取所有者设定为等于所述主控器侧实体。
这种系统的实施方案可包含以下特征中的一或多个。主控器侧实体可以是监控程序,且存储器存取命令可包含监控程序机器身份(HVID)值。存储器存取命令可从存储器保护单元(MPU)的资源组接收。存储器存取命令可包含机器身份(MID)值。处理单元可经配置以将MID值提供到一或多个多路复用器,且从所述一或多个多路复用器接收域标识。
根据本发明的用于提供对计算机系统上的硬件块的适应性存取的设备的实例包含:用于利用存取控制器接收第一存取请求和第二存取请求的装置,使得在所述第一存取请求之后依序接收所述所述第二存取请求,且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;用于确定所述第二主控器标识是否等于所述第一主控器标识的装置;用于在所述第二主控器标识等于所述第一主控器标识的情况下提供对所述第二存取请求的存取的装置,使得所述第一主控器标识与一或多个硬件块接口值相关联;用于在所述第二主控器标识不等于所述第一主控器标识的情况下使与所述第一主控器标识相关联的一或多个硬件块接口值失效的装置;以及用于使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联的装置。
根据本发明的用于基于主控器侧实体的身份提供对受控器侧存储器资源的存取的设备的实例包含:用于确定当前存取所有者的装置;用于从所述主控器侧实体接收存储器存取命令的装置;用于在所述主控器侧实体是当前存取所有者的情况下基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令的装置;如果所述主控器侧实体不是当前存取所有者,那么:用于使所有现有密钥失效的装置;用于确定与所述主控器侧实体相关联的域掩码的装置;用于基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令的装置;以及用于将所述当前存取所有者设定为等于所述主控器侧实体的装置。
根据本发明的包括用于提供对计算机系统上的硬件块的适应性存取的指令的非暂时性处理器可读存储媒体的实例包含:用于利用存取控制器接收第一存取请求和第二存取请求的代码,使得所述第二存取请求在所述第一存取请求之后依序接收,且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;用于确定所述第二主控器标识是否等于所述第一主控器标识的代码;用于在所述第二主控器标识等于所述第一主控器标识的情况下提供对所述第二存取请求的存取的代码,使得所述第一主控器标识与一或多个硬件块接口值相关联;用于在所述第二主控器标识不等于所述第一主控器标识的情况下使与所述第一主控器标识相关联的一或多个硬件块接口值失效的代码;以及用于使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联的代码。
根据本发明的包括用于基于主控器侧实体的身份提供对受控器侧存储器资源的存取的指令的非暂时性处理器可读存储媒体的实例包含:用于确定当前存取所有者的代码;用于从所述主控器侧实体接收存储器存取命令的代码;用于在所述主控器侧实体是当前存取所有者的情况下基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令的代码;如果所述主控器侧实体不是当前存取所有者,那么:用于使所有现有密钥失效的代码;用于确定与所述主控器侧实体相关联的域掩码的代码;用于基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令的代码;以及用于将所述当前存取所有者设定为等于所述主控器侧实体的代码。
本文中所描述的项目和/或技术可提供以下能力中的一或多个和/或未提及的其它能力。主控器侧实体发起对受控器侧硬件存储器的存取。标识信息(例如,机器ID(MID)、虚拟机ID(VMID)或其它标识)包含在由受控器侧硬件所接收的存储器存取命令中。基于所述标识信息授权存储器存取。辨识后续命令中的标识信息的变化。当所述标识信息改变时,擦除与先前标识信息相关联的存储内容和状态信息和/或使其失效。提供了适应性存取控制。硬件寄存器或其它存储器装置用来存储与不同主控器相关联的域信息。基于包含在命令中的标识信息调适与命令接口相关联的权限。具有相同接口和不同标识信息的虚拟化硬件可存取受控器侧存储器资源。可提供其它能力,且不是根据本发明的每个实施方案都必须提供所论述的能力中的任一个,更不用说全部。
附图说明
图1是分布式计算系统的框图。
图2是用于实施图1中所展示的系统的片上系统的框图。
图3是用于实施图1中所展示的加密引擎的计算机系统的框图。
图4是如图3中所展示的主控器域表的存取表的一部分。
图5是在图1中所展示的系统上实施的存取控制器的框图。
图6是硬件块的适应性存取控制的过程的框式流程图。
图7是基于事务所有者的标识提供对受控器侧存储器资源的存取的过程的框式流程图。
具体实施方式
论述了用于提供对硬件块中的存储器的安全存取的技术。例如,主控器侧实体(例如,CPU、DSP)可发起对存储在受控器侧硬件中的存储器的存取(例如,读取或写入操作)。受控器侧硬件的实例包含随机存取存储器(RAM)、只读存储器(ROM)或其它硬件(HW)寄存器。主控器侧存取控制是由主控器进行的对存储器存取的控制,且受控器侧存取控制是在受控器侧进行的对存取的控制。系统存储器管理单元(SMMU)可用于主控器侧存取控制解决方案(例如,SMMU架构),且存储器保护单元(MPU)可用于受控器侧存取控制解决方案(例如,MPU区)。
在受控器侧存取控制解决方案中,可基于包含在存取呼叫中的呼叫方信息位获知呼叫实体的身份。例如,由主控器侧实体发起且由受控器侧硬件接收的呼叫可包含机器ID(MID)或虚拟机ID(VMID)以指示呼叫方的身份。除MID之外或作为MID的替代,呼叫方标识信息可包含额外的位以识别主控器。在一实例中,三个安全主控器可以是安全处理器(SP)、信任区域(NS)和调制解调器(MSA),且三个额外的位可用来唯一地识别主控器中的每一个。可基于系统设计考量(例如,主控器的数目、受控器侧硬件的处理能力和系统安全计划)来使用指定位(例如,额外的位)。指定位可扩充或替换MID。受控器侧硬件中的MPU可读取包含在存储器资源呼叫中的ID信息(例如,指定位、MID、VMID),且使用所述ID信息来确定是同意还是拒绝存储器存取呼叫。
一般来说,在具有SMMU的主控器侧存取控制架构中,SMMU可经配置以在其将呼叫实体的虚拟存储器地址转化成物理地址时移除所述呼叫实体的身份。呼叫实体可以是例如高级操作系统(HLOS)、一或多个执行环境(EE)、信任区域(TZ)、安全处理器、调制解调器或其它物理和虚拟硬件构造。SMMU可从虚拟地址(由呼叫实体使用)转化成硬件块驻留在其中的物理地址。在一实例中,安全硬件块可将单独信道分配给每个呼叫实体。例如,如果信道1被指派给HLOS,那么仅HLOS区的虚拟地址被转化成信道1,且对于其它区来说,不会有任何地址将被转化成信道1。可通过使地址空间的一部分暴露于其虚拟世界来将不同信道指派给不同呼叫实体。在SMMU解决方案中,受控器侧硬件并不了解呼叫实体是谁。由于受控器侧硬件并不具有身份信息而仅具有存取地址,因此其无法识别呼叫实体。
虽然主控器侧(例如,SMMU)和受控器侧(例如,MPU)存取控制用来调节系统存取,但受控器侧硬件(HW)块识别呼叫方有时是必要的。在受控器侧硬件必须代表呼叫方(例如,DMA、磁盘控制器、加密引擎)执行的情况下尤其如此。在先前解决方案中,这将需要对特定受控器侧HW块进行进一步配置,且对SMMU和/或MPU的配置进行定制(例如,专门编程)。另外,这种类型的定制需要受控器侧HW块(例如,DMA、磁盘控制器、加密引擎)与保护所述受控器侧HW块的存取控制(例如,SMMU或MPU)的配置之间的严格同步。为了避免易出错和复杂的本地配置,受控器侧HW块可使其配置适于系统级存取控制(例如,MPU、SMMU)。分布式计算系统中的受控器侧硬件可经配置以跟踪/监测主控器侧呼叫方的实体ID(例如,通过监测指定位、MID、VMID),且基于实体ID信息提供适应性域存取。适应性存取可减少与先前基于SMMU和/或MPU的解决方案中所需的信道化相关联的同步复杂度。
参考图1,分布式计算系统10包含加密/解密引擎(即,加密引擎12)和若干执行环境(EE)30,所述执行环境30包含调制解调器14、音频EE 16、视频EE 18、传感器/检测器EE20、安全处理器EE 22、信任区域EE 24、高级操作系统(HLOS)EE 26以及一或多个其它执行环境28。其它EE 28可包含类似于所展示的EE的一或多个EE,例如,可包含另一传感器/检测器EE、另一视频EE等。EE 30可包含监控程序,所述监控程序经配置以帮助管理多个执行环境(例如,虚拟机)和对应的硬件资源。传感器/检测器EE 20可以是多种传感器中的任一种,例如,相机、卫星定位系统(SPS)接收器、麦克风或生物计量传感器等。生物计量传感器可以是多种传感器中的任一种,例如,指纹传感器、心电图(ECG)传感器、脑电图(EEG)传感器等。为简单起见,从图式中的方框中省略“EE”。此外,执行环境可被称为模块。执行环境30中的每一个可由硬件、固件、一或多个处理器或这些中的任一个的组合实施。执行环境可包含监控程序,所述监控程序经配置以管理在一或多个处理器上执行的虚拟机(VM)算法的一或多个个例。多个处理器可用来实施执行环境,其中每个执行环境由一或多个处理器实施,或其中执行环境30的一或多个组(即,每组两个或更多个执行环境)各自由单个处理器实施。在单个处理器实施执行环境30中的多个执行环境(可能所有执行环境30)的情况下,执行环境30是由处理器实施的相异操作系统。执行环境30一般可被称为操作系统或虚拟机。执行环境30是处理相应信息且可通过保密方式在执行环境之间共享信息的模块。所展示的执行环境30是执行环境的实例,且可提供其它执行环境,和/或可从系统10省略执行环境14、16、18、20、22、24、26、28中的一或多个。系统10可用于各种目的,且本文所描述的技术适用于系统10的广泛多种应用中的任一种,以便在执行环境之间安全地传递信息。
还参考图2,用于实施图1中所展示的系统10的片上系统(SoC)50包含处理器52、存储器54、传感器56和加密引擎12。处理器52可包含多于一个处理器,且传感器56可包含多于一个传感器。传感器56是任选的,且例如在不存在待感测(例如,待测量)的音频、视频、生物计量或其它信息的情况下可省略。此外,传感器56(例如,或在传感器56包含多于一个传感器的情况下,一或多个传感器)可安置于SoC 50外(即,外部)。处理器52优选地是智能硬件装置,例如,中央处理单元(CPU)(例如,由公司或制造或设计的CPU)、微控制器、专用集成电路(ASIC)等。处理器52可包括可分布在SoC 50中的多个单独的物理实体。处理器52可包含具有可配置区的MPU(例如,在CortexTM-M3中)。存储器54包含随机存取存储器(RAM)和只读存储器(ROM)。存储器54是存储软件58的非暂时性处理器可读存储媒体,所述软件58是含有指令的处理器可读、处理器可执行的软件代码,所述指令经配置以在执行时致使处理器52执行本文所描述的各种功能(但所述描述可能仅提及处理器52执行所述功能)。或者,软件58可能不可由处理器52直接执行,但经配置以例如在被编译及执行时致使处理器52执行所述功能。处理器52以通信方式耦合到存储器54。加密引擎12是硬件块,其经配置以从执行环境接收主控器侧存储器存取呼叫,基于实体ID信息确定事务所有者,且基于所述实体ID信息提供对一或多个域的存取。加密引擎12可经配置以基于实体ID信息拒绝对一或多个域的存取,确定事务所有权的变化,且基于事务所有权变化擦除接口的现有配置或使其失效。在一实施例中,加密引擎12还可经配置以存储加密密钥,将纯文本加密成密码文本,存储密码文本,将密码文本解密成重组的纯文本,且存储重组的纯文本。
处理器52结合存储器54且在适当情况下结合传感器56经配置以实施执行环境30。执行环境30和加密引擎12中的任一个可具有其自身的处理器,或可配置为虚拟机,所述虚拟机经配置以利用处理器52和存储器54的处理能力的至少一部分。存储器54可以是包含用于执行环境30中的每一个的一或多个存储器的存储器集合。
存储器54可包含由执行环境30中的多个执行环境使用的联合存储器。此联合存储器可能不是共享存储器,即,不同执行环境30可不能够存取同一存储器位置,使得多个执行环境30将不能够写入到单个存储器位置,且在执行环境30中的另一个能够读取一存储器位置时,一个执行环境30将不能够写入到所述存储器位置。因此,执行环境30接收信息或提供信息的指示可等效于所述信息通过执行环境30从联合存储器读取或通过执行环境30提供到联合存储器,且可通过所述信息通过执行环境30从联合存储器读取或通过执行环境30提供到联合存储器来实施。联合存储器可包含用于控制对其存储器位置的存取,例如,用于将信息存储到存储器位置和/或从存储器位置读取信息的存储器管理单元。
执行环境30可以是主控器侧操作系统或虚拟机,其处理多种信息以例如提供音频、视频、生物计量和/或其它信息。执行环境30中的每一个可以通信方式耦合到加密引擎12以将信息提供到加密引擎12。例如,主控器侧执行环境可经由私钥总线或公钥总线耦合到加密引擎。监控程序可用来控制加密引擎12与一或多个虚拟机或其它执行环境30之间的通信。加密引擎12可基于包含呼叫的ID信息(例如,指定位、MID、VMID)安全地识别主控器侧存储器存取呼叫中的所有者(即,呼叫实体)。在一实例中,执行环境30还可将包含加密密钥的信息提供到加密引擎12或从加密引擎12接收信息,或可提供命令以使加密引擎12对由执行环境30指示的信息进行加密或解密。
参考图3,同时进一步参考图1到2,加密引擎12可由计算机系统实施,所述计算机系统包含处理逻辑62、内部存储器64,所述内部存储器64包含软件(SW)66以及概念性主控器和域表(MDT)68。一般来说,内部存储器64不可由执行环境30存取。处理逻辑62优选地为智能硬件逻辑装置,其经配置以基于与主控器侧呼叫实体相关联的身份信息确定事务所有者,确定事务所有权的变化,且基于事务所有权授权/拒绝域存取/使拒绝域失效。在一实例中,处理逻辑62可包括至少一个中央处理单元(CPU)(例如由公司或制造或设计的CPU)、微控制器、专用集成电路(ASIC)等。处理逻辑62可包括可分布在SoC 50中的多个单独的物理实体。加密引擎12可实施为虚拟系统(即,作为虚拟硬件),且加密引擎的多个个例可在计算机系统上执行。在一实施例中,处理逻辑62还可包含一或多个存取控制器100a、100b、100c、100n,所述一或多个存取控制器100a、100b、100c、100n包括多路复用器和比较器模块,所述比较器模块经配置以检测存储器存取事务中的所有权变化。内部存储器64可包含随机存取存储器(RAM)和只读存储器(ROM)。如果包含软件66,那么存储软件66的内部存储器64是非暂时性处理器可读存储媒体,且软件66是含有指令的处理器可读、处理器可执行的软件代码,所述指令经配置以在执行时使处理逻辑62执行本文所描述的各种功能(但所述描述可能仅提及处理逻辑62执行所述功能)。或者,软件66可能不可由处理逻辑62直接执行,但经配置以例如在被编译及执行时致使处理逻辑62执行所述功能。处理逻辑62以通信方式耦合到内部存储器64,例如以存取与概念性主控器和域表68相关联的信息。处理逻辑62单独或结合内部存储器64提供用于执行如本文所描述的功能的装置,所述功能例如:从主控器侧实体(例如,经由MPU)接收命令(例如,存储器存取呼叫);基于呼叫实体的身份确定事务所有者;将事务所有者与当前所有者(即,先前事务所有者)进行比较;如果事务所有者与当前所有者相同,那么授权适当存取(即,基于概念性MDT 68);或如果所有权发生变化(即,事务所有者与当前所有者不同),那么使当前接口拥有的一切内容(例如,存储内容、隐私、状态、权限)失效;将事务所有者存储为当前所有者;以及授权当前所有者的适当存取。
参考图4,同时进一步参考图1,概念性主控器和域表68被描绘为存取表70。存取表70可经由存取控制器100a、100b、100c、100n利用的硬件实施。在一实施例中,存取表70可以是存储在只读存储器(例如,内部存储器64)中的数据结构。存取表70可实施于处理逻辑62(例如,一次可编程(OTP)阵列)内的其它可编程存储器结构中。存取表70包含主控器接口72(包含主控器ID值)和域条目74(包含域ID值)。主控器是经配置以调用命令的实体(例如,针对密钥命令的密钥所有者和针对数据命令的数据所有者)。例如,调制解调器14、安全处理器EE 22、信任区域EE 24和其它EE 28可以是主控器。主控器可根据主控器ID值来编号。主控器ID值跨SoC可以是不变且固定的。值可保留用于调试和引导操作,且用于私钥或公钥总线。一系列主控器ID值可指派给监控程序接口,且因此由一或多个监控程序算法管理。域是具有专用存取控制设定的地址空间,其限定用于特定目的、具有受控存取的区。一般来说,只有主控器的子集可存取域。域可利用域ID值进行编号。域ID值中的一些在硬件中可以是不变且事先设定好的,且跨SoC是固定的。其它域ID值可以是灵活的,例如与监控程序一起使用,以针对特定执行环境和/或应用产生临时域。在一实施例中,密钥所有者可通过将域ID值设定为零来推迟域的选择,且数据所有者可设定域。
一般来说,存取控制器100a、100b、100c、100n中的每一个之后存在密钥表。一旦命令通过存取控制器,密钥就可被写入加密引擎12中的密钥表中。加密引擎12可使用表中的密钥中的一个来基于所接收的命令对数据进行解密。如果命令无法通过存取控制器,那么使由先前主控器存储的密钥失效。
存取表70指示与特定主控器ID值76相关联的域向量78(即,域掩码)。存取表70将主控器权限映射到主控器权限可存取的域。每个接口由其主控器和主控器可存取的域掩码标记。特定主控器ID值76可对应于呼叫实体的ID(例如,指定位、MID、VMID)。域向量78可指示对一或多个域的存取可由监控程序来管理。其它域向量可明确地指示主控器可存取的域。例如,信任区域EE 24可以是主控器ID值为1的主控器。信任区域主控器的对应域向量包含推迟域(0)、信任区域(1)域、监控程序(HV)(4)域、视频(5)域、音频(6)域、企业(7)域和HLOS(8)域。信任区域主控器的域掩码不包含调制解调器(2)域、安全处理器(3)域和HV临时(9到15)域。在操作中,域向量78可包括一系列位,使得值1指示可允许的域,且值0指示不包含的域。存取表70、且具体地说域向量是使各种硬件块(即,存储器位置、其它执行环境)与主控器相关联的方式。存取表70可实施于软件和/或逻辑硬件中,使得一或多个多路复用器模块可用来使域向量与适当的主控器ID值相关联。
参考图5,同时进一步参考图1到4,展示实例存取控制器100的框图。存取控制器100是图3中所描绘的存取控制器100a、100b、100c、100n中的一个。存取控制器100实施在加密引擎12内,且经配置以从一或多个EE 28接收命令(例如,存储器存取呼叫)。具体地说,命令可经由一或多个资源组102或一或多个监控程序104接收。资源组102可包含为存储器保护单元(MPU)的部分,且来自资源组102和监控程序104的存储器呼叫可经由可操作地连接到加密引擎12的专用总线(未展示)接收。由监控程序104产生的存储器存取请求可由监控程序配置接口(HV Config I/F)106接收。监控程序配置接口(HV Config I/F)106可实施在加密引擎12(例如,处理器/硬件逻辑62)内,且经配置以针对HV控制式接口实现图4中所描绘的权限方案。HV Config I/F 106允许监控程序104根据每个接口(例如,存取控制器100)设定HV_IF_Master 126和HV_DomainMask 116的值。在一实例中,存取表70表示主控器和对应的域向量78的集合。存取表70上所说明的值可实施为存取控制器100中的两个4x1多路复用器模块(展示为第一多路复用器模块128a和第二多路复用器模块128b)以及对应于接口主控器和域掩码对的位图。存取控制器100不限于四对主控器和域掩码(即,如图5中所展示,因为其它多路复用器、数据结构和存储器存取技术也可用来实施多个主控器和域掩码(例如,4个、8个、11个、16个,等等))。多路复用器模块经配置以从资源组102接收输入信号,且确定主控器接口和对应的域掩码。四个域掩码可包含专用处理器域掩码(SP_DomainMask)110、信任区域域掩码(TZ_DomainMask)112、调制解调器域掩码(MSA_DomainMask)114和监控程序域掩码(HV_DomainMask)116。四个主控器接口可包含安全处理器主控器接口(SP_IF_Master)120、信任区域主控器接口(TZ_IF_Master)122、调制解调器主控器接口(MSA_IF_Master)124和监控程序主控器接口(HV_IF_Master)126。HV ConfigI/F 106针对监控程序104拥有的每个接口配置HV_IF_Master 126和HV_DomainMask 116。例如,在基于SMMU的架构中,SMMU可包含流映射表。HV Config I/F经配置以使SMMU流映射表与对应的域掩码匹配(即,权限由如图4中所描绘的监控程序进行管理)。
在操作中,资源组102和/或监控程序104可将命令提供到加密引擎12。命令包含关于呼叫方的身份的信息(例如,指定位、MID、VMID)。命令被提供到多路复用器模块128a、128b,且由所述多路复用器模块128a、128b处理以确定事务所有者140。事务所有者130包含如由第二多路复用器模块128b输出的事务主控器接口(Trans_IF_Master)130,以及如由第一多路复用器模块128a输出的事务域掩码(Trans_DomainMask)136。事务所有者信息可存储在内部存储器64中。加密引擎12经配置以用循序命令检测接口所有权变化。在一实施例中,加密引擎12包含比较器电路132,所述比较器电路132经配置以执行事务所有者140与当前所有者142的比较。当前所有者142包含IF_Master字段134和DomainMask字段138。如将描述,当前所有者142可以是先前命令的事务所有者,且存储在内部存储器64中。比较器电路132将Trans_IF_Master 130的值与IF_Master字段134的值进行比较。如果Trans_IF_Master 130与IF_Master字段134的值不相等,那么检测到接口所有权变化事件。当发生接口所有权变化事件时,加密引擎12经配置以将事务所有者140复制为当前所有者142(即,设定IF_Master 134=Trans_IF_Master 130且DomainMask 138=Trans_DomainMask 136)。如果当前所有者142是与密钥组接口相关联的密钥组所有者,那么加密引擎12将使密钥组中的所有密钥失效或将其删除。由于所述失效,密钥可能不再由未来命令使用,但任何正在进行命令可持续使用旧密钥。如果当前所有者142是与命令信道接口相关联的数据所有者,那么加密引擎12经配置以在命令正在运行的同时锁定命令信道。仅当先前命令完成时才批准新命令。所有权变化事件在发生存取时产生,且并不取决于MPU或HV被配置的时间。检测所有权变化事件由于使加密引擎能够在不进行进一步配置的情况下适应于事务而实现适应性存取控制。在此适应性控制解决方案中,HW块保持打开且将安全地适应于对其进行存取的主控器,而不是将接口锁定到一个所有者(即,如在SMMU或MPU解决方案中)。这减少了与基于MPU的解决方案中的锁定接口相关联的复杂度(例如,同步化、由于使接口保持打开而造成的潜在安全漏洞)。
参考图6,同时进一步参考图1到5,提供硬件块的适应性存取控制的过程150包含所展示的阶段。然而,过程150仅为实例,且并非限制性的。可例如通过添加、移除、重新布置、组合、同时执行多个阶段和/或将单一阶段分成多个阶段而更改过程150。为了帮助说明过程150,描述了从信任区域执行环境24接收第一存储器存取请求以及从安全处理器执行环境22接收第二存储器请求的特定实例。此实例包含未在图6中展示的操作,其中此类操作无需作为过程150的部分。在此实例中,存储器存取请求将来源于包含在公共总线(未展示)上的资源组102。EE 30中的一或多个可经由存储器保护单元(MPU)可操作地连接到公共总线。在过程150开始时,当前所有者142的初始值是信任区域接口主控器122和信任区域域掩码112(即,IF_Master 134=TZ_IF_Master 122且DomainMask 138=TZ_DomainMask 112)。存取控制器将评估第一和第二存储器存取请求以确定是否已经发生所有权变化事件。当检测到所有权变化时,存取控制器100经配置以按需要擦除、准许和/或拒绝存取。本文所论述的实例仅是实例,且不对系统10具有限制性。存储器存取命令可由执行环境30中的任一个以任何顺序发送。
在阶段152处,过程150包含在加密引擎处利用存取控制器100接收第一存取请求和第二存取请求,使得在第一存取请求之后依序接收第二存取请求,且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识。第一和第二存取请求可经由专用或公共总线到达加密引擎12。在一实例中,资源组102位于公共总线上,且第一和第二存取请求分别来自信任区域执行环境24和安全处理器执行环境22。第一和第二存取请求包含实体ID信息(例如一系列指定位)以指示主控器ID。如果存取请求来源于基于监控程序的执行环境,那么主控器ID可与机器ID(MID)或虚拟机ID(VMID)相同。多路复用器模块128a、128b接收第一和第二存取请求且分别基于包含在请求中的实体ID信息输出事务域掩码136与事务接口主控器130。当接收到第一存取请求(即,从信任区域执行环境24)后,即刻将Trans_IF_Master 130的值设定成对应于TZ_IF_Master 122的值(例如,如图4上所指示的1)。比较器电路132将Trans_IF_Master 130的值与当前所有者142(即,IF_Master 134)的值进行比较。如上文所描述,对于此实例,IF_Master 134的初始值是TZ_IF_Master 122。因此,第一存取请求的事务所有者140等于当前所有者142,且根据DomainMask 138授权存储器存取。
在阶段154处,存取控制器100经配置以确定第二主控器是否等于第一主控器。继续所述实例,加密引擎12从资源组102接收第二存取请求。第二存取请求可能已经由另一个资源组或经由监控程序104到达。第二存取请求以与第一存取请求相同的方式输入到多路复用器模块128a、128b。由于第二存取请求来源于安全处理器执行环境22,因此实体ID信息不同于第一存取请求。在此情况下,第一多路复用器模块128a将SP_DomainMask 110值输出到事务所有者140(即,Trans_DomainMask 136=SP_DomainMask 110),且第二多路复用器模块128b将SP_IF_Master 120值(例如,根据图4为3)输出到事务所有者(即,Trans_IF_Master 130=SP_IF_Master 120)。比较器电路132将Trans_IF_Master 130的值(例如,3)与IF_Master 134的值(例如,1)进行比较。在此情况下,由于第二主控器不等于第一主控器,因此确定所有权变化。
在阶段156处,加密引擎12经配置以在第二主控器标识等于第一主控器标识的情况下提供对第二存取请求的存取,其中所述第一主控器标识与一或多个硬件块接口值相关联。比较器电路132将Trans_IF_Master 130的值与当前所有者142(即,IF_Master 134)的值进行比较。如果所述值相等(即,所有权未改变),那么加密引擎12根据DomainMask 138提供对硬件块的存取。例如,如果当前所有者142指示当前主控器(即,IF_Master)是信任区域执行环境24(即,TZ_IF_Master),那么加密引擎12将基于当前域掩码(即,DomainMask 138)允许存取硬件块。可通过一或多个硬件块接口实现存取。在此实例中,以下域由图4上的“+”指示为与信任区域主控器相关联:推迟域(0)、信任区域(1)、HV(4)、视频(5)、音频(6)、企业(7)和HLOS(8)。
在阶段158处,加密引擎12经配置以在第一主控器标识不等于第一主控器标识的情况下擦除与第一主控器标识相关联的硬件块接口值或使其失效。继续以上实例,从安全处理器执行环境22接收第二存取请求。第二多路复用器模块128b从资源组102接收第二存取请求,且基于包含在第二存取请求中的ID信息输出SP_IF_Master 120值。将SP_IF_Master 120存储为事务所有者140(即,Trans_IF_Master 130),且将其与当前主控器(即,IF_Master 134)的值进行比较。在此实例中,当前所有者142的值是基于第一存取请求(即,TZ_IF_Master 122),因此比较器电路132确定所述值不相等。此所有权变化事件是触发项,其经配置以使加密引擎12擦除/删除当前接口所拥有的一切内容(例如,密钥、存储内容、隐私、状态、权限)/使其失效。在此实例中,使与TZ_IF_Master 122相关联的硬件接口值失效,且对与信任区域主控器(例如,推迟域(0)、信任区域(1)、HV(4)、视频(5)、音频(6)、企业(7)和HLOS(8))相关联的域的所有存取将不可由事务所有者(例如,SP_IF_Master 120)存取。
在阶段160处,加密引擎12经配置以使硬件块接口值与第二主控器标识和对应权限相关联。当前所有者142(例如,IF_Master 134和DomainMask 138)的值被设定成事务所有者140(例如,Trans_IF_Master 130和Trans_DomainMask 136)的值。继续所述实例,当前所有者142被设定成安全处理器执行环境22,且加密引擎12经配置以将权限提供给对应的域(例如,如图4中所指示-推迟域(0)、安全处理器(3)、HV(4)、视频(5)、音频(6)、企业(7)和HLOS(8))。过程150实现适应性存取控制,即,对域的存取可基于含在存取请求中的身份信息而改变。存取控制器100针对潜在所有权变化评估每个存取请求。如果事务所有者与当前所有者不相等,那么当前被存取的安全域将变得不可由事务所有者存取。此适应性方法可降低与MPU解决方案中的锁定接口相关联的复杂度。
参考图7,同时进一步参考图1到6,基于事务所有者的身份提供对受控器侧存储器资源的存取的过程180包含所展示的阶段。然而,过程180仅为实例,且并非限制性的。可例如通过添加、移除、重新布置、组合、同时执行多个阶段和/或将单一阶段分成多个阶段而更改过程180。
在阶段182处,存取控制器100经配置以从主控器侧实体接收存储器存取命令。存取控制器100可驻留在加密引擎12内,且可利用处理器/硬件逻辑62和内部存储器64作为接收存取命令的装置。存取命令可经由与例如资源组102或监控程序104相关联的专用或公共总线到达,且将包含用以识别主控器侧实体的信息(例如,指定位、MID、VMID)。
在阶段184处,存取控制器100经配置以确定当前存取所有者。内部存储器64可包含一或多个寄存器,所述一或多个寄存器经配置以存储当前存取所有者信息(例如,当前所有者变量)。当前存取所有者信息与当前正存取受控器侧存储器资源的主控器实体相关联。例如,当前存取所有者信息可基于执行环境30的MID或VMID,且ID信息可存储在内部存储器64中。处理器/硬件逻辑62可以是用以读取内部存储器且确定当前所有者的装置。
在阶段186处,存取控制器100经配置以确定主控器侧实体是否是当前存取所有者。在一实例中,当前存取所有者是基于存储在内部存储器64中的ID值,且存储器存取命令包含对应于主控器侧实体的ID信息。存取控制器100可利用比较器电路132作为用于确定主控器侧实体是否是当前所有者的装置。即,比较器电路132可将与在阶段182处接收的存储器存取命令中的主控器侧实体相关联的ID信息与在阶段184处存储的当前存取所有者信息进行比较。如果主控器侧实体是当前存取所有者,那么过程180继续到阶段196。否则,过程进行到阶段188。
在阶段196处,加密引擎12经配置以基于与主控器侧实体相关联的域掩码处理所接收的存储器存取命令。处理器/硬件逻辑62和加密引擎12内的对应存取表70值(例如,如存储在ROM中或者硬编码在存储器单元中的RTL)可配置为用以基于与主控器侧实体相关联的域掩码处理存储器存取命令的装置。例如,参考图4,概念性MDT 68可包含存取表70的至少一部分。域条目74与其对应主控器接口72相关联。加密引擎12经配置以基于存取表70授权或拒绝存取。在主控器侧实体与监控程序104相关联的情况下,HV Config I/F 106是用于管理存取表70中指示的权限的装置。HV Config I/F 106可提供HV_DomainMask 116作为到第一多路复用器模块128a的输入,且提供HV_IF_Master 126作为到第二多路复用器模块128b的输入。因此,这些值可用作事务所有者140(例如,Trans_IF_Master 130、Trans_DomainMask 136)和当前所有者142(例如,IF_Master 134、DomainMask 138)且可供用于如先前所描述的比较器电路132。在一实例中,监控程序控制可经由可由监控程序104存取的一组寄存器或存储器空间实施。域向量(例如,域掩码)包含为所述空间的部分。监控程序104可通过提前配置主控器的域掩码来管理其监督的主控器权限,使得硬件在随后由这些主控器存取时可依据所述配置而起作用。
在阶段188处,如果主控器侧实体不是当前所有者(即,存在所有权变化事件),那么加密引擎12经配置以使所有现有密钥失效。加密引擎12可使密钥组中的密钥失效,使得密钥将不会对未来命令有效。处理器/硬件逻辑62和内部存储器64可以是使现有密钥失效的装置。
在阶段190处,存取控制器100经配置以确定与主控器侧实体相关联的域掩码。存储器存取命令包含识别主控器侧实体的信息(即,指定位、MID、VMID),且多路复用器模块128a、128b可以是基于身份信息确定域掩码的装置。例如,多路复用器模块128a、128b可从资源组102接收存储器存取命令,且输出域掩码ID或者加密引擎12可用来指派域向量的其它信息。在一实例中,域向量可对应于存取表70中的域值而包含值1和0。从第一多路复用器模块128a输出的域掩码信息可存储在内部存储器64中作为事务域掩码变量(例如,Trans_DomainMask 136)。
在阶段192处,加密引擎12经配置以处理所接收的存储器存取命令。存取控制器100确定与主控器侧实体相关联的域掩码,且可基于域掩码批准新命令。这允许加密引擎12成为用于以适应性方式处理所接收的存储器存取命令的装置。即,加密引擎12可在不对MPU(即,在先前受控器侧解决方案中)或SMMU(即,在先前主控器侧解决方案中)进行另外配置的情况下适应于事务。在阶段194处,存取控制器100可将当前所有者变量设定成与主控器侧实体相关联的标识信息的值。处理器/硬件逻辑62和内部存储器64可以是将当前所有者142的值设定成等于事务所有者140(即,主控器侧实体)的值的装置。
其它实例和实施方案在本发明和所附权利要求书的范围和精神内。例如,归因于软件的性质,上文所描述的功能可使用由处理器、硬件、固件、硬连线或这些中的任何者的组合执行的软件实施。实施功能的特征也可物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。而且,如本文中所使用,包含在权利要求书中,如在以“……中的至少一个”为开始的项目列表中所使用的“或”指示分离性列表,使得例如“A、B或C中的至少一个”的列表表示单独A或单独B或单独C,或AB或AC或BC或ABC(即,A和B和C),或具有多于一个相同特征的组合(例如,AA、AAB、ABBC等)。
如本文中所使用,包含在权利要求书中,除非另有陈述,否则功能或操作是“基于“项目或条件的声明意指所述功能或操作是基于所陈述的项目或条件且可基于除了所陈述的项目或条件之外的一或多个项目和/或条件。
此外,将信息发送或发射“到”实体的指示或将信息发送或发射“到”实体的陈述不需要完成通信。此类指示或陈述包含信息从发送实体传送,但不到达信息的既定接收方。即使实际上未接收信息,既定接收方仍可被称为接收实体,例如,接收执行环境。
可根据具体要求作出实质性变化。例如,还可能使用定制硬件,和/或可将特定元件实施于硬件、软件(包含便携式软件,例如小程序等)或两者中。此外,可使用到其它计算装置(例如网络输入/输出装置)的连接。
如本文中所使用,术语“机器可读媒体”和“计算机可读媒体”指代参与提供致使机器以特定方式操作的数据的任何媒体。使用计算机系统,各种计算机可读媒体可涉及将指令/代码提供到处理器以用于执行,和/或可用于存储和/或携载此类指令/代码(例如,作为信号)。在许多实施方案中,计算机可读媒体是物理和/或有形存储媒体。这种媒体可采用许多形式,包含但不限于非易失性媒体和易失性媒体。非易失性媒体包含例如光盘和/或磁盘。易失性媒体包含(不限于)动态存储器。
举例来说,常见形式的物理和/或有形计算机可读媒体包含软盘、软磁盘、硬盘、磁带或任何其它磁性媒体、CD-ROM、任何其它光学媒体、打孔卡、纸带、具有孔图案的任何其它物理媒体、RAM、PROM、EPROM、快闪EPROM、任何其它存储器芯片或盒带、如下文所描述的载波,或计算机可从中读取指令和/或代码的任何其它媒体。
在将一或多个指令的一或多个序列载运到一或多个处理器以供执行的过程中可涉及各种形式的计算机可读媒体。仅举例来说,最初可将指令携载于远程计算机的磁盘和/或光盘上。远程计算机可将指令载入到其动态存储器中,且经由发射媒体将指令作为信号进行发送以由计算机系统接收和/或执行。
上文所论述的方法、系统和装置为实例。各种配置可按需要省略、取代或添加各种程序或组件。举例来说,在替代配置中,方法可以不同于所描述的次序来执行,且可添加、省略或组合各种步骤。而且,可以各种其它配置组合关于某些配置所描述的特征。可以类似方式组合配置的不同方面和元件。而且,技术发展,且因此元件中的许多为实例且并不限制本发明或权利要求的范围。
在描述中给出特定细节以提供对实例配置(包含实施方案)的透彻理解。然而,可在并无这些特定细节的情况下实践配置。举例来说,已在并无不必要细节的情况下展示熟知电路、过程、算法、结构和技术以便避免混淆配置。此描述仅提供实例配置,且并不限制权利要求的范围、适用性或配置。实际上,所述配置的前文描述提供用于实施所描述的技术的描述。在不脱离本发明的精神或范围的情况下,可对元件的功能和布置作出各种改变。
而且,可将配置描述为描绘为流程图或框图的过程。尽管每一流程图或框图可将操作描述为循序过程,但许多操作可并行地或同时地执行。此外,操作的次序可重新布置。过程可具有图中未包含的额外阶段或功能。此外,方法的实例可由硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合实施。当以软件、固件、中间件或微码实施时,执行任务的程序代码或代码段可存储在例如存储媒体的非暂时性计算机可读媒体中。处理器可执行所描述的任务。
图中展示和/或本文中论述为相互连接或通信的功能性或其它组件以通信方式耦合。即,其可直接或间接地连接以实现其间的通信。
在已描述若干实例配置之后,可在不脱离本发明的精神的情况下使用各种修改、替代性构造和等效物。举例来说,以上元件可为较大系统的组件,其中其它规则可优先于本发明的应用或以其它方式修改本发明的应用。而且,可在考虑以上元件之前、期间或之后进行许多操作。因此,上文描述并不约束权利要求书的范围。
此外,可揭示多于一个发明。

Claims (44)

1.一种提供对计算机系统上的硬件块的适应性存取的方法,其包括:
利用存取控制器接收第一存取请求和第二存取请求,其中在所述第一存取请求之后依序接收所述第二存取请求,并且所述第一存取请求包含第一主控器标识且所述第二存取请求包含第二主控器标识;
确定所述第二主控器标识是否等于所述第一主控器标识;
如果所述第二主控器标识等于所述第一主控器标识,那么提供对所述第二存取请求的存取,其中所述第一主控器标识与一或多个硬件块接口值相关联;
如果所述第二主控器标识不等于所述第一主控器标识,那么使与所述第一主控器标识相关联的所述一或多个硬件块接口值失效;以及
使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联。
2.根据权利要求1所述的方法,其中从所述计算机系统中的公共总线接收所述第一存取请求和所述第二存取请求。
3.根据权利要求1所述的方法,其中所述第一主控器标识或所述第二主控器标识中的一或两个与监控程序控制式接口相关联。
4.根据权利要求1所述的方法,其中从由以下组成的组中的一或多个执行环境接收所述第一存取请求和所述第二存取请求:信任区域执行环境、安全处理器执行环境、调制解调器和监控程序执行环境。
5.根据权利要求1所述的方法,其中所述第一主控器标识是第一虚拟机标识值,并且所述第二主控器标识是第二虚拟机标识值。
6.一种基于主控器侧实体的身份提供对受控器侧存储器资源的存取的方法,其包括:
确定当前存取所有者;
从所述主控器侧实体接收存储器存取命令;
如果所述主控器侧实体是所述当前存取所有者,那么基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令;
如果所述主控器侧实体并不是所述当前存取所有者,那么
使所有现有密钥失效;
确定与所述主控器侧实体相关联的所述域掩码;
基于与所述主控器侧实体相关联的所述域掩码处理所述存储器存取命令;以及
将所述当前存取所有者设定为等于所述主控器侧实体。
7.根据权利要求6所述的方法,其中所述主控器侧实体是监控程序。
8.根据权利要求7所述的方法,其中所述存储器存取命令包含监控程序机器身份HVID值。
9.根据权利要求6所述的方法,其中从存储器保护单元MPU的资源组接收所述存储器存取命令。
10.根据权利要求6所述的方法,其中所述存储器存取命令包含机器身份MID值。
11.根据权利要求10所述的方法,其中确定与所述主控器侧实体相关联的所述域掩码包含:将所述MID值提供到一或多个多路复用器模块以及从所述一或多个多路复用器模块接收域标识。
12.一种用于提供对计算机系统上的硬件块的适应性存取的系统,其包括:
存储器单元,其用于存储指令;以及
处理器单元,其耦合到所述存储器单元并且经配置以:
利用存取控制器接收第一存取请求和第二存取请求,其中在所述第一存取请求之后依序接收所述第二存取请求,并且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;
确定所述第二主控器标识是否等于所述第一主控器标识;
如果所述第二主控器标识等于所述第一主控器标识,那么提供对所述第二存取请求的存取,其中所述第一主控器标识与一或多个硬件块接口值相关联;
如果所述第二主控器标识不等于所述第一主控器标识,那么使与所述第一主控器标识相关联的所述一或多个硬件块接口值失效;并且
使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联。
13.根据权利要求12所述的系统,其中所述第一存取请求和所述第二存取请求是从所述计算机系统中的公共总线接收。
14.根据权利要求12所述的系统,其中所述第一主控器标识或所述第二主控器标识中的一或两个与监控程序控制式接口相关联。
15.根据权利要求12所述的系统,其中所述第一存取请求和所述第二存取请求是从由以下组成的组中的一或多个执行环境接收:信任区域执行环境、安全处理器执行环境、调制解调器和监控程序执行环境。
16.根据权利要求12所述的系统,其中所述第一主控器标识是第一虚拟机标识值,并且所述第二主控器标识是第二虚拟机标识值。
17.一种用于基于主控器侧实体的身份提供对受控器侧存储器资源的存取的系统,其包括:
存储器单元,其用于存储指令;以及
处理器单元,其耦合到所述存储器单元并且经配置以:
确定当前存取所有者;
从所述主控器侧实体接收存储器存取命令;
如果所述主控器侧实体是所述当前存取所有者,那么基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令;
如果所述主控器侧实体并不是所述当前存取所有者,那么
使所有现有密钥失效;
确定与所述主控器侧实体相关联的所述域掩码;
基于与所述主控器侧实体相关联的所述域掩码处理所述存储器存取命令;以及
将所述当前存取所有者设定为等于所述主控器侧实体。
18.根据权利要求17所述的系统,其中所述主控器侧实体是监控程序。
19.根据权利要求18所述的系统,其中所述存储器存取命令包含监控程序机器身份HVID值。
20.根据权利要求17所述的系统,其中所述存储器存取命令是从存储器保护单元MPU的资源组接收。
21.根据权利要求17所述的系统,其中所述存储器存取命令包含机器身份MID值。
22.根据权利要求21所述的系统,其中所述处理器单元经配置以将所述MID值提供到一或多个多路复用器模块,并且从所述一或多个多路复用器模块接收域标识。
23.一种用于提供对计算机系统上的硬件块的适应性存取的设备,其包括:
用于利用存取控制器接收第一存取请求和第二存取请求的装置,其中所述第二存取请求是在所述第一存取请求之后依序接收,并且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;
用于确定所述第二主控器标识是否等于所述第一主控器标识的装置;
用于在所述第二主控器标识等于所述第一主控器标识的情况下提供对所述第二存取请求的存取的装置,其中所述第一主控器标识与一或多个硬件块接口值相关联;
用于在所述第二主控器标识不等于所述第一主控器标识的情况下使与所述第一主控器标识相关联的所述一或多个硬件块接口值失效的装置;以及
用于使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联的装置。
24.根据权利要求23所述的设备,其中所述第一存取请求和所述第二存取请求是从所述计算机系统中的公共总线接收。
25.根据权利要求23所述的设备,其中所述第一主控器标识或所述第二主控器标识中的一或两个与监控程序控制式接口相关联。
26.根据权利要求23所述的设备,其中所述第一存取请求和所述第二存取请求是从由以下组成的组中的一或多个执行环境接收:信任区域执行环境、安全处理器执行环境、调制解调器和监控程序执行环境。
27.根据权利要求23所述的设备,其中所述第一主控器标识是第一虚拟机标识值,并且所述第二主控器标识是第二虚拟机标识值。
28.一种用于基于主控器侧实体的身份提供对受控器侧存储器资源的存取的设备,其包括:
用于确定当前存取所有者的装置;
用于从所述主控器侧实体接收存储器存取命令的装置;
用于在所述主控器侧实体是所述当前存取所有者的情况下基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令的装置;
如果所述主控器侧实体并不是所述当前存取所有者,那么
用于使所有现有密钥失效的装置;
用于确定与所述主控器侧实体相关联的所述域掩码的装置;
用于基于与所述主控器侧实体相关联的所述域掩码处理所述存储器存取命令的装置;以及
用于将所述当前存取所有者设定为等于所述主控器侧实体的装置。
29.根据权利要求28所述的设备,其中所述主控器侧实体是监控程序。
30.根据权利要求29所述的设备,其中所述存储器存取命令包含监控程序机器身份HVID值。
31.根据权利要求28所述的设备,其中所述存储器存取命令是从存储器保护单元MPU的资源组接收。
32.根据权利要求28所述的设备,其中所述存储器存取命令包含机器身份MID值。
33.根据权利要求32所述的设备,其中确定与所述主控器侧实体相关联的所述域掩码包含用于将所述MID值提供到一或多个多路复用器模块的装置以及用于从所述一或多个多路复用器模块接收域标识的装置。
34.一种非暂时性处理器可读存储媒体,其包括用于提供对计算机系统上的硬件块的适应性存取的指令,所述指令包括:
用于利用存取控制器接收第一存取请求和第二存取请求的代码,其中所述第二存取请求是在所述第一存取请求之后依序接收,并且所述第一存取请求包含第一主控器标识,且所述第二存取请求包含第二主控器标识;
用于确定所述第二主控器标识是否等于所述第一主控器标识的代码;
用于在所述第二主控器标识等于所述第一主控器标识的情况下提供对所述第二存取请求的存取的代码,其中所述第一主控器标识与一或多个硬件块接口值相关联;
用于在所述第二主控器标识不等于所述第一主控器标识的情况下使与所述第一主控器标识相关联的所述一或多个硬件块接口值失效的代码;以及
用于使所述一或多个硬件块接口值与所述第二主控器标识和对应权限相关联的代码。
35.根据权利要求34所述的非暂时性处理器可读存储媒体,其中所述第一存取请求和所述第二存取请求是从所述计算机系统中的公共总线接收。
36.根据权利要求34所述的非暂时性处理器可读存储媒体,其中所述第一主控器标识或所述第二主控器标识中的一或两个与监控程序控制式接口相关联。
37.根据权利要求34所述的非暂时性处理器可读存储媒体,其中所述第一存取请求和所述第二存取请求是从由以下组成的组中的一或多个执行环境接收:信任区域执行环境、安全处理器执行环境、调制解调器和监控程序执行环境。
38.根据权利要求34所述的非暂时性处理器可读存储媒体,其中所述第一主控器标识是第一虚拟机标识值,并且所述第二主控器标识是第二虚拟机标识值。
39.一种非暂时性处理器可读存储媒体,其包括用于基于主控器侧实体的身份提供对受控器侧存储器资源的存取的指令,所述指令包括:
用于确定当前存取所有者的代码;
用于从所述主控器侧实体接收存储器存取命令的代码;
用于在所述主控器侧实体是所述当前存取所有者的情况下基于与所述主控器侧实体相关联的域掩码处理所述存储器存取命令的代码;
如果所述主控器侧实体并不是所述当前存取所有者,那么
用于使所有现有密钥失效的代码;
用于确定与所述主控器侧实体相关联的所述域掩码的代码;
用于基于与所述主控器侧实体相关联的所述域掩码处理所述存储器存取命令的代码;以及
用于将所述当前存取所有者设定为等于所述主控器侧实体的代码。
40.根据权利要求39所述的非暂时性处理器可读存储媒体,其中所述主控器侧实体是监控程序。
41.根据权利要求40所述的非暂时性处理器可读存储媒体,其中所述存储器存取命令包含监控程序机器身份HVID值。
42.根据权利要求39所述的非暂时性处理器可读存储媒体,其中所述存储器存取命令是从存储器保护单元MPU的资源组接收。
43.根据权利要求39所述的非暂时性处理器可读存储媒体,其中所述存储器存取命令包含机器身份MID值。
44.根据权利要求43所述的非暂时性处理器可读存储媒体,其中所述用于确定与所述主控器侧实体相关联的所述域掩码的代码包含用于将所述MID值提供到一或多个多路复用器模块的代码以及用于从所述一或多个多路复用器模块接收域标识的代码。
CN201680011363.2A 2015-03-04 2016-02-05 对硬件块的适应性存取控制 Expired - Fee Related CN107408096B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/638,669 2015-03-04
US14/638,669 US9767063B2 (en) 2015-03-04 2015-03-04 Adaptive access control for hardware blocks
PCT/US2016/016688 WO2016140766A1 (en) 2015-03-04 2016-02-05 Adaptive access control for hardware blocks

Publications (2)

Publication Number Publication Date
CN107408096A true CN107408096A (zh) 2017-11-28
CN107408096B CN107408096B (zh) 2020-01-07

Family

ID=55453273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680011363.2A Expired - Fee Related CN107408096B (zh) 2015-03-04 2016-02-05 对硬件块的适应性存取控制

Country Status (5)

Country Link
US (2) US9767063B2 (zh)
EP (1) EP3265952B1 (zh)
JP (1) JP2018507486A (zh)
CN (1) CN107408096B (zh)
WO (1) WO2016140766A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113227983A (zh) * 2018-12-20 2021-08-06 Ati科技无限责任公司 将虚拟功能的微代码存储在受信任存储器区域中
CN113821821A (zh) * 2021-11-24 2021-12-21 飞腾信息技术有限公司 安全架构系统、安全架构系统的密码运算方法和计算设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767063B2 (en) 2015-03-04 2017-09-19 Qualcomm Incorporated Adaptive access control for hardware blocks
US10176019B2 (en) 2015-03-19 2019-01-08 International Business Machines Corporation Dynamic management of computing platform resources
US10243873B2 (en) 2015-03-19 2019-03-26 International Business Machines Corporation Dynamic management of computing platform resources
US10228978B2 (en) 2015-03-19 2019-03-12 International Business Machines Corporation Dynamic management of computing platform resources
US10223146B2 (en) * 2016-07-26 2019-03-05 International Business Machines Corporation Rearrangement management for a shared pool of configurable computing resources
US20180075258A1 (en) * 2016-09-14 2018-03-15 Freescale Semiconductor, Inc. Systems and methods for dynamically assigning domain identifiers for access control
US10628611B2 (en) * 2016-11-04 2020-04-21 Qualcomm Incorporated Exclusive execution environment within a system-on-a-chip computing system
US10120786B2 (en) * 2016-12-13 2018-11-06 Sap Se Programmatic access control validation
EP4155957A1 (en) * 2021-09-22 2023-03-29 Thales Dis France SAS Method for managing access by a thread to a slave device

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013398A (zh) * 2006-01-30 2007-08-08 国际商业机器公司 数据处理系统和方法
CN101178692A (zh) * 2006-10-31 2008-05-14 惠普开发有限公司 用于提供事务处理存储器的高速缓冲存储器系统和方法
US20100325454A1 (en) * 2009-06-23 2010-12-23 Hewlett-Packard Development Company, L.P. Resource and Power Management Using Nested Heterogeneous Hypervisors
US20120047576A1 (en) * 2010-08-18 2012-02-23 Southwest Research Institute Hardware-Implemented Hypervisor for Root-of-Trust Monitoring and Control of Computer System
US20120102564A1 (en) * 2010-10-25 2012-04-26 Openpeak Inc. Creating distinct user spaces through mountable file systems
US8429276B1 (en) * 2010-10-25 2013-04-23 Juniper Networks, Inc. Dynamic resource allocation in virtual environments
US8677359B1 (en) * 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use
US8868710B2 (en) * 2011-11-18 2014-10-21 Amazon Technologies, Inc. Virtual network interface objects

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767063B2 (en) 2015-03-04 2017-09-19 Qualcomm Incorporated Adaptive access control for hardware blocks

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013398A (zh) * 2006-01-30 2007-08-08 国际商业机器公司 数据处理系统和方法
CN101178692A (zh) * 2006-10-31 2008-05-14 惠普开发有限公司 用于提供事务处理存储器的高速缓冲存储器系统和方法
US20100325454A1 (en) * 2009-06-23 2010-12-23 Hewlett-Packard Development Company, L.P. Resource and Power Management Using Nested Heterogeneous Hypervisors
US20120047576A1 (en) * 2010-08-18 2012-02-23 Southwest Research Institute Hardware-Implemented Hypervisor for Root-of-Trust Monitoring and Control of Computer System
US20120102564A1 (en) * 2010-10-25 2012-04-26 Openpeak Inc. Creating distinct user spaces through mountable file systems
US8429276B1 (en) * 2010-10-25 2013-04-23 Juniper Networks, Inc. Dynamic resource allocation in virtual environments
US8868710B2 (en) * 2011-11-18 2014-10-21 Amazon Technologies, Inc. Virtual network interface objects
US8677359B1 (en) * 2013-03-14 2014-03-18 Joyent, Inc. Compute-centric object stores and methods of use

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113227983A (zh) * 2018-12-20 2021-08-06 Ati科技无限责任公司 将虚拟功能的微代码存储在受信任存储器区域中
CN113227983B (zh) * 2018-12-20 2022-11-22 Ati科技无限责任公司 将虚拟功能的微代码存储在受信任存储器区域中
CN113821821A (zh) * 2021-11-24 2021-12-21 飞腾信息技术有限公司 安全架构系统、安全架构系统的密码运算方法和计算设备
CN113821821B (zh) * 2021-11-24 2022-02-15 飞腾信息技术有限公司 安全架构系统、安全架构系统的密码运算方法和计算设备

Also Published As

Publication number Publication date
EP3265952B1 (en) 2018-08-29
US20170249183A1 (en) 2017-08-31
US20160259750A1 (en) 2016-09-08
CN107408096B (zh) 2020-01-07
JP2018507486A (ja) 2018-03-15
EP3265952A1 (en) 2018-01-10
US9767063B2 (en) 2017-09-19
WO2016140766A1 (en) 2016-09-09
US10176139B2 (en) 2019-01-08

Similar Documents

Publication Publication Date Title
CN107408096A (zh) 对硬件块的适应性存取控制
CN110268691B (zh) 具有经验证的区块链和共识协议的联盟区块链网络
US10454910B2 (en) Management apparatus, computer program product, system, device, method, information processing apparatus, and server
US9977922B2 (en) Multi-tier storage based on data anonymization
US11042652B2 (en) Techniques for multi-domain memory encryption
CA3176858A1 (en) Data processing method and system
CN109587106A (zh) 密码分区的云中的跨域安全性
US20220329446A1 (en) Enhanced asset management using an electronic ledger
US11861027B2 (en) Enhanced securing of data at rest
US20200034545A1 (en) Information provision device, information provision system, information provision method, and program
US9497026B2 (en) Authorizing removable medium access
US20230094541A1 (en) Dynamic encryption/decryption of genomic information
US20210142319A1 (en) Systems and methods for distributed data mapping
WO2022206453A1 (zh) 提供跨链隐私数据的方法和装置
CN107209843A (zh) 安全执行环境通信
JP5443236B2 (ja) 分散型データベースシステム
US10169563B2 (en) Encryption authorization dongle having volatile memory
CN109684860A (zh) 一种基于业务关系的数据加密方法及装置
CN116881973B (zh) 一种基于多数据源的金融隐私数据可信计算方法及系统
CN117828565A (zh) 基于堡垒机的资源处理方法、装置和计算机设备
CN115760132A (zh) 资源交互方法、装置、计算机设备和存储介质
CN117459327A (zh) 一种云数据透明加密保护方法、系统及装置
NZ758353B2 (en) Anti-cd3 antibodies and methods of use

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200107

Termination date: 20220205

CF01 Termination of patent right due to non-payment of annual fee