CN106462508A - 访问控制与代码调度 - Google Patents
访问控制与代码调度 Download PDFInfo
- Publication number
- CN106462508A CN106462508A CN201580022893.2A CN201580022893A CN106462508A CN 106462508 A CN106462508 A CN 106462508A CN 201580022893 A CN201580022893 A CN 201580022893A CN 106462508 A CN106462508 A CN 106462508A
- Authority
- CN
- China
- Prior art keywords
- code
- privileged mode
- execution
- management program
- access
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1441—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
一种在包括第一特权模式和第二特权模式的多个模式中运行的数据处理系统,第一特权模式给予在第二特权模式中不可用的访问权利。应用程序代码(4、6)在第二特权模式中执行并生成对在第一特权模式中执行的管理程序代码(2)的功能调用。这些功能调用是为了执行需要仅在第一特权模式中可用的访问权利的安全功能。在第二特权模式中执行的调度代码(8)控制应用程序代码(4、6)和管理程序代码(2)两者的调度。存储器保护电路系统(18)借助物理地址运行用于控制访问在使用由管理程序代码(2)写入的配置数据(32)的存储器地址空间内不同区域所需要的访问许可。管理程序代码(2)根据需要临时地向在第二特权模式中的系统授权对在物理存储器地址空间内的不同区域的访问,以支持由调度代码(8)调度的代码的执行。
Description
技术领域
本技术涉及数据处理系统的领域。更具体地,本技术涉及通过使用不同特权模式连同控制将执行的代码的调度来进行访问控制。
背景技术
提供具有不同特权模式的数据处理系统是公知的。这些不同特权模式能够给予访问的不同权利。具有较高特权级别的特权模式通常将具有对与在较低特权模式中可用的资源相比更多资源的访问权(例如,能够访问存储器的更多区域、更多外部设备、更多功能等)。在一些系统中,可以提供具有操作的最高特权模式的管理程序(hypervisor)代码,以便控制对提供给其他代码(诸如,在系统上执行的应用程序代码)的系统资源的访问。总体来说,管理程序代码的安全性因此在系统的安全性中是重要的。
在数据处理系统内提供调度代码也是公知的,其用来控制将执行的代码的不同部分的调度。
发明内容
从一方面来看,本技术提供了一种处理数据的方法,所述方法使用具有包括第一特权模式和第二特权模式的多个特权模式的数据处理装置,所述第一特权模式给予在所述第二特权模式中不可用的访问权利,所述方法包括以下步骤:
在所述第二特权模式中执行应用程序代码,从而生成对管理程序代码的功能调用以使用所述访问权利来执行安全功能;
在所述功能调用的生成时,在所述第一特权模式中执行管理程序代码以至少控制所述安全功能的执行;以及
在所述第二特权模式中执行调度代码以通过所述数据处理装置来控制所述应用程序代码和所述管理程序代码的执行的调度。
本技术认识到,通过提供调度代码,使得其在第二特权模式中执行并且控制应用程序代码和管理程序代码的执行的调度,管理程序代码能够以促进其安全操作的方式减少复杂度。一般来说,代码块越复杂,其将具有安全性弱点的可能性越高。在操作系统设计的领域内通常的设计偏见会是提供调度代码作为管理程序代码的部分,使得运行在第一特权模式(最高特权级别)中的管理程序代码具有调度哪个代码用于执行的控制。实际上,这种在管理程序代码内增加了的复杂度可以降低其安全性。设置管理程序代码保留在需要在第一特权模式中可用的访问权利的安全功能的控制中,可以维护安全性。管理程序代码负责服务试图执行安全功能的功能调用。
应当理解的是,管理程序代码可以自己执行安全功能。在其他实施例中,管理程序代码还可以将安全功能的执行委托给其他代码(即,委托代码)并且临时地授予该其他代码执行安全功能所需要的访问权利。
一些实施例的特征是对管理程序代码的中断会中断安全功能的执行。可能通常期待安全功能免受这样的中断,但是随着调度代码在管理程序代码的外部的第二特权模式中执行,这样的安排将潜在地导致困难。
调度代码可以被安排为在调度事件的发生时选择将执行的下一个代码。这些调度事件可以采用各种不同形式。可能的调度事件的示例是由调度代码调度执行的代码的执行的完成、计时器中断和当数据处理装置开始执行代码时的唤醒事件(例如,在睡眠事件之后或者可能在重置之后)。
在第一特权模式中可用并且在第二特权模式中不可用的访问权利可以采取是各种不同形式。访问权利的示例是针对某些存储器地址访问数据的能力(例如,写入许可、读取许可、执行许可等)或者访问外部设备(例如,映射了存储器的外部设备,诸如DMA引擎、UART等)的权利。
如先前提到的,管理程序代码可以调用在第二特权模式中执行的委托代码作为服务功能调用的部分,而不是完全由自己服务功能调用。在一些实施例中用这样的安排,委托代码可以依赖于数据处理装置的配置参数执行处理操作并且管理程序代码可以执行与这些配置参数独立的处理操作。这促进在不同数据处理装置环境中的管理程序代码的再使用并且因此减少与管理程序代码相关联的测试和验证的开销,该管理程序代码由于其在保护系统安全性中的角色而需要满足高安全性标准。
委托代码可以执行各种不同操作。这种操作的示例是用于从在数据处理装置操作期间产生的错误状况中恢复的错误恢复操作和储存在该数据处理装置的闪存内的程序代码的程序更新。在一些实施例中,委托代码可以负责这些操作的全部或部分。
本技术的至少一些实施例对于在低开销低功率数据处理系统中维护安全性是有用的,该系统始终使用物理地址而不支持虚拟编址(例如,由应用程序代码使用的虚拟编址)。物理编址的使用避免了需要提供和支持用于在虚拟地址和物理地址之间进行翻译的存储器管理单元。这样的存储器管理单元通常表现出显著的电路区域、功率和代码复杂性开销。
取代存储器管理单元,本技术的一些实施例可以提供存储器保护电路系统,其配置为接收指定在存储器地址空间内的物理地址的存储器访问请求,并且被配置为依赖于可编程存储器保护配置数据和数据处理装置当前是在第一特权模式中还是第二特权模式中,分别地控制对在存储器地址空间内多个不同区域的访问。因此,存储器保护单元能够以区域的粒度分割存储器地址空间(可以具有不同大小和/或可变大小),并且依赖于当前特权模式控制对这些区域的访问。
在包括这种存储器保护电路系统的系统的背景下,应用程序代码可以用于生成向管理程序代码的请求以访问存储器地址空间的给定区域,该给定区域在应用程序代码执行的第二特权模式中不可访问。管理程序代码可以临时地改变可编程存储器保护配置以许可在第二特权模式中执行的应用程序代码访问给定区域。因此,管理程序代码可以在来自应用程序代码的适当请求的接收时,临时地更改访问给定区域的特权要求,并且接着在该被许可的访问之后恢复保护使得其他应用程序代码将不能不适当地访问给定区域。
管理程序代码可以用于在临时地改变可编程存储器保护配置以许可这样的访问之前,检查应用程序代码是否被许可访问给定区域。作为示例,管理程序代码可以包含应用程序代码的哪些实例/块临时地被许可访问在存储器地址空间内的哪些区域的列表。如果接收到来自应用程序代码的访问存储器区域的请求,而该存储器区域没有被包含在被许可访问该给定区域的存储器区域的列表内,那么将不会提供访问许可。
在一些实施例中,管理程序代码可以在存储器地址空间内生成栈存储器。存储器保护电路系统可以被安排为防止由在第一特权模式中执行的管理程序代码本身对多个区域的一个或更多个区域的访问,使得如果栈存储器的超载运行(over-run)和欠载运行(under-run)导致访问管理程序代码不能访问的存储器的区域的尝试,那么将产生存储器许可异常。这个特征协助防止管理程序代码危害系统安全性的故障。
应该理解的是,提供的特权模式的数量可以变化。在一些简单实施例中,可以仅提供第一特权模式和第二特权模式,但应当理解的是在其他实施例中,可以提供超过两个特权模式。
在一些实施例中,终端和异常用于触发管理程序代码的执行。管理程序代码可以然后将这些中断和异常的至少一些的处理委托给管理程序代码本身以外的代码。
从另一方面来看,本技术提供具有包括第一特权模式和第二特权模式的多个特权模式的数据处理装置,所述第一特权模式给予在所述第二特权模式中不可用的访问权利,所述装置包括:
执行电路系统,配置为:
在所述第二特权模式中执行应用程序代码,从而生成对管理程序代码的功能调用以使用所述访问权利来执行安全功能;
在所述功能调用的生成时,在所述第一特权模式中执行管理程序代码以至少控制所述安全功能的执行;以及
在所述第二特权模式中执行调度代码以通过所述数据处理装置来控制所述应用程序代码和所述管理程序代码的执行的调度。
从另一方面来看,本发明提供一种具有包括第一特权模式和第二特权模式的多个特权模式的数据处理装置,所述第一特权模式给予在所述第二特权模式中不可用的访问权利,所述装置包括:
用于执行代码的执行部件,所述执行部件配置为:
在所述第二特权模式中执行应用程序代码,从而生成对管理程序代码的功能调用以使用所述访问权利来执行安全功能;
在所述功能调用的生成时,在所述第一特权模式中执行管理程序代码以至少控制所述安全功能的执行;以及
在所述第二特权模式中执行调度代码以通过所述数据处理装置来控制所述应用程序代码和所述管理程序代码的执行的调度。
附图说明
现在将仅以示例的方式,参考附图来描述实施例,在附图中:
图1示意性地图示出在不同特权模式内执行的代码的不同块;
图2示意性地图示出包括用于在纯物理编址的系统内处理存储器许可的存储器保护电路系统的数据处理装置硬件;
图3是示意性地图示出管理程序代码、应用程序代码、调度代码和委托代码的交互的流程图;以及
图4是示意性地图示出存储器保护电路系统临时地改变访问在存储器地址空间内存储器的给定区域所需要的特权级别的动作的图表。
具体实施方式
图1示意性地图示出在数据处理装置内执行的代码的不同块。具体地,代码的块包括:管理程序代码2,应用程序代码4、6的多个实例,调度代码8和委托代码10。管理程序代码2在第一特权模式中执行。应用程序代码4、6,调度代码8和委托代码10全部在第二特权模式中执行。
调度代码8负责调度应用程序代码4、6和管理程序代码2的执行。调度代码8在调度事件的发生时执行这样的调度操作。调度事件可以包括已经由调度代码8调度用于执行的代码的执行完成、计时器中断的发生和/或当数据处理装置开始执行代码时的唤醒事件。数据处理装置可以被置于睡眠模式并且唤醒事件可以由例如计时器、由用户按压的按钮、从其他地方接收的网络分组等触发而发生。
管理程序代码2相对于在其上执行该管理程序代码2的数据处理装置是配置参数独立的。委托代码10依赖于其上执行该委托代码10的装置的配置参数。这样,同样的管理程序代码2可以运行在若干硬件平台上并且在委托代码10内硬件平台特定功能被隔离。
管理程序代码2包括安全功能代码12,其运行在第一特权模式中并执行安全功能,诸如使用密码数据(例如,密钥)的密码功能。应用程序代码4、6向管理程序代码2做出功能调用以便管理程序代码代表应用程序代码4、6执行安全功能。管理程序代码可以适当地将这个安全功能的一些或者全部委托给委托代码10。当安全功能完成后,安全功能的结果返回到调用应用程序代码4、6。这样,管理程序代码2能够保护诸如密码数据的安全数据,并且仅将诸如通过/失败的结果返回到应用程序代码4、6。
由管理程序代码2执行的安全功能可以包括将对系统的存储器地址空间的给定区域的访问授权给应用程序代码4、6的调用块的功能。管理程序代码2可以首先确认接收的请求的有效性,并然后临时地授权或者不授权对存储器的区域的访问。可以通过用于临时地修改与相关存储器的区域关联的特权级别的管理程序代码2来授权访问,使得在第二特权模式中执行的代码可以临时地访问那个区域,然而正常的配置是仅在第一特权模式中执行的代码能够访问那个区域。管理程序代码2因此在安全性中做出临时的“洞”(“hole”)以许可应用程序代码4、6的给定块访问那个存储器区域,并且当那个应用程序代码的执行已经完成时,如由调度代码8或应用程序/委托代码4、6、10通知的,管理程序代码2可以盖住那个“洞”并且将特权保护配置返回到其原始形式。
如之前所提及的,委托代码可以被委托以执行依赖于所涉及的硬件平台的配置参数的功能。可以由委托代码执行的功能的示例包括用于从在数据处理装置的操作中产生的状况中恢复的错误恢复操作。另一个示例是储存在数据处理装置的闪存中的程序代码的程序更新。
管理程序代码2可以包含当接收到来自应用程序代码4、6的请求时,这样的应用程序代码4、6的哪些块被许可访问存储器地址空间的哪些区域的列表。如果从表明为具有这种许可的应用程序代码的块接收到访问给定存储器区域的请求,那么管理程序代码2将通过更改存储器许可配置来临时地将访问许可给调用应用程序代码4、6,使得在第二特权模式执行的代码临时地被给予对存储器地址空间的给定区域的访问权利。
管理程序代码2在存储器地址空间内可以自己生成栈存储器。管理程序代码2的故障或对管理程序代码2的攻击可以与这样的栈存储器的超载运行或欠载运行相关联。可以布置存储器许可使得这种类型的超载运行或欠载运行将触发存储器许可异常并且因此可以给予管理程序代码2对抗其自身故障的一些保护。
在图1中图示的示例中,仅为系统提供两种特权模式,即第一特权模式和第二特权模式(当在第一特权模式中执行时比当在第二特权模式执行时有更多访问权利可用)。这样简单的布置促进安全性的严格控制。然而,在其他实施例中,可以提供超过两种特权模式,但是这些特权模式将包括第一特权模式和第二特权模式两者。
在图1中图示的示例中,可以看出,中断和异常首先被路由到在第一特权模式中运行的管理程序代码2。这样的中断和异常可以然后适当地被委托(转发)到在第二特权模式中运行的应用程序代码4、6或委托代码10(处理代码)。实际中,仅中断/异常的相对小的子集将是安全性关键的并且保持于管理程序代码2的控制下(例如,系统重置),而其他中断和异常以使得管理程序代码2更为简单并相应地更加安全的方式,在管理程序代码2的外部被处理。
图2是示意性地图示出用于根据本技术的至少一些示例运行的数据处理装置14的硬件实施例的图。这个数据处理装置14包括用于执行程序指令(包括应用程序代码4、6,调度代码8,管理程序2和委托代码10)的处理器核心16(其可以包括用于在处理运行期间保持操作数的值的通用寄存器)、存储器保护电路系统18(例如,由英国剑桥的ARM有限公司设计的类型的存储器保护单元(MPU))、显示器单元20、输入/输出电路系统22、网络接口电路系统24和存储器电路系统26(包括易失存储器28和诸如闪存的非易失储存器30两者)。在图2中图示出的数据处理装置14始终使用物理地址以指明在存储器26的存储器地址空间内的存储器储存位置。因此,处理器核心16生成物理地址并且在处理器核心16上执行的程序代码2、4、6、8、10被安排以生成物理地址。由处理器核心16生成的存储器访问请求被传递到实施存储器保护的存储器保护电路系统18。存储器保护单元18响应于可编程(由处理器核心16)存储器保护配置数据32。这个配置数据32能够指定全部存储器地址空间的不同区域并且相对于这些不同区域关联要被提供用于不同特权模式的不同访问许可。区域本身的大小和设置能够变化,例如,他们可以重叠。
存储器保护电路系统18可以被布置为提供访问控制,使得存储器地址空间的不同区域或者仅当在第一特权模式中运行时可访问或者当在第一特权模式或第二特权模式任一个中运行时可访问。可以在一些实施例中得到支持的具体的更详细的访问许可包括分别地涉及读取访问、写入访问、执行访问等的许可。还可以提供更多特权模式,使得能够以更差异化的方式基于特权模式管理许可。
存储器保护电路系统18从处理器核心16接收访问请求。存储器保护电路系统18使用配置数据32以识别访问许可要求,该访问许可要求与在由接收到的访问请求指定的(物理的)存储器地址内的区域相关联。存储器保护电路系统18然后比较这些访问许可要求与数据处理装置14的当前运行状态,以确定是否授权或者拒绝该访问请求。如果请求被拒绝,那么存储器许可异常被生成并可以由合适的异常处理器服务。如果满足存储器许可要求,那么将访问请求从存储器保护电路系统18传递到存储器地址空间的相关部分,诸如在存储器26内的位置或者映射了外部设备(诸如,显示器20、输入/输出电路系统22或者网络接口24之一)的存储器。
图3示意性地图示出管理程序代码2、应用程序代码4、6、调度代码8和委托代码10之间的交互。调度代码8负责调度接下来将执行哪个代码。在如之前所讨论的合适的调度事件发生时,调度代码8将触发应用程序代码的给定块的执行,例如,在图1中图示出的应用程序代码4、6的块中的一个块。当应用程序代码4、6已经完成执行时,其然后将应用程序代码完成通知(返回)发回到调度代码8,调度代码8将然后调度将执行的下一个代码。如在图3中所图示的,水平虚线示出无特权(第二)模式执行和特权(第一)模式执行之间的分隔。管理程序代码2在特权模式中执行。应用程序代码4、6、调度代码8和委托代码10全部在无特权模式中运行。如果应用程序代码4、6需要访问资源(例如,访问存储器地址空间的给定区域),那么其将向管理程序代码2做出安全功能调用以被授权该访问。如果管理程序代码2确定应用程序代码4、6被合适地授权,并且相应地访问请求是有效的,那么其将临时地改变存储器保护电路系统18的配置数据32以许可由调用的应用程序代码4、6从第二特权模式(无特权级别)做出的对存储器的给定区域的访问。在这种情况下,向管理程序代码2做出的安全功能调用的结果会是对许可已被授权的指示。
安全功能调用的其他示例可以是验证数据签名、密钥等的请求。在这种情况中,管理程序代码2可以执行被请求的安全功能并且返回诸如通过/失败的结果,或者当安全功能调用是解密该数据块的请求时返回诸如解密的数据块的结果。管理程序代码2可以向委托代码10做出委托功能调用以执行被请求的安全功能的部分或全部。委托代码10将把安全功能的结果返回到管理程序代码2,其随后转而将安全功能调用的结果传递回应用程序代码4、6。
如在图3中所图示的,调度代码8还可以直接触发管理程序代码的执行。调度代码8因此负责调度应用程序代码4、6和管理程序代码2两者的执行。调度代码8在第二特权模式(无特权)中执行。
如图示的,中断和异常,诸如计时器中断和唤醒事件,被路由进入管理程序代码2。通过首先将他们重定向到调度代码8,然后调度代码8响应于计时器中断或唤醒事件而调度合适的应用程序代码4、6来执行,这些中断和异常可以被委托给管理程序代码2以外的代码。
所描述的实施例运行以将由管理程序代码2接收的特权异常/中断转发到在第二特权模式中运行的处理代码。这允许系统支持如可能是支持用户接口所需要的对异常/中断的实时响应,例如,通过许可无特权代码处理这样的异常/中断以中断可能正在运行长期密码操作(例如,解密数据流)的特权代码。管理程序代码2更多地为保护秘密(例如,数据/密钥、时间)而运行,并且更少地为保护代码而运行。从这一方面而言,管理程序2的中断不允许对这些秘密的非期待的访问。
在这个场景中一个显著的安全性威胁是中断特权操作的代码将得到当前寄存器内容的快照。在触发中断时使用足够密集的计时器可以使得可以从这些寄存器样本中重建密码秘密,并且因此泄露管理程序(密码盒)秘密。可以在管理程序的返回时恢复寄存器值。
考虑到该问题,可以增加泄露应对措施:
-当将控制转移到第二特权模式代码时(作为硬件事件/异常的结果),在调用无特权代码之前,通过保存所有活跃的寄存器并消除或用随机值覆写它们而清除处理器的通用寄存器。
-确保针对由管理程序2执行的密码操作的固定的时间界限
-通过记录从密码操作前到完成密码操作的时间,使得来自引起密码操作的对管理程序的功能调用的返回延迟至直到以下的一个或多个事件发生:
a)在循环中等待/旋转直到最小时间经过
b)触发CPU睡眠直到最小时间经过
c)等待直到达到粗时间段的倍数(例如可以确保100ms块-操作将总是使用100ms,200ms或其他倍数-这降低针对操作所测量的时间的密码分析的质量)
d)等待随机时间
以上应对措施帮助防止无特权代码通过探测特权加密API并且测量执行时间而泄露秘密。
可以分开使用或以不同组合使用的其他可能应对措施包括:
a)确保CPU性能计数器或者由MPU保护或者,如果不可能的话,那么由伪操作(dummy operation)调整。
示例:
如果无特权软件能够读取指令计数器:
应对措施可以是在返回对无特权代码的控制之前在循环中旋转,以将指令计数器增加到固定边界(类似时间方法)。
b)在管理程序中具有专用混淆模式,其中应用程序代码能够从管理程序请求针对选定间隔的定时/功率消耗混淆作为服务。
示例:
-管理程序将设置计时器以使其中执行虚拟操作的随机化间隔密集,
-对外部攻击者混淆无特权代码的定时和功率消耗,
-由无特权代码访问ADC转换器(或者其他输入/输出设备)会导致对特权侧的侧信道攻击,导致秘密泄露。管理程序2可以使用随机化硬件计时器来执行伪操作以混淆其操作。
图4示例性地图示出通过存储器保护电路系统18的访问许可控制的示例。在图示的示例中,存储器地址空间被分割为多个物理存储器地址空间,区域0、1、2、3、4。由存储器保护单元18持有的配置数据32(并且由处理器核心16编程的)对于这些区域的每一个定义当数据处理装置14在第一特权模式中时是否限制访问,或者当数据处理装置14在第二特权模式中执行时是否还许可访问。在图1中图示的示例中,区域1在第二特权模式中是永久地可访问的。在图4图示的瞬间,区域0、区域2和区域4仅在第一特权模式中可访问。区域3已经临时地被重配置为在第二特权模式中可访问。这许可将由当数据处理装置14在第二特权模式中时执行的程序指令做出对那个区域(物理存储器地址的范围)内数据的临时访问。
在一些实施例中,应用程序代码4、6的不同块可以存储在物理存储器地址空间的不同区域内。管理程序代码2可以被安排为临时地许可第二特权模式访问这些包含与应用程序代码4、6的不同块关联的不同区域。因此,在管理程序代码2的控制下,在给定瞬间执行许可(执行需要相关程序指令的读取和相应地需要存储器访问)被限制到应用程序代码4、6的给定块。如果做出不合适地将执行转移到不组成已经由管理程序代码2给予执行许可的代码块的部分的尝试,那么这样的代码将不会执行,因为系统将在第二特权模式并且包含未授权代码的区域将不会被配置成在系统处于第二特权模式中时可访问。相应地,管理程序代码2打开存储器地址空间的区域,因为这些区域与应用程序代码4、6的不同块相关联,所以在这些区域中的代码被执行。管理程序代码2还可以临时地打开包含将由已经被许可执行的应用程序代码4、6所操纵的数据的物理存储器地址空间内的区域。当调度代码通知管理程序代码2应用程序代码的给定块已经完成其执行时,可以反转在配置数据32中的临时改变,使得用于应用程序代码4、6的那个块的执行许可被移除。在管理程序代码2的控制下,通过在配置数据32中的进一步改变,应用程序代码4、6的另一个块或相同块能够然后被授权执行。
Claims (24)
1.一种处理数据的方法,所述方法使用具有包括第一特权模式和第二特权模式的多个特权模式的数据处理装置,所述第一特权模式给予在所述第二特权模式中不可用的访问权利,所述方法包括以下步骤:
在所述第二特权模式中执行应用程序代码,从而生成对管理程序代码的功能调用以使用所述访问权利来执行安全功能;
在所述功能调用的生成时,在所述第一特权模式中执行管理程序代码以至少控制所述安全功能的执行;以及
在所述第二特权模式中执行调度代码以通过所述数据处理装置来控制所述应用程序代码和所述管理程序代码的执行的调度。
2.如权利要求1所述的方法,其中,所述管理程序代码执行所述安全功能。
3.如权利要求1和2中任意一个所述的方法,其中,对所述管理程序代码的中断的发生中断所述安全功能的所述执行。
4.如权利要求1、2和3中任意一个所述的方法,其中,所述调度代码响应于调度事件的发生来选择将执行的下一个代码。
5.如权利要求4所述的方法,其中,所述调度事件是以下之一:
由所述调度代码调度用于执行的代码的执行的完成;
计时器中断;以及
当所述数据处理装置开始执行代码时的唤醒事件。
6.如上述权利要求中任意一个所述的方法,其中,所述访问权利包括对秘密数据的访问,并且所述安全功能是使用所述秘密数据的秘密功能。
7.如上述权利要求中任意一个所述的方法,其中,所述管理程序代码调用在所述第二特权模式中执行的委托代码以作为服务所述功能调用的部分。
8.如权利要求7所述的方法,其中,所述委托代码依赖于所述数据处理装置的配置参数执行处理操作,以及所述管理程序代码独立于所述配置参数执行处理操作。
9.如权利要求8所述的方法,其中,委托代码执行以下中的一种:
用于从在所述数据处理装置的操作中产生的错误状况中恢复的错误恢复操作;以及
储存在所述数据处理装置的闪存内的程序代码的程序更新。
10.如上述权利要求中任意一个所述的方法,其中,所述数据处理装置包括存储器保护电路系统,所述存储器保护电路系统被配置为接收直接指定在所述数据处理装置的存储器地址空间内的物理地址的存储器访问请求,并且被配置为依赖于可编程存储器保护配置数据和所述数据处理装置是在第一特权模式中还是在第二特权模式中,分别控制对在所述存储器地址空间内多个不同区域的访问。
11.如权利要求10所述的方法,其中,所述应用程序代码生成向所述管理程序代码的请求以访问在所述第二特权模式中不能访问的所述存储器地址空间的给定区域,以及所述管理程序代码临时地改变所述可编程存储器保护配置数据以许可在所述第二特权模式中执行的所述应用程序代码访问所述给定区域。
12.如权利要求11所述的方法,其中,在接收所述请求之后,如果所述应用程序代码被许可访问,那么在临时地改变所述可编程存储器保护配置之前,所述管理程序代码检查所述应用程序代码是否被许可访问所述给定区域。
13.如权利要求10、11和12中任意一个所述的方法,其中,所述应用程序代码包括应用程序代码的多个块,应用程序代码的所述多个块的至少一些块与在所述存储器地址空间内的不同区域相关联,以及所述管理程序代码用于临时地分别许可应用程序代码的不同块访问仅在所述第一特权模式中能访问的存储器的至少一个区域。
14.如权利要求10和13中任意一个所述的方法,其中,所述管理程序代码在所述存储器地址空间内生成栈存储器,所述存储器保护电路系统运行以防止由在所述第一特权模式中执行的所述管理程序代码访问所述多个区域中的一个或更多个区域,以及所述栈存储器位于所述存储器地址空间内,使得所述栈存储器的超载运行和欠载运行的至少一个导致触发存储器许可异常的访问所述多个区域的所述一个或更多个区域的尝试。
15.如上述权利要求中任意一个所述的方法,其中,多个特权模式包括仅所述第一特权模式和所述第二特权模式。
16.如上述权利要求中任意一个所述的方法,其中,中断信号或异常中的一个的发生触发在所述第一特权模式中所述管理程序代码的执行,以及所述管理程序代码将所述中断信号或异常的处理转发到在所述第二特权模式中执行的处理代码。
17.如权利要求16所述的方法,其中,在向所述处理代码进行所述转发之前,所述管理程序代码清除所述数据处理装置的至少一些通用寄存器。
18.如权利要求6所述的方法,其中,通过使来自所述功能调用的返回延迟至直到从做出所述功能调用后的预定时间,所述管理程序代码运行以隐藏完成所述密码功能所花费的时间。
19.如上述权利要求中任意一个所述的方法,其中,用于监控所述数据处理装置的性能参数的性能计数器在所述第一特权模式中是可访问的并且在所述第二特权模式中是不可访问的。
20.如上述权利要求中任意一个所述的方法,其中,所述数据处理装置具有混淆模式,在所述混淆模式中,所述管理程序代码可以切换所述数据处理装置的包括所述应用程序代码的执行的操作,并且所述操作用于混淆以下中的一个或更多个:操作的定时、功率消耗和对输入/输出设备的访问。
21.一种数据处理装置,所述数据处理装置具有包括第一特权模式和第二特权模式的多个特权模式,所述第一特权模式给予在所述第二特权模式中不可用的访问权利,所述装置包括:
执行电路系统,配置为:
在所述第二特权模式中执行应用程序代码,从而生成对管理程序代码的功能调用以使用所述访问权利来执行安全功能;
在所述功能调用的生成时,在所述第一特权模式中执行管理程序代码以至少控制所述安全功能的执行;以及
在所述第二特权模式中执行调度代码以通过所述数据处理装置来控制所述应用程序代码和所述管理程序代码的执行的调度。
22.一种数据处理装置,所述数据处理装置具有包括第一特权模式和第二特权模式的多个特权模式,所述第一特权模式给予在所述第二特权模式中不可用的访问权利,所述装置包括:
用于执行代码的执行部件,所述执行部件被配置为:
在所述第二特权模式中执行应用程序代码,从而生成对管理程序代码的功能调用以使用所述访问权利来执行安全功能;
在所述功能调用的生成时,在所述第一特权模式中执行管理程序代码以至少控制所述安全功能的执行;以及
在所述第二特权模式中执行调度代码以通过所述数据处理装置来控制所述应用程序代码和所述管理程序代码的执行的调度。
23.一种参考附图的实质上如以上所述的处理数据的方法。
24.一种参考附图的实质上如以上所述的数据处理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1407409.0A GB2525596B (en) | 2014-04-28 | 2014-04-28 | Access control and code scheduling |
GB1407409.0 | 2014-04-28 | ||
PCT/GB2015/051175 WO2015166211A2 (en) | 2014-04-28 | 2015-04-20 | Access control and code scheduling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106462508A true CN106462508A (zh) | 2017-02-22 |
CN106462508B CN106462508B (zh) | 2020-07-07 |
Family
ID=50971958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580022893.2A Active CN106462508B (zh) | 2014-04-28 | 2015-04-20 | 访问控制与代码调度 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10891146B2 (zh) |
KR (1) | KR102327398B1 (zh) |
CN (1) | CN106462508B (zh) |
GB (1) | GB2525596B (zh) |
WO (1) | WO2015166211A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162492A (zh) * | 2018-02-14 | 2019-08-23 | 意法半导体(鲁塞)公司 | 存储器访问控制系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2519080B (en) | 2013-10-08 | 2021-04-14 | Arm Ip Ltd | Scheduling function calls |
DE102015210539A1 (de) * | 2015-06-09 | 2016-12-15 | Robert Bosch Gmbh | Speicherschutzeinheit, Speicherverwaltungseinheit und Mikrocontroller |
US10891167B2 (en) * | 2015-12-30 | 2021-01-12 | Siege Technologies, Llc | Memory fractionation software protection |
KR102484606B1 (ko) * | 2016-03-11 | 2023-01-05 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
US10635831B1 (en) * | 2018-01-06 | 2020-04-28 | Ralph Crittenden Moore | Method to achieve better security using a memory protection unit |
GB2577878B (en) * | 2018-10-08 | 2020-11-11 | Advanced Risc Mach Ltd | Transition disable indicator |
US11068310B2 (en) | 2019-03-08 | 2021-07-20 | International Business Machines Corporation | Secure storage query and donation |
US11176054B2 (en) | 2019-03-08 | 2021-11-16 | International Business Machines Corporation | Host virtual address space for secure interface control storage |
US11455398B2 (en) * | 2019-03-08 | 2022-09-27 | International Business Machines Corporation | Testing storage protection hardware in a secure virtual machine environment |
DE102019216462A1 (de) * | 2019-10-25 | 2021-04-29 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung |
CN114969769A (zh) * | 2021-02-24 | 2022-08-30 | 华为技术有限公司 | 一种访问控制方法、电子设备及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129710A1 (en) * | 2004-12-14 | 2006-06-15 | Intel Corporation | Programmable transaction initiator architecture for systems with secure and non-secure modes |
CN101114326A (zh) * | 2001-04-09 | 2008-01-30 | 凤凰技术有限公司 | 用于计算机装置验证的系统和方法 |
CN102077209A (zh) * | 2008-06-27 | 2011-05-25 | 微软公司 | 受保护模式操作调度 |
CN102763092A (zh) * | 2010-02-16 | 2012-10-31 | Arm有限公司 | 根据硬件模式和安全标志限制用于指令读取的存储器区域 |
CN102902635A (zh) * | 2012-09-29 | 2013-01-30 | 无锡华御信息技术有限公司 | 一种可供企业使用的安全u盘系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360244B1 (en) * | 1997-04-11 | 2002-03-19 | Fujitsu Limited | System and method for multi-level memory domain protection |
US6792392B1 (en) * | 2000-06-30 | 2004-09-14 | Intel Corporation | Method and apparatus for configuring and collecting performance counter data |
US7073173B1 (en) * | 2000-12-04 | 2006-07-04 | Microsoft Corporation | Code and thread differential addressing via multiplex page maps |
US20020073129A1 (en) * | 2000-12-04 | 2002-06-13 | Yu-Chung Wang | Integrated multi-component scheduler for operating systems |
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
US7788667B2 (en) | 2005-04-22 | 2010-08-31 | Gm Global Technology Operations, Inc. | Extensible scheduling of tasks in time-triggered distributed embedded systems |
WO2007065307A2 (en) * | 2005-12-10 | 2007-06-14 | Intel Corporation | Handling a device related operation in a virtualization environment |
EP1936527A1 (fr) * | 2006-12-18 | 2008-06-25 | Gemplus | Procédé permettant de faire varier le nombre d'exécution de contre-mesures dans un code exécuté |
US8132173B2 (en) * | 2007-09-28 | 2012-03-06 | Oracle America, Inc. | Method and system for coordinating hypervisor scheduling |
US8875143B2 (en) | 2009-12-31 | 2014-10-28 | Bmc Software, Inc. | Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment |
US8209510B1 (en) * | 2010-01-13 | 2012-06-26 | Juniper Networks, Inc. | Secure pool memory management |
US9389933B2 (en) * | 2011-12-12 | 2016-07-12 | Microsoft Technology Licensing, Llc | Facilitating system service request interactions for hardware-protected applications |
US9152548B2 (en) * | 2012-01-17 | 2015-10-06 | Vmware, Inc. | Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call |
JP5910108B2 (ja) * | 2012-01-25 | 2016-04-27 | 株式会社ソシオネクスト | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
US9721091B2 (en) * | 2012-02-28 | 2017-08-01 | Red Hat Israel, Ltd. | Guest-driven host execution |
KR20140004819A (ko) * | 2012-06-20 | 2014-01-14 | (주)쉬프트웍스 | 안드로이드 난독화 기법을 이용한 어플리케이션 위변조 탐지 방법 |
US9075985B2 (en) | 2013-05-31 | 2015-07-07 | Microsoft Technology Licensing, Llc | Restricted transmogrifying driver platform |
GB2519080B (en) | 2013-10-08 | 2021-04-14 | Arm Ip Ltd | Scheduling function calls |
-
2014
- 2014-04-28 GB GB1407409.0A patent/GB2525596B/en active Active
-
2015
- 2015-04-20 US US15/304,302 patent/US10891146B2/en active Active
- 2015-04-20 WO PCT/GB2015/051175 patent/WO2015166211A2/en active Application Filing
- 2015-04-20 KR KR1020167032759A patent/KR102327398B1/ko active IP Right Grant
- 2015-04-20 CN CN201580022893.2A patent/CN106462508B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114326A (zh) * | 2001-04-09 | 2008-01-30 | 凤凰技术有限公司 | 用于计算机装置验证的系统和方法 |
US20060129710A1 (en) * | 2004-12-14 | 2006-06-15 | Intel Corporation | Programmable transaction initiator architecture for systems with secure and non-secure modes |
CN102077209A (zh) * | 2008-06-27 | 2011-05-25 | 微软公司 | 受保护模式操作调度 |
CN102763092A (zh) * | 2010-02-16 | 2012-10-31 | Arm有限公司 | 根据硬件模式和安全标志限制用于指令读取的存储器区域 |
CN102902635A (zh) * | 2012-09-29 | 2013-01-30 | 无锡华御信息技术有限公司 | 一种可供企业使用的安全u盘系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162492A (zh) * | 2018-02-14 | 2019-08-23 | 意法半导体(鲁塞)公司 | 存储器访问控制系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2015166211A2 (en) | 2015-11-05 |
GB2525596A (en) | 2015-11-04 |
GB201407409D0 (en) | 2014-06-11 |
CN106462508B (zh) | 2020-07-07 |
US20170039085A1 (en) | 2017-02-09 |
KR102327398B1 (ko) | 2021-11-17 |
WO2015166211A3 (en) | 2015-12-23 |
GB2525596B (en) | 2021-05-26 |
KR20160147903A (ko) | 2016-12-23 |
US10891146B2 (en) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106462508A (zh) | 访问控制与代码调度 | |
CN101281506B (zh) | 数据处理系统内基于存储器域的安全控制 | |
CN103377349B (zh) | 安全控制的多处理器系统 | |
CN104318182B (zh) | 一种基于处理器安全扩展的智能终端隔离系统及方法 | |
CN109582354A (zh) | 安全引擎方法、物联网设备、非暂时性计算机可读存储介质 | |
CN104520867B (zh) | 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质 | |
CN102197382B (zh) | 多层内容保护微控制器 | |
CN102592083B (zh) | 用于提高soc芯片系统安全的存储保护控制器及方法 | |
EP4033367B1 (en) | Memory protection with non-readable pages | |
CN107066887A (zh) | 具有敏感数据访问模式的处理装置 | |
US8392726B2 (en) | Protection of memory areas | |
CN102667794B (zh) | 用于保护操作系统免于非授权修改的方法和系统 | |
CN107667350A (zh) | 基于虚拟化的平台保护技术 | |
CN105264540A (zh) | 数据处理设备中的软件库的安全保护 | |
US7779254B1 (en) | Mechanism to enhance and enforce multiple independent levels of security in a microprocessor memory and I/O bus controller | |
EP2741229B1 (en) | Priority-based application execution method and apparatus of a dual-mode data processing device | |
US9104841B2 (en) | Methods and systems for executing protected content | |
JP2009129394A (ja) | 情報処理装置及びそのプログラム実行制御方法 | |
CN107766706A (zh) | 用于保护设备的域免于未经授权的访问的方法和装置 | |
EP3915028A1 (en) | Apparatus and method for enforcing hardware-assisted memory safety | |
CN107735790A (zh) | 用于在安全区域和不太安全区域之间转换的装置和方法 | |
US9690718B2 (en) | Method for protecting software of embedded applications against unauthorized access | |
CN113392395A (zh) | 一种栈保护的方法及装置 | |
CN103886251B (zh) | 系统加固的方法及装置 | |
CN116823585A (zh) | Gpu可信执行环境的构建方法、gpu可信计算执行方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |