用于控制对安全计算资源的访问的方法和装置与流程

文档序号:18902221发布日期:2019-10-18 22:06阅读:129来源:国知局
用于控制对安全计算资源的访问的方法和装置与流程

本专利发明要求于2017年3月20日递交的、申请序列号为第15/463,470号、发明名称为“用于控制对安全计算资源的访问的方法和装置”的美国专利申请案的在先申请优先权,其全部内容通过引用结合在本文中。

本发明涉及计算设备,尤其涉及用于管理对计算设备中的安全资源的访问的系统和方法。



背景技术:

现代计算设备用于各种各样的目的,其中许多目的涉及用户或其他实体的私有、专有或敏感数据。例如,诸如智能手机之类的设备通常用于存储金融数据,例如账号、支付凭证和诸如指纹、pin和密码的生物识别数据。另外,计算设备通常存储加密密钥等,例如,用于回放受版权保护的介质。这些数据对于用户和其他实体(例如软件开发者、企业、金融机构以及媒体所有者和发布者)是有价值的。

对敏感数据(特别是防止对这种数据的未授权访问)的保护是重要的。此外,允许用户和软件开发者为了合法目的快速且方便地访问数据对于提供广泛的设备特征集也是重要的。遗憾的是,现有的安全数据管理方法往往很麻烦,而且往往存在漏洞。



技术实现要素:

一种示例计算设备包括:处理器,用于提供:第一操作系统,可访问第一存储器;第二操作系统,可访问用于安全计算资源的第二存储器,所述第二存储器不能被第一操作系统中的应用访问。所述计算设备还包括:可在所述第一操作系统内执行的第一软件模块,用于接收访问所述安全计算资源的访问请求,并在添加访问凭证之后将所述访问请求传递给所述第二操作系统;可在所述第二操作系统内执行的第二软件模块,用于接收具有访问凭证的所述访问请求,并根据所述访问凭证选择性地将所述请求传递给所述安全计算资源。

在一些实施例中,所述访问请求包括用于返回安全数据的请求。

在一些实施例中,所述访问请求包括使用所述安全资源执行操作的请求。在一些实施例中,所述第一数据结构包含与所述第一操作系统中的应用相对应的访问凭证,并且其中所述第一软件模块用于基于请求发起的应用,为每个所述访问请求添加访问凭证。

在一些实施例中,所述访问凭证包括在安装时分配给所述应用的值。

在一些实施例中,所述值是在安装时生成的标识值。

在一些实施例中,所述访问凭证包括分配给一组应用的组值。

在一些实施例中,所述计算设备包括定义所述安全计算资源的访问要求的第二数据结构,其中所述第二软件模块用于将所述访问请求中的访问凭证与所述访问要求进行比较。

在一些实施例中,所述安全计算资源包括所述第二操作系统中的可信应用,所述第二数据结构包括与每个所述可信应用相对应的访问要求。

在一些实施例中,所述第一和第二数据结构包括在安装时分配给所述第一操作系统中的客户端应用的访问凭证,所述第一数据结构定义每个所述客户端应用与对应的访问凭证之间的关系,并且其中所述访问要求包括所述访问凭证中的一些凭证。

在一些实施例中,所述第一软件模块包括驱动器。

在一些实施例中,所述第一操作系统定义富执行环境,所述第二操作系统定义可信执行环境,每种环境由globalplatformtee系统架构定义。

另一种示例计算设备包括:处理器;第一操作系统,可访问第一存储器;第二操作系统,可访问第二存储器,所述第二存储器用于安全计算资源并且不能被所述第一操作系统中的应用访问;第一软件模块,可在所述第一操作系统内执行,用于接收访问所述安全计算资源的访问请求,并在添加访问凭证之后将所述访问请求传递给所述第二操作系统;第二软件模块,可在所述第二操作系统内执行,用于接收具有访问凭证的所述访问请求,并根据所述访问凭证选择性地将所述请求传递给所述安全计算资源。

本文公开的计算设备可以以任何组合包括上述特征。

具有第一操作系统和具有安全资源的第二操作系统的计算设备的访问控制的示例方法包括:在所述第一操作系统中的第一软件模块处:从所述第一操作系统中的应用接收对安全资源的请求;向所述请求添加访问凭证;并将具有所述访问凭证的所述请求传递给所述第二操作系统。所述方法包括在所述第二操作系统的第二软件模块处:接收具有访问凭证的所述请求;将所述访问凭证与所述安全资源的访问要求进行比较;如果所述凭证符合要求,则有选择地将所述请求传递给所述资源。

在一些实施例中,所述请求包括从安全资源返回数据的请求。

在一些实施例中,所述请求包括使用安全资源执行操作的请求。

在一些实施例中,所述添加访问凭证包括添加与发起所述访问请求的应用相对应的访问凭证。

在一些实施例中,所述方法包括在安装时将访问凭证分配给所述第一操作系统中的应用。

在一些实施例中,所述分配访问凭证包括生成与每个所述应用相关联的标识值。

在一些实施例中,所述分配访问凭证包括将组值分配给一组应用。

在一些实施例中,所述安全计算资源包括所述第二操作系统中的可信应用,每个应用具有相应的访问要求,并且所述比较包括读取与每个所述可信应用对应的数据访问要求。

在一些实施例中,所述方法包括在安装时将访问凭证分配给所述第一操作系统中的应用,并将所述访问凭证写入第一数据结构,所述第一数据结构定义了所述应用和所述访问凭证之间关系;以及写入第二数据结构,所述第二数据结构定义了所述可信计算资源的访问要求,其中,所述访问要求包括所述访问凭证中的一些凭证。

在一些实施例中,所述第一软件模块包括驱动器,并且所述接收访问请求包括接收对所述驱动器的函数调用。

本文公开的方法可以包括上述特征的任何组合。

一种示例计算机可读介质上具有供处理器执行的指令。所述指令包括:在第一操作系统中执行的第一软件模块,用于:从所述第一操作系统中的应用接收对安全资源的访问请求;向所述请求添加访问凭据;并将所述访问请求传递给所述第二操作系统;在第二操作系统中执行的第二软件模块,用于:接收具有访问凭证的所述访问请求;将所述访问凭证与所述安全资源的访问要求进行比较;如果所述凭证符合要求,则有选择地将所述请求传递给所述资源。

附图说明

在描绘了示例实施例的附图中:

图1是一种计算设备的框图;

图2是示出图1的计算设备处的软件组件的框图;

图3是示出客户端应用与计算设备处的可信应用之间的消息流的示意图;

图4是示出图1的计算设备处的软件组件的另一种排列方式的示意图;

图5是在图1的所述计算设备处维护的数据结构;

图6是示出图1的所述计算设备处维护的数据结构的示意图;

图7是示出向可信应用发送请求的方法的流程图;

图8是示出根据图7的方法发送的消息的消息流程图;

图9是示出响应请求的方法的流程图;

图10是示出根据图9的方法发送的消息的消息流程图。

具体实施方式

图1是示例计算设备100的示意图。计算设备100可以是智能手机、平板电脑、个人计算机,例如笔记本电脑、可穿戴计算设备等。

计算设备100具有划分为多个执行环境的硬件和软件资源,下文将会作出详细讨论。一个执行环境具有升级的访问限制,并且用于一些计算资源的安全存储和处理。

计算设备100包括处理器102、存储器104、存储设备106、一个或多个输入/输出(input/output,简称i/o)设备108,以及至少一个网络接口110。计算设备100的组件实现在一个或多个半导体芯片中,所述半导体芯片安装在印刷电路板上,用于组件之间的通信。在一些实施例中,多个组件,例如处理器102和网络接口110,集成在单个半导体芯片中,称为片上系统。在其它实施例中,每个组件是一块单独的芯片。

处理器102是任何合适类型的处理器,例如实现arm或x86指令集的处理器。

存储器104是可由处理器102访问的任何合适类型的随机存取存储器。存储器104包括安全存储器112。在一些实施例中,安全存储器112是单独的物理模块。在其它实施例中,存储器104被分割以在与其它存储器相同的物理模块内定义安全存储器。在一些实施例中,安全存储器112占据存储器104的地址空间内的一系列存储器地址。在一些实施例中,处理器102可在不同存储器空间内访问安全存储器112。

存储设备106可以是例如具有合适容量的nand闪存的一个或多个模块,或者可以是一个或多个硬盘或其它持久性计算机存储设备。存储设备106包括安全存储114。在一些实施例中,安全存储114位于和其它存储106共享的设备上。在其它实施例中,安全存储114位于单独的硬盘、闪存存储模块等的上面。

i/o设备108包括例如屏幕之类的用户接口设备,诸如电容式或其它触敏屏幕,其能够将呈现的图像显示为输出并且以触摸的形式接收输入。在一些实施例中,i/o设备108额外地或可选地包括扬声器、麦克风、传感器,诸如加速度计和全球定位系统(globalpositioningsystem,简称gps)接收器、键盘等中的一个或多个。在一些实施例中,i/o设备108包括用于将计算设备100连接到其它计算设备的端口。在一示例中,i/o设备108包括用于连接到外围设备或主机计算设备的通用串行总线(universalserialbus,简称usb)控制器。

网络接口110能够将计算设备100连接到一个或多个通信网络。在一些实施例中,网络接口110包括一个或多个无线电波,例如wi-fi或蜂窝(例如,gprs、gsm、edge、cdma、lte等)。

计算设备100在软件程序的控制下操作。计算机可读指令存储在存储106或安全存储114中,并由处理器102在存储器104或安全存储器112中执行。

图2是示出计算设备100处的软件组成的示意性框图。如图所示,计算设备100具有由操作系统206-1、206-2(单独地和共同地,操作系统206)提供的两个单独的执行环境。操作系统206-1可访问存储器104和存储106(图1)中的资源,并且操作系统206-2可访问安全存储器112和安全存储114。在所描绘的实施例中,处理器102配置有用于维持操作系统206-1、206-2提供的所述执行环境之间分离的逻辑。在一示例中,处理器102包括一个或多个armcortex-atm核,并且包括具有安全监视器逻辑的trustzonetm技术,用于在执行环境之间进行切换。其它实现方式是可能的。如所指出的,安全存储器112可以位于与存储器104分离的物理存储器模块中。可替代地或另外,所述安全存储器112可以在不同的地址空间或不同的地址范围中访问。同样,安全存储114可以位于单独的物理存储器设备中或者位于和存储106不同的分区或扇区中。

在一示例中,操作系统206-1是linux的一个版本。然而,操作系统206可以是能够在计算设备100上运行的任何操作系统,诸如其它基于linux的操作系统,如android、microsoftwindowsmobile和ubuntutouch等。操作系统206-2提供用于存储和访问安全计算资源的安全执行环境。操作系统206-2提供相对于操作系统206-1的有限功能,并且需要较少的计算、存储设备和存储器资源。

操作系统206-1上具有一个或多个客户端应用210。客户端应用210可由用户安装,例如,通过执行应用程序包。可以从软件存储库或商店检索应用程序包,诸如从googleplay商店检索android应用,从appleapp商店检索ios应用,windows商店检索windows应用,以及从不同的存储库检索linux操作系统发行版的应用。或者,可以从其它来源获得并安装应用。

应用程序包,特别是通过软件商店或存储库分发的应用程序包,通常遵循标准化格式。应用程序包可以包含人或计算机可读代码、编译的二进制文件、诸如数据库的应用程序资源,以及标识诸如应用程序名称、发布者、兼容文件类型等属性的元数据。例如,通过googleplay商店分发的android应用程序以压缩的、数字签名的.apk包提供,其包括唯一的应用程序id,例如“com.publisher.app1”。

操作系统206-2上具有一个或多个可信应用212。可信应用212安装在安全存储114中。操作系统206-2经过配置,这样用户在未能提供升级权限凭证的情况下,则无法安装可信应用212。在一示例中,安全存储114对于最终用户是不可写的。然而,安全存储114可以仅由系统级别进程或应用修改,例如,作为由计算设备100的制造商或由某些特定的数字签名的应用程序包发布的更新的一部分。可信应用212的安装过程确保它们经验证为来自授权来源的合法应用,因此,从这一点来看,可信应用212是“受信任的”。

每个可信应用212都可以访问安全数据。对于至少一些功能来说,客户端应用210需要此类数据。因此,客户端应用能够向可信应用212发送请求,例如,用于返回安全数据,或用于使用安全数据来执行操作。

在可信应用212和客户端应用210之间共享信息是基于安全资源要求的定义规则,例如对可信应用212的访问或由可信应用212存储的数据,可与客户端应用210共享。

因为客户端应用210是用户可安装的,所以它们在安装之前可能不会受到与可信应用212相同程度的验证。因此,客户端应用210在安装时,可能面临恶意、没有适当安全数据保护编码的应用,或与未授权访问安全数据的实体相关联。术语“信任模型”指的是用于防止除了授权的应用程序和用户之外的访问的保护措施。

图3描绘了用于允许对安全数据的受控访问的示例机制,例如,在客户端应用210和可信应用212之间交换或共享数据。如图4所示,存在两个客户端应用210-1、210-2和两个可信应用212-1和212-2。作为示例,客户端应用210-1是金融支付应用,客户端应用210-2是具有数字权限管理功能的媒体播放器。客户端应用210-1需要周期性地访问账户信息,诸如信用卡号或相关授权凭证,以便执行交易。客户端应用210-2需要周期性地访问数字权限管理数据,例如隐私密钥,以重新播放内容。

可信应用212-1是凭证存储实用程序,可信应用212-2是数字权限管理实用程序。可信应用212-1可以访问金融账户信息或凭证的数据结构(例如,数据库)。可信应用212-2可以访问加密密钥的数据结构(例如,数据库),用于访问受版权保护的内容。

每一个可信应用212-1和每一个可信应用212-2用于从客户端应用210接收请求。可信应用212-1、212-2还用于根据接收到的所述请求执行权限检查。根据每个可信应用212存储的信息类型,来配置所述安全检查。具体地,在一些实施例中,可信应用212-1存储属于多个用户的凭证。为了确认凭证请求是经过授权的,可信应用212-1用于检查所述请求应用的名称和发出所述请求的用户的用户id。因此,为了针对可信应用212-1提出请求,客户端应用210-1用于构建消息221,所述消息221包括其应用id“com.publisher.app1”,所述活跃用户的用户id,和定义所述请求的一个或多个参数。相比之下,可信应用212-2存储与特定内容而不是与任何特定用户相关联的加密密钥。因此,为了确认请求是经过授权的,可信应用212-2可以仅检查发出所述请求的所述客户端应用的应用id。因此,为了从可信应用212-2请求安全数据,客户端应用210-2构建消息223,所述消息223包括其应用id“com.publisher.app1”。

遗憾的是,以这种方式由各个可信应用进行访问管理是有缺点的。例如,每个可信应用212需要用于从客户端应用210接收一些凭证。任何给定的可信应用212所需的凭证或所需要的凭证格式,可能有所不同。因此,客户端应用210的开发者将需要知道并且根据每个可信应用212的配置来定制客户端应用210。此外,对任何可信应用212的更改,将需要反映在任何需要访问受信任应用的数据的客户端应用210中。

另外,每个可信应用212可能需要,例如,基于应用名称或id,来维护所有授权客户端应用210的最新记录。维护所述记录可能是繁琐的。此外,应用名称和应用id是可以公开访问的。例如,这些信息可以从某些类型的应用程序包中提取,因此可能被恶意客户端应用210伪造,使安全数据面临未经授权的访问。

图4描绘了一个实施例,其中对安全数据的访问控制由操作系统206-1、206-2内的单独的软件模块而不是由单独的可信应用212来管理。这些组件允许将功能标准化,以请求安全数据和执行访问规则。此外,这些组件允许在计算设备100内部创建和维护访问凭证,使得访问控制不需要依赖于公开可用且易于伪造的信息。

具体地,操作系统206-1还包括访问控制库214,例如应用编程接口(applicationprogramminginterface,简称api),其向客户端应用210提供了一组功能,以从可信应用212请求安全数据,或要求可信应用212使用安全数据请求执行操作。在一示例中,访问控制库214提供一项功能,用于将请求传递给可信应用212。客户端应用210可以通过构建请求,包括诸如所述可信应用212的标识、可信应用212执行的功能的标识之类的参数,以及可信应用212由于授权或执行所述功能所需要的其它参数,来调用所述功能。

访问控制驱动216将访问控制库214提供的功能映射到对应的可信应用212,例如通过定义功能一致性的数据结构,映射到可信应用212。

访问控制驱动216和安全访问管理器218可以访问数据结构220、222(图5、图6),其对安装在操作系统206-1下的所述客户端应用210和安装在操作系统206-2下的可信应用212进行编目。数据结构220、222可以分别由访问控制驱动216和安全访问管理器218维护。或者,数据结构220、222可以分别由操作系统206-1、206-2的其它组件维护。

图5描绘了对客户端应用210进行编目的示例数据结构220。如图5所示,数据结构220包含应用名称字段226和一个或多个访问凭证字段228。应用名称字段226包含标识每个应用的值。如图4所示,字段226-1包含与客户端应用210-1对应的标识“com.publisher.app1”,字段226-2包含与客户端应用210-2对应的标识“com.publisher.app2”。在所描绘的实施例中,访问凭证字段228包括应用访问密钥字段230和应用组id字段232。然而,可以使用其它类型的访问凭证。

对于每个客户端应用210,应用访问密钥字段230包含在安装时分配给所述客户端应用210的唯一标识值。例如,可以在安装时使用基于时间的功能,从所述客户端应用名称按顺序分配或导出唯一的安全访问密钥。如所描述的那样,字段230-1包含与客户端应用210-1相关联的安全访问密钥c0001,字段230-2包含与客户端应用210-2相关联的安全访问密钥c0002。

对于至少一些客户端应用210,应用组字段232包含定义客户端应用210所属组的一个或多个值。应用组可以包括例如由特定用户安装的应用、来自特定开发者或发布者的应用、功能分组(例如银行应用、媒体应用)或任何其它合适的分组。可以基于应用程序包中的元数据、来自用户的指令、操作系统206-1或访问控制驱动216中的规则等来分配组值。如图所示,客户端应用210-1属于组“1”,客户端应用210-2属于组“2”。在所描绘的示例中,组“2”对应于一组媒体应用,所述媒体应用使用的公共数字权利管理平台由可信应用212-2提供。属于所述组的应用可以包括与不同内容供应商相关联的媒体播放器应用。在所描绘的示例中,每一个客户端应用210-1、210-2属于一个组。然而,一些应用可能属于多个组,而其它应用可能不属于任何组。

在安装客户端应用210时,针对每个客户端应用210,将记录添加到数据结构220。

图6描绘了由安全访问管理器218维护的示例数据结构222,所述安全访问管理器218对可信应用212进行编目,并且包含受信任应用212与授权客户端应用210的访问凭证的绑定。

数据结构222包括可信应用字段234,其包含每个可信应用212的应用id值。如所描述的那样,可信应用字段232-1包含值com.publisher.accountstore,其标识负责维护付款和账户凭据的所述可信应用212-1。可信应用字段232-2包含值com.publisher.contentkeys,其标识负责维护媒体内容的数字权利信息的可信应用212-2。数据结构222还包括所需凭证字段236,其包含访问所述可信应用需要的凭证值或凭证值的组合。如图所示,字段236-1包含表达式,指定访问可信应用212-1需要“用户1”的用户id和应用访问密钥“c0001”(与客户端应用210-1对应)。字段236-2包含表达式,指定访问可信应用212-2需要组值“2”。因此,被标识为属于该组的客户端应用210被授权。

在一些情况下,可以使用多个凭证或多个凭证组合来访问可信应用212。例如,可以授权不止一个用户访问特定的可信应用212,在这种情况下,使用与任何授权用户相关联的凭证足以访问可信应用212。在这种情况下,可以在单个字段中输入可能的组合作为分隔值。例如,字段可以包含多个分隔的用户id值。或者,可以在单独的字段中输入每种组合。

图6中以表格的形式描绘了数据结构222。然而,其它结构也是可能的,这对于本发明的技术人员是显而易见的。例如,数据结构222可以实现为数据库的多个表。

数据结构222存储在安全存储114中,因此只能由安全访问管理器218或操作系统206-2的其它组件修改。在一些实施例中,安全访问管理器218用于仅根据系统级别指令或来自特定数字签名的应用程序包的指令来修改数据结构222。在没有限制的情况下,数据结构222的更新可以在客户端应用210或可信应用212安装时进行;作为系统级别软件更新的一部分,通过比如计算设备100的制造商发布;卸载应用时进行;或重置计算设备100时进行。

在一些实施例中,访问控制驱动216(图4)进一步维护参数记录,所述参数记录用于授权访问每个可信应用212。在所描绘的示例中,访问控制驱动会记录,可信应用212-1可以使用应用访问密钥和活跃用户id以授权请求,并且该可信应用212-1仅使用所述应用访问密钥。在此类实施例中,访问控制驱动216基于授权所述消息需要的参数,来构建针对特定可信应用212的消息。或者,访问控制驱动216可以包括带有针对可信应用212的所有消息的所有可用参数。

在一些实施例中,至少一些客户端应用210与其对应的可信应用212同时安装,并且数据结构220、222相应地更新。例如,在一些实施例中,媒体播放客户端应用210-2和复制保护可信应用212-2包含在同一应用程序包中。在用户执行所述应用程序包时,客户端应用210-2和可信应用212-2一起安装。访问控制驱动216将应用访问密钥分配给所述客户端应用210-2,并向安全访问管理器218提供指令,将记录添加到链接可信应用212-2与所述分配的安全访问密钥的数据结构222,以便客户端应用获得授权从可信应用212-2访问安全数据。

可替代地或另外,可以由例如计算设备100的制造商预先安装可信应用212。在这种情况下,在包含需要访问所述可信应用212的客户端应用210的应用程序包内,还包含用于更新数据结构222的指令,以向所述客户端应用210授予访问权限。访问控制驱动216处理所述指令并验证所述应用程序包,使其通过授权可以修改数据结构222,并将所述修改指令传递给安全访问管理器218。

图7是示出在计算设备100处执行的安全数据访问管理方法300的流程图。图8是示出根据图7的方法在计算设备100的组件之间交换的示例消息的示意图。

在块302处,客户端应用210-1请求访问安全数据。具体地,所述客户端应用210调用由访问控制库214提供的函数,用于向可信应用212发送请求。所述客户端应用210构建消息234(图8),其包含所述请求针对的所述可信应用212的标识,以及定义所述请求的参数,如图7的消息234所示。

所述请求可以是读取请求,即要求返回安全数据的请求。在这种情况下,消息234中包括的所述参数定义了所需的数据。例如,计算设备100的用户输入一个指令,指示客户端应用210-1在销售点显示所述用户的信用卡凭证。客户端应用210-1构建包括诸如(read、card1)之类的请求参数的消息234,指示所述请求是读取请求并且card1是要检索的数据。

或者,所述请求可以是写入请求,即将数据存储在安全存储114中的请求。例如,计算设备100的用户将账号输入客户端应用210-1以进行存储,在这种情况下,客户端应用210-1构建包括诸如(write、[accounttype]、[accountno.])之类的请求参数的消息,指示所述请求是写入请求并定义要保存的账户类型和号码。

或者,所述请求可以是有关可信应用212执行操作的请求,例如数据的加密或解密。在这种情况下,消息234中包含的所述参数定义要加密或解密的所述数据,并且可选地,定义用于标识加密密钥或方法的参数。

在块306处,访问控制驱动216确定访问相关可信应用212所需的访问参数的类型,并查找与发起所述请求的客户端应用210相关联的那些访问参数。例如,如所指出的,容纳支付凭证的可信应用212-1需要应用访问密钥,以确认所述请求客户端应用210被授权,以及需要用户id,以确认所述活跃用户被授权访问所请求的账户数据。一些访问参数,例如,应用访问密钥,通过读取数据结构220来检索。另外的访问参数,例如,用户id,可由操作系统206-1或所述请求客户端应用210提供。访问控制驱动216形成请求238(图8),其包括所述相关可信应用212的标识、由访问控制驱动216识别的适当访问参数,以及从客户端应用210接收的所述请求参数。

在块308处,请求238经由处理器102传递到操作系统206-2。具体地,如图8所示,消息240被传递到安全访问管理器218,该安全访问管理器218识别所述相关可信应用212-1并且包含定义所请求的数据或操作的参数和所述访问参数,即安全访问密钥228-1。

在块310处,安全访问管理器218评估消息240。具体地,安全访问管理器218通过读取数据结构222来执行对所述可信应用212的查找,并确定消息240中的所述访问参数组合是否出现在对应的字段236。如果消息240中的所述参数组合与对应字段236中的参数组合匹配,则在发起所述请求的所述客户端应用210与所述请求针对的所述可信应用212之间创建通信会话。

在所描绘的示例中,如果所述接收的访问参数组合与在消息240中标识的所述可信应用212的字段236中列出的组合匹配,则所述请求客户端应用210被授权访问所请求的安全数据。安全访问管理器218将消息242传递到包含定义所述请求的参数的可信应用212。

如果所接收的访问参数组合与数据结构222中与可信应用212相关联的组合不匹配,则该请求不被授权。例如,发起所述请求的所述用户或客户端应用210可能未被授权访问安全数据或执行所请求的操作。若是,则在块314处,拒绝所述请求,即,安全访问管理器218不将请求传递给所述可信应用212。可选地,可以返回错误消息。

如果授权请求是写入请求,则可信应用212将所接收的数据写入安全存储114。或者,如果授权请求是读取请求,则可信应用212检索所请求的数据,将数据返回到操作系统206-1中的客户端应用210。如果授权请求是用于执行操作,例如,加密或解密数据,可信应用212执行所述应用。图9描绘了将安全数据从可信应用212返回到客户端应用210的方法400。图10描绘了根据方法400在计算设备100的组件之间发送的消息。

在块402处,可信应用212执行所述请求。例如,所述可信应用212获得客户端应用210-1请求的所述安全数据。如图9所示,所述可信应用212从安全存储114检索数据并将所述数据返回到客户端应用210。在其它示例中,所述可信应用212写入在所述请求中接收的数据。在其它示例中,所述可信应用212执行操作,例如,使用安全数据来获取响应。例如,可以从安全存储114检索加密密钥并用于生成解密值,返回到客户端应用210。

在块404处,可信应用212生成要返回到所述客户端应用210的响应244,并将所述响应发送到安全访问管理器218。所述消息被传递到安全访问管理器218。

在块408处,安全访问管理器218通过处理器102发送消息246(图10),包括所述响应内容,到操作系统206-1。具体地,安全访问管理器将消息246发送到访问控制驱动216。

在块410处,访问控制驱动216将包括所述响应内容的消息248发送到所述客户端应用210。

如参考实施例图4-10所描述的,对于访问可信应用212和访问可信应用212存储的安全数据的控制,是由安全访问管理器218统一管理,并需要使用访问控制库214和访问控制驱动216提供的信息。访问控制措施不需要由客户端应用210或可信应用212中的任何一个来实施。相反,客户端应用210、212可以简单地定义所述需要的访问控制,例如,使用应用程序包中的元数据,并依赖访问控制库214、访问控制驱动216和安全访问管理器218来实现此类控制。访问控制库214、访问控制驱动216和安全访问管理器218在数据结构220、222中反映所述需要的访问规则。

以这种方式集中实现访问控制允许客户端应用210和可信应用212之间的访问控制的标准化。例如,限制对特定客户端应用或用户的访问的代码在访问控制驱动216和安全访问管理器218中实现,客户端应用210和可信应用218可以仅依赖所述访问控制驱动216和安全访问管理器218来实现这些功能。因此,可以避免由于错误实现方式对各个应用造成的漏洞。此外,在识别出安全漏洞的情况下,可以通过更新访问控制库214、访问控制驱动216或安全访问管理器218中的一个或多个来为所有应用解决漏洞。相反,如果访问控制由各个客户端应用210或可信应用212实现,解决漏洞可能需要更新每个应用。

通过操作系统组件,例如,访问控制库214、访问控制驱动216和安全访问管理器218,来处理访问控制功能,还简化了客户端应用210和可信应用212的开发过程,因为各个应用的开发者不需要在每个应用中实现自定义访问控制。简化的开发过程可能有助于鼓励使用安全存储器112和安全存储114的应用的开发,从而有助于扩展计算设备(例如计算设备100)的能力。

如上参考图8所述,客户端应用210生成的每个请求包括所述请求针对的所述可信应用212的标识。客户端应用210知道它们需要与之交互的可信应用212。也就是说,客户端应用210被编程为需要依赖可信应用212,以获得某些数据或执行某些操作,并形成可标识那些可信应用并包括相关参数的请求。在其它实施例中,访问控制库214可以提供多种函数,这些函数仅针对于可信应用212的可用数据类型,以及可由可信应用212执行的操作类型。在此类实施例中,访问控制库214进一步维护每个函数与相应的可信应用之间的一致性,并定义每个函数所需的参数,每个函数都作为api的一部分。因此,客户端应用210可以依赖于访问控制库提供的函数,并且不需要明确地标识可信应用212。

在一些实施例中,可以根据globalplatform可信执行环境(trustedexecutionenvironment,简称tee)规范(www.globalplatform.org/specificationsdevice.asp),来实现本文公开的所述系统和方法的组件和特征。例如,在一些实施例中,移动计算设备100符合globalplatformtee系统架构v1.0,并且操作系统206-2符合其中定义的所述可信执行环境规范。此外,在一些实施例中,操作系统206-1、206-2和计算设备100实现globalplatformteeapi规范,诸如tee客户端api规范v1.0和tee内部核心api规范v1.1.1.1,操作系统206-1和操作系统206-2之间的通信过程符合这些规范,所有内容都通过引用并入本文。此外,本发明的范围并不局限于说明书中所述的过程、机器、制造、物质组分、构件、方法和步骤的具体实施例。所属领域的一般技术人员可从本发明的公开中轻易地了解,可根据本发明使用现有的或即将开发出的,具有与本文所描述的相应实施例实质相同的功能,或能够取得与所述实施例实质相同的结果的过程、机器、制造、物质组分、构件、方法或步骤。相应地,所附权利要求范围包括这些流程、机器、产品、合成物质、方式、方法,及步骤。

可以理解,上面描述和说明的所述详细实施例仅仅是示例。修改是允许的。本发明由权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1