用于在安全运行时环境中交换数据的方法

文档序号:6494566阅读:325来源:国知局
用于在安全运行时环境中交换数据的方法
【专利摘要】本发明涉及用于在微处理器单元(MP)的非安全环境(NWd)和其中可以执行很多安全应用的安全运行时环境(SWd)之间交换数据的方法,特别是在移动终端中,其中应用数据(AD)与控制数据(MCP、NQ)经由不同的缓冲器传输。
【专利说明】用于在安全运行时环境中交换数据的方法
【技术领域】
[0001]本发明涉及用于在微处理器单元的非安全环境和其中可以执行很多安全应用的安全运行时环境(runtime environment)之间交换数据的方法,特别是在移动终端中。
【背景技术】
[0002]安全运行时环境可以从现有技术中获知,并且使得可能以被保护免受攻击的方式使用微处理器单元来执行程序。在这种情况下,微处理器单元应当被理解为用于执行程序的所有硬件,特别是真实微处理器以及对应的当执行程序时用于存储数据的易失性和非易失性存储器。
[0003]为了符合具有安全运行时环境的微处理器单元的安全要求、存储限制和通信机制,有必要优化多任务处理特性。

【发明内容】

[0004]本发明的目的是说明用于在微处理器单元的安全运行时环境和非安全环境之间交换数据的方法,该方法使改善的多任务处理特性成为可能。本发明的另一个目的是说明具有改善的多任务处理性能的微处理器单元。
[0005]这些目的是通过根据专利权利要求1的特征的方法和根据专利权利要求13的特征的微处理器单元来实现的。本发明的有利改进在从属专利权利要求中具体说明。
[0006]在根据本发明的用于在微处理器单元的其中可以执行很多安全应用的安全运行时环境和非安全环境之间交换数据的方法中,特别是在移动终端中,应用数据与控制数据经由不同的缓冲器传输。
[0007]这使能了严格的进程隔离,该进程隔离使得安全地下载二进制代码成为可能。另夕卜,在非安全环境中的应用和安全运行时环境中的进程之间更快地交换数据是可行的。
[0008]优选地,不同类型的控制数据经由不同的缓冲器传输。同样优选地,与安全运行时环境和非安全环境之间的转换相关的监视数据经由分立的安全缓冲器传输。使用监视数据来在安全运行时环境和非安全环境之间改变是可行的。特别地,这使得达成快速上下文改变时间成为可能,从而在处理器之间任务改变的情况下产生良好的性能。
[0009]在另一个有利的改进中,应用数据和控制数据以及可选地监视数据的传输基于实现在监视器单元中的ARM监视器代码,该监视器单元具有到安全运行时环境和非安全环境的接口。
[0010]还优选地,应用数据和控制数据在非安全环境的驱动器和安全运行时环境之间传输。在非安全环境中,特别是在针对控制数据的驱动器的接口中实现的调度器,有利地规定了哪个安全应用在安全运行时环境中被执行。
[0011]还有利的是,使用存储器的存储区域来交换数据,该存储区域可以被安全运行时环境和非安全环境读出和/或写入。存储区域优选地被监视消息初始化。在这种情况下,特别地,针对被使用控制消息通知存储区域中的数据的安全运行时环境做好准备,该数据是为所述环境准备的。在这种情况下,优选地向控制数据提供唯一的会话标识符(会话ID),该会话标识符可以被安全运行时环境用于向在安全运行时环境中执行的应用中的一个分配控制消息。
[0012]在另一个有益的改进中,所定义的不能被超出的计算时间被分配到在安全运行时环境中运行的每个程序。因为安全的原因,该计算时间必须不被超出。这使得达成严格的进程隔离成为可能。
[0013]根据另一个有利的改进,在安全的运行时环境中运行的进程具有如下的线程结构:线程标识符(ID);线程的当前状态;线程的本地异常句柄(handler);线程的优先级。各个程序优选地具有如下任务结构:任务的当前状态;生成器任务的任务标识符;任务的外部异常句柄;任务的计算时间定额;可以由任务激活或者提供的线程数量;任务的优先级和权利。所述线程和/或任务结构的结果是,不需要在上下文改变的情况下复制大量数据。这使得达成快速上下文改变时间成为可能。
[0014]本发明还提供了具有安全运行时环境和非安全环境的微处理器单元,该单元被以这样的方式配置:应用数据与控制数据经由不同的缓冲器传输,从而在安全运行时环境和非安全环境之间交换数据。在这种情况下,术语“微处理器单元”应当再次被广义地理解并且包括交换数据所需要的所有硬件组件,例如便携式数据存储介质,以及特别地,芯片卡。
[0015]本发明还涉及包括相应微处理器单元的移动终端,特别是蜂窝电话。
【专利附图】

【附图说明】
[0016]下面,使用附图中的示例性实施例来更详细地说明本发明,其中:
[0017]图1示出了根据本发明的方法的示意图解,
[0018]图2示出了实现根据本发明的方法所需要的微处理器单元的组件的示意图解,
[0019]图3示出了用于说明根据本发明的方法的操作方法的示意图解,以及
[0020]图4示出了根据本发明的方法的示例性应用的示意图解。
【具体实施方式】
[0021]图1用于描述在微处理器单元的安全运行时环境SWd和非安全环境NWd之间的数据交换,该微处理器单元是所谓的ARM信任区(trust zone)的形式。ARM信任区是用于在微处理器单元中生成受保护的区域的已知技术,该受保护的区域被用作安全运行时环境SWd来执行被称作信任表(trustlet)的应用。安全运行时环境被称作“安全世界”而非安全环境被称作“正常世界”。在这里所述的实施例中,ARM信任区被实现在移动终端(例如蜂窝电话)的所谓信任区硬件的硬件平台上。在这种情况下,运行时环境是微处理器单元的应用层和操作系统层之间的软件层。
[0022]图1示意性地示出了这样的具有安全运行时环境SWd的微处理器单元,该安全运行时环境具有所谓的MobiCore通信模块形式的通信单元MCCM。在这种情况下,通信单元MCCM使用安全运行时环境SWd的操作系统MC(MobiCore)。具有驱动器MCD的非安全环境NWd也被示出,该驱动器MCD是所谓的MobiCore驱动器的形式。Rich OS被用作操作系统。安全运行时环境SWd和非安全环境NWd在所谓的信任区硬件TZH中实现。
[0023]为了在安全运行时环境SWd和非安全环境NWd之间交换数据的目的而提供了监视器单元Μ。应用数据AD、控制数据MCP (MobiCore控制协议数据)、控制数据NQ (通知序列)以及监视数据FC(所谓的快速调用)经由各自不同的缓冲器传输。应用数据AD、控制数据MCP和NQ以及监视数据FC的传输基于在监视器单元M中实现的ARM监视器代码,该监视器单元M具有到安全运行时环境SWd和非安全环境NWd的接口。
[0024]图2示出了实现根据本发明的方法所需要的微处理器单元MP的组件。所述微处理器单元具有安全运行时环境SWd (已描述过)和非安全环境NWd。安全环境也被称作信任区TZ。后者包括至少一个被称作信任表TL的应用。所述应用经由特定于应用的接口(MC信任表API)与安全运行时环境的操作系统MC(方框BI,例如MobiCore)通信。安全运行时环境SWd还包括驱动器DRV (方框B2)。
[0025]可以经由特定于应用的接口(特定于应用的API)与方框Al中的应用连接器TLC (所谓的信任表连接器)交换数据的至少一个应用APP被提供在非安全环境中,该非安全环境例如使用Rich OS作为操作系统。应用连接器可以经由接口 TCI与安全运行时环境中的应用TL通信。非安全环境NWd还包括方框A2中的驱动器MCD,例如MobiCore驱动器,该驱动器被分配予特定于应用的(MC驱动器API)。非安全环境还包括方框A3中的虚拟驱动器VDRV。MobiCore驱动器MCD可以经由接口 MCI与安全运行时环境的操作系统MC通信。虚拟驱动器VDRV和安全运行时环境的驱动器DRV之间的通信可以经由接口 DCI。
[0026]微处理器单元的创新特性为在非安全环境中的MobiCore驱动器MCD中的源于外部的(outsourced)进程调度器。安全运行时环境的操作系统,例如MobiCore,例如包括不包含任何跨进程通信的微核。具有时间定额的抢占式(pre-emptive)多任务处理在MC中被执行。MC还包括优化的任务上下文。最终,微处理器单元包括方框Al、A2、A3中的多层驱动器概念,该概念被优化用于与BI中支持多任务处理的环境的异步通信。
[0027]下面使用图3来更加详细地说明多层处理器概念。MobiCore驱动器MCD (方框A2)被如图3所示地构造并且包括三个用于在非安全环境和安全运行时环境SWd之间传输控制数据MCP和NQ以及监视数据FC的接口。运行时管理单元MCRT和监视数据句柄FCH也在MobiCore操作系统(方框BI)中被提供。还示出了用于在安全运行时环境SWd和非安全环境NWd之间协调数据交换的监视器单元M(在开始提到过)。
[0028]被分配给控制数据MCP的传输的接口主要负责控制MobiCore操作系统MC。这里,做出关于启动和停止操作系统的哪个任务的决定。针对正确格式化检查由MobiCore操作系统提供的数据。针对通信,在存储器中保留特别的缓冲器,并经由监视消息FC初始化该缓冲器。存储器被称作世界共享存储器。非安全环境NWd和安全运行时环境SWd都可以访问所述存储器。
[0029]被分配给控制数据NQ的传输的接口负责使用消息来通知运行时管理单元MCRT针对存储器中的收集数据做好了准备。这些数据可以来自MobiCore驱动器MCD,也就是说属于在非安全环境NWd中的应用和安全运行时环境SWd中的特定应用(信任表TL)之间的数据通信。在MobiCore驱动器MCD层上的通信的情况下,向这些消息提供所谓的会话ID的标识符,该标识符可以被MobiCore操作系统MC用于唯一地分配消息给在安全运行时环境Sffd中的特定应用TL。
[0030]来自控制数据MCP层的控制数据同样可以在控制数据NQ的缓冲器中。在两种情况下,分配给NQ的接口使用提供的数据通知运行时管理单元MCRP对特别中断的触发(优选地是特别信任区中断SIQ)。
[0031]非安全环境NWd和安全运行时环境SWd之间的实际交换经由分配给监视数据FC的接口而发生。在这方面,有三种可能的与监视器单元M交互的方式:经由所谓的快速调度、N-SIQ消息或者NQ-1RQ消息。后者被称作通知IRQ。前两者只是从非安全环境到安全运行时环境转换。在NQ-1RQ的情况下,还可以在相反的方向进行转换。
[0032]分配给控制数据MCP的接口承担非安全环境的MobiCore驱动器MCD中的调度器的任务。驱动器决定执行哪个MobiCore任务。
[0033]所述概念使能微核方法中的优化。与传统的微核方法相比较,没有跨进程通信IPC实现在MobiCore操作系统MC中。然而,MobiCore进程可以经由公共使用的存储器(世界共享存储器)交换数据。MobiCore进程还被分配因为安全原因不可以被超出的特定计算时间。
[0034]MobiCore进程具有简单的线程和任务结构。结果是,在上下文改变的情况下不需要复制大量数据。这导致快速的上下文改变时间。
[0035]线程结构如下:线程ID、线程的当前状态、线程的本地异常句柄、线程的优先级。任务结构如下:任务的当前状态、生成器任务的任务ID、任务的外部异常句柄、任务的计算时间定额、可以被任务激活或者提供(donate)的线程数量、任务的优先级和权利。
[0036]对应用数据、控制数据和监视数据经由不同缓冲器的传输可以针对在图4中所示的应用而使用。
[0037]在蜂窝电话H1、H2.....Hn的安全区域中的应用与中央背景系统(数据库D)通
信,并从那里接收用于在安全模式的显示器上呈现的一则信息。将被呈现的信息例如可以是:一列数字、图像、标志等等。背景系统D在安全模式中以规律的间隔修改将被呈现的信息。另外将被呈现的信息同时公开地向宽范围的用户公开。包括安全显示装置的终端H1、
H2.....Hn的用户可以经由第二通信信道检查当前有效的信息。第二通信信道例如可以是
互联网使能的(Internet-enabled)计算机、蜂窝电话的浏览器(包括来自安全世界的web链接)、日报等等。
[0038]对关键安全数据的保护(例如密钥),据此不在显著的地位。替代地,这里对安全显示或者安全输入手段的用户感知是重要的。结果是,可以增加移动终端中末端用户(例如对于移动银行应用或者支付应用)的信心。
[0039]为此,数据库系统D存储被在终端H1、H2、...、Hn中交换的信息,该信息被经由数据库的更新客户端使用在终端上实现的更新服务器来交换。图4中,信息例如是圣诞树。相同的信息经由公共信道使用集成在数据库系统中的web服务器V来使得公开地任意验证系统VS也是可用的。更新该信息的序列如下:
[0040]1.为了发送一则新的信息,更新服务器经由安全信道s联系所有列在数据库D中的移动终端H1、H2、...、Hn。这意味着背景系统在移动终端H1、H2、...、Hn的安全模式中以规律的间隔修改将被呈现的信息。
[0041]2.为了执行成功的更新,更新客户端必须以终端中的更新服务器认证。这可以通过例如使用客户端证书来生效。终端的更新服务器也同样地必须向数据库的更新客户端证明与用于更新的正确服务器的联系已经做出。这可以通过使用客户端证书来生效。
[0042]3.在成功的相互认证之后,新的信息(这里:圣诞树)被经由手持设备的更新服务器和数据库的更新客户端之间的安全的信道S装载到只对安全模式是可访问的区域中的终端中。
[0043]4.信息被可选地以数字水印保护,并且被针对每个终端个性化。
[0044]5.例如,个性化可以在安全的运行时间环境下检查。如果它不适合于终端,那么安全运行时环境的特定功能被封锁(block)。这使得例如,没有移动支付操作是可能的。
[0045]末端用户的验证序列如下:
[0046]1.末端用户执行将移动终端H1、H2.....Hn切换到安全模式的动作。
[0047]2.相关的移动终端现在在安全屏幕上的特定位置上显示任意一则信息,这里是圣诞树。
[0048]3.终端的用户现在可以经由第二平行信道检查他的移动终端上的信息是否对应于公开在其他地方的信息。
[0049]这增加了蜂窝电话中末端用户的信心,特别是对于支付和银行应用的信心。做出冒充电子终端的安全状态的攻击显著地更加困难。用户能够检查移动设备是否处于安全状态。这使得用户对上述应用有更高的信心。
【权利要求】
1.一种移动终端中的用于在微处理器单元(MP)的非安全环境(NWd)和其中能执行多个安全应用(TL)的安全运行时环境(SWd)之间交换数据的方法,其中应用数据(AD)与控制数据(MCP、NQ)经由不同的缓冲器被传输。
2.如权利要求1所述的方法,其特征在于,不同类型的控制数据(MCP、NQ)经由不同的缓冲器被传输。
3.如权利要求1或2所述的方法,其特征在于,与所述安全运行时环境(SWd)和所述非安全环境(NWd)之间的转换相关的监视数据(FC)经由分立的安全缓冲器被传输。
4.如上述权利要求中任何一项所述的方法,其特征在于,所述应用数据(AD)和所述控制数据(MCP、NQ)的传输以及可选地所述监视数据(FC)的传输基于实现在监视器单元(M)中的ARM监视器代码,所述监视器单元(M)具有到所述安全运行时环境(SWd)和所述非安全环境(NWd)的接口。
5.如上述权利要求中任何一项所述的方法,其特征在于,所述应用数据(AD)和所述控制数据(MCP、NQ)被在所述安全运行时环境(SWd)和所述非安全环境(NWd)的驱动器(MCD)之间传输。
6.如权利要求5所述的方法,其特征在于,实现在所述非安全环境(NWd),特别是在针对所述控制数据(MCP)的驱动器(MCD)的接口,中的调度器规定所述安全应用(TL)中的、在所述安全运行时环境(SWd)中被执行的安全应用。
7.如上述权利要求中任何一项所述的方法,其特征在于,数据是使用存储器的存储区域(WSM)交换的,所述存储区域能被所述安全运行时环境(SWd)和所述非安全环境(NWd)读出和/或写入。
8.如权利要求7所述的方法,其特征在于,控制消息被用于向所述安全运行时环境通知为该环境准备的存储区域中的数据。
9.如权利要求8所述的方法,其特征在于,所述控制消息具有唯一的会话标识符,所述会话标识符可以被所述安全运行时环境(SWd)用于向在所述安全运行时环境(SWd)中执行的应用TL之一指派该控制消息。
10.如上述权利要求中任何一项所述的方法,其特征在于,所定义的不能被超出的计算时间被分配给在所述安全运行时环境(SWd)中运行的每个进程。
11.如权利要求10所述的方法,其特征在于,各个进程具有下述线程结构:线程标识符(ID);线程的当前状态;线程的本地异常句柄;线程的优先级。
12.如权利要求10所述的方法,其特征在于,各个进程具有下述任务结构:任务的当前状态;生成器任务的任务标识符;任务的外部异常句柄;任务的计算时间定额;能由任务激活或者提供的线程的数量;任务的优先级和权限。
13.一种具有安全运行时环境(SWd)和非安全环境(NWd)的微处理器单元,该单元被以下述方式配置:应用数据(AD)和控制数据(MCP、NQ、FC)经由不同的缓冲器被传输,从而在所述安全运行时环境(SWd)和所述非安全环境(NWd)之间交换数据。
14.如权利要求13所述的微处理器单元,其特征在于,该单元被配置为使得它能被用来执行如权利要求2至12中的任一项所述的方法。
15.一种移动终端,所述移动终端包括如权利要求13或14所述的微处理器单元。
【文档编号】G06F21/36GK103477344SQ201280010321
【公开日】2013年12月25日 申请日期:2012年2月22日 优先权日:2011年2月24日
【发明者】斯蒂芬·斯匹兹 申请人:信特尼有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1