CN105574440B - 利用在安全域中执行的应用的硬件保护数据处理***和方法 - Google Patents

利用在安全域中执行的应用的硬件保护数据处理***和方法 Download PDF

Info

Publication number
CN105574440B
CN105574440B CN201510384820.XA CN201510384820A CN105574440B CN 105574440 B CN105574440 B CN 105574440B CN 201510384820 A CN201510384820 A CN 201510384820A CN 105574440 B CN105574440 B CN 105574440B
Authority
CN
China
Prior art keywords
security
attribute
hardware component
application
domain
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.)
Expired - Fee Related
Application number
CN201510384820.XA
Other languages
English (en)
Other versions
CN105574440A (zh
Inventor
M.维拉特尔
B.巴拉彻夫
C.I.达尔顿
D.普拉坎
A.肖
S.K-Y.邵
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN105574440A publication Critical patent/CN105574440A/zh
Application granted granted Critical
Publication of CN105574440B publication Critical patent/CN105574440B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/71Protecting 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/74Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)
  • Databases & Information Systems (AREA)

Abstract

本发明涉及一种利用在安全域中执行的应用的硬件保护数据处理***和方法。一种支持安全域和非安全域的数据处理***包括硬件组件以及具有安全域和非安全域中的操作模式的处理器器件,所述处理器器件用以执行安全域中的安全应用。所述硬件组件具有属性,所述属性具有安全状态。所述处于安全状态下的硬件组件的属性只有响应于接收自安全域的指令才能被重新配置。所述安全应用操作用于实施配置服务,从而响应于根据与安全应用相关联的应用编程接口接收自非安全域的请求对处于安全状态下的硬件组件的属性进行配置。

Description

利用在安全域中执行的应用的硬件保护数据处理***和方法
背景技术
本公开内容涉及为硬件组件提供安全性的数据处理***和方法。
存在许多不同类型的数据处理***,其中包括通用设备和嵌入式***:例如移动电话、平板器件、PC、企业计算***、数据中心中的处理节点等等。数据处理***通常包括处理器器件和多种硬件组件,例如数据存储器件、存储器控制器、网络接口控制器、中断控制器、图形加速器、密码加速器等等。
附图说明
图1是示出了根据本公开内容的一个实例的数据处理***中的处理器件的操作模式的图示,其中支持并行的安全和非安全域。
图2A是示出了可以使用在根据本公开内容的一个实例的数据处理***中的硬件架构的方框图,其中支持并行的安全和非安全域。
图2B是示出了可以被用来实施图2A的架构的示例性硬件架构的方框图。
图3示出了根据本公开内容的一个实例的数据处理***的软件架构,其中支持并行的安全和非安全域。
图4是示出了根据本公开内容的用于修改利用数据处理方法的一个实例保护的硬件组件的安全属性的配置的一个示例性处理的图示。
图5A是示出了在硬件组件的配置方面作出改变的示例性处理期间的数据处理***中的各个组件之间的一个事务实例的图示;以及
图5B是示出了在硬件组件的配置方面作出改变的另一个示例性处理期间的数据处理***中的各个组件之间的一个事务实例的图示。
具体实施方式
后面的详细描述将参照附图。在可能的情况下,相同的附图标记在附图和后面的描述中被用来指代相同或类似的部分。虽然在本文中描述了几个实例,但是修改、适配和其他实现方式也是可能的。因此,后面的详细描述并不限制所公开的实例。相反,所公开的实例的适当范围可以由所附权利要求限定。
在某些情况下,出于安全性原因很重要的是对能够修改数据处理***中的特定硬件组件的配置的软件应用(和其他硬件组件)进行限制。更具体来说,硬件组件的某些属性从安全性的角度来看可能是敏感的,并且可以采取措施以便对可以设定或改变这些安全性敏感的属性的软件和器件进行限制。当采取了这样的措施时,可以认为所述硬件组件的相关属性是“安全的”。
在本文中将使用表达法“配置”或“重新配置”来表示设定或改***件组件的安全属性的处理。
某些处理器器件在其操作模式当中具有***管理模式(SMM模式)。举例来说,SMM模式在Intel Corp.的从386SL开始的x86系列CPU中可用。SMM模式是通过SMI中断进入的高特权操作模式,所述SMI中断导致程序执行传递到对于操作***以及应用软件或通用***软件不可访问的安全存储器区域(SMRAM)中的处理程序。所述处理程序的存储器位置由固件在***引导期间指定。
在具有x86系列架构的数据处理***中,有时硬件组件可能具有只有在处理器操作在SMM模式下时才能被设定或改变的安全属性。换句话说,所述安全属性的配置是被保留给特权软件的活动,从而改进了安全性。不具有适当的特权等级(也就是说在SMM模式下不被执行)的软件无法配置***硬件的相关属性。因此,在这些类型的数据处理***中,不受信任的软件无法对受保护硬件的安全属性作出潜在地有害的改变。
但是在其处理器器件支持SMM模式的数据处理***中,在使用SMM模式方面涉及很高的“成本”。响应于处理器器件切换到SMM模式,包括操作***在内的所有正常执行都被暂停,其结果是功能和任务被延迟。这对于涉及严格定时约束的实时应用来说特别成问题。此外,在其中处理器器件是多核处理器的实例中,在增加的延迟方面的这一“成本”被放大,这是因为触发切换到SMM模式的中断使得所有核心切换模式。此外,去到和来自SMM模式的模式切换涉及开销,这是因为必须把定义当前任务的所有情境(例如CPU状态)的数据保存到存储器,并且随后在从SMM模式切换回来时恢复所述情境。
本公开内容的实例使用一种不同的方法来实现针对其配置的不合期望的改变对数据处理***中的硬件组件的属性进行防护的功能。
下面将描述根据本公开内容的为其硬件组件的属性提供安全性的特定数据处理***和方法的实例,并且将在为密码硬件加速器提供安全性的情境中描述特定的示例性应用。但是该示例性应用纯粹是出于说明的目的来描述的;本公开内容还扩展到为除了密码硬件加速器之外的硬件组件提供安全性的数据处理***和方法。
根据本公开内容的一种示例性数据处理***实施支持安全域和非安全域(其也被称作安全世界和正常世界)的安全性框架。根据该第一示例性数据处理***,通过按照时分方式操作的单一处理器来支持安全和非安全域,从而实施两个虚拟核心,其中一个用于安全域,并且另一个用于正常域。但是还有可能使用分开的物理处理器核心来执行针对安全和非安全域的数据处理。下面将根据实施由ARM Limited提出的TrustZone®类型的安全性框架的架构来描述第一示例性数据处理***。虽然在该例中描述了TrustZone®安全性架构,但是也可以使用其他可行的架构。因此,贯穿本公开内容的术语TrustZone®的使用并不意图是限制性的,而是仅仅用作示例性的可行框架。
在每一个域中,处理器件可以具有多种操作模式,所述操作模式具有不同的特权等级,比如高特权内核模式和相对较低特权的用户模式。安全和非安全域不一定支持彼此相同类型的操作模式。安全域处理器核心还可以操作在监视器模式下,其应对安全域内的操作模式与非安全域内的操作模式之间的切换。
图1示出了在根据本公开内容的示例性数据处理***中支持的操作模式。图1示出了在非安全和安全域内支持的操作模式。实际上,安全世界与非安全世界并行可用,从而可以把受信任的应用和数据与不受信任的应用和数据隔离开。这种隔离技术最初是针对移动平台(例如电话、平板等等)开发的,这是因为移动平台的用户越来越多地趋向于下载具有不同(并且有时是未知的)程度的可信任性的应用和内容。安全和非安全域的存在提供了一种与通过具有不同操作模式而提供的特权分级结构正交的隔离技术。
在其中采用TrustZone®技术的实例中,凭借包括特殊总线组构在内的各种元件以及用于在域之间进行切换的监视器机制来支持并行的安全和非安全域。还存在安全性扩展,这意味着组件知晓适用于事务的域,并且适于按照适用域的安全性等级适当地运作。
在其中支持并行的安全和非安全域的本发明的示例性数据处理***中,当请求是来自非安全域时,被指派到安全域的硬件组件可以拒绝将访问安全资产/资源的请求。
在实施TrustZone®的该示例性***中,某些硬件组件可以由非安全和安全域内的元件使用。这种类型的硬件组件具有安全性扩展,所述安全性扩展可以确保其安全性敏感属性只能由安全世界元件配置或重新配置。适合于防护硬件组件的特定属性的安全性扩展的性质可以取决于该硬件组件的性质。举例来说,硬件组件可以与应对该硬件组件的安全属性的设定/改变的控制器相关联,并且该控制器可以确定所接收到的指令是来自安全域还是非安全域。
在一个实例中,其中事务在实施TrustZone®的该示例性***中发生,例如当软件应用通过互连/总线向***中的存储器或其他器件发送数据读取请求时,总线上的控制比特表明该事务是由非安全域还是安全域内中的器件发出。因此,存储器(或者相关联的存储器控制器)得知所述事务是否处在安全域内,并且可以将这一点纳入考虑以决定继续满足所述请求是否适当。提供前述功能的互连的一个实例是由ARM Limited提出的根据AMBA®(高级微控制器总线架构)规范的高级可扩展接口(AXI总线)。
具有原生TrustZone®支持的硬件组件有能力读取在所述互连上传播的控制比特,并且因此其知晓每一项事务在其中发生的安全/非安全域。此外,这样的组件输出表明其本身是操作在安全还是非安全域内的比特。
可以通过不同的方式在永久性或暂时性基础上把不具有原生TrustZone®支持的硬件组件指派到安全域或非安全域。硬件组件可以连接到AXI或ACE总线(AXI一致性扩展总线),并且与TrustZone地址空间控制器或TrustZone®存储器适配器相关联地使用。或者,可以在传播用信号表明安全/非安全域的控制比特的互连/总线与硬件组件所连接到的总线之间提供桥接器。举例来说,AXI到APB总线可以被用来把AXI互连连接到某些硬件组件所连接到的AMBA®高级***总线(APB)。AXI到APB桥接器具有表明硬件组件去到安全/非安全域的指派的控制输入。所述控制输入可以是固定的,或者其可以例如由诸如TrustZone保护控制器之类的模块动态地控制。作为另一个实例,AXI到AHB总线可以被用来把AXI互连连接到某些硬件组件所连接到的AMBA®高级高性能总线(AHB)(在这种情况下,连接到相关的AHB总线的所有硬件组件共享去到安全或非安全域的相同指派)。还可以使用其他可行的实现方式。
图2A示出了根据本公开内容的一个实例的数据处理***1。数据处理***1支持安全域和非安全域,并且包括具有安全域和非安全域内的操作模式的处理器器件2(即非安全域内的至少一种操作模式和安全域内的至少一种操作模式)。数据处理***1的处理器器件2可以执行安全域内的安全应用4,以便保护硬件组件5的安全性。硬件组件5具有属性8,其具有安全状态(也就是说属性8或者是永久性地安全的,或者其可以是暂时安全的)。在其中属性8处于“安全”状态的一个实例中,该属性8只有响应于接收自安全域的指令才能被配置。
安全应用4包括在被执行时提供配置服务的程序代码,尽管硬件组件5的属性8处于安全状态,所述配置服务使该属性8能够被配置。来自非安全域的器件和应用可以通过与安全应用相关联的应用编程接口(API)7向安全应用4发送请求。响应于安全应用4认为所述请求是适当的,所述安全应用对硬件组件5的安全属性8实施必要的设定/改变。所述安全应用可以实施任何方便的安全性策略来判定给定的请求是否是适当的。
在该例中,安全应用4被存储在数据处理***1内的安全存储器中,并且其例如可以被提供为***固件。
图2B示出了可以被用来利用TrustZone®技术实施图2A的***的硬件架构。在该示例性硬件架构中,在SoC(芯片上***)上提供若干组件;SoC的周界在该图中由虚线表示。利用白色方框示出的组件被指派到非安全域,利用深灰色方框示出的组件被指派到安全域,并且利用浅灰色方框示出的组件可以被动态地指派到安全或非安全域或者具有安全性意识(也就是说,根据适用于事务的安全或非安全域,其行为将是不同的)。
图2B中示出的示例性硬件架构具有AXI总线、APB总线以及AXI到APB桥接器。图2B示出了去到AXI到APB桥接器的控制输入,其向所述桥接器通知为附着到APB桥接器的每一项外设指派了哪一个域(非安全或安全)。在图2B中,去到AXI到APB桥接器的控制输入的空间布局与如图中所示附着到APB总线的外设的空间布局相匹配(例如右下方控制输入NS表明被指派给在图2B的右下方示出的数字到模拟转换器DAC的域)。键盘管理接口KMI可以由正好在AXI到APB桥接器下方的图2B中示出的TrustZone保护控制器动态地指派到安全或非安全模式。
图3以一些相关联的硬件组件的图形表示示出了可以在根据本公开内容的示例性数据处理***中使用的软件架构。
图3示出了非安全和安全域内的各种用户操作模式和特权操作模式,并且示出了涉及安全与非安全域之间的切换的中断(IRQ)、快速中断(FIQ)和***监视器调用(SMC)。可以看到,在图3所示出的实例中,存在执行在非安全域内的各种用户模式应用50以及执行在安全域内的用户模式独立应用。此外还可以有对应于非安全域的操作***(内核)12以及对应于安全域的分开的安全操作***15。并不强制根据本公开内容的示例性数据处理***的安全域具有其自身的安全操作***;各种其他方法也是可能的,其中包括在简单的层级具有放置在安全域内的同步代码库。
如图3中所示,所述示例性数据处理***可以包括作为安全性客户端的非安全世界中的一些应用52,也就是说其涉及需要由安全域内的安全代码实施的任务。这例如可能是内容下载软件应用驻留在非安全域内但是涉及安全支付处理的情况。在这样的情况下,响应于确定将要实施安全支付处理,所述非安全内容下载应用充当安全性客户端,并且请求安全域内的相关联的安全***54至少实施在安全支付处理中所涉及的敏感任务。
如图3中所示,可以在根据本公开内容的第一示例性数据处理***中提供安全的配置-服务应用30。配置-服务应用30是在安全域内执行的受信任的软件应用。配置-服务应用30实施响应于来自其他应用或器件的请求修改数据处理***中的若干硬件组件20的安全属性的配置的服务。所述请求例如可以包括来自非安全域应用50或非安全域器件的请求。根据与配置-服务应用30相关联的API 60,所述请求由非安全域操作***及其TrustZone®驱动程序传输到配置-服务应用30。配置-服务应用30的API 60通常建立在由ARM Limited提出的SMC Calling Convention之上,但是也可以使用其他方法。顺带提及的是,非安全域的操作***本身可以请求配置-服务应用30在受保护硬件组件的安全属性的配置方面作出改变。
配置-服务应用30可以被用来为***中的所选硬件组件20提供安全性。数据处理***中的若干其他硬件组件可能没有受到配置-服务应用30的防护。
配置-服务应用30可以被设置成为永久性地处于安全状态(也就是说永久性地处于其仅能够由安全域配置的状态)的若干硬件组件属性提供安全性。
替换地或附加地,配置-服务应用30可以被设置成为并非永久性地安全的若干硬件组件属性提供安全性。举例来说,可能会决定适当的是保护硬件组件的特定属性,但是所讨论的硬件组件当前没有被指派到安全域。在这种情况下,配置-服务应用30可以控制相关的硬件组件将其指派到安全域,从而使得其将不会实施来自非安全域的任何指令(从而防止对来自非安全域的配置指令作出响应)。
在这里所讨论的实例中,利用TrustZone保护控制器(TZPC)来实施硬件组件到安全域的动态指派,所述TrustZone保护控制器适当地设定针对桥接器的相关控制输入,所述桥接器连接到硬件组件在其上进行通信的总线。配置-服务应用30可以使用TZPC将硬件组件指派到安全域,从而把硬件组件的属性设定到安全状态。配置-服务应用30还可以使用其他方法来将硬件组件指派到安全域,并且不限于这里所描述的实例。
在根据本公开内容的示例性数据处理***中,只有安全域有能力在硬件组件20的属性处于安全状态时改变那些属性的配置。实际上,在硬件组件的所选属性处于安全状态时,在这些所选属性的配置方面作出改变的功能被保留给受信任的代码。
可能的是,在安全域内执行的所有代码都是用于允许访问硬件组件的安全属性的配置的目的的受信任代码。举例来说,如果配置-服务应用30是在安全域内执行的唯一安全应用就可能是这种情况。但是有可能的情况是,某一其他安全应用在安全域内执行,但是对于配置硬件组件的安全属性方面不受信任。在这种情况下,适当的是把配置硬件组件的安全属性的功能保留给受信任的代码。
可以通过不同方式来实施这一保留。在图3中所示出的类型的示例性数据处理***中,安全域内的操作***15可以实施受限制的操作***环境,并且在安全域内执行的任何受信任的应用都可以通过沙箱方式被隔离在所述受限制的操作***环境中,并且从而使其无法配置硬件组件20的安全属性。但是本公开内容不限于这种方法;可以使用其他方法来实现所述保留。
在实施利用TrustZone®技术(也就是说利用TrustZone®总线组构和安全性扩展)的安全性框架的传统数据处理***中,可以将一些硬件组件永久性地指派到安全域或非安全域。其他硬件组件(例如诸如键盘或显示器之类的外设)可以仅仅对于实施特定安全性功能所必要的时间被暂时性地指派到安全域,并且随后其可以在所述安全性功能的实施完成时被释放回到非安全域。
根据本公开内容的前面描述的实例的数据处理***增强硬件组件的所选属性的安全性,这是通过在(多个)硬件组件的所选属性处于安全状态的时间期间实施配置所述(多项)所选属性的功能而实现的,功能是被保留给受信任的安全域代码(受信任的安全域应用)的功能。此外,在其中所选属性是未被永久性地指派到安全域的硬件组件的属性的情况下,配置-服务应用30可以操作用于在保护时段期间将所选硬件组件指派到安全域,所述保护时段的起始/结束时间以及持续时间是基于后面所讨论的因素确定的,并且不必关联到任何特定安全性任务的执行时段。
图4示出了用于在执行在非安全世界中的应用(其在图4中被称作NS应用)的请求下利用配置-服务应用30来配置硬件组件的安全属性的处理的一个实例。
从图4中示出的实例可以看到,NS应用可以发出实际上要求在受保护硬件组件的安全属性方面作出改变的请求。非安全域操作***(以及例如其(多个)TrustZone®驱动程序)处理来自NS应用的请求,并且决定向配置-服务应用30发送请求。NS操作***可以具有内建智能,这允许其确定来自NS应用的请求涉及对硬件组件的安全属性的配置,使得可能必须向配置-服务应用30发出请求。但是还有其他可能性。举例来说,NS操作***可能不具有关于要求对受保护属性进行配置的明确知识,并且可以只有在尝试满足NS应用的请求(并且失败)之后才向配置-服务应用30发送请求。
非安全域操作***(及其(多个)TrustZone®驱动程序)通过监视器模式向配置-服务应用30发送其请求。根据API 60来发出请求,所述API 60与所述配置-服务应用相关联并且与和安全世界的底层通信信道相关联(通常是SMC API)。根据要求,来自NS应用的单一请求可能需要针对受保护硬件组件的安全属性作出多项改变,以及/或者对多个受保护硬件组件的安全属性作出改变。
TrustZone®驱动程序可以被明确地设计成实施配置服务API。另一种方法包括将TrustZone®驱动程序设计成使其可以找出配置-服务API(例如通过对安全域发起针对服务发现的特殊调用、通过由NS操作***使用UEFI等等)。
可以增强安全性的一项附加措施是使得API 60限制暴露于非安全域应用的配置选项。
举例来说,给定的硬件组件可以具有由n项属性构成的一个集合,其数值可以被改变,并且每一项属性可以具有可能数值的(连续或离散)范围。API 60可以被设计成使得其允许NS应用仅对于受保护硬件组件的其中一些可修改的属性请求指定的数值。替换地或附加地,API 60可以被设计成使得尽管其允许NS应用对于硬件组件的能够被修改的任何属性请求指定的数值,但是API 60可以仅允许NS应用从所述属性可以取得的可能数值范围的一个子集当中进行选择(应当理解的是,根据设计者的要求,所述子集可以从可能数值的全集当中自由选择)。
另一种方法包括将API 60设计成使得NS应用在不具有硬件组件的可能需要被改变的(多项)特定属性的知识的情况下基于受保护硬件组件的抽象或模型来制定其请求,以便实现NS应用基于所述抽象/模型选择的功能或特性。实际上,NS应用甚至可能不知晓在满足其请求方面将涉及的(多个)特定硬件组件。这种方法的有利之处在于其有助于避免错误配置,并且其可以改进可移植性(例如在其中有两个组件提供相同的功能并且需要不同配置的情况下,NS应用将不会知晓任何差别)。
因此,取决于API 60的实现方式,在安全应用处接收到的请求的内容可以是不同的。在一个实例中,NS操作***及其(多个)TrustZone®驱动程序向配置-服务应用30发送请求,其表明NS应用所希望实施的功能(而没有明确标识出需要对硬件组件的安全属性作出的相关联的改变)。在这种情况下,配置-服务应用30确定需要硬件组件的安全属性的改变,并且决定是否实施所述改变。这一决定可以通过应用安全性策略来作出。在另一个实例中,NS操作***及其(多个)TrustZone®驱动程序向配置-服务应用30发送请求,其标识出需要硬件组件的安全属性的改变。在这种情况下,配置-服务应用30简单地作出是否要实施所述改变的决定。
本公开内容在可以受保护的硬件组件的性质方面不受特别限制,在可以受保护的安全属性的性质方面也不受特别限制。仅出于说明的目的,可以提到提供对于相关联的存储器的不同区段的访问的存储器控制器的一个实例。出于安全性目的,可能重要的是控制对于不同存储器区段的访问,并且因此可能适当的是定义规定一个可访问存储器区段的地址范围以作为安全属性。利用本公开内容的技术,只有受信任的代码可以设定/改变该可访问存储器区段的地址范围:如果来自非安全域的器件和应用需要所述可访问存储器区段的改变,其需要联系安全的配置-服务应用30。
仅出于说明的目的,另一个实例涉及被设置成可由非安全域器件和应用使用的密码加速器。出于安全性原因,可能需要对于非安全域隐藏密码密钥。相应地,与密钥管理有关的密码加速器的属性被设定成安全属性,并且所述配置-服务应用通过配置-服务API向非安全域提供密钥管理服务。
利用安全的配置-服务应用30保护的硬件组件属性的数目和性质的选择例如可以由数据处理***的制造商根据任何方便的标准作出。仅出于说明的目的,可以给出构成包含多个处理节点的数据中心中的一个处理节点的数据处理***的情况的一个实例。如果数据处理***中的某一硬件组件的特定属性的特定配置可能对其他节点有害,则可以选择该属性以便利用配置-服务应用30进行保护。
如图4中所示,配置-服务应用30对接收自非安全域的请求进行处理。响应于确定必须对硬件组件的安全属性作出所需改变,配置服务应用30向该硬件组件发送配置指令。硬件组件确定指示对所述安全属性进行配置的配置-服务应用30正在安全域内执行,并且因此根据所接收到的指令对所述安全属性实施所期望的改变。硬件组件随后可以向安全的配置-服务应用30发送回确认。所述确认可以被传播回到NS应用。
正如前面所提到的那样,配置-服务应用30可以被使用来保护其去到安全域和非安全域的指派动态地改变的硬件组件的属性。在这种情况下,配置-服务应用30可以决定指示TrustZone保护控制器TZPC在一个时间段的起始处将所选硬件组件指派到安全域,所述时间段可以被称为“保护时段”。在所述保护时段期间的某一时间,当硬件组件仍然被指派到安全域时,执行在非安全域中的应用可能会向配置-服务应用30发送涉及对受保护硬件组件的属性作出改变的请求,并且可以基本上按照与图4的处理中相同的方式来应对所述请求。
正如前面所提到的那样,配置-服务应用30不必把保护时段的起始时间和持续时间设定成与相关的硬件组件在安全性功能的实施中被涉及的时间间隔相重合。实际上,即使在主机数据处理***本身没有在实施被认为需要高安全性的任何功能的时间,通过把硬件组件保持在安全域内并且把对硬件组件的属性进行配置的功能保留给受信任的代码,可以获得优点。
举例来说,可能发生的是,数据处理***开始被使用在先前没有设想到的应用或情境中。这一新的应用/使用情境可能涉及在设计时没有预见到的威胁(也就是对硬件组件的安全性的威胁),并且因此数据处理***不具有适当的非安全域安全性客户端或者安全域安全***,其将在所述新的应用/情境中使用所述设备时把硬件组件指派到安全域。但是在配置-服务应用30操作来把硬件组件保持在安全域内并且对硬件组件的属性进行配置的功能被保留给受信任代码的情况下,硬件组件针对所述威胁受到保护。
作为另一个实例,可能发生的是,数据处理***连接到相同或不同类型的其他***。第一数据处理***中的硬件组件的属性的改变(其在第一数据处理***的情境中似乎是无害的(并且因此在非安全域内被实施))可能潜在地导致所连接的***中的不合期望的结果。但是在配置-服务应用30操作来把硬件组件保持在安全域内并且对硬件组件的属性进行配置的功能被保留给受信任代码的情况下,这一问题可以被解决,这是因为配置-服务应用30可以被设计成包括这样的代码,其根据对于所连接的***/器件的很可能或可能的影响来控制哪些改变在主机数据处理***的硬件组件的安全属性中是被允许的。
从前面的段落将会理解的是,配置-服务应用30所做的可以比在非安全域应用的请求下简单地执行受保护硬件组件的安全属性的改变更多。安全的配置-服务应用30可以应用针对决定是否(以及如何)实施所请求的改变的标准。本公开内容在可以被纳入考虑的标准的性质方面不受特别限制,在安全应用根据所应用的标准对请求作出响应的方式方面也不受特别限制。
安全的配置-服务应用30可以根据多种不同方法来设定对应于所选硬件组件的保护时段,例如:将保护时段设定成持续数据处理***被通电的基本上全部时间,识别出可能对所选硬件组件构成威胁的情境并且把保护时段设定成与检测到所述情境的时间(或者预测其发生的时间)重合,或者更一般来说,当确定威胁状况存在时:例如把保护时段设定成与网络接口控制器是活跃的以便把数据处理***连接到外部网络的时间重合,识别出硬件组件的安全属性的改变能够对其他元件(例如连接到数据处理***的外部器件中的组件)导致损害或破坏的时间,并且把保护时段设定成与所识别出的时间重合等等。
在根据本公开内容的数据处理***的一些实例中,所述受保护硬件组价被设置从而将其具有从安全性角度来看是敏感的属性的子组件与其不具有安全性敏感属性的子组件分离。所述分离可以通过任何方便的方式来实现。这种类型的硬件组件可以包括与(多个)安全性敏感子组件相关联的控制器,并且其控制所述(多个)安全性敏感子组件的安全属性的配置。图5A示出了根据这样的实例的一般情况。
图5A示出了一个实例,其中硬件组件200包括子组件或子组件集合110,其具有需要被安全地配置的若干(一项、两项、多于两项)属性,以及子组件或子组件集合120;所述(多个)子组件120的配置从安全性角度来看不敏感。在图5A所示出的实例中,(多个)正常使用子组件120具有并非安全性敏感而是可以被配置的属性。
如图5A中所示,执行在非安全域内的应用的工作负荷/操作***55使用API 60来向配置-服务应用30发送请求,所述请求涉及对于(多个)子组件110的安全属性作出(多项)改变。响应于配置-服务应用30确定可以允许按照所要求的方式配置所述安全属性,配置-服务应用30向控制器130传送配置指令。但是在该例中,工作负荷/OS 55有能力对于硬件组件200的(多个)正常使用子组件120直接指示配置改变(这是因为在非安全域改变所述(多个)子组件120的属性的配置的情况下不存在安全性后果)。因此,工作负荷/OS 55可以请求控制器130改变正常使用子组件120属性的配置。此外,工作负荷/OS 55可以利用正常使用子组件120。
图5B示出了图5A中所示的方法的一种具体实现方式。在图5B的实例中,受保护硬件组价是密码加速器300,并且密码加速器300的敏感部分是其内容必须被保持保密的密钥寄存器310。但是数据输入寄存器中的尚未加密的数据和数据输出寄存器中的已加密数据并不是安全性敏感的。在该例中,数据输入/输出寄存器320不具有可供配置的(敏感的或者不敏感的)任何属性。在该例中,密码加速器300可以对于非安全域提供加密和解密,并且因此请求加密的非安全域任务58可以访问数据输入/输出寄存器320。但是密钥寄存器310的属性只能通过控制器330来配置。
如图5A和5B中所示,在可以通过把安全性敏感子组件与其配置不需要特殊保护的子组件分离的方式对硬件组件进行实例化的情况下出现技术优点。通过这一分离,非安全域或许有可能直接对硬件组件的非敏感属性作出改变,而不需要涉及安全应用。
在根据本公开内容的数据处理***中,可以通过各种不同方式使得非安全域应用知晓由配置-服务应用30提供的配置服务的存在。一些示例性技术包括:使用ACPI表(高级配置与电源接口表)、对于非安全域操作***的显式编程等等。另一种示例性技术包括设计非安全域操作***,从而通过发出针对发现安全配置-服务应用及其相关联的API的查询来实施服务发现规程。
在其中多个数据处理***彼此连接的数据中心中,由于所连接的***中的硬件配置的改变而导致对于数据处理***的意外破坏的问题可能特别成问题。因此,数据中心是其中有利地使用根据本公开内容的实例的数据处理***和方法的具体环境。
根据本公开内容的数据中心的一个实例包括多个处理节点(例如多个互连的处理器器件),并且所述多个处理节点当中包括这样的处理节点(其支持安全域和非安全域),其包括具有安全域和非安全域内的操作模式的处理器器件,所述处理器器件执行安全域内的安全应用。该处理器节点包括硬件元件,所述硬件元件具有属性,所述属性具有安全状态,并且处于安全状态下的所述属性只有响应于接收自安全域的指令才能被重新配置。安全应用操作用于实施配置服务,所述配置服务响应于根据与所述安全应用相关联的应用编程接口接收自非安全域的请求对处于安全状态下的所述硬件组件的属性进行配置。
前面的描述给出了根据本公开内容的某些实例,其中通过使用执行在安全域内的安全应用针对不合期望的改变保护数据处理***中的硬件组件的安全性敏感属性。这种方法与前面提到的基于使用x86系列架构中的SMM模式的技术相比具有特定技术优点。与切换到和切换出x86系列架构中的SMM模式所涉及的“成本”相比,利用执行在安全域内的安全应用来保护硬件组件的配置的“成本”要低得多。举例来说,在执行在安全域内的安全应用处理配置改变请求的同时,没有必要暂停执行所有其他任务;多项安全应用可以同时执行在安全域内。
虽然在某些具体实例方面给出了本公开内容,但是应当理解的是,在不背离所附权利要求的范围的情况下,在所述实例中可以作出各种修改和扩展。
举例来说,虽然前面的实例使用TrustZone®总线组构和安全性扩展来支持和实例化安全和非安全域,但是也可以使用其他方法。
按照类似的方式,虽然前面描述的实例涉及使用单一控制器来控制硬件组件的安全属性集合的配置或者硬件组件的一些子组件的安全属性,但是本公开内容在控制器的数目以及安全属性到控制器的指派方面不受特别限制。举例来说,每一项安全属性可以具有其自身的控制器,可以通过单一控制器配置多项安全属性,相同硬件组件的不同子组件的安全属性可以具有分开的控制器或共享的控制器或者两种方法的混合等等。
前面的公开内容描述了用于保护硬件的若干示例性实施例。所公开的实例可以包括用于保护硬件的***、器件、计算机可读存储介质和方法。出于解释的目的,参照图1-5B中示出的组件描述了某些实例。但是所示出的各个组件的功能可以重叠,并且可以存在于数目更少或更多的元件和组件中。此外,所描述的元件的功能的全部或一部分可以共存,或者可以分布在几个地理上分散开的位置之间。此外,所公开的实例可以被实施在多种环境中,而不限于所示出的实例。
此外,结合图1-5B描述的操作序列是实例,而不意图是限制性的。在不背离所公开的实例的范围的情况下,可以使用附加的或更少的操作或操作组合,或者所述操作或操作组合可以有所不同。此外,与所公开的实例一致的实现方式不需要按照任何特定顺序来实施操作序列。因此,本公开内容仅仅阐述了可能的示例性实现方式,并且可以对所描述的实例作出许多变化和修改。所有这样的修改和变化都意图被包括在本公开内容的范围内并且受到接下来的权利要求的保护。

Claims (11)

1.一种支持安全域和非安全域的数据处理***,所述***包括:
具有安全域和非安全域中的操作模式的处理器器件,所述处理器器件用以执行安全域中的安全应用;以及
具有属性的硬件组件,所述属性具有安全状态,其中处于安全状态下的所述属性只有响应于接收自安全域的指令才能被重新配置,
其中,所述安全应用操作用于实施配置服务,从而响应于根据与安全应用相关联的应用编程接口接收自非安全域的请求对处于安全状态下的硬件组件的属性进行配置;
其中,所述硬件组件具有一个配置选项集合,并且所述应用编程接口仅把硬件组件的配置选项的一个子集暴露于非安全域中的应用。
2.根据权利要求1的***,其利用具有域意识的总线组构和安全性扩展来支持安全域和非安全域。
3.根据权利要求1的***,其中,所述安全应用是受信任的应用,并且:
处理器器件在安全域中执行的仅有的应用是受信任的应用;或者
处理器器件实施受限制的操作***环境,并且处理器在安全域中执行的任何不受信任的应用都通过沙箱方式被隔离在所述受限制的操作***环境中。
4.根据权利要求1的***,其中,所述硬件组件包括多个子组件,所述多个子组件包括第一子组件和第二子组件,其中第一子组件具有只有响应于接收自安全域的指令才能被重新配置的所述属性,并且第二子组件不具有只有响应于接收自安全域的指令才能被重新配置的属性。
5.根据权利要求1的***,其中,由处理器器件实施的安全应用操作用于在所选的时间将硬件组件的所述属性设定到安全状态。
6.根据权利要求5的***,其中,所述安全应用操作用于响应于确定存在威胁状况而把硬件组件的所述属性设定到安全状态。
7.根据权利要求1的***,其中,所述处理器器件实施非安全域中的操作***,并且
所述操作***发出发现由所述安全应用提供的配置服务的查询,并且检测相关联的应用编程接口。
8.一种对数据处理***的硬件组件进行防护的方法,所述数据处理***支持安全域和非安全域并且包括具有安全域和非安全域中的操作模式的处理器器件,所述硬件组件具有属性,所述属性具有安全状态,其中只能从安全域重新配置处于安全状态下的所述属性,所述方法包括:
使得数据处理***的处理器器件执行安全域中的安全应用,
其中,所述安全应用操作用于实施配置服务,从而响应于根据与安全应用相关联的应用编程接口接收自非安全域的请求对处于安全状态下的硬件组件的属性进行配置;
其中,所述硬件组件具有一个配置选项集合,并且所述应用编程接口仅把硬件组件的配置选项的一个子集暴露于非安全域中的应用。
9.根据权利要求8的防护硬件组件的方法,其中,所述安全应用是受信任的应用,并且:
处理器器件在安全域中执行的仅有的应用是受信任的应用;或者
处理器器件实施受限制的操作***环境,并且通过沙箱方式把不受信任的应用隔离在所述受限制的操作***环境中。
10.根据权利要求8的防护硬件组件的方法,并且包括:
使得处理器器件实施非安全域中的操作***;以及
所述操作***发出发现由所述安全应用提供的配置服务的查询,并且检测相关联的应用编程接口。
11.一种包括多个处理节点的数据中心,其中,所述多个处理节点包括支持安全域和非安全域的处理节点以及包括以下各项的***:
具有安全域和非安全域中的操作模式的处理器器件,所述处理器器件用以执行安全域中的安全应用;以及
具有属性的硬件组件,所述属性具有安全状态,其中处于安全状态下的所述属性只有响应于接收自安全域的指令才能被重新配置,
其中,所述安全应用操作用于实施配置服务,从而响应于根据与安全应用相关联的应用编程接收自非安全域的请求对处于安全状态下的硬件组件的属性进行配置;
其中,所述硬件组件具有一个配置选项集合,并且所述应用编程接口仅把硬件组件的配置选项的一个子集暴露于非安全域中的应用。
CN201510384820.XA 2014-10-31 2015-06-30 利用在安全域中执行的应用的硬件保护数据处理***和方法 Expired - Fee Related CN105574440B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1460522 2014-10-31
FR1460522 2014-10-31

Publications (2)

Publication Number Publication Date
CN105574440A CN105574440A (zh) 2016-05-11
CN105574440B true CN105574440B (zh) 2018-10-02

Family

ID=53677438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510384820.XA Expired - Fee Related CN105574440B (zh) 2014-10-31 2015-06-30 利用在安全域中执行的应用的硬件保护数据处理***和方法

Country Status (3)

Country Link
US (1) US9633231B2 (zh)
CN (1) CN105574440B (zh)
GB (1) GB2531844B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720868B2 (en) * 2014-07-07 2017-08-01 Xilinx, Inc. Bridging inter-bus communications
KR102311340B1 (ko) * 2015-01-15 2021-10-15 한국전자통신연구원 암호화 장치 및 방법
CN106453398B (zh) * 2016-11-22 2019-07-09 北京安云世纪科技有限公司 一种数据加密***及方法
US10243731B2 (en) 2017-01-27 2019-03-26 Accenture Global Solutions Limited Hardware blockchain acceleration
CN107526693A (zh) * 2017-08-11 2017-12-29 致象尔微电子科技(上海)有限公司 一种基于线性映射表的内存隔离方法
GB201806465D0 (en) * 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
CN108595983B (zh) * 2018-04-24 2021-08-06 许昌学院 一种基于硬件安全隔离执行环境的硬件架构、及应用上下文完整性度量方法
GB201810659D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure-Aware Bus System
GB201810662D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
GB201810653D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure peripheral interconnect
CN111177701B (zh) * 2019-12-11 2022-09-13 北京握奇智能科技有限公司 基于可信执行环境和安全芯片的密码功能服务实现方法和设备
US11784792B2 (en) * 2020-09-29 2023-10-10 Infineon Technologies Ag Secure software interface
CN113641989B (zh) * 2021-08-13 2024-05-31 南京中孚信息技术有限公司 应用管理方法、装置及***、电子设备
US20220004635A1 (en) * 2021-09-21 2022-01-06 Intel Corporation Computing peripheral interface management mechanism
CN115857861B (zh) * 2023-03-02 2023-06-02 上海励驰半导体有限公司 显示控制方法、***、芯片、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870336A (zh) * 2012-12-07 2014-06-18 三星电子株式会社 数据处理设备的基于优先级的应用运行方法及装置
CN104115155A (zh) * 2012-02-08 2014-10-22 Arm有限公司 在具有安全域和次安全域的数据处理设备中的异常处理

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226795A1 (en) 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US8725123B2 (en) 2008-06-05 2014-05-13 Headwater Partners I Llc Communications device with secure data path processing agents
US9077654B2 (en) * 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
JP5885851B2 (ja) * 2011-10-21 2016-03-16 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 特権ドメインでの基本入出力システム(bios)機能の提供
MY158770A (en) * 2011-11-04 2016-11-15 Sk Planet Co Ltd Method for interworking with trustzone between normal domain and secure domain, and management method of trusted application download, management server, device and system using it
KR101959738B1 (ko) 2012-05-24 2019-03-19 삼성전자 주식회사 장치 식별자와 사용자 인증 정보에 기반한 보안 키 생성 장치
KR101954733B1 (ko) * 2012-10-26 2019-03-06 삼성전자주식회사 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104115155A (zh) * 2012-02-08 2014-10-22 Arm有限公司 在具有安全域和次安全域的数据处理设备中的异常处理
CN103870336A (zh) * 2012-12-07 2014-06-18 三星电子株式会社 数据处理设备的基于优先级的应用运行方法及装置

Also Published As

Publication number Publication date
GB2531844A (en) 2016-05-04
US20160125201A1 (en) 2016-05-05
GB201509288D0 (en) 2015-07-15
GB2531844B (en) 2019-06-26
US9633231B2 (en) 2017-04-25
CN105574440A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
CN105574440B (zh) 利用在安全域中执行的应用的硬件保护数据处理***和方法
Lentz et al. Secloak: Arm trustzone-based mobile peripheral control
KR102504519B1 (ko) 네트워킹된 장치들을 갖는 컴퓨터 구동 시스템의 반가상 보안 위협 보호
EP3308524B1 (en) System, apparatus and method for auto-optimization of access control policy and key management in a network authoring tool
TWI570589B (zh) 用以提供受信任計算之裝置
US7716720B1 (en) System for providing secure and trusted computing environments
CN105184147B (zh) 云计算平台中的用户安全管理方法
US7734933B1 (en) System for providing secure and trusted computing environments through a secure computing module
US7434264B2 (en) Data processing system with peripheral access protection and method therefor
US20100031325A1 (en) System for enabling multiple execution environments to share a device
CN105184164B (zh) 一种数据处理方法
US20150381610A1 (en) Location-based data security
CN103890716A (zh) 用于访问基本输入/输出***的功能的基于网页的接口
CN104021037B (zh) 动态资源共享
KR20160147993A (ko) 구내-인식 보안 및 정책 조정
CN101874245A (zh) 用于从处理器向***设备授予安全工作模式访问特权的方法和设备
US20170317832A1 (en) Virtual Secure Elements in Computing Systems based on ARM Processors
CN109526249A (zh) 用于管理通信设备的通信接口的设备和方法
US10250595B2 (en) Embedded trusted network security perimeter in computing systems based on ARM processors
CN112602086A (zh) 安全外设互连件
Alder et al. Aion: Enabling open systems through strong availability guarantees for enclaves
KR101498965B1 (ko) 가상화 기술을 이용한 내외부망 격리 시스템 및 방법
US10628611B2 (en) Exclusive execution environment within a system-on-a-chip computing system
CN110276214A (zh) 一种基于从机访问保护的双核可信soc架构及方法
Tan et al. A system-level security approach for heterogeneous MPSoCs

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181002