安全处理系统转让专利

申请号 : CN200910179483.5

文献号 : CN101930508B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马克·布尔

申请人 : 美国博通公司

摘要 :

本发明涉及计算机安全,更具体地说,涉及主机隔离(host-isolated)安全技术。本发明提供一种安全处理系统,包括:主处理器;虚拟机,实例化于主处理器之上;以及虚拟统一安全集线器USH,实例化于虚拟机之上,其中,所述虚拟USH模仿基于硬件的USH,为在所述主处理器上执行的应用提供多种安全服务。

权利要求 :

1.一种安全处理系统,其特征在于,包括:

以物理硬件实现的主系统,包括主处理器和受信平台模块;

虚拟机,实例化于主处理器之上;

虚拟统一安全集线器USH,实例化于虚拟机之上,其中,所述虚拟USH模仿基于硬件的USH,为在所述主处理器上执行的应用提供多种安全服务,所述多种安全服务包括个人验证进程和安全应用;以及虚拟机管理器,用于对所述主系统中的硬件资源进行虚拟化,其中,所述虚拟机包括用于将由所述虚拟USH提供的所述多种安全服务开放给应用的应用编程接口。

2.根据权利要求1所述的安全处理系统,其特征在于,所述安全处理系统包括与主处理器相连的USH处理器。

3.根据权利要求1所述的安全处理系统,其特征在于,所述安全处理系统包括通过通信网络与主处理器相连的USH处理器。

4.根据权利要求1所述的安全处理系统,其特征在于,所述安全处理系统包括通过硬件令牌与主处理器相连的USH处理器。

5.根据权利要求1所述的安全处理系统,其特征在于,所述安全处理系统还包括:用户输入设备,与所述虚拟USH相连,其中,用户输入设备输入的输入数据将由虚拟USH通过用户输入设备直接接收到。

6.根据权利要求5所述的安全处理系统,其特征在于,所述虚拟USH用于确定是否向主处理器释放所述输入数据。

7.根据权利要求5所述的安全处理系统,其特征在于,所述虚拟USH用于在向所述主处理器释放所述输入数据之前对该输入数据进行加密。

8.根据权利要求1所述的安全处理系统,其特征在于,所述虚拟机管理器实现所述虚拟机与所述主系统中的硬件资源之间的数据通信。

说明书 :

安全处理系统

技术领域

[0001] 本发明涉及计算机安全,更具体地说,涉及主机隔离(host-isolated)安全技术。

背景技术

[0002] 典型的个人计算机(PC)包括主机、存储器和用户输入设备。当今的多数PC在因特尔处理器上运行视窗(Windows)。这些系统被称为Wintel系统。Wintel系统具有一些安全性弱点,这些弱点是最受黑客欢迎的目标。因此,提供商和用户持续不断的尝试开发新技术,以便将这些系统变得更加安全。
[0003] 许多系统包括Wintel系统都能够提供加密存储器,以便用户和系统存储数据。当系统处于空闲状态(也就是数据未被适用)时,数据都保护在加密存储器里。但是,可以从加密存储器中获取这些数据,并由运行在主机上的应用使用。当数据移动到安全存储器之外时,数据变得非常脆弱。敏感数据会在这种不安全的位置受到攻击。
[0004] 因此需要一种系统和方法,能够提供一种主机隔离安全环境,在这种环境下将运行安全服务,数据将存储在安全受信域中,与不安全的主机隔离。

发明内容

[0005] 根据本发明的一个方面,提供了一种安全处理系统,包括:
[0006] 主处理器(host processor);
[0007] 虚拟机,实例化(instantiated)于主处理器之上;以及
[0008] 虚拟统一安全集线器(unified security hub,USH),实例化于虚拟机之上,其中,所述虚拟USH模仿基于硬件的USH,为在所述主处理器上执行的应用提供多种安全服务。
[0009] 优选的,所述安全处理系统包括与主处理器相连的USH处理器。
[0010] 优选的,所述安全处理系统包括通过通信网络与主处理器相连的USH处理器。
[0011] 优选的,所述安全处理系统包括通过硬件令牌与主处理器相连的USH处理器。
[0012] 优选的,所述安全处理系统还包括:
[0013] 用户输入设备,与所述虚拟USH相连,其中,用户输入设备输入的输入数据将由虚拟USH通过用户输入设备直接接收到。
[0014] 优选的,所述虚拟USH用于确定是否向主处理器释放所述输入数据。
[0015] 优选的,所述虚拟USH用于在向所述主处理器释放所述输入数据之前对该输入数据进行加密。
[0016] 优选的,所述用户设备为键盘。
[0017] 优选的,所述用户设备为生物特征验证设备。
[0018] 优选的,所述用户设备为包含用户验证数据的智能卡。
[0019] 优选的,所述安全处理系统还包括:
[0020] 安全存储器。
[0021] 优选的,所述虚拟USH从所述安全存储器获取数据以及将数据存储到安全存储器中。
[0022] 优选的,所述安全存储器为受信平台模块。
[0023] 优选的,所述安全存储器为硬件令牌。
[0024] 优选的,所述虚拟机包括应用编程接口(API),用于向应用提供由所述虚拟USH提供的多种安全服务。
[0025] 优选的,所述API用于为多种应用提供统一接口,以便将用户凭证登记到凭证存储器中。
[0026] 优选的,所述多种应用包括多种验证应用。
[0027] 优选的,所述多种验证应用之中的每一种都包含在与所述主处理器相连的单独的集成电路芯片之中。
[0028] 优选的,所述多种验证应用之中的一种验证应用是由非接触式智能卡提供的。
[0029] 优选的,所述多种验证应用之中的一种验证应用是由接触式智能卡提供的。
[0030] 优选的,所述多种应用之中的一种应用是在所述安全处理系统外部的处理器上执行的。
[0031] 优选的,所述凭证存储器中包括用户凭证和相关联的安全策略。
[0032] 优选的,所述API还用于向在主处理器上执行的多种应用开放凭证存储器,其中,该凭证存储器中包含用户登记的凭证。
[0033] 优选的,所述用户凭证包括生物特征模板。
[0034] 优选的,所述生物特征模板为指纹模板。
[0035] 优选的,所述用户凭证包括人机接口设备标识符。
[0036] 优选的,所述API用于为多种应用提供统一接口,以便向凭证存储器提供用户凭证。
[0037] 优选的,所述多种应用之中的一种应用在所述安全处理系统外部的处理器上执行。
[0038] 优选的,所述凭证存储器包括用户凭证和相关联的安全策略。
[0039] 优选的,所述API还用于向在主处理器上执行的多种应用开放凭证存储器,其中,该凭证存储器中包含为用户提供的凭证。
[0040] 优选的,所述用户凭证包括生物特征模板。
[0041] 优选的,所述生物特征模板为指纹模板。
[0042] 优选的,所述多种安全服务包括数据加密。
[0043] 优选的,所述多种安全服务包括用户验证。
[0044] 优选的,所述多种安全服务包括指纹匹配。
[0045] 优选的,所述多种安全服务包括反病毒应用。
[0046] 根据本发明的一个方面,提供了一种安全处理系统,包括
[0047] 主处理器;
[0048] 低功耗主处理器,与所述主处理器相连;以及
[0049] 统一安全集线器(USH)处理器,与所述主处理器和低功耗主处理器相连,其中,所述USH处理器用于为主处理器和低功耗主处理器提供多种安全服务,所述多种安全服务与所述主处理器和低功耗主处理器隔离。
[0050] 优选的,所述USH处理器包括应用编程接口(API),用于向在主处理器上执行的多种应用提供由USH处理器提供的多种安全服务。
[0051] 优选的,所述虚拟机包括应用编程接口(API),用于向在低功耗处理器上执行的多种应用提供由USH处理器提供的多种安全服务。
[0052] 优选的,所述USH处理器包括API,用于为多种应用提供统一接口,以便向凭证存储器中登记用户凭证。
[0053] 优选的,所述多种应用包括多种验证应用。
[0054] 优选的,所述多种验证应用之中的每一种都包含在与主处理器相连的单独的集成电路芯片中。
[0055] 优选的,所述多种验证应用之中的一种验证应用由非接触式智能卡提供。
[0056] 优选的,所述多种验证应用之中的一种验证应用由接触式智能卡提供。
[0057] 优选的,所述多种应用之中的一种应用在所述安全处理系统外部的处理器上执行。
[0058] 优选的,所述凭证存储器包括用户凭证和相关联的安全策略。
[0059] 优选的,所述API用于向在主处理器上执行的多种应用开放凭证存储器,其中包含为用户登记的凭证。
[0060] 优选的,所述用户凭证包括生物特征模板。
[0061] 优选的,所述生物特征模板为指纹模板。
[0062] 优选的,所述用户凭证包括人机接口设备标识符。
[0063] 优选的,所述USH处理器包括API,用于向多种应用提供统一接口,以便向凭证存储器提供用户凭证。
[0064] 优选的,所述多种应用之中的一种应用在所述安全处理系统外部的处理器上执行。
[0065] 优选的,所述凭证存储器包括用户凭证和相关联的安全策略。
[0066] 优选的,所述API用于向在主处理器上执行的多种应用开放凭证存储器,其中包含为用户提供的凭证。
[0067] 优选的,所述用户凭证包括生物特征模板。
[0068] 优选的,所述生物特征模板为指纹模板。
[0069] 优选的,所述多种安全服务包括数据加密。
[0070] 优选的,所述多种安全服务包括用户验证。
[0071] 优选的,所述多种安全服务包括指纹匹配。
[0072] 优选的,所述多种安全服务包括反病毒应用。
[0073] 优选的,所述安全处理系统还包括:
[0074] 用户输入设备,与USH处理器相连,所述用户输入设备输入的输入数据将由虚拟USH直接从用户输入设备中接收到。
[0075] 优选的,所述USH处理器用于确定是否向主处理器释放输入数据。
[0076] 优选的,所述USH处理器用于在将输入数据释放给所述主处理器之前对其进行加密。
[0077] 优选的,所述用户设备为键盘。
[0078] 优选的,所述用户设备为生物特征验证设备。
[0079] 优选的,所述用户设备为智能卡,其中包含用户验证数据。

附图说明

[0080] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0081] 图1是具有双主机和单独的安全处理器的系统的结构示意图;
[0082] 图2是依据本发明一较佳实施例的具有主机隔离安全的系统的结构示意图;
[0083] 图3是依据本发明一较佳实施例的具有基于软件的USH的系统的框图;
[0084] 图4是依据本发明一较佳实施例的应用于具有基于软件的USH的系统400的服务器模型的框图;
[0085] 图5A-5C是依据本发明一较佳实施例的具有凭证保险库API(CV-API)的系统的框图;
[0086] 图6是依据本发明一较佳实施例的具有从API开放的服务的角度而言的CV-API的系统高级框图;
[0087] 图7是依据本发明一较佳实施例的具有从凭证使用和管理角度而言的公共CV-API的系统的框图;
[0088] 图8是依据本发明一较佳实施例的示范性凭证存储器的框图;
[0089] 图9是依据本发明一较佳实施例的示范性计算机系统900的示意图;
[0090] 下面将结合上述附图对本发明进行详细描述。在上述附图中,相似的参考标记表示相同或者功能上类似的器件。此外,参考标记最左边的数字表示该参考标记最先出现的附图。

具体实施方式

[0091] 1.0架构实施例
[0092] 1.1基于硬件的统一安全集线器
[0093] 当今的许多计算机系统包含多个处理器。这些多处理器系统向管理员和用户展示唯一的安全挑战(security challenges)。图1是具有双主机和单独的安全处理器的系统的结构示意图。系统100包括三个物理处理器-用于执行传统视窗处理的主处理器(host)110、用于执行低功耗处理的主处理器120和安全处理器130。
[0094] 主系统110可基于因特尔x86CPU118,其运行视窗操作系统114。视窗-因特尔系统通常称为Wintel系统。主系统(host system)110还可运行一个或多个个人验证进程111,例如指纹匹配,以及一个或多个数据安全应用113,例如一次性密码验证和反病毒。主系统110还可包括凭证存储器115,用于存储加密材料例如密钥。
[0095] 低功耗主机系统120可基于ARM处理器128,其运行单独的操作系统(例如Linux)124。低功耗主系统120设计用于处理低功耗处理应用(例如电子邮件、网页浏览)。这使得系统100能够扩展系统自身的电池寿命,这是通过在低功耗处理器而不是搞功耗视窗主处理器上运行特定应用来实现的。低功耗主系统120还可运行个人验证进程121,例如指纹匹配。
[0096] 安全处理系统130设计用于为系统100执行安全处理。安全处理系统130(设计为统一安全集线器(USH)系统)包括凭证保险库132和安全处理器(USH)134。
[0097] 系统,例如系统100存在一些限制。首先,这些系统将安全凭证和安全进程/操作暴露给开放的主机资源(host resource)。因此,敏感安全数据和操作,特别是那些在主系统110上的敏感安全数据和操作将暴露给基于Wintel的攻击。此外,安全解决方案通常为专用主机而设计。系统100的双主机配置要求两个单独的安全方案。这种双安全方案导致IT复杂性增大,这是因为这种双安全方案必须独立进行管理,增加了用户的负担,因为用户必须为每一个主机注册凭证,尽管这两个主机是设置在同一系统上的。
[0098] 为了解决这些问题,本发明的实施例将安全性与脆弱的主机资源隔离开。这些实施例还将安全服务向两个主机开放,因此创建了一致的安全方案。
[0099] 图2是依据本发明一较佳实施例的具有主机隔离安全的系统的结构示意图。系统200将安全应用与图1中的多个主机隔离开来,并为不同的物理机提供安全服务。
[0100] 系统200包括三个单独的物理系统一主系统210(例如正常的视窗处理),低功耗主系统220和安全处理系统230。在系统200中,与安全有关的服务将从不安全的主处理系统(210、220)转移到安全处理系统230。安全处理系统230为副处理器,其具有存储凭证和运行使用这些凭证的应用的能力。例如,安全处理系统可支持RSA一次性密码验证、生物特征识别(例如指纹匹配)和/或其他形式的用户验证。通过这种方式,敏感数据将永远不会离开安全处理系统230的安全边界。
[0101] 如图2所示,安全处理系统(USH系统)230包括个人验证进程231,例如指纹匹配,还包括数据安全应用233。安全处理系统230还可包括反病毒应用、人脸识别应用和/或通用(general purpose)加密。安全处理系统230还可包括凭证保险库232,用于安全存储一些数据例如加密密钥。正如可从图2中看到的一样,主系统210和低功耗主系统220不再包含任何与安全有关的服务,或者存储任何与安全有关的数据。
[0102] 在一个实施例中,安全处理系统230直接连接到一个或多个用户设备290a~290n。用户设备290可包括键盘、非接触式智能卡、接触式智能卡或者任何其他类型的用户输入设备。在本实施例中,当用户通过用户输入设备提供输入(例如使用键盘输入数据)时,安全处理系统230判断是否将数据发往主机。到用户设备的直接连接主要(或者仅仅)用于进行用户验证。例如,如果用户通过键盘输入密码,安全处理系统230会将该密码保存在安全处理系统内,并且在安全处理器内执行用户验证。安全处理系统230还可判断是否将用户输入的数据是放给主处理器或者低功耗处理器。此外或者作为可选的,安全处理系统230还可确定是否需要对用户输入的数据进行加密,然后再将其发往主处理器或者低功耗处理器。
[0103] 1.2基于软件的USH
[0104] 前文的图1和图2将USH描述为单独的物理处理器(例如物理芯片)。在另一实施例中,USH还可全部由软件或者部分的由软件来实现。例如,在本发明的实施例中,USH可作为运行在主机上的进程或者虚拟机。图3是依据本发明一较佳实施例的具有基于软件的USH的系统的框图。
[0105] 图3中的示范性系统300包括第一虚拟机330A、第二虚拟机330B和第n虚拟机350、系统管理程序(hypervisor)320(也成为虚拟机管理器),以及主系统310。主系统310包括一个或多个主处理器312、主存储器314和一个或多个其他的硬件资源例如串行AT附件(SATA)316a和以太网设备316b。主系统还可包括受信平台模块(TPM)318。
[0106] 主处理器312可包括适当的逻辑、电路和/或代码,用于控制和/或管理与主系统310有关的数据处理和/或网络操作。主存储器314可包括适当的逻辑、电路和/或代码,用于存储主系统310所使用的数据。
[0107] 受信平台模块(TPM)318为安全加密处理器。例如,TPM可设计用于满足受信计算组(TCG)定义的规范。TPM 318可支持验证算法、加密/解密算法、随机数生成,和安全密钥和数据存储。例如,TPM 318可用于在密钥在系统中处于空闲状态时存储加密密钥。
[0108] 在高层面上,虚拟机例如虚拟机330A、330B和350可代表软件实现的机器。虚拟机用于为操作系统和/或应用提供硬件独立性。此外,通过使用多个虚拟机,应用(和/或操作系统)可独立进行设计并彼此隔离。在图3中,虚拟机330A和330B包括操作系统332A、332B和一个或多个应用334A、334B。在实施例中,操作系统332A和/或操作系统332B为访客操作系统。访客操作系统是这样一种操作系统,其可运行在独立于系统300硬件处理器的物理系统上。操作系统332A和操作系统332B可以是相同的操作系统(例如Linux)或者不同的操作系统(例如,windows和Linux)。虚拟机330A和330B还可包含虚拟图3中其他硬件资源的虚拟机。
[0109] 主系统310可包括适当的逻辑、电路和/或代码,用于进行数据处理和/或联网操作,例如。主系统310可通过系统管理程序320支持第一虚拟机(和第一访客操作系统)操作、第二虚拟机(和第二访客操作系统)操作,以及第n虚拟机操作。主系统320所支持的虚拟机或者访客操作系统的数量并非仅限于图3所描述的实施例。例如,主系统310还可支持两个或更多的虚拟机和/或访客操作系统。
[0110] 系统管理程序320可运行为用于对主系统310之中的硬件资源进行操作系统虚拟化的软件层。作为选择,系统管理程序320可运行为用于对与主系统(如图4所示)相连的硬件资源进行虚拟化的软件层。系统管理程序还可实现虚拟机330A、330B和350与主系统310的硬件资源之间的数据通信。
[0111] 系统300还可包括安全令牌380。安全令牌380可以是连接到系统300的硬件外围设备。在一个实施例中,安全令牌380为USB连接器(USB dongle)、智能卡或者类似的设备。安全令牌380可与系统300一同用于提供对密钥和/或数据的安全存储。
[0112] 图3描述了虚拟化的几个层级。正如本领域的技术人员所了解的那样,系统可支持所有层级的虚拟化或者图3中描述的虚拟化各层级的一个子集。在一个虚拟化层级上,虚拟机1330A和虚拟机2330B具有I/O和USH的虚拟化。如图3所示,虚拟机1330A和虚拟机2330B包括vUSH 342。为支持I/O和USH的虚拟化,系统300可在主系统310中包括USH硬件和软件。
[0113] 第二层级虚拟化为虚拟机n350的虚拟USH。虚拟机350包括USH 352,其运行在内嵌的操作系统354中。USH 352可包括软件凭证保险库、验证服务和/或其他加密服务(例如加密/解密)。在一个实施例中,虚拟机n可包括系统管理程序监视器356。第二层级的虚拟化提供附加的安全性,因为虚拟USH是与其他进程相隔离的。在只包含虚拟USH的系统300的实施例中,凭证、密钥和/或其他安全数据存储在机器上任何可用的安全硬件中(例如TPM 318或者安全令牌380)。当进程开始时,安全数据将直接从安全存储器(例如TPM或者安全令牌)中拉出以进入虚拟USH。安全数据将不会暴露给非安全主系统。
[0114] 类似于图2中描述的基于硬件的USH,在一个实施例中,基于软件的USH(虚拟机n350的虚拟USH或者虚拟机1和2330的虚拟USH)直接连接到一个或多个用户设备(未示出)。用户设备可包括键盘、非接触式智能卡、接触式智能卡或者任何其他类型的用户输入设备。在本实施例中,当用户通过用户输入设备提供输入(例如使用键盘输入一些数据)时,基于软件的USH判断是否需要将该数据个主机。到用户设备的直接连接主要(或者仅仅)用于进行用户验证。例如,如果用户通过键盘输入密码,基于软件的USH可将该密码数据保存在基于软件的USH中,并在基于软件的USH的安全边界内执行用户验证。基于软件的USH还可判断是否需要将用户输入的数据释放给主处理器或者低功耗处理器。此外或者作为可选的,基于软件的USH还可确定是否需要对用户输入的数据进行加密,然后再将其发往主处理器或者低功耗处理器。
[0115] 图4是依据本发明一较佳实施例的应用于具有基于软件的USH的系统400的服务器模型的框图。图4中的示范性系统400包括第一虚拟机430和第二虚拟机450、系统管理程序420(也称为虚拟机管理器)和主系统410。
[0116] 在本发明的实施例中,虚拟机430、虚拟机450、系统管理程序420和主系统410包含在同一物理机器内。服务器490通过通信网络480连接到这些部件。服务器490为USH服务器,其提供安全存储和安全处理服务(包括安全备份)。在一个实施例中,服务器490包括基于硬件的USH。
[0117] 主系统410包括一个或多个主处理器412、主存储器414和一个或多个其他的硬件资源例如SATA 416a和以太网设备416b。主处理器412可包括适当的逻辑、电路和/或代码,用于控制和/或管理与主系统410有关的数据处理和/或联网操作。主存储器414可包括适当的逻辑、电路和/或代码,用于存储主系统410所使用的数据。
[0118] 在图4中,虚拟机430包括操作系统432(例如Windows)和一个或多个应用434。虚拟机430还可包括图4中其他硬件资源的虚拟机。
[0119] 主系统410可包括适当的逻辑、电路和/或代码,用于进行数据处理和/或联网操作,例如。主系统410可通过系统管理程序420支持第一虚拟机430(和第一访客操作系统)操作、第二虚拟机450操作。主系统420所支持的虚拟机或者访客操作系统的数量并非仅限于图4中描述的示范性实施例。
[0120] 在图4所示的实施例中,系统管理程序420实现为软件层,其可支持与主系统相连的服务器490中硬件资源的虚拟化。系统管理程序还可支持在虚拟机430和450与主系统410和USH服务器490的硬件资源之间进行数据通信。
[0121] 图4描述了几个层级的虚拟化。虚拟机430具有I/O和虚拟远端USH(描述为虚拟机430中的vUSH)。为支持I/O和虚拟USH,系统400包括远端服务器490中的USH硬件和软件(未示出)。虚拟机450包括USH 452,其运行在内嵌操作系统454上。USH 452可包括软件凭证保险库、验证服务和/或加密服务(例如加密/解密)。在一个实施例中,虚拟机450可包括系统管理程序监视器456。
[0122] 2.0凭证保险库API
[0123] 在本发明的实施例中,包含应用变成接口(API)也称为凭证保险库API(CV-API),用于将上文描述的统一安全集线器(USH)提供的安全特征和服务平台开放给任何应用。图5A-5C是依据本发明一较佳实施例的具有凭证保险库API(CV-API)的系统的框图。
[0124] 图5A描述了依据本发明一较佳实施例的具有CV-API 570A和硬件USH530的系统500A的高层级框图。CV-API 570A在运行于主处理器(也就是x86处理器)之上的软件和物理USH芯片530之间提供接口。USH芯片530包括固件534,其提供一组安全服务和安全凭证保险库532。
[0125] 图5B描述了依据本发明一较佳实施例的包含CV-API 570B和实现为运行在主处理器510之上的软件进程的USH的系统500B的高层级框图。在本实施例中,CV-API用作运行在主处理器510之上的软件和USH软件530B之间的接口。如上文所述,USH可实现为运行在主处理器之上的软件。在本实施例中,CV-API是运行在主机之上的另一软件应用和运行在主机之上的USH进程之间的接口。安全数据可存储在系统500B之中,其存储在主处理器存储器514、TPM 518和/或安全令牌580中。
[0126] 图5C描述了依据本发明一较佳实施例的包含CV-API 570C和实现为虚拟机550的USH的系统500C的高层次框图。虚拟机550可进一步的由系统管理程序(未示出)提供保护。系统500C可包括主处理器512C,TPM 518和/或安全令牌580。
[0127] 图6是依据本发明一较佳实施例的具有从API开放的服务的角度而言的CV-API的系统高级框图。在系统600中,CV-API 650提供一统一接口,以便向运行在主机620之上的多个安全应用开放一组安全服务和处理。在本实施例中,应用620包括中间件应用。
[0128] 上述一组安全服务可包括凭证管理服务692、供应(provisioning)服务694、加密服务696、验证服务698和安全处理699。凭证管理服务692和供应服务694将结合下面的图7进行详细描述。
[0129] 系统600可通过CV-API 650将一定范围的加密服务开放给应用620。加密服务可包括对称和/或非对称(公共密钥)加密服务。例如,加密服务可包括块加密/解密(AES、DES等)、流加密/解密(例如RC4)和/或本领域技术人员所熟知的其他类型的加密/解密。加密服务还可包括数字签名服务和加密散列服务。在本发明的实施例中,加密服务还可包括密钥管理服务(例如密钥创建、密钥收回和密钥加密)。
[0130] 系统600还可通过CV-API 650将一定范围的验证服务开放给应用620。验证服务包括例如但不限于生物特征验证(例如指纹匹配)、加密验证(例如一次性密码验证)和密码匹配。验证服务还可支持接触式智能卡和非接触式智能卡。例如,这样的一种智能卡应用为人机接口设备(HID)验证。本领域的技术人员应当明白,其他安全服务也可通过CV-API 650进行开放。在本发明的实施例中,USH为系统或设备中的其他域(domain)(例如虚拟机)提供公共验证引擎。
[0131] 在图5A所示的基于硬件的USH的实施例中,图6中的安全服务通过运行在USH上的固件来提供。在图5B和5C所示的基于软件的USH的实施例中,安全服务通过USH软件进程来提供。
[0132] 图7是依据本发明一较佳实施例的具有从凭证使用和管理角度而言的公共CV-API的系统的框图。CV-API 750提供集中式部件(centralizedcomponent),用于管理凭证,包括提供、强制策略(enforcing policy)和凭证收回。该集中式部件允许通过到一个或多个应用的公共接口展示多个凭证。
[0133] 公共CV-API 750提供公共API,用于使用不同类型以及多种类型的验证设备710a-n例如生物特征设备、非接触式设备和键盘(从密码角度)。一个或多个验证设备
710a-n可在多个硬件芯片(称为芯片包(a bag of chips))中实现。CV-API 750提供公共软件API来将这些各异的硬件组件拉到一起。
[0134] CV-API 750提供单个位置供登记凭证。在登记过程中,将收集与用户有关的信息。如图7所示,一个或多个硬件设备710可使用CV-API 750来进行凭证登记。登记可通过登记接口755来提供。登记接口可以是CV-API 750的一个部件,或者可作为一个单独的软件模块来提供。硬件设备710可以是验证设备,包括但不限于生物特征设备710a(例如指纹)、非接触式模块或者键盘(例如从输入密码的角度来说)。一旦登记,多个应用便可请求该凭证了。
[0135] CV-API 750还 提 供 单 个 位 置 用 于 凭 证 的 供 应。 在 供 应 过 程(provisioningprocess)中,应用或者设备供应一个或多个凭证给凭证存储器760。供应应用或者设备可以是系统700的一个部件或者在系统700的外部。供应过程可通过供应接口765来提供。供应接口可以是CV-API 750的一个部件或者作为一个单独的软件模块来提供。
[0136] 登记的和/或供应的凭证存储在凭证存储器760中。图8是依据本发明一较佳实施例的示范性凭证存储器860的框图。凭证存储器包括标识符862,用于标识与凭证相关联的用户。凭证存储器860包括用户的一个或多个凭证864a-n(例如指纹模板、RSA种子值、HID值)。凭证存储器还可包含策略,或者与策略相关联。该策略可由策略目标来提供。测绝可针对单个凭证、凭证存储器和/或多个凭证存储器来进行定义。策略可用于定义验证和/或访问控制进程执行凭证或者凭证的子集。
[0137] 策略可用于定义何种验证应用凭证,和/或何种访问控制列表应用凭证。例如,策略可定义如何处理凭证,依据系统是否供应给或者登记到硬件或者软件。在该例子中,策略可允许用户从任何系统解密和阅读用户的个人电子邮件。但是,策略会限定对系统附件的访问,其包括一块硬件,用于保护用来解密附件的密钥。
[0138] 凭证存储器可存储在USH凭证保险箱中。在本发明的实施例中,凭证保险箱可通过硬件或者软件来实现。在本发明的另一实施例中,例如基于软件的USH的实施例中,凭证存储器可存储在TPM或者安全令牌中。
[0139] 回到图7,CV-API750还提供公共接口,以供应一个或多个凭证给一个或多个应用620a-n。如图7所示,通过CV-API,凭证可进行一次登记,然后由多个应用使用。例如,用户可登记其指纹模板一次,而多个应用(例如文件访问应用、网站访问应用和密码管理器应用)可使用该登记的模板来通过进行指纹匹配来进行验证。
[0140] 如上述实施例所述,输入到系统或者设备的多个(或者全部)验证例如通过键盘、生物特征设备或者HID阅读器输入的验证,均可前往统一位置进行处理。
[0141] 3.0示范性计算机实现
[0142] 本发明实施例的多个方面可通过软件、固件、硬件或者其结合来实现。图9是依据本发明一较佳实施例的示范性计算机系统900的示意图,其中,该本发明的实施例或者其中的一些部分,可通过计算机可读代码来实现。本发明的各种实施例将依据本实施例计算机系统900来进行描述。在阅读该描述之后,本领域的技术人员应当明白如何使用其他计算机系统和/或计算机架构来实现本发明。
[0143] 计算机系统900可以是任何的商业上可用的以及熟知的计算机,其能够执行本发明描述的功能,例如国际商业机器公司、苹果、Sun、惠普、戴尔、康柏、数字(Digital)、Cray等提供的计算机。
[0144] 计算机900包括一个或多个处理器(也称为中央处理单元或者CPU),例如处理器906。处理器906连接到通信总线904。
[0145] 计算机900还包括主存储器908,例如随机访问存储器(RAM)。主存储器908存储有控制逻辑928A(计算机软件)和数据。
[0146] 计算机900还包括一个或多个辅助存储设备910。辅助存储设备910包括例如硬盘驱动器912和/或可移除存储设备或驱动器914,以及其他类型的存储设备,例如存储卡和存储棒。可移除存储驱动器914代表软盘驱动器、磁带驱动器、光盘驱动器、光存储设备、磁带备份等。
[0147] 可移除存储驱动器914与可移除存储单元916进行交互。可移除存储单元916包括计算机可用或者可读存储介质924A,其中存储有计算机软件928B(控制逻辑)和/或数据。可移除存储单元916代表软盘、磁带、光盘、DVD、光存储盘或者任何其他类型的计算机数据存储设备。可移除存储设备914采用公知方式从可移除存储单元916读取数据或者向其中写入数据。
[0148] 计算机900还包括输入/输出/显示设备922,例如监视器、键盘、指针设备等。
[0149] 计算机900还包括通信或网络接口918。网络接口918使得计算机900可以与远端设备进行通信。例如,网络接口918允许计算机900通过通信网络或者介质924B(代表计算机可用或者可读介质),例如LAN、WAN、互联网等进行通信。网络接口918可通过有线或者无线连接与远端站点或者网络相连。
[0150] 控制逻辑928C可通过通信介质924B发往计算机900,或者从计算机900接收。具体的,计算机900可通过通信介质924B接收和发送调制有控制逻辑930的载波(电磁信号)。
[0151] 包含存储有控制逻辑(软件)的计算机可用或可读介质的任何设备或者产品在本文都称为计算机程序产品或者程序存储设备。其包括但不限于,计算机900、主存储器908、辅助存储设备910、可移除存储单元916和调制有控制逻辑930的载波。这种存储有控制逻辑的计算机程序产品,在通过一个或多个数据处理设备执行时,可控制这种数据处理设备依照本文所述的实施例进行操作。
[0152] 本发明可与本文描述以外的软件、硬件和/或操作系统一同工作。适合执行本文所述功能的任何软件、硬件和操作系统实现都是可用的。
[0153] 4.0结论
[0154] 虽然本文描述了本发明的各种实施例,但应当明白,这些实施例仅用于举例,并非用于限定本发明。本领域的技术人员应当明白,在不脱离本发明实质的情况下,可进行各种形式上或者细节上的修改。因此,本发明的宽度和范围并非仅限于上文所述的任意实施例,而应由权利要求或者其等效内容进行定义。
[0155] 本申请要求2008年10月2日提交的名称为“安全虚拟机管理器”的美国临时专利申请61/102,198的优先权,并将其全文引用于此。