CN101281506A - 数据处理系统内基于存储器域的安全控制 - Google Patents

数据处理系统内基于存储器域的安全控制 Download PDF

Info

Publication number
CN101281506A
CN101281506A CNA200810091318XA CN200810091318A CN101281506A CN 101281506 A CN101281506 A CN 101281506A CN A200810091318X A CNA200810091318X A CN A200810091318XA CN 200810091318 A CN200810091318 A CN 200810091318A CN 101281506 A CN101281506 A CN 101281506A
Authority
CN
China
Prior art keywords
territory
access control
operating system
data
control data
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
CNA200810091318XA
Other languages
English (en)
Other versions
CN101281506B (zh
Inventor
D·克肖
S·D·比尔斯
R·R·格里森思怀特
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.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN101281506A publication Critical patent/CN101281506A/zh
Application granted granted Critical
Publication of CN101281506B publication Critical patent/CN101281506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

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

Abstract

由存储器访问控制电路使用访问控制数据来控制对存储器地址空间的访问。由域控制电路来控制更改访问控制数据的能力。作为一组存储器地址的特定域内存储的指令是否能够修改访问控制数据取决于相应的域。因此,更改访问控制数据的能力可以限于存储器地址空间内特定定义的位置内存储的指令,从而增强了安全。此能力使系统能够这样来提供,其中可以强制经由调用转发代码对操作系统进行调用转发,以及其中可以建立存储器地址空间的可信区域,安全操作系统可以在置信度提高情况下将数据写到该可信区域,置信度提高的情况下该数据仅可被非安全操作系统的控制下执行的可信软件访问。

Description

数据处理系统内基于存储器域的安全控制
技术领域
本发明涉及数据处理系统的领域。更具体地来说,本发明涉及具有安全机制的数据处理系统,安全机制根据访问控制数据来控制对给定存储器地址的访问。
背景技术
公知有一些数据处理系统,其中使用存储器访问控制电路根据访问控制数据来控制是否允许对给定存储器地址的访问。例如,一些公知系统(例如英国剑桥的ARM有限公司提供的ARM处理器)提供特权模式操作和用户模式操作,可以通过访问控制数据来定义存储器地址区域,以便仅在以操作的特权模式来操作时才可访问它们。其他公知的计算机系统实现硬件能力列表,从而能够基于逐个资源或逐个应用来授予访问关键CPU控制资源的能力。此类系统使用分区的存储器系统来支持多用户操作系统和实现许可权分级结构,这类似于上文论述的用户/特权分离但与之相比具有更精细粒度以及提供对一种虚拟寻址形式的支持。此类计算机体系结构的论述可以参见Henry MLevy所著的“基于能力的计算机系统”(″Capability-Based ComputerSystems″by Henry M Levy,Digital Equipment Corporation,1984)。
能够灵活地对访问控制数据编程以供存储器访问控制电路使用是人所期望的,因为这样可使硬件能够配合经过访问控制数据的必要编程的多种不同软件来使用。但是,此类系统中的重大弱点是非授权代码更改访问控制数据,从而提供对给定存储器地址的非期望访问。当以特权模式操作时,访问通常对系统的所有部分均是可用的。在用户模式中,可能需要调用特权模式中的服务,此服务由特权模式代码提供。进入特权模式通过异常矢量来执行,并对其进行严格控制。
解决上述问题的一种方式是提供例如由英国剑桥的ARM有限公司的一些处理器提供的信任区(TrustZone)功能(可以将其视为额外的特权层)那样的机制。这些处理器提供操作的安全状态,并能够将更改存储器访问控制数据的能力限制于在安全状态内进行的操作,然后严密地控制能够在安全状态中操作的代码以及能够实施进出安全状态的方式。虽然此类机制能够提供高度安全,但是它们在安全状态中操作的适合的软件代码的编写方面通常需要大量投入,以使软件代码具有适宜地控制操作的非安全状态的大量不同方面的能力。此外,随着在安全状态中执行的代码变得更大、更复杂且更具能力,通常它本身也变得更易于遭受安全问题。作为普遍性原理,小且简单的代码更安全且更少有可能性包含随着代码复杂性的增加而无意地引入的安全弱点。
发明内容
从本发明的一个方面来看,本发明提供用于处理数据的设备,所述设备包括:
可利用存储器地址来寻址的存储器,该存储器地址具有存储器地址空间内的值,所述存储器地址空间具有多个域,域包含一组存储器地址且每个存储器地址属于至少一个域;
耦合到所述存储器的处理电路,该处理电路响应与相应存储器地址关联的一系列程序指令来执行数据处理操作;
耦合到所述存储器和所述处理电路的至少其中之一的存储器访问控制电路,所述存储器访问控制电路响应用于所述存储器地址空间的不同区域的访问控制数据来控制所述处理电路是否能访问给定存储器地址;以及
耦合到所述处理电路的域控制电路,该域控制电路响应将要处理的指令的存储器地址与所述多个域的哪个域关联来控制所述指令是否能够更改所述访问控制数据。
本发明认识到可以通过仍使用存储器访问控制电路响应访问控制数据,但是根据试图更改访问控制数据的指令所存储在的域(一组存储器地址,连续的或非连续的)来限制更改该访问控制数据的能力来实现整体安全性的提高同时无需附加的开销和重新编程(例如代码的分区、写特殊目的的代码、写安全状态代码等)。相对地约束正在执行的整个软件内合法预设为能够更改访问控制数据的位置,并相应地将域控制电路安排成将更改访问控制数据的能力限制于从这些相对较小区域内执行的代码。例如,系统设计人员能够建立系统内指令将开始执行来试图更改访问控制数据的唯一合法位置是从操作系统内核代码内开始。因此,将由域控制电路来阻止存储在系统内其他位置的非授权软件更改访问控制数据,相应地存储器访问控制电路仍可以基于合法访问控制数据来提供适合的保护。
虽然存储器访问控制电路可以根据多种系统状态参数(例如包括特定程序指令正在从哪个存储器位置开始执行)采用控制对给定存储器地址的访问的多种不同方式来操作,但是该技术更适于以多种模式操作且具有如下特点的的系统:访问控制数据根据系统操作的当前模式指定访问许可权,例如仅对特权模式进程提供对某些存储器位置的访问而对用户模式进程拒绝此类访问。
根据访问控制数据提供的访问的级别可能不相同,并且可能包括多个级别,例如无访问权、完全访问权和其他参数控制的(例如与处理模式相关的参数控制的)访问权。
还可能使用访问控制数据来控制某些指令是否能从某些域内开始执行,例如可以将哪种类型的软件中断指令(例如监视程序调用指令)用作从非安全状态到安全状态的切换的一部分。
虽然本发明技术可以在采用纯物理映射的存储器地址空间的系统内使用,但是本发明的技术也较适于采用虚拟存储器地址空间且具有如下特点的系统:具有多个域且它们是虚拟存储器地址空间内的域,以及使用存储器管理电路利用转换表数据来将虚拟存储器地址映射到物理存储器地址,该转换表数据是访问控制数据。上文论述的使用域控制电路来保护对转换表数据重新编程的能力,提供了对系统安全的显著增强同时只需相对较少地修改现有代码且能够实现后向兼容性,但是存在安全级别的降低。上文引述的转换表数据可以存储在转换表指针指定的位置处,而对转换表指针的访问由域控制电路来控制。例如,转换表数据可以存储在安全域内,并期望通过避免恶意代码能够仅指向其他位置存储的备用转换表数据来阻止安全破坏,其中备用转换表数据给予对某些存储器地址的非授权的访问权。
虽然对于域来说在能够更改访问控制数据以及其他能力方面具有固定的能力,但是当这些能力可编程时增强了系统的灵活性。因此,每个域的可编程能力可以包括指定参数的一个或多个能力,其中这些参数控制主控制电路准许或不准许从该域执行代码以更改访问控制数据所采用的方式。
可以基于逐个域提供的另一个可编程能力是域内的程序指令改动可编程能力本身的能力。以此方式,系统能够设成引导到域,该域能够以安全方式作为整体建立系统的可编程能力,然后限制将那些能力更改成其本身的能力。根据上文技术将被允许更改访问控制数据的可信软件的一个示例是操作系统的内核部分。此内核部分可以存储在具有更改访问控制数据的能力的域内,而数量上相当多以及大小上很大的操作系统的其他部分不存储在被允许更改访问控制数据的域内。因此,可以将验证并控制能够更改访问控制数据的代码的需要限制于验证和控制操作系统的内核部分,此部分相对较稳定且较小。操作系统中的大且相对频繁更改属性的其他部分不会削弱主控制电路提供的安全措施。
在上面上下文中,将认识到应用程序通常将存储在不允许更改访问控制数据的域内,因为应用程序更改访问控制数据并不是正常编程惯例;这更适合于由操作系统负责。
通过将访问控制数据设为使应用程序将无权直接读内核本身并利用此调用来对内核本身进行调用,而是通过存储在对内核具有访问权的区域存储器内的调用转发程序来进行调用,可以增强操作系统的内核的完整性。此类调用转发程序可以相对较简单,且相应地相对易于以安全方式写并检查非授权的改动。
根据其他实施例,仍视为需要保护的数据(例如能够据以制作出质量好的非授权拷贝的已解密的原版权材料)可以写到存储器的可信区域,从而可以由非安全状态内的可信软件(例如从非安全操作系统内执行的可信解压编解码器)或可信区域本身内执行的可信软件来操纵它。因此,可以实现层次化级别的安全。
从另一个方面来看,本发明提供用于处理数据的方法,所述方法包括如下步骤:
在可利用存储器地址寻址的存储器内存储程序指令,该存储器地址具有存储器地址空间内的值,所述存储器地址空间具有多个域,域包含一组存储器地址且每个存储器地址属于至少一个域;
响应与各个存储器地址关联的一系列程序指令,执行数据处理操作;
响应用于所述存储器地址空间的不同区域的访问控制数据,控制是否能够访问给定的存储器地址;以及
响应将要处理的指令的存储器地址与所述多个域的哪个域关联,控制所述指令是否能够更改所述访问控制数据。
从又一个方面来看,本发明提供一种计算机程序存储媒体,该计算机程序存储媒体存储用于根据上述技术控制要执行的程序的计算机程序。
从下文对结合附图来阅读的说明性实施例的详细描述,将显见到本发明的上述和其他目的、特征和优点。
附图说明
图1以示意图形式图示虚拟存储器地址空间与物理存储器地址空间之间的关系;
图2以示意图形式图示结合存储器访问控制电路、指令访问控制电路和域访问控制电路的数据处理系统;
图3是以示意图形式图示在从一个域移到另一个域时检查允许的分支目标指令的操作的流程图;
图4是以示意图形式图示其中使用调用转发程序来将应用程序调用转发到操作系统的内核中的系统的示图;
图5是以示意图形式图示调用转发代码的使用的流程图;
图6是以示意图形式图示在非安全状态中操作时安全操作系统可以向其中写数据以及可信程序可以从其中读数据的存储器空间的可信区域的使用的示图;
图7是以示意图形式图示使用图6所示的系统执行的一系列处理操作的流程图;以及
图8是以示意图形式图示与存储器地址空间内的不同域关联的可编程能力数据的示图。
具体实施方式
图1以示意图形式图示将虚拟存储器地址空间划分成多个存储器域(memory domain),每个域具有关联的域说明符。将看到这些域可以具有变化的大小并且可以是连续的或不连续的。还图示了与虚拟存储器地址关联的访问控制数据参数,这些访问控制数据参数指示虚拟存储器地址空间的特定区域是仅特权模式进程可访问的还是用户模式或特权模式的进程都可访问的(p=仅特权模式;u=特权模式或用户模式)。如图所示,虚拟存储器地址空间内的不同存储器地址映射到物理地址空间内的物理地址。正如本领域技术人员熟知的,多种此类映射均是可能的。虚拟至物理的映射根据转换表数据(页表数据)来执行,该转换表数据存储在存储器地址空间本身内,并且由转换表指针寄存器内存储的转换表指针指向该转换表数据。还可以提供存储器管理单元来操作此转换表数据,并将访问控制数据(例如仅特权、特权/用户数据)与不同的存储器区域关联。域说明符可以是根据ARM处理器体系结构操作的处理器提供的形式的域说明符,如英国剑桥的ARM有限公司提供的ARM体系结构参考手册(ARM ArchitectureReference Manual)中描述的。这些域说明符(例如十六个不同域说明符)已经作为在虚拟存储器地址空间内的多组不同存储器地址之间进行区分的方式来提供,该域说明符是为了实现与本发明技术目的不同的目的而被使用的。这些域说明符可以重新用于当前本发明的技术。
图2图示包括耦合到存储器6的处理器核4的数据处理系统2。存储器6提供用于存储数据和指令的以物理方式寻址的存储器地址空间。处理器核4利用虚拟存储器地址空间来执行程序指令,处理器核4内的MMU 8负责控制在虚拟地址与物理地址之间映射的进程。响应程序指令,利用包括寄存器组10、复用器12、移位器14和加法器16的数据路径来执行数据处理操作。这些数据路径部件10、12、14、16在指令解码器18生成的控制信号的控制下操作,而指令解码器18又响应指令流水线20内的指令。由指令提取单元22将指令提供到指令流水线20,指令提取单元22从存储器6检索指令。提供配置协处理器CP15 24,它包括用于配置数据处理系统2的多种配置寄存器26。可以使用经由指令提取单元22从存储器6提取的协处理器转移指令对配置寄存器26写和读。写和读此类配置寄存器26的能力被域访问控制电路所限制。域访问控制电路响应作为读从存储器管理单元8提取试图更改配置寄存器26的程序指令所起始的地址的域。此信息作为域说明符连同指令流水线20内涉及的指令被传递,直到该指令到达要执行它的点为止。配置寄存器26包括指定与存储器内的每个不同域关联的能力的可编程能力寄存器,本文稍后将对此予以描述。
从MMU 8正在使用的段描述符提取域编号,以获取所提取的指令的虚拟地址。从概念上来说,使用域编号通过查询CP15 24中驻留的适合配置寄存器(域能力描述符寄存器)26来获取提供给该域的能力。将指令、从其中提取该指令的域和提供给该域的能力的描述(直接或间接地)馈送到解码器18,解码器18确定是允许所提取的指令被执行还是应该生成异常,例如如果该指令试图写它不能写的CP15寄存器,则应该生成异常。
在一些实施例中,无需将域编号本身发送到指令解码器18-而只需发送赋予特定域的能力。但是,考虑到代码本地性的特性,一些实施例可以“缓存”域能力的本地副本-然后实现状态机来确认所提取的指令的实际域编号是否与缓存的副本的域编号匹配-如果不匹配,则将提取新的域能力。此布置可能有助于提高设计所能运行的最大频率。
也与指令流水线20、指令提取单元22和存储器管理单元8关联的是指令访问控制电路,指令访问控制电路用于提示何时在正在其中执行指令的域之间进行更改,以及如果此转换的管理被指示为强制的,则检查新域内的第一指令(或与之存在固定关系的指令)是否是允许的指令(例如一组允许的指令的其中之一)。可以将这些允许的指令选为具有如下编码,该编码对应于数据处理系统2中除指令访问控制电路之外的部件的空操作指令。域控制电路控制对配置寄存器26(包括指向转换表的指针)的访问,提供一种用于限制对存储器管理单元8采用的访问控制数据进行更改的方式。相应地,它可以阻挡暗中破坏存储器管理单元8提供的安全的非授权尝试,这种暗中破坏是通过对转换表数据指针重新编程以指向提供对某些存储器区域的非授权访问的新转换表数据来产生的。本领域技术人员将认识到图2所示的数据处理系统2通常将包括许多其他电路部件,但是为了简明起见以及它们对于理解本发明技术并非必要的,所以图2中省略了它们。
图3是以示意图形式图示指令访问控制电路的操作的流程图。在步骤28,处理等待,直到需要提取/执行下一个指令为止。在步骤28,当需要下一个指令时,从存储器6中提取下一个指令,并在步骤30从存储器管理单元8中读该下一个指令的域。步骤32确定该下一个指令的域是否与前一个指令(或在下一个指令之前的固定或可编程位置处的指令)的域相同。如果域是相同的且未进行更改,则处理进行到步骤34,其中传递下一个指令以进行后续处理。但是,如果步骤32确定域已改变,则处理进行到步骤36。
步骤36根据下一个指令的域和前一个指令的域确定所涉及的域间转换是否是要经过控制以确保目标指令是允许的目标指令的转换。因此管理域间转换的选择可以使用可编程能力寄存器来作出,其中可编程能力寄存器与每个域关联,并对每个域指示这些域中的哪个域转换到其他域要经过或不要经过允许的分支目标指令检查。如果在步骤36的确定结果是域转换不是导致分支目标指令检查的转换,则处理进行到步骤38,在步骤38,更新作为前一个域存储的域的值(以反映已发生域的变更),然后处理进行到步骤34以便如前文论述的传递下一个指令以进行后续处理。
如果步骤36的确定结果是域转换是要对其执行分支目标指令检查的转换,则处理进行到步骤40,在步骤40确定下一个指令是否是对于该下一个指令有效(active)的指令集的允许的分支目标。图2中描述的数据处理系统2可以支持多个指令集(例如ARM处理器的情况中的ARM和Thumb指令集),并且这些指令集的每一个指令集具有它自己的一组一个或多个允许的分支目标指令。不同目标指令集的允许的分支目标指令具有不同的编码。这避免了分支目标点处哪个指令集有效的任何歧义性。某些分支还可能包括作为分支指令(例如ARM/Thumb BLX)的一部分的指令集切换,以及检查允许的分支指令目标所对照的活动指令集是基于考虑要伴随分支操作的任何指令集切换时哪个指令集对于该分支目标是有效的。如果在步骤40的确定结果是下一个指令不是允许的分支目标指令,则处理进行到步骤42,其中触发访问违规响应。此访问违规响应可以采取多种不同形式,包括执行特定的访问违规响应代码、当多个域被用于更多分支目标检查时执行与其他域违规共享的域违规代码、存储器异常中止(按需要附有适合的异常代码)或未定义的指令异常。还有许多其他类型的可能访问违规响应,可以由系统设计人员来选择这些访问违规响应。特别严重的响应是将系统复位。
如果在步骤40的确定结果是下一个指令是允许的分支目标指令,则处理进行到步骤44,其中确定前一个指令是否是允许的分支指令。以此方式,可以同时检查分支指令和分支目标指令以验证自允许的指令起以及到允许的指令为止适合地进入新存储器域。将认识到如果期望的话,可以省略步骤44执行的分支指令检查的步骤。如果在步骤44执行的分支指令检查指示前一个指令不是允许的分支指令,则如前文描述的,处理进行到步骤42。如果前一个指令是允许的分支指令,则如前文描述的,处理进行到步骤38,并且更新要在将来比较时用作前一个指令的域值的值,然后传递下一个指令以进行后续处理。
图4以示意图形式图示在应用程序46与操作系统的内核48之间使用调用转发程序的系统。包括访问控制数据51的存储器管理单元数据存储在存储器地址空间内,对此访问控制数据的访问仅对内核48是允许的。这实际锁定访问控制数据51以使它不能被应用程序代码46改动或甚至不能被操作系统代码块50改动。如果在应用程序代码执行时发生存储器异常中止,则使用基于物理地址空间生成的地址来运行该存储器异常中止的异常处理,该异常处理需要执行通过访问控制数据51的页表查询,并相应地无需应用程序代码46对访问控制数据51访问。
也构成访问控制数据的一部分的是包含控制寄存器和指针54的数据元素52。二者都指向转换表数据51,并且控制和表示其他访问控制参数(例如MMU启用/禁用;转换表指针;字节排序(endianess)配置;对域的能力控制寄存器的访问;对当前选择了哪个能力控制寄存器的访问等)。在本示例中,更改访问控制数据52的能力保留给图4所示的域“0”,它包含操作系统内核48和转换表数据51。因为更改域能力的能力构成访问控制数据52的一部分,所以它保留给操作系统内核。这增加了阻挡非授权应用程序代码或构成操作系统50的块(bulk)的一部分的代码的非授权部分导致的暗中破坏的能力。
如前文论述的,应用程序代码46可能希望对内核48进行调用。为了增加内核48的安全性,访问控制数据可以配置成不提供从应用程序46执行所在的域(即域3)对内核48的访问(甚至读访问)。相应地,从应用程序46对内核48进行直接调用的任何尝试都会导致存储器异常中止,因为存储器的该区域对用户模式应用程序46的访问只会取消映射或拒绝。相应地,当应用程序代码46希望对内核48进行调用时,它首先通过对调用转发程序56进行调用来实现此调用。此调用转发程序对于应用程序46是可见的,并处于单独的域中(在本示例中为域2)。域2对内核驻留在其中的域0具有访问权,并且相应地能够将调用转发传递到内核48中,并访问内核48中期望的功能。因为调用转发程序56具有专用于此调用转发功能的相对简单的形式,所以它可以较小且容易被验证为安全而不会经过改动。因此,可以隐藏内核48操作的细节,可以将对内核的访问控制为经由授权的入口点来进行,控制上面的安全性增强的机制可以是简单的且可以采用容易检查其本身完整性的形式。
图5是以示意图形式图示上文论述的调用转发处理的流程图。此技术可以用作上文论述的分支目标指令控制的备选方式或附加方式。在步骤58,处理等待,直到有调用内核48的需要为止。在步骤60,对调用转发程序56进行调用。步骤61使用调用转发代码的能力来写访问控制数据以改动此数据,以便使内核代码可见。在步骤62,调用转发程序56代表应用程序代码46来对内核48进行调用。当转移回去时,在跳回到用户代码之前,内核转到调用转发代码,这样就使内核代码不可见。
图6是以示意图形式图示操作系统的示图,该操作系统包括在安全状态中操作的安全操作系统64和在非安全状态中操作的非安全操作系统66、68。安全状态和非安全状态是根据英国剑桥ARM有限公司制造的处理器的信任区体系结构和机制来提供的。对于安全物理地址空间和非安全物理地址空间的每个物理地址空间,将虚拟存储器地址空间70划分成多个域。域0包含非安全操作系统的内核66和存储器72的可信区域。如前文论述的,非安全操作系统的内核66负责控制访问控制数据74。此访问控制数据74控制哪个特权级别以及哪个域能够访问哪个存储器区域。对可信区域72的访问被限于非安全内核66以及它们共享公共域,即域0。非安全操作系统68的块位于域1中,以及存储器区域76用于存储解压的数据。区域76中的此解压的数据是操作系统68的块可访问的,但是是域2内存储的应用程序78、80不可访问的。
图6的系统能够提供层次化级别的安全。与加密密钥对应的大多数安全数据限于仅由安全操作系统64来访问,并且存在于安全物理地址空间中。安全操作系统64可以使用这些加密密钥来将请求的数据解密,并将此解密的解压数据写到属于非安全操作系统66的可信区域72。此解密的解压数据虽然性质不如加密密钥那样敏感,但是代表需要保护且具有与之关联的一定安全级别的资产。相应地,可信区域72仅是域0内执行的编程指令可访问的,域0具有最高安全级别。这些可信程序包括内核68和本身存储在可信区域72内的MPEG解码器程序82。MPEG解码器程序82将解密的压缩数据解压,并将其写到解压的数据区域76中。此解压的数据区域76是应用程序78、80不可访问的,但是是非安全操作系统68的块可访问的。相应地,例如可以使用与非安全操作系统68的块关联的呈示机制来呈示解压的数据,并将其绘制到屏幕。
在安全操作系统62将解密的数据写到可信区域72中之前,它可以对内核66和(稍后描述的存储在域能力寄存器内的)域能力数据84中指定的域的配置执行完整性检查。此完整性检查可以采用对相对较小的内核66执行的校验和、散列或签名检查操作以及对域能力数据84执行配置检查的形式,包括确保仅内核66被赋予访问访问控制数据的能力,访问控制数据将控制在非安全状态中执行的哪个软件将能够访问可信区域72。只要内核66通过验证且仅内核66具有更改访问控制数据的必要能力,则可以合理地认为该可信区域72是安全的。因此,安全操作系统64将一些必需的处理下放到非安全域,并由此确保安全操作系统更简单且相应地更安全。
图7是图示图6的系统的操作的流程图。在步骤86,确定需要安全解密。在步骤88,切换到安全状态,并且安全操作系统运行。在步骤90,安全操作系统对非安全操作系统内核66进行完整性检查。如果此检查失败,则处理终止。如果通过此检查,则处理进行到步骤92,其中作出域能力数据84的确定以确保存储非安全操作系统内核66的域是唯一能够更改访问控制数据74的域。如果此检查失败,则处理也终止。如果通过此检查,则处理进行到步骤94,其中确定访问控制数据74显示仅可信软件(例如非安全操作系统66和MPEG解码器82)能够访问可信区域72。如果此检查失败,则处理终止。如果通过此检查,则处理进行到步骤96,其中由安全操作系统64来读加密密钥(或将其提供到适合的加密引擎),并且执行解密以生成解密的压缩数据,并将其写到可信区域72。步骤98然后切换到非安全状态,并且非安全操作系统运行。步骤100使用可信区域72中运行的可信软件82(MPEG解码器)来将解密的压缩数据解压并将解压的数据写到非安全操作系统68的块可访问的解压的数据区域76中。步骤102然后使用非安全操作系统68的块内的程序代码来呈示解压的数据并将其绘制到例如计算机屏幕。
图8以示意图形式图示域能力寄存器104和域能力选择寄存器106。有十六个域能力寄存器104,其中为十六个不同的域的每一个域提供一个域能力寄存器104,而这十六个不同的域可以由(虚拟或物理的)存储器地址空间划分而成。每个域的域访问数据108指示相对于十五个其他域的每一个域对该其他域的访问是任意的、受管理的或不允许的。受管理的访问将包括前文描述的指令访问检查以确保对应于相应的控制寄存器104,从当前域到该域的转换是允许的分支目标指令,并且可能地来自允许的分支指令。主控制寄存器104内不同标记也指定与一般性存储器管理有关的设置,例如MMU启用/禁用、转换表指针、寄存器访问能力、更改字节排序的能力、更改域能力寄存器104本身或域能力寄存器选择寄存器106的能力。域能力寄存器104还包含异常控制标记,异常控制标记控制例如该域中执行的程序指令是否能够更改矢量表指针并打开或关闭与异常和其他活动关联的特定响应。还有其他标记对应于期望域能力寄存器104内基于逐个域来控制的系统管理的项,这些其他标记可以包括例如是否可以在该域中打开或关闭高速缓存维护的能力。一个标记S控制执行SMC指令的能力,SMC指令是在安全状态与非安全状态之间变更所用的软件中断。
域能力寄存器选择寄存器106包含域编号字段110,域编号字段110指定在相应的域具有读和写该域能力寄存器的适合许可权的情况下当前为读或写而映射的域能力寄存器104的编号(参见标记M)。
虽然本文参考附图详细地描述了本发明的说明性实施例,但是要理解本发明并不局限于这些具体实施例,以及在不背离所附权利要求中定义的本发明范围和精神的前提下本领域技术人员能够实施多种更改和修改。

Claims (41)

1.一种用于处理数据的设备,所述设备包括:
可利用存储器地址来寻址的存储器,所述存储器地址具有存储器地址空间内的值,所述存储器地址空间具有多个域,域包含一组存储器地址且每个存储器地址属于至少一个域;
耦合到所述存储器的处理电路,所述处理电路响应与相应存储器地址关联的一系列程序指令来执行数据处理操作;
耦合到所述存储器和所述处理电路的至少其中之一的存储器访问控制电路,所述存储器访问控制电路响应用于所述存储器地址空间的不同区域的访问控制数据来控制所述处理电路是否能访问给定存储器地址;以及
耦合到所述处理电路的域控制电路,所述域控制电路响应将要处理的指令的存储器地址与所述多个域的哪个域关联来控制所述指令是否能够更改所述访问控制数据。
2.如权利要求1所述的设备,其特征在于,所述处理电路具有从多个操作模式中选择的当前操作模式,以及所述存储器访问控制电路响应其他访问控制数据,所述访问控制数据根据所述当前操作模式来指定访问许可权。
3.如权利要求2所述的设备,其特征在于,所述多个模式包括用户模式和特权模式。
4.如权利要求1所述的设备,其特征在于,所述访问控制数据根据要处理的所述指令的当前域,指定所述处理电路针对所述给定存储器地址是否具有如下权利的其中之一:
无访问权;
完全访问权;以及
由其他参数控制的访问权。
5.如权利要求1所述的设备,其特征在于,所述访问控制数据还控制是否允许所述处理电路执行至少一些类型的指令。
6.如权利要求1所述的设备,其特征在于,所述存储器地址空间是与所述存储器关联的虚拟存储器地址空间,所述多个域是所述虚拟存储器地址空间内的域,存储器管理电路使用转换表数据将虚拟存储器地址映射到物理存储器地址,所述转换表数据是访问控制数据。
7.如权利要求1所述的设备,其特征在于,所述转换表数据被存储在转换表指针值所指定的位置处,所述转换表指针值存储在转换表指针值寄存器内,所述转换表指针值是所述存储器访问控制电路控制对其的访问的访问控制数据。
8.如权利要求1所述的设备,其特征在于,所述多个域均具有与之关联的相应可编程能力。
9.如权利要求8所述的设备,其特征在于,每个域的所述可编程能力包括一个或多个能力指定值,所述值针对所述域控制电路是否允许所述域更改所述访问控制数据来控制所述域控制电路。
10.如权利要求8所述的设备,其特征在于,每个域的所述可编程能力包括与所述域关联的程序指令是否能够改动所述多个域的所述可编程能力。
11.如权利要求1所述的设备,其特征在于,在所述设备上执行的操作系统的内核部分存储在被允许更改所述访问控制数据的域内。
12.如权利要求11所述的设备,其特征在于,所述操作系统的其余部分存储在不被允许更改所述访问控制数据的域内。
13.如权利要求11所述的设备,其特征在于,应用程序存储在不被允许更改所述访问控制数据的域内。
14.如权利要求11所述的设备,其特征在于,应用程序存储在存储器中对所述内核没有读访问权的区域内,所述应用程序经由调用转发程序来对所述内核进行调用,所述调用转发程序存储在存储器中对所述内核没有读访问权的区域内。
15.如权利要求1所述的设备,其特征在于,安全操作系统在所述设备上在安全状态中执行,而非安全操作系统在所述设备上在非安全状态中执行。
16.如权利要求15所述的设备,其特征在于,在所述非安全状态中,所述非安全操作系统写所述访问控制数据,使得所述存储器访问控制电路提供所述存储器地址空间中的可信区域,所述可信区域能够被可信软件访问而不能被非可信软件访问,所述域控制电路用于阻止除存储所述非安全操作系统的域之外的域内存储的软件更改所述访问控制数据,从而阻止向非可信软件提供对所述可信区域的访问权。
17.如权利要求16所述的设备,其特征在于,在所述安全状态中,所述安全操作系统将安全数据写到所述存储器地址空间的所述可信地址空间。
18.如权利要求17所述的设备,其特征在于,在将所述安全数据写到所述可信区域之前,所述安全操作系统对所述非安全操作系统进行完整性检查,并检查所述域控制电路配置成仅允许存储所述非安全操作系统的所述域内存储的软件来更改所述访问控制数据。
19.如权利要求18所述的设备,其特征在于,所述安全操作系统通过对所述非安全操作系统执行如下一个或多个操作来对所述非安全操作系统进行完整性检查:
校验和操作;
散列操作;以及
签名检查操作。
20.如权利要求16所述的设备,其特征在于,第一安全级别的安全数据仅在所述安全状态中是所述安全操作系统可访问的,而所述安全操作系统将第二安全级别的安全数据写到在所述非安全状态中所述可信程序可访问的所述可信区域中,所述第二安全级别不如所述第一安全级别安全。
21.一种用于处理数据的方法,所述方法包括如下步骤:
在可利用存储器地址寻址的存储器内存储程序指令,所述存储器地址具有存储器地址空间内的值,所述存储器地址空间具有多个域,域包含一组存储器地址且每个存储器地址属于至少一个域;
响应与相应存储器地址关联的一系列程序指令,执行数据处理操作;
响应用于所述存储器地址空间的不同区域的访问控制数据,控制是否能够访问给定的存储器地址;以及
响应将要处理的指令的存储器地址与所述多个域的哪个域关联,控制所述指令是否能够更改所述访问控制数据。
22.如权利要求21所述的方法,其特征在于,包括从多个操作模式中选择当前操作模式,以及其他访问控制数据根据所述当前操作模式来指定访问许可权。
23.如权利要求21所述的方法,其特征在于,所述多个模式包括用户模式和特权模式。
24.如权利要求21所述的方法,其特征在于,所述访问控制数据根据要处理的所述指令的当前域,指定所述给定存储器地址是否接受如下操作:
读和写访问;
仅读访问;以及
无访问。
25.如权利要求21所述的方法,以及如前面的权利要求中任一项所述的设备,其特征在于,所述访问控制数据还控制是否允许所述处理电路执行至少一些类型的指令。
26.如权利要求21所述的方法,其特征在于,所述存储器地址空间是与所述存储器关联的虚拟存储器地址空间,所述多个域是所述虚拟存储器地址空间内的域,使用转换表数据将虚拟存储器地址映射到物理存储器地址,所述转换表数据是访问控制数据。
27.如权利要求21所述的方法,其特征在于,所述转换表数据被存储在转换表指针值所指定的位置处,所述转换表指针值存储在转换表指针值寄存器内,所述转换表指针值是控制对其的访问的访问控制数据。
28.如权利要求21所述的方法,其特征在于,所述多个域均具有与之关联的相应可编程能力。
29.如权利要求28所述的方法,其特征在于,每个域的所述可编程能力包括一个或多个能力指定值,所述值指定是否允许所述域更改所述访问控制数据。
30.如权利要求28所述的方法,其特征在于,每个域的所述可编程能力包括与所述域关联的程序指令是否能够改动所述多个域的所述可编程能力。
31.如权利要求21所述的方法,其特征在于,操作系统的内核部分存储在被允许更改所述访问控制数据的域内。
32.如权利要求31所述的方法,其特征在于,所述操作系统的其余部分存储在不被允许更改所述访问控制数据的域内。
33.如权利要求31所述的方法,其特征在于,应用程序存储在不被允许更改所述访问控制数据的域内。
34.如权利要求31所述的方法,其特征在于,应用程序存储在存储器中对所述内核没有读访问权的区域内,所述应用程序经由调用转发程序来对所述内核进行调用,所述调用转发程序存储在存储器中对所述内核没有读访问权的区域内。
35.如权利要求21所述的方法,其特征在于,安全操作系统在安全状态中执行,而非安全操作系统在非安全状态中执行。
36.如权利要求35所述的方法,其特征在于,在所述非安全状态中,所述非安全操作系统写所述访问控制数据,以提供所述存储器地址空间中的可信区域,所述可信区域能够被可信软件访问而不能被非可信软件访问,并且阻止除存储所述非安全操作系统的域之外的域内存储的软件更改所述访问控制数据,从而阻止向非可信软件提供对所述可信区域的访问权。
37.如权利要求36所述的方法,其特征在于,在所述安全状态中,所述安全操作系统将安全数据写到所述存储器地址空间的所述可信区域。
38.如权利要求37所述的方法,其特征在于,在将所述安全数据写到所述可信区域之前,所述安全操作系统对所述非安全操作系统进行完整性检查,并查找仅允许存储所述非安全操作系统的所述域内存储的软件来更改所述访问控制数据的配置。
39.如权利要求38所述的方法,其特征在于,所述安全操作系统通过对所述非安全操作系统执行如下一个或多个操作来对所述非安全操作系统进行完整性检查:
校验和操作;
散列操作;以及
签名检查操作。
40.如权利要求36所述的方法,其特征在于,第一安全级别的安全数据仅在所述安全状态中是所述安全操作系统可访问的,而所述安全操作系统将第二安全级别的安全数据写到在所述非安全状态中所述可信程序可访问的所述可信区域中,所述第二安全级别不如所述第一安全级别安全。
41.一种存储计算机程序的计算机程序存储媒体,所述计算机程序用于控制计算机执行如权利要求21所述的方法。
CN200810091318XA 2007-04-03 2008-04-03 数据处理系统内基于存储器域的安全控制 Active CN101281506B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0706504A GB2448151B (en) 2007-04-03 2007-04-03 Memory domain based security control within data processing systems
GB0706504.8 2007-04-03

Publications (2)

Publication Number Publication Date
CN101281506A true CN101281506A (zh) 2008-10-08
CN101281506B CN101281506B (zh) 2011-10-26

Family

ID=38050778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810091318XA Active CN101281506B (zh) 2007-04-03 2008-04-03 数据处理系统内基于存储器域的安全控制

Country Status (4)

Country Link
US (1) US7966466B2 (zh)
JP (1) JP4989543B2 (zh)
CN (1) CN101281506B (zh)
GB (1) GB2448151B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102096642A (zh) * 2009-12-15 2011-06-15 佳能株式会社 信息处理装置及存储器保护方法
CN102736983A (zh) * 2011-04-14 2012-10-17 上海华虹集成电路有限责任公司 控制智能卡flash空间大小的方法
CN104298623A (zh) * 2013-07-16 2015-01-21 横河电机株式会社 电子装置、操作系统以及访问控制方法
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
WO2016101559A1 (zh) * 2014-12-26 2016-06-30 深圳市中兴微电子技术有限公司 一种数据安全存取方法、装置和计算机存储介质
CN108139909A (zh) * 2015-10-20 2018-06-08 Arm有限公司 存储器访问指令
CN108292272A (zh) * 2015-12-02 2018-07-17 Arm有限公司 用于管理有界指针的装置和方法
CN109313693A (zh) * 2016-06-29 2019-02-05 Arm有限公司 针对偶发存储器访问程序指令的许可控制
CN110036377A (zh) * 2017-06-28 2019-07-19 辉达公司 可缓存的但不可通过推测指令访问的内存类型
CN110770733A (zh) * 2017-08-17 2020-02-07 微芯片技术股份有限公司 用于在混合安全系统中对代码或数据的完整性检查并同时维护保密性的系统和方法
CN112329019A (zh) * 2020-11-02 2021-02-05 歌尔科技有限公司 基于TrustZone的编程方法、终端设备及存储介质
CN113411902A (zh) * 2018-07-06 2021-09-17 北京小米移动软件有限公司 信息传输方法及装置
TWI768829B (zh) * 2021-04-14 2022-06-21 宏碁股份有限公司 記憶體裝置的參數調整方法與記憶體儲存系統

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007040228A1 (ja) * 2005-10-04 2009-04-16 日本電気株式会社 情報処理装置、情報処理方法およびプログラム
US8078817B2 (en) * 2008-02-27 2011-12-13 Lsi Corporation Method and system for secured drive level access for storage arrays
US8127131B2 (en) * 2008-04-10 2012-02-28 Telefonaktiebolaget Lm Ericsson (Publ) System and method for efficient security domain translation and data transfer
US8307353B2 (en) * 2008-08-12 2012-11-06 Oracle America, Inc. Cross-domain inlining in a system virtual machine
GB2482700A (en) * 2010-08-11 2012-02-15 Advanced Risc Mach Ltd Memory access control
US20120216281A1 (en) * 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US9712495B2 (en) * 2011-05-03 2017-07-18 International Business Machines Corporation Methods and systems for selective encryption and secured extent quota management for storage servers in cloud computing
GB2497736A (en) * 2011-12-16 2013-06-26 St Microelectronics Ltd Hardware monitor with context selector for selecting from multiple contexts
CN102592083B (zh) * 2011-12-27 2014-12-10 深圳国微技术有限公司 用于提高soc芯片系统安全的存储保护控制器及方法
US9213828B2 (en) 2012-02-08 2015-12-15 Arm Limited Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
US9477834B2 (en) 2012-02-08 2016-10-25 Arm Limited Maintaining secure data isolated from non-secure access when switching between domains
GB2501343A (en) 2012-02-08 2013-10-23 Advanced Risc Mach Ltd Data processing apparatus and method using secure domain and less secure domain
US10210349B2 (en) * 2012-02-08 2019-02-19 Arm Limited Data processing apparatus and method using secure domain and less secure domain
US9116711B2 (en) 2012-02-08 2015-08-25 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
US9202071B2 (en) 2012-02-08 2015-12-01 Arm Limited Exception handling in a data processing apparatus having a secure domain and a less secure domain
JP5821723B2 (ja) * 2012-03-15 2015-11-24 富士通株式会社 情報処理装置及び制御プログラム
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
KR101954733B1 (ko) 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
KR102126563B1 (ko) * 2013-08-13 2020-06-25 삼성전자주식회사 보안 확인을 위한 전자 장치 및 방법
JP5911835B2 (ja) * 2013-09-17 2016-04-27 株式会社東芝 情報処理装置
FR3016456B1 (fr) * 2014-01-13 2017-06-23 Morpho Procede de saisie de donnees confidentielles sur un terminal
US11228427B2 (en) * 2014-02-11 2022-01-18 Ericsson Ab System and method for securing content keys delivered in manifest files
US9990505B2 (en) 2014-08-12 2018-06-05 Redwall Technologies, Llc Temporally isolating data accessed by a computing device
US9760727B2 (en) * 2014-12-31 2017-09-12 Google Inc. Secure host interactions
US9547773B2 (en) 2014-12-31 2017-01-17 Google Inc. Secure event log management
US9537833B2 (en) 2014-12-31 2017-01-03 Google Inc. Secure host communications
US10409600B1 (en) 2016-01-25 2019-09-10 Apple Inc. Return-oriented programming (ROP)/jump oriented programming (JOP) attack protection
US10275365B1 (en) * 2016-03-21 2019-04-30 Apple Inc. Cryptographic signatures for capability-based addressing
US10671744B2 (en) * 2016-06-23 2020-06-02 Intel Corporation Lightweight trusted execution for internet-of-things devices
GB2563010B (en) 2017-05-25 2019-12-25 Advanced Risc Mach Ltd An apparatus and method for managing a capability domain
GB2563580B (en) * 2017-06-15 2019-09-25 Advanced Risc Mach Ltd An apparatus and method for controlling a change in instruction set
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
GB2589897B (en) * 2019-12-11 2022-03-23 Advanced Risc Mach Ltd Domain transition disable configuration parameter
GB2591490B (en) * 2020-01-30 2022-03-02 Advanced Risc Mach Ltd An apparatus and method for controlling access to a set of memory mapped control registers

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087856A (en) * 1976-06-30 1978-05-02 International Business Machines Corporation Location dependence for assuring the security of system-control operations
JPS5783850A (en) 1980-11-12 1982-05-25 Mitsubishi Electric Corp Data processing device
US4545012A (en) * 1981-05-22 1985-10-01 Data General Corporation Access control system for use in a digital computer system with object-based addressing and call and return operations
US4809160A (en) * 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US5107443A (en) * 1988-09-07 1992-04-21 Xerox Corporation Private regions within a shared workspace
GB2260004B (en) 1991-09-30 1995-02-08 Apple Computer Memory management unit for a computer system
JPH10228421A (ja) 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
US6449699B2 (en) * 1999-03-29 2002-09-10 International Business Machines Corporation Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US6633963B1 (en) * 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7266658B2 (en) * 2002-09-12 2007-09-04 International Business Machines Corporation System, method, and computer program product for prohibiting unauthorized access to protected memory regions
US7149862B2 (en) * 2002-11-18 2006-12-12 Arm Limited Access control in a data processing apparatus
WO2004046916A2 (en) * 2002-11-18 2004-06-03 Arm Limited Exception types within a secure processing system
US20040168047A1 (en) * 2003-02-24 2004-08-26 Matsushita Electric Industrial Co., Ltd. Processor and compiler for creating program for the processor
JP2004280801A (ja) 2003-02-24 2004-10-07 Matsushita Electric Ind Co Ltd プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置
US7134006B2 (en) * 2003-06-03 2006-11-07 Gateway Inc. Method and system for changing software access level within or outside a host protected area
DE10335643B4 (de) * 2003-08-04 2007-10-31 Infineon Technologies Ag Vorrichtung und Verfahren zum Steuern des Zugriffs von mehreren Datenverarbeitungseinrichtungen auf einen Speicher
US20050262568A1 (en) * 2004-05-18 2005-11-24 Hansen Mark D System and method for managing access to protected content by untrusted applications

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478960B2 (en) 2009-12-15 2013-07-02 Canon Kabushiki Kaisha Information processing apparatus and memory protection method
CN102096642B (zh) * 2009-12-15 2014-02-12 佳能株式会社 存储器保护装置及存储器保护方法
CN102096642A (zh) * 2009-12-15 2011-06-15 佳能株式会社 信息处理装置及存储器保护方法
CN102736983A (zh) * 2011-04-14 2012-10-17 上海华虹集成电路有限责任公司 控制智能卡flash空间大小的方法
CN102736983B (zh) * 2011-04-14 2016-05-25 上海华虹集成电路有限责任公司 控制智能卡flash空间大小的方法
CN104298623A (zh) * 2013-07-16 2015-01-21 横河电机株式会社 电子装置、操作系统以及访问控制方法
WO2016101559A1 (zh) * 2014-12-26 2016-06-30 深圳市中兴微电子技术有限公司 一种数据安全存取方法、装置和计算机存储介质
US11669467B2 (en) 2015-10-20 2023-06-06 Arm Limited Memory access instructions
CN108139909A (zh) * 2015-10-20 2018-06-08 Arm有限公司 存储器访问指令
CN108292272A (zh) * 2015-12-02 2018-07-17 Arm有限公司 用于管理有界指针的装置和方法
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
CN109313693A (zh) * 2016-06-29 2019-02-05 Arm有限公司 针对偶发存储器访问程序指令的许可控制
CN109313693B (zh) * 2016-06-29 2023-06-20 Arm有限公司 针对偶发存储器访问程序指令的许可控制
CN110036377A (zh) * 2017-06-28 2019-07-19 辉达公司 可缓存的但不可通过推测指令访问的内存类型
CN110770733A (zh) * 2017-08-17 2020-02-07 微芯片技术股份有限公司 用于在混合安全系统中对代码或数据的完整性检查并同时维护保密性的系统和方法
CN110770733B (zh) * 2017-08-17 2023-05-26 微芯片技术股份有限公司 用于在混合安全系统中对代码或数据的完整性检查并同时维护保密性的系统和方法
CN113411902A (zh) * 2018-07-06 2021-09-17 北京小米移动软件有限公司 信息传输方法及装置
CN113411902B (zh) * 2018-07-06 2023-04-11 北京小米移动软件有限公司 信息传输方法及装置
CN112329019A (zh) * 2020-11-02 2021-02-05 歌尔科技有限公司 基于TrustZone的编程方法、终端设备及存储介质
TWI768829B (zh) * 2021-04-14 2022-06-21 宏碁股份有限公司 記憶體裝置的參數調整方法與記憶體儲存系統

Also Published As

Publication number Publication date
GB0706504D0 (en) 2007-05-09
US7966466B2 (en) 2011-06-21
GB2448151B (en) 2011-05-04
JP4989543B2 (ja) 2012-08-01
JP2008257734A (ja) 2008-10-23
US20080250217A1 (en) 2008-10-09
CN101281506B (zh) 2011-10-26
GB2448151A (en) 2008-10-08

Similar Documents

Publication Publication Date Title
CN101281506B (zh) 数据处理系统内基于存储器域的安全控制
CN101281459B (zh) 受保护的功能调用
US10360411B2 (en) Secure processing unit systems and methods
TWI705353B (zh) 用於容許安全通訊之積體電路、方法及製造物件
US7874009B2 (en) Data processing device
US8370641B2 (en) Initialization of a microprocessor providing for execution of secure code
US8943313B2 (en) Fine-grained security in federated data sets
CN102197382B (zh) 多层内容保护微控制器
KR20210097021A (ko) 컴퓨터 시스템의 추측적 사이드 채널 분석에 대항하는 방어
CN107003936B (zh) 具有非可读页的存储器保护
KR20200051694A (ko) 호출 경로 의존 인증
US20130036314A1 (en) Security perimeter
KR20180111918A (ko) 서명 바운디드 포인터를 생성하기 위한 장치 및 방법
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
CN102667794A (zh) 用于保护操作系统免于非授权修改的方法和系统
CN108154032A (zh) 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
CN105264540A (zh) 数据处理设备中的软件库的安全保护
CN108139909A (zh) 存储器访问指令

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant