保护从中央处理器发送的以供处理的安全数据的安全性的制作方法

文档序号:6480278阅读:173来源:国知局
专利名称:保护从中央处理器发送的以供处理的安全数据的安全性的制作方法
技术领域
本发明的领域涉及数据处理,并且更具体地涉及使用附加的处理装
置处理安全数据和不安全(non-secure)数椐,以在第一数据处理器的 控制下执行任务。
背景技术
与主处理器相结合使用加速器或协处理器来增强性能是已知的,加 速器或协处理器执行主处理器请求的任务。尽管通过提供附加的处理能 力可以增强性能是显然的,但这类系统可能存在的缺陷是与处理器和加 速器之间的通信相关的开销。例如在安全操作系统和不安全操作系统的 控制下处理安全数据和不安全数据两者的情况下,与管理在处理器和加 速器之间传送的数据的安全性状态相关的通信开销可能是非常高的。在 这种情况下,将大任务发送给加速器来执行才可能是有利的,只占用几 十个或甚至几百个周期(cycle)的任务所具有的与之关联的通信开销 如同它们增进的处理性能 一 样多或更多。

发明内容
本发明的第一方面提供了一种数据处理设备,包括数据处理器和另 一 (further)处理装置,所迷数据处理器用于在安全模式和不安全模式 下处理数据,在所述安全才莫式下处理数据的所述数据处理器可以访问安 全数据,所述数据处理器在所述不安全模式下不可以访问所述安全数 据,并且在所述安全模式下处理数据是在安全操作系统的控制下进行 的,在所述不安全模式下处理数据是在不安全操作系统的控制下进行 的;所述另一处理装置用于响应于来自所述数据处理器的请求而执行任 务,所述任务包括处理至少其中一些是安全数据的数据;其中所述另一 处理装置响应于接收到暂停所述任务的信号,以启动使用安全密钥处 理所述安全数据;和将所述处理过的安全数据存储到不安全数据储存器 (store)中;所述另 一处理装置还响应于接收到继续所迷任务的信号,以启动从所述不安全数据储存器中检索(retrieval)所述处理过的 安全数据;以及使用所述安全密钥恢复所述处理过的安全数据;其中所 述安全密钥是安全地存储的,使得其不能被工作在所述不安全模式下的 其它进程访问。
本发明认识到在另一处理装置处理的数据包括安全数据的情况下, 使用该另一处理装置为可以在安全或不安全模式下操作的数据处理器 执行特定任务的通信开销可能巨大。原因是该安全数据必须与数据处理 器的不安全^t式保持隔离,并且安全数据的管理通常是由数据处理器的 安全操作系统完成的。然而,无论何时正由另一处理装置执行的任务被 中断并且需要被暂停时,调用安全操作系统来管理由该另 一处理装置正 在处理的安全数据将需要许多操作周期,因此在性能方面代价会非常 高。本发明通过提供所述另一处理装置解决了此问题,该另一处理装置 本身具有的功能使得其能够使它正在处理的安全数据在存储到数椐处 理器可以访问的不安全数据储存器之前被处理。该处理是使用其它不安 全进程不能访问的密钥完成的。通过提供本身具有这种功能的所述另一 处理装置,提供了在无需安全操作系统介入的情况下维持安全数据的安 全性的可能性。而且,在所述另一处理装置原本处理的任务要被继续时, 可以使用其它不安全进程不能访问的安全密钥在另一处理装置的控制 下恢复安全数椐,然后可以恢复所述另一处理装置的状态,并且继续读 任务,其中可以在不安全模式下操作的数据处理器本身只能受控访问安 全数据。
因此,所述另一处理装置本身以有效方式维持了由所述另一处理装 置处理的数据的安全性,并且与发送任务给另 一处理装置相关的开销被 降低,因此可以发送轻小的任务,获得性能益处(performance benef i O 。
在一些实施例中,所述安全数据的所述处理包括使用所述安全密钥 加密所述安全数据,并且所述处理过的安全数据的所迷恢复包括使用所 迷安全密钥解密所述加密的安全数据,所述安全密钥被安全地存储在执 行所述加密和解密的装置中。
保护安全数据的一种高效方式是在将其存储到不安全储存器之前 在所述另一处理装置的控制下对其加密。这样数据处理器本身不能访问该安全数据。
在一些实施例中,在启动所述数椐的加密之前,所述另一处理装置 启动从所述数据中生成安全签名,并启动所述安全签名的加密以及将所
述安全签名连同所述安全数据一起存储;并且响应于接收到继续所述任 务的所述信号,所述另一处理装置启动所述加密的安全签名的检索以及 所述加密的安全签名的解密,并且在所述加密的安全数据的解密之后, 启动从所述解密的加密数椐中生成所述安全签名,并将所述生成的安全 签名和所述解密的安全签名进行比较;并且响应于所述生成的安全签名 与所述解密的安全签名不匹配,所述另一处理装置向所述数据处理器发 出信号以表明所述数据已经被篡改;并且响应于所述生成的安全签名与 所述解密的安全签名相匹配,所述另一处理装置使用所述解密的数椐继 续所述任务。
尽管可以仅对安全数据加密以保护其不被不安全进程访问,但从所 述数据中生成安全签名,然后用数据加密该安全签名可能是有利的。该 签名然后可用在解密上,以确定所存储的加密数据是否已经被篡改。如 果解密后生成的安全签名与存储的加密的安全签名不匹配,则可向数据 处理器发出中止(abort)信号以通知数据处理器该数据已经被篡改。 如果安全签名确实匹配,则处理可以继续。这样,不仅可以安全地存储 安全数椐,而且在进程被中断时,其完整性可被验证。
在其它实施例中,安全签名是通过以下方式从加密的数据,而不是 从解密的数据中生成的加密所述数据之后,所述另一处理装置启动从 所述加密的数据中生成安全签名,并且启动所述安全签名连同所述加密 的安全数据的加密和存储;以及响应于接收到继续所述任务的所述信 号,所述另一处理装置启动所述加密的安全签名的检索和所述加密的安 全签名的解密,并启动从所迷加密的数据中生成所述安全签名,将所述 生成的安全签名和所迷解密的安全签名进行比较;并且响应于所述生成 的安全签名与所述解密的安全签名不匹配,所述另 一处理装置向所述数 据处理器发出信号以表明所述数据已经被篡改;以及响应于所述生成的 安全签名与所述解密的安全签名相匹配,所述另一处理装置解密所述加 密的数据,并使用所述解密的数据继续所述任务。
在一些实施例中,所述安全数据的所述处理包括从所述数据中生成安全签名以及使用所述安全密钥加密所述安全签名,所述处理过的安全 数据的所迷恢复包括解密所述加密的安全签名,并且从所述检索的数据
名进行比较;并且响应于所述生成的安全签名与所述解密的:全签名不 匹配,所述另一处理装置向所述数据处理器发出信号以表明所述数据已 经被篡改;并且响应于所述生成的安全签名与所述解密的安全签名相匹 配,所述另一处理装置使用所述检索的数据继续所述任务。
由于在所述另一处理装置之外,安全数据是不能被理解的,所以正 在被处理的安全数据可能不需要保护其自身不被查看。然而,安全数据 不被篡改可能是重要的,因为墓改安全数椐可能是试图访问安全信息的 方式。在这种情况下,数据本身没有被加密,不过生成了安全签名,并 且该安全签名可用来检查数据是否已经被篡改过。
在一些实施例中,所述安全数据的所述加密和所述签名的所述生成 是使用相同的算法进行的。
在安全数据的加密是使用专门为此功能产生的加解密引擎 (crypto-engine)完成的情况下,为了降低添加此引擎的开销,使用 与用来加密安全数据相同的算法来产生签名(例如哈希)可能是有利的。
在一些实施例中,执行所述加密和解密的所述装置是所述另一处理 装置。
如果所述另 一处理装置本身执行加密和解密,则显然安全数据的安 全性被增强,因为安全数据没有离开该装置,直到它本身被加密,因此 对安全数据的访问是容易控制的。
在 一 些实施例中,所述另 一 处理装置包括加解密处理 (cryptography processing)装置,所述加解密处理装置使用至少一 个密钥执行数据的加解密处理,所述安全数据是由包括所述至少一个密 钥的所述安全密钥来加密的。
该技术在应用于加解密处理装置时特别有用。这些装置使用密钥加 密和解密数据,并且显然重要的是,这些密钥不能被不安全模式访问。 因此,对这些另一处理装置来说,重要的是包括这些加解密密钥 (cryptography key)的安全数据被保持安全。而且,这些装置已经包括加解密功能性,因此,可以使用这些装置及所迷另一处理装置用于此 功能的安全密钥来执行加密安全数据(在处理过程中用来加密数据的加 解密密钥)。这样,可以使用所述另一处理装置本身的功能性,来加密 和解密安全数椐。因此,与包括该功能有关的面积开销很小。
在一些实施例中,执行所述加密和解密的所迷装置是通过专用数据 通信路径连接到所述另一处理装置的加解密处理装置,其它装置不可以 访问该专用数椐通信路径。
尽管在一些实施例中,该另一处理装置本身执行加解密功能,但在 其它实施例中,可以由单独的加解密装置来执行此功能。在这种情况下, 用来将安全数据传送到此加解密装置的数据路径必须是专用于此目的 且不可被其它处理器访问的安全数据路径。
在一些实施例中,所述另 一处理装置包括用来执行除加解密以外的 功能的电路,所迷另一处理装置包括附加的加解密电路以加密和解密所 述安全数据,所述另一处理装置包括所述安全密钥的安全存储位置。
如果该另 一处理装置不是加解密处理装置,则其可以象以前提到的 那样使用单独的加解密处理装置,或者可以给予其附加的加解密电路, 使得其可以在安全数据除了在加密状态外根本不离开所述另一处理装 置的情况下加密和解密所述安全数据。在这种情况下,该另一处理装置 包括安全密钥的存储位置,使得该安全密钥在该装置内可用于加密和解 密,但不可用于任何其它装置。
在一些实施例中,所述另 一处理装置包括所迷安全密钥的只写存储 位置。
将安全密钥存储在该另一处理装置上的只写存储位置可能是有利 的。这样,安全密钥可被其它装置更新,但不能被其它装置读取。
在一些实施例中,所述安全密钥是在操作在安全模式下的所述数据 处理器的控制下,存储在所述数据处理设备中的,使得只有操作在安全 -漠式下的所述数椐处理器才可以访问所述安全密钥。
例如可以在操作在安全模式下的数据处理器的控制下从数据处理 设备的安全储存器中检索安全密钥。在希望不时地更新安全密钥的情况 下这可能是有利的。从安全性的观点来看,这是可接受的,只要其存储
10在安全存储位置,使得其只能由其它装置在安全模式下操纵。在一些实 施例中,可能只能在安全特权模式下访问安全密钥,这样安全性会更高。
在一些实施例中,所述安全密钥是在制造时被设定的,并永久地安 全存储在执行所述安全数据的所述加密和解密的所述装置中,使得其不 可被其它装置访问。
在安全模式下访问密钥的一种替代方式是将密钥永久地存储在加 密安全数据的装置内,并使其不能被其它装置访问。这是保证安全密钥 在该装置内保持安全并且不能被外界访问的一种简单方式。不过,这意 味着密钥永远不能被改变或更新。
生成并存储安全密钥的一种可替代方式是在加密和解密装置内具
有随机数生成器,该随机数生成器在复位时(at reset)生成并存储安 全密钥。在其它实施例中,可以使用伪随机数生成器,其中现有信号或 值的秘密集合被组合,并从该组合中生成一数。
尽管不安全数据储存器可包括许多不同的东西,但在一些实施例 中,它包括存储器(memory)的不安全部分。
在一些实施例中,暂停所述任务的所述信号是由所述数据处理器响 应于中断或异常而生成的。
尽管暂停任务的信号可以响应于多种情况而生成,但在一些实施例 中,暂停任务的信号是响应于中断或异常而生成的。
在一些实施例中,暂停所述任务的所述信号是由所述数椐处理器响 应于表示所述数据处理器从操作在所述安全模式或不安全模式中的一 种切换到所述安全模式或不安全模式中的另一种的上下文切换的信号 而生成的。
数据处理器从安全模式到不安全模式的上下文切换涉及其它数据 处理装置暂停另一处理装置的处理,并将其状态存储在存储器中,使得 当数据处理器切换回它之前所在的模式时可以重新开始处理。
在这种情况下,重要的是维持它之前正在处理的安全数据的安全 性。这是通过使用加密和解密装置而不使用数据处理器的安全操作系统 来完成的,所述加密和解密装置是由该另一处理装置本身控制的。因此, 数据的安全性是通过该另 一处理装置本身维持的,并且不需要调用安全操作系统来控制数据的安全性,调用安全操作系统在性能上是高代价 的。
在一些实施例中,执行所述任务的所述请求是从操作在所述不安全 模式下的所述数据处理器中发出的。
如果执行任务的请求是从不安全模式下的数据处理器中发出的,那 么该另一处理装置对安全数据的处理必须明确地与数据处理器本身保 持隔离,因为数据处理器本身操作在不安全模式。在这种情况下,响应
于暂停处理的请求在将安全数据从该另一处理装置中存储出去(stored out of the further processing means)之前对所述安全数据的力口密 在维持安全性而不涉及数据处理器本身方面是重要的。
在一些实施例中,所迷数据处理器被配置成响应于所述数据处理器 在不安全模式下正执行的程序代码向所述另一处理装置发出执行所述 任务的所述请求。
本发明的实施例允许由数据处理器在诸如不安全用户模式之类的 不安全模式下执行的诸如用户代码之类的代码,调用该另 一处理装置本 身来执行包括安全数据的代码,而不需要涉及安全操作系统。在允许以 高效方式处理安全数椐时这是非常有利的。这可用在例如使用安全密钥 对数据进行的加解密处理中,而不需要涉及安全操作系统。
在一些实施例中,所述另一处理装置包括不可编程硬件。
该另一处理装置可包括简单的不可编程硬件装置,由于其不能被用 户软件攻击,因而特别安全。因此,只要安全数据保持在该装置内,并 且仅以加密形式离开该装置,其安全性可以被保证。
在一些实施例中,所迷另 一处理装置被配置成不在操作系统的控制 下处理程序代码。
该另 一处理装置可以是不包括操作系统的简单装置,这使得装置内 的安全数据的控制更直接。它还使该装置成为能非常高效地执行预定处 理步骤的高效装置。
本发明的另一方面提供一种在数据处理设备上处理数据的方法,该 数据处理设备包括数据处理器和另 一处理装置;所述数据处理器用于在 安全模式和不安全;f莫式下处理数据,在所迷安全^f莫式下处理数据的所述
12数据处理器可以访问安全数据,所述数据处理器在所述不安全模式下是 不能访问所述安全数据的,所述数据处理器在所述安全模式下处理数据 是在安全操作系统的控制下进行的,在所迷不安全模式下处理数据是在
不安全操作系统的控制下进行的;所述另一处理装置用来响应于来自所 迷数据处理器的请求而执行任务,所述任务包括处理至少其中一些是安 全数据的数据;所述方法包括以下步骤在所述数椐处理器上处理数椐; 将来自所述数据处理器的请求发送到所述另一处理装置以执行任务,所 述任务包括处理至少其中一些是安全数据的数据;在所述另一处理装置 上开始所述任务;向所述另一处理装置发送暂停所述任务的信号;响应 于接收到暂停所述任务的所述信号,所迷另一处理装置暂停所述任务, 并且启动使用安全密钥对所述安全数据的加密以及将所述加密的安全 数据存储到不安全数据储存器中;从所述数据处理器生成指示所述另一 处理装置继续所述任务的信号;响应于所述信号,所述另一处理装置从 所述不安全数椐储存器中检索所述加密的安全数据,并使用所述安全密 钥解密所述加密的安全数据,所述安全密钥被安全地存储在执行所述加 密和解密的所述装置内,使得其不能由其它装置访问。
结合附图阅读下文的示例性实施例的详细描述,本发明的上述目 标、特征和优点以及其它的目标、特征和优点将变得显而易见。


图1示意性地显示了根据本发明的实施例的数据处理设备;
图2示意性地显示了根据本发明的实施例的数据处理设备,该数据
处理设备具有处理器,加速器和分离的加解密装置;
图3示意性地显示了根椐本发明另一实施例的数据处理设备;
图4显示了图解说明根据本发明的实施例的方法的流程图5显示了用来在中断时暂停和继续硬件辅助(hardware assist)
的控制流程;
图6显示了用于上下文切出(switch out)的流程图; 图7显示了用于将进程上下文切换到硬件辅助模块的流程图;和 图8显示了图解说明延迟硬件辅助状态保存直到第一新进程访问的 流程图。
具体实施例方式
图1示意性地显示了处理器核心IO和加速器20。该系统配备有监 控程序12,监控程序12至少部分地在监控模式下执行。安全性状态标 志只在监控模式下是可写访问的,并且可以被监控程序写入。监控程序 负责管理安全域和不安全域之间的在任一方向上的所有变化。从该核心 的外部看,监控模式总是安全的,并且监控程序处于安全存储器中。监 控模式12可以被认为是安全处理模式,因为安全状态标志在这种模式 下可以被改变,并且监控模式12下的监控程序有能力自身设置安全性 状态标志,这总体上有效地提供了系统内的最终安全性等级。
监控模式在该系统中具有最高等级的安全性访问,而且是有权在不 安全域和安全域之间在任一方向切换该系统的唯一模式。因此,所有的 域切换都是通过切换到监控模式并且在监控模式内执行监控程序进行 的。
在不安全域中提供了不安全操作系统14,它运行多个不安全应用程 序,所述不安全应用程序与不安全操作系统"协同执行。在安全域中, 提供了安全内核程序。可以认为安全内核程序16形成安全操作系统。 一般地,这样的安全内核程序16被设计成只提供对必须提供在安全域 中的处理活动是必需的那些功能,使得安全内核16可以尽可能地小和 简单,因为这往往使其更加安全。
当在安全模式和不安全模式之间切换时,总是调用(invoke)监控 模式以控制数据的安全性,并确保安全的数据永远不用于不安全侧。为 了进入安全模式,首先要进入安全特权模式。除了响应于安全中断,从 非特权安全模式不能进入监控模式。
图1还显示了链接到核心10的加速器20它,并且在此实施例中, 加速器20包括加解密引擎。加解密引擎20由核心10调用以为其执行 加解密功能。可能即使在不安全模式下操作,仍希望对某些数据加密。 在这种情况下,加解密引擎被调用以对数据加密,并且加解密引擎使用 安全密钥执行加解密功能。显然,这些安全密钥不应为不安全侧可用, 并且尽管加解密引擎可能是不可编程硬件装置,这使得其非常安全,但 如果加解密过程出于某些原因被中断,那么如果来自加解密引擎的状态 要被保存以便能够继续处理,就会存在安全性问题,因为如果当不安全 操作系统正在控制核心时执行保存加解密过程的状态的操作,则保存加解密过程的状态可能会使其可用于不安全侧。然而,如果需要调用安全 操作系统以便管理数据的安全性,则存在与中断该应用相关的很长的时 延。在本实施例中,加解密引擎的功能性被用来使用存储在加解密引擎
20中的会话密钥22对诸如在其处理过程中使用的密钥之类的安全数据 进行加密。在此实施例中,会话密钥22被存储在加解密引擎20内,此 时处理器核心在安全操作系统14的控制下在安全模式下操作,由此该 核心指示加解密引擎从存储器30的的安全存储器部分加栽会话密钥。 会话密钥22存储在只写位置,使得试图攻击进入加解密引擎20的外部 进程不能读取该会话密钥。
因此,响应于来自核心10的中断,该中断表明加解密引擎正在处 理的应用应该被暂停,加解密引擎20暂停其数椐的处理,并使用其加 解密功能性以利用会话密钥22对其之前正处理的安全数据进行加密。 加解密引擎的状态连同被加密的安全数据和未被加密的不安全数据然 后被存储到由指针24指示的位置处的存储器30的不安全部分中。
当该核心希望继续它分派给加解密引擎20执行的应用时,它发送 信号给加解密引擎20表明此意,由此加解密引擎20可以通过访问由指 针24所指示的位置离开其状态和存储器30所存储的数据(leave its state and the stored data from memory 30)。 然后它可以使用会话 密钥22解密该加密的数据,之后可以继续处理。这样,在核心10上的 不安全操作系统的控制下运行的不安全应用可以给加解密引擎10分派 任务以使用安全密钥执行加解密,并允许此应用被中断,而无需调用监 控模式来控制安全数据的安全性状态。
图2显示了可替代实施例,其中核心IO给加速器20分派任务使其 执行功能,在图2的情况下该功能不是加解密功能。在这种情况下,当 核心10切换上下文时,例如从安全模式切换到不安全模式时,它分派 给加速器20处理的安全数据需要被保存,使得通过该上下文切换而中 断的任务可以在稍后继续。在这种情况下,加速器20不是加解密引擎, 因此,它指示单独的加解密单元50来加密它正在处理的安全数据,加 速器20通过专用的通信线路52链接到加解密单元50。加解密单元50 包括随机数生成器52,加解密单元使用随机数生成器52以在复位时生 成随机数。该随机数被存储为会话密钥54,并用来加密加速器20发送 给它的安全数据。在这个实施例中,加解密单元在加密数据之前还根据
15未加密的数据生成哈希值,该哈希值通过加解密单元使用会话密钥54 连同加密的数据而被加密。在一些实施例中,可以使用伪随机数生成器, 而不是具有真随机数生成器的开销。这获取一组现有信号,并根据这些 信号的组合生成一数。信号的组合当然必须是秘密组合。
该加密的数据连同加密的哈希值然后以与图1所示大致相同的方式 与加速器20的状态以及不安全数据一起被存储在存储器中。
尽管在这些实施例中,安全数据在存储之前被加密,但在一些实施 例中,哈希可被产生并加密,并且未加密的数据连同加密的哈希一起被 存储。这使得用户能够知道数据是否已经被篡改。在这种情况下,安全 数据对于不安全側是可访问的,但在系统不知道的情况下它是不能被更 改的。在系统的安全性可能由于在另一处理装置中使用已经被篡改(但 并不是通过查看该数据)的安全数椐而受到威胁的情况下,这可能是有 用的。
当该核心切换回安全状态时,它给加速器20发信号指示其以前正 在执行的任务应该继续。此时,从存储器30中检索存储的状态和数据, 并且加密的数据和哈希值被发送到加解密单元50。加密的数据然后连同 哈希值一起被解密,并且根椐解密的数据产生新的哈希值。如果这个新 的哈希值与解密的哈希值匹配,则加解密单元50可以保证数据没有被 篡改,然后解密的数据被发送到加速器20。如果这些哈希值不匹配,则 表明数据已经被篡改,给核心IO发信号表明此结果,并中止该过程。
图3显示了可替代实施例,其中加速器20再次不是加解密单元。 在这种情况下,不是使用单独的加解密单元,加解密电路25被添加到 加速器20,因此,当核心IO向加速器20表明它需要暂停某些安全数据 的处理时,加解密电路25可以用来加密这些安全数据。在这个实施例 中其还被用来根据未加密的数据生成哈希值,并加密该哈希值。在这种 情况下,因为加解密电路25相对简单,哈希值和加解密使用相同的算 法。用于该加解密的会话密钥22在制造时被永久地存储在加速器20中。
在其它方面,该系统以与图1和图2所示的方式非常类似的方式进 行工作。
图4显示的流程解说明了根据本发明的实施例的方法的各步 骤。在该方法中,执行任务的请求是在加速器处从主处理器核心接收的。 加速器然后执行包括处理安全数据和不安全数据的该任务。在执行此操作时,它轮询(poll)中断,如果接收到一个中断,它暂停该任务的处 理,并根据安全数据产生哈希值。然后它使用存储在加密器上的会话密 钥加密安全数据和哈希值。应注意尽管在此实施例中,哈希值是根据未 加密的安全数据产生的,但在其它实施例中,安全数据可以首先被加密, 然后根据加密的数椐产生哈希值。
处理器的状态、加密的安全数据、哈希值和任何不安全数据然后被 存储在存储器中,并且加速器执行由中断指示的另一任务。当这被完成 并且接收到指示继续被中断的任务的信号时,从存储器中存储数据的地 址检索数据以及处理器的状态,并且然后解密所加密的数据和哈希。然 后根据解密的数据创建哈希值,并与存储的解密的哈希进行比较看它们 是否匹配。如果匹配,则恢复处理器的状态,处理继续,如果不匹配, 则中止任务并生成错误信号。
上述技术与题为 "Providing Secure Services to A Non-Secure Application"的申请号为12/003, 857以及题为"Control 1 ing Cleaning of Data Values Within a Hardware Accelerator" 的申请号为 12/000, 005的共同未决的美国专利申请中描述的技术有关。这两个共同 未决申请的公开内容全部被并入本文。
下面将公开与另一处理装置或ARM⑧数据处理设备中的硬件(HW) 辅助 一起使用的不同技术的其他细节。
希望访问安全侧数据的用户模式HW辅助的 一般运行模型是在HW辅 助试图访问安全侧之前,安全会话已经由安全側或由Trustzone ( TZ ) 软件建立。
存在四种管理需要从安全侧访问数据的HW辅助的安全会话的潜在 方式。
到安全侧的默认软件(SW)入口在SW中有所有安全性。每次要求 安全服务时,进入特权模式,然后运行SMC (调用安全側)以进入安全 监视。然后提供安全服务,程序然后返回到用户模式应用。
使安全监视中的入口直接试图访问HW辅助。在此模式下,每次调 用HW辅助时,进入安全侧,并且安全会话可由安全侧直接管理。安全 侧SW还可以运行所需的任何完整性检查,然后调用HW来执行该任务。 这可以通过禁用对HW辅助的不安全访问来实现。
建立全局安全会话,并给要求安全访问的每一进程提供可用于不安
17全侧的安全值的表格中的预定义索引。每个表格值与哈希值成对,以确 保只有具有正确哈希的进程才可以访问特定的表格条目。安全会话是在 进程创建时建立的,此时可用的表格条目和保护哈希值被计算。安全側
还将安全基表的地址和有效表格范围写入到HW辅助中的仅安全模式寄 存器中(secure mode only register)。 为了从应用程序访问安全项, HW辅助被用户编程有偏移和哈希值。HW辅助模块然后使用这些值来访 问安全信息,并检查哈希。在此模型中,安全会话仍然是全局视图,因 此不需要在规则的操作系统上下文切换时调用安全监视一该偏移和哈 希可以在上下文切换时^皮存储在进程应用空间中。
每个进程建立一安全会话。在此^f莫型中,每个进程实际上具有自己 的安全会话。在进程被上下文切入时建立安全会话,并且在上下文结束 时关闭该会话。并不是在每次访问HW辅助时,都要访问安全监视,只 是在上下文开始和结束时访问安全监视。此模型的优点是存储在HW辅
具有CA—STATUS寄存器的安全影子(secure shadow)而被保存。 CA-STATUS寄存器是为HW辅助模块提供状态,并具有特权访问的寄存 器。
在任务完成之前,鼎辅助可以在运行时被中断,然后需要时在稍后 时间,皮重新启动。如果HW辅助正在运行时接收到中断,则以通常的ARM 方式进入中断,而不对HW辅助进行任何改变。在中断处理程序(handler) 中,程序员具有以下选项
1. 不对HW辅助进行任何处理,让其继续运行。注意该核心的系统 编程必须保证HW辅助仍能看到存储器的正确视图(即,页表没有被改 变)。
2. 暂时暂停HW辅助,但不使用HW辅助用于其它任何处理。 (MSUSPEND )
3. 暂停HW辅助,并将任何脏(dirty)状态保存回存储器中,这 样HW辅助可以被其它方使用。(MSUSPENDC )
在(2)和(3)的情况下, 一旦中断处理程序完成,用继续命令重 新启动HW辅助。对于(2),执行从它停止的地方重新开始,而在(3) 中,在继续执行之前,中间状态必须首先被重新加栽回HW辅助。图5 显示了这两种情况的控制流程。在该图中,CA-STATE寄存器是包含指向HW辅助模块的描述符的指针的寄存器,具有特权访问或用户访问。
对于一般的中断处理程序,广播形式的MSUSPEND和MRESUME可以 被用来暂停和继续所有HW辅助。对于更为专门的应用,各个HW辅助模 块可以(通过将HW辅助的逻辑地址提供给控制)被独立地暂停和继续。 存在需要被处理的三种基本类型的异常
* 用户错误-一由用户模式SW处理
* 特权系统错误-一发信号通知操作系统以便处理的系统错误
* 安全错误一-由访问安全侧引起的错误,被发信号通知给安全 监视。
在默认情况下,特权错误和安全性错误经由中断被发信号通知核心 以便进一步处理。期望用户模式错误由用户应用软件校检查HW辅助寄 存器中的状态错误位(如CA—Status寄存器的IUE位)来处理。这种架 构也支持在需要时允许用户模式错误给核心发信号,使核心中断,但这 会招致处理操作系统的代价。
在来自不同特权级的多个异常可能有效(active)的情况下,提供
影子控制寄存器来存储异常信息。例如,如果发生安全故障和用户存储 器故障,则FAR和CA-STATUS寄存器必须在安全侧有影子。FAR寄存器 具有特权访问,并提供出故障的存储器地址。
支持上下文切换所需的基本操作类似于基本的中断处理,即,暂停 和继续HW辅助操作以及从HW辅助模块中清除脏状态。上下文切换可以
被分解成两部分 切出旧进程 切入新进程
对于每种情况,都有两种可能性 严格(strict)-—立即进行切换
惰性(lazy)—-如果其它人确实想要使用HW辅助,则只保存状态。
后者功率较低,因为其只在必要时保存状态,但实现起来更为复杂。 注意传统的惰性上下文切换(如用在VFP中的)并不切入新的上 下文,直到HW被新的进程访问。在这种技术中,如果新的上下文具有 以前被暂停的鼎辅助,则只要上下文被恢复,其就需要重新启动,而 不等到在新的上下文中对H W的首次新访问。图6显示了为HW辅助模块(CHA)切换上下文的一般流程。如果上 下文切换不是惰性的,则通过使用MSUSPENDC和到描述符的指针暂停并 清除HW辅助,每个启用的HW辅助的状态寄存器和FAR被保存。在惰性 上下文切换的情况下,仅暂停HW辅助,而不保存任何状态。在两种情 况下,操作系统都可以继续进行其它上下文切换清除,同时等待HW辅 助停止(以及潜在清除)。在页表条目需要被更改之前,操作系统执行 数据加速器屏障(data accelerator barrier, DAN)以确保所有的HW 辅助都已经完成暂停,然后在HACR中禁用所有的HW辅助。上下文切出 然后象通常一样继续。
可以细化一般的上下文切出,代价是操作系统进行更多的分析。例

如果HW辅助模块当前没有被启用,则没有进程上下文需保存,也
不需要进行任何操作。
如果HW辅助被启用,但没有运行一-没有脏状态潜在地需要保存。 可以选择允许HW辅助将其完成而不是暂停-一确保了所有的脏数据
回到存储器中。
在将新的进程切换到HW辅助模块中时,笫一步是启用HW辅助模块。 在这之后,描述符和状态寄存器被重新装载到HW辅助模块中,并且继 续所有命令被发出以继续所有被启用的HW辅助模块的执行。这显示在 图7中。
如果采用的是惰性方案(即旧进程的状态还没有被切出),则操作 系统应当确定新的进程是否已经暂停了 HW辅助模块。如果新的上下文 正在使用HW辅助,则旧的状态应该在上下文切换时从HW辅助中清除出 去(而不是延迟到其之后被访问)。
延迟的上下文切入
延迟的进程状态切换在保存任何状态之前等待,直到新的进程尝试 访问HW辅助模块。如果新进程不使用HW辅助模块,则没有状态需要被 保存。
为了检测新进程何时尝试访问HW辅助模块,在上下文切换时禁用 该模块,使得尝试使用该模块会触发操作系统中的事件,操作系统可以 保存并恢复所需状态(未定义的指令陷阱)。 一旦旧状态已经被保存并
20且新状态^皮加栽,访问HW辅助的命令可以:故重新运行。该程序显示在
图8中。假设暂停的HW辅助是在上下文切入时被检测的,并被自动重 新启动,而不是等待访问它们的命令。
注意操作系统必须能够访问以前的HW辅助上下文的用户空间描述 符以将HW辅助状态保存到正确位置。
尽管本文已经参考附图详细描述了本发明的示例性实施例,但应理 解本发明并不局限于这些确切的实施例,在不偏离由所附权利要求书限 定的本发明的范围和精神的情况下,本领域技术人员可以实施各种改变 和改进。
权利要求
1. 一种数据处理设备,包括数据处理器,用于在安全模式和不安全模式下处理数据,在所述安全模式下处理数据的所述数据处理器能够访问安全数据,所述数据处理器在所述不安全模式下不能访问所述安全数据,并且所述数据处理器在所述安全模式下处理数据是在安全操作系统的控制下进行的,以及在所述不安全模式下处理数据是在不安全操作系统的控制下进行的;和另一处理装置,其用来响应于来自所述数据处理器的请求而执行任务,所述任务包括处理至少其中一些是安全数据的数据;其中所述另一处理装置响应于接收到暂停所述任务的信号,以启动使用安全密钥处理所述安全数据;和将所述处理过的安全数据存储到不安全数据储存器中;以及所述另一处理装置还响应于接收到继续所述任务的信号,以启动从所述不安全数据储存器中检索所述处理过的安全数据;和使用所述安全密钥恢复所述处理过的安全数据;其中所述安全密钥被安全地存储,使得其不能被操作在所述不安全模式下的其它进程访问。
2. 根据权利要求1所述的数据处理设备,其中所迷安全数据的所 述处理包括使用所迷安全密钥加密所述安全数据,并且所述处理过的安 全数据的所述恢复包括使用所述安全密钥解密所述加密的安全数据,所 述安全密钥被安全地存储在执行所述加密和解密的装置中。
3. 根据权利要求2所迷的数据处理设备,其中在启动所迷数据的 加密之前,所述另一处理装置启动从所述数据中生成安全签名,并启动 所述安全签名的加密,以及连同所述安全数椐一起存储所述安全签名; 和响应于接收到继续所述任务的所述信号,所述另一处理装置启动所 述加密的安全签名的检索和所述加密的安全签名的解密,并且在所述加 密的安全数据的解密之后,启动从所述解密的加密数据中生成所迷安全 签名,以及将所述生成的安全签名与所述解密的安全签名进行比较;和响应于所述生成的安全签名与所迷解密的安全签名不匹配,所述另 一处理装置向所述数据处理器发出信号以表明所述数据已经被篡改;和响应于所述生成的安全签名与所述解密的安全签名相匹配,所述另 一处理装置使用所述解密的数据继续所述任务。
4. 根据权利要求2所述的数据处理设备,其中在加密所迷数据之 后,所述另一处理装置启动从所述加密的数据中生成安全签名,并启动 所述安全签名以及所述加密的安全数据的加密和存储;和响应于接收到继续所述任务的所述信号,所述另一处理装置启动所 迷加密的安全签名的检索和所述加密的安全签名的解密,并启动从所述 加密的数据中生成所述安全签名,并将所述生成的安全签名和所述解密 的安全签名进行比较;和响应于所述生成的安全签名与所述解密的安全签名不匹配,所述另 一处理装置向所述数据处理器发出信号以表明所述数据已经被篡改;和响应于所述生成的安全签名与所述解密的安全签名相匹配,所述另 一处理装置解密所述加密的数据,并使用所述解密的数据继续所述任 务。
5. 根据权利要求1所迷的数据处理设备,其中所述安全数椐的所述安全签名,并且所述处理过的安全数据的所述恢复包括解密所述加密 的安全签名,以及从所述检索的数据中生成所述安全签名,并将所述生 成的安全签名和所述解密的安全签名进行比较;和响应于所述生成的安全签名与所述解密的安全签名不匹配,所述另 一处理装置向所述数据处理器发出信号以表明所迷数据已经被篡改;和响应于所述生成的安全签名与所述解密的安全签名相匹配,所述另 一处理装置使用所述检索的数椐继续所述任务。
6. 根据权利要求3所述的数据处理设备,其中所述安全数据的所 述加密和所述签名的所述生成是使用相同的算法进行的。
7. 根据权利要求2所述的数据处理设备,其中执行所述加密和解 密的所述装置是所述另一处理装置。
8. 根椐权利要求7所述的数椐处理设备,其中所述另一处理装置 包括加解密处理装置,所述加解密处理装置使用至少一个密钥执行数据 的加解密处理,所述安全数据是由包括所述至少一个密钥的所述安全密 钥加密的。
9. 根据权利要求2所述的数椐处理设备,其中执行所述加密和解 密装置的所述装置是通过专用数据通信路径连接到所述另一处理装置 的加解密处理装置,该专用数椐通信路径是其它装置不能访问的。
10. 根据权利要求2所述的数据处理设备,其中所述另一处理装置 包括用来执行除加解密以外的功能的电路,所述另一处理装置包括附加 的加解密电路以加密和解密所述安全数据,所迷另一处理装置包括所述 安全密钥的安全存储位置。
11. 根据权利要求7所述的数椐处理设备,其中所述另一处理装置 包括所迷安全密钥的只写存储位置。
12. 根椐权利要求1所述的数椐处理设备,其中所述安全密钥在操 作在安全模式下的所述数据处理器的控制下被存储在所述数据处理设 备中,使得其只能由在安全模式下操作的所述数椐处理器访问。
13. 根据权利要求1所述的数据处理设备,其中所述安全密钥是在 制造时被设置的,并永久地安全存储在执行所述安全数据的所述加密和 解密的所述装置中,使得其不能被其它装置访问。
14. 根据权利要求2所述的数据处理设备,其中执行所述安全数据 的所述加密和解密的所述装置包括随机数生成器,所迷安全密钥是由所 述随机数生成器在复位时生成的。
15. 根据权利要求1所述的数据处理设备,其中所述不安全数椐储 存器包括存储器的不安全部分。
16. 根据权利要求1所述的数据处理设备,其中暂停所述任务的所述信号是由所述数据处理器响应于中断或异常而生成的。
17. 根据权利要求1所述的数据处理设备,其中暂停所述任务的所 述信号是由所述数据处理器响应于信号而生成的,该信号表明所述数据 处理器从操作在所迷安全模式或不安全模式中的一种到所述安全模式 或不安全;^莫式中的另 一种的上下文切换。
18. 根据权利要求1所述的数据处理设备,其中执行所述任务的所 述请求是从在所述不安全模式下操作的所述数据处理器发出的。
19. 根据权利要求18所迷的数据处理设备,其中所述数据处理器 被配置成响应于所述数据处理器在不安全模式下执行的程序代码向所 述另 一处理装置发出执行所述任务的所述请求。
20. 根据权利要求1所述的数据处理设备,其中所述另一处理装置 包括不可编程硬件。
21. 根据权利要求1所迷的数据处理设备,其中所述另一处理装置 被配置成不在操作系统的控制下处理程序代码。
22. —种在数据处理设备上处理数据的方法,所述数据处理设备包 括数据处理器和另一处理装置;所述数据处理器用于在安全模式和不安 全模式下处理数据,在所述安全模式下处理数据的所述数据处理器能够 访问安全数据,所述数据处理器在所述不安全模式下不能访问所述安全 数据,所迷数据处理器在所述安全模式下处理数椐是在安全操作系统的 控制下进行的,并且在所述不安全模式下处理数据是在不安全操作系统 的控制下进行的;所述另一处理装置用来响应于来自所迷数据处理器的 请求而执行任务,所迷任务包括处理至少其中一些是安全数据的数据; 所述方法包括以下步骤在所迷数据处理器上处理数据;将来自所述数据处理器的请求发送到所述另一处理装置以执行任 务,所述任务包括处理至少其中一些是安全数据的数据;在所述另 一处理装置上开始所述任务;向所述另一处理装置发送暂停所述任务的信号;响应于接收到暂停所述任务的所述信号,所述另一处理装置暂停所 述任务,并启动使用安全密钥对所述安全数据的处理及将所述处理过的 安全数据存储在不安全数椐储存器中;从所述数据处理器生成指示所述另一处理装置继续所述任务的信号;所述另一处理装置响应于所述信号从所述不安全数据储存器中检索所 述处理过的安全数据,并使用所述安全密钥恢复所述检索的数据,所述 安全密钥被安全地存储,使得其不能由其它装置访问。
全文摘要
本发明涉及保护从中央处理器发送的以供处理的安全数据的安全性。数据处理设备包括数据处理器和另一处理装置,在安全模式下处理数据的数据处理器可以访问安全数据,而在所述不安全模式下它不能访问安全数据,在安全模式下处理数据是在安全操作系统的控制下进行的,在不安全模式下处理数据是在不安全操作系统的控制下进行的;另一处理装置响应于来自数据处理器的请求执行任务;其响应于暂停任务的信号的接收以启动使用安全密钥处理安全数据;将处理过的安全数据存储到不安全数据储存器;其还响应于接收到继续任务的信号来启动从不安全数据储存器中检索处理过的安全数据;使用安全密钥恢复处理过的安全数据,安全密钥被安全存储。
文档编号G06F21/24GK101477612SQ20091000231
公开日2009年7月8日 申请日期2009年1月4日 优先权日2008年1月2日
发明者D·克尔肖, N·C·帕弗 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1