首页> 中国专利> 用于根据智能密钥设备建立信任框架的方法和系统

用于根据智能密钥设备建立信任框架的方法和系统

摘要

提供一种机制,用于在主机系统内保护密码功能,以使得当系统管理员通过硬件安全令牌从物理上对其允许时才可以使用它。此外,将硬件安全单元集成到数据处理系统中,并且硬件安全单元充当硬件证书管理机构。可以将硬件安全单元看作对分布式数据处理系统内的信任体系或者信任框架进行支持。硬件安全单元可以对在包括硬件安全单元的机器上所安装的软件进行签名。使用在机器上运行的签名的软件的服务器过程可以与硬件安全单元并且根据硬件安全单元的、它们的公共信任在其他服务器过程之间建立相互信任关系。

著录项

  • 公开/公告号CN1902561A

    专利类型发明专利

  • 公开/公告日2007-01-24

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200480040193.8

  • 发明设计人 赵青云;

    申请日2004-12-23

  • 分类号G06F1/00(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人郭定辉;黄小临

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 18:12:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-15

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F 1/00 专利号:ZL2004800401938 变更事项:专利权人 变更前:脸谱公司 变更后:元平台公司 变更事项:地址 变更前:美国加利福尼亚州 变更后:美国加利福尼亚州

    专利权人的姓名或者名称、地址的变更

  • 2019-08-30

    专利权的转移 IPC(主分类):G06F1/00 登记生效日:20190813 变更前: 变更后: 申请日:20041223

    专利申请权、专利权的转移

  • 2008-12-03

    授权

    授权

  • 2007-03-21

    实质审查的生效

    实质审查的生效

  • 2007-01-24

    公开

    公开

说明书

技术领域

本发明涉及改进的数据处理系统,更具体地说,涉及用于使用密码系统进行数据存储保护的方法和设备。

背景技术

实际上,在每个网络系统中,管理系统通过限制对资源的访问来保护资源。在企业中的网络可以具有许多种类的可以被访问的资源:诸如客户机器之类的物理资源;和诸如计算程序之类的逻辑资源。不同资源可以具有不同的验证方案。当实体想要访问受限制的资源时,需要实体将自己对代表所请求的服务进行工作的验证服务或者所请求的服务进行验证。对关于授权实体的信息进行管理以支持这些验证方案产生大量的费用和管理工作。

因此,最好具有一种机制用来管理在由数据处理系统内的硬件实体所提供的信任之上建立的数据处理系统中的实体之间的信任关系。

发明内容

提供一种机制,用于在主机系统内保护密码功能,以使得当系统管理员经由硬件安全令牌物理地允许它时才可以对它进行使用。此外,将硬件安全单元集成到数据处理系统,并且硬件安全单元充当硬件证书管理机构(authority)。可以将硬件安全单元看作是对分布式数据处理系统内的依赖网络或者信任体系进行支持。硬件安全单元可以签署在包含硬件安全单元的机器上所安装的软件。使用在机器上运行的所签署的软件的服务器过程可以根据它们共同的硬件安全单元的信任,与硬件安全单元并且在其他服务器过程之间建立相互信任关系。

例如,数据处理系统接受可拆卸硬件设备,在可拆卸硬件设备和硬件安全单元相互验证它们自己以后,可拆卸硬件设备变为与数据处理系统内的系统单元电连接,以使得允许硬件安全单元内的特定功能。当可拆卸硬件设备保持与系统单元的电连接时,硬件安全单元可以充当证书管理机构来发放用于软件模块的数字证书。当可拆卸硬件设备保持与系统单元的电连接时,硬件安全单元还可以接收和存储与不包括在系统单元中的第二硬件安全单元所拥有的私钥对应的数字证书。之后,软件模块可以根据在硬件安全单元内所存储的数字证书进行相互验证。

附图说明

在所附权利要求中阐明了本发明的确信具有特征的新颖特点。当结合附图进行阅读时,通过参照下面详细描述将可以更好的理解本发明自身、进一步的目的和其优点,其中:

图1A示出了数据处理系统的典型网络,其每一个都可以实施本发明;

图1B示出了在其中实施本发明的数据处理系统中可以使用的典型计算机架构;

图2示出了其中个人获得数字证书的典型方式的框图;

图3示出了其中实体可以使用要对数据处理系统被验证的数字证书的典型方式的框图;

图4示出了接收可拆卸硬件设备以允许数据处理系统内的硬件安全单元中的密码功能的数据处理系统的一部分的框图;

图5示出了包含内部智能密钥设备、并且使用外部智能密钥设备来允许内部智能密钥设备中的密码功能的系统单元的框图;

图6示出了用于允许主机系统的内部智能密钥的密码功能的过程的概况的流程图;

图7示出了用于允许主机系统的内部智能密钥设备的密码功能由具体软件智能密钥单元进行使用的过程的概况的流程图;

图8示出了用于禁止主机系统的内部智能密钥设备的密码功能的过程的流程图;

图9A-9B示出了对图6的步骤604中所示的相互验证过程进行进一步详细描述的一对流程图;

图10A-10B示出了对图7的步骤704中所示的相互验证过程进行进一步详细描述的一对流程图;

图11A示出了在其中根据外部智能密钥设备的存在对操作进行允许和禁止的软件智能密钥单元请求时用于执行操作的内部智能密钥设备中的过程的流程图;

图11B示出了在其中不需要由外部智能密钥设备的存在来允许操作的软件智能密钥单元请求时用于执行操作的内部智能密钥设备中的过程的流程图;

图12示出了用于保护主秘密的本发明的实施方式的框图;

图13-15示出了多个外部智能密钥设备和多个内部智能密钥设备之间的不同关系的框图;

图16A-16C示出一组典型的信任关系的框图;

图17示出了根据由内部智能密钥设备所提供的信任的信任关系所构成的信任模型的例子的框图;

图18示出了用于产生操作系统文件的数据处理系统的框图,在所述操作系统文件中在操作系统中的每个程序实体包括根据内部智能密钥设备在信任体系中建立信任关系的功能;

图19示出了用于产生操作系统模块的过程的流程图,该操作系统模块包含软件智能密钥单元,以使得其能够执行彼此的验证操作;

图20示出了用于产生项目代码的数据处理系统的框图,其中每个程序实体包括根据内部智能密钥设备在信任体系中建立信任关系的功能;

图21示出了用于对内部智能密钥设备的证书链进行扩展的过程的流程图;

图22示出了信任关系所构成的信任模型的例子的框图,该信任关系基于由单个本地内部智能密钥设备所提供的信任,所述单个本地内部智能密钥设备保持包括用于涉外内部智能密钥设备的多个根证书的证书链;

图23示出了用于获得由本地内部智能密钥设备所保持的当前根证书链的过程的流程图;

图24示出了用于对来自涉外内部智能密钥设备的数字证书是否为可信进行确定的过程的流程图;

图25示出了在可以被用于确保软件模块的真实性(integrity)的硬件辅助信任模型内的实体的数据流示意图;和

图26示出了用于确保软件模块的真实性的过程的流程图。

具体实施方式

总的来说,可以包括或者涉及本发明的设备包括许多数据处理技术。因此,作为背景说明,在对本发明进行更加详细的描述之前对分布式数据处理系统内的硬件和软件部件的典型组织进行描述。

现在参照附图,图1A示出了数据处理系统的典型网络,其每一个都可以实施本发明的一部分。分布式数据处理系统100包括网络101,其可以是用于提供在分布式数据处理系统100内连接在一起的各种设备和计算机之间的通信链路的介质。网络101可以包括诸如电线或者光纤之类的永久连接,或通过电话或者无线通信进行的临时连接。在所示的例子中,将服务器102和服务器103与存储单元104一同连接到网络101。此外,还将客户端105-107连接到网络101。可以由诸如大型机、个人计算机、个人数字助理(PDA)之类的各种计算设备来代表客户端105-107和服务器102-103。分布式数据处理系统100可以包括额外的未示出的服务器、客户端、路由器、其他设备和对等架构。

在所述例子中,分布式数据处理系统100可以包括带有表示世界范围的网络集合的网络101的因特网,和使用诸如轻量级目录存取协议(LDAP)、传输控制协议/网际协议(TCP/IP)、超文本传输协议(HTTP)、无线应用协议(WAP)之类的协议进行彼此通信的网关。当然,分布式数据处理系统100还可以包括许多不同类型的网络,例如内部网络、局域网(LAN)或者广域网(WAN)。例如,服务器102直接支持客户端109和网络110,其合并了无线通信链路。网络允许(network-enabled)的电话110通过无线链路112连接到网络110,而PD 113也通过无线链路114连接到网络110。电话111和PDA 113还使用诸如蓝牙(BluetoothTM)之类的适合技术,通过无线链路115在它们之间直接传送数据以创建所谓的个人域网络(PAN)或者个人专门网络。以类似的方式,PDA 113可以经由无线通信链路116传送数据到PAD 107。

可以在各种硬件平台上实施本发明。图1A试图作为异种计算环境的例子但是并不是对本发明的架构限制。

现在参照图1B,其示出了诸如图1A种所示出的那些之类的、其中可以实施本发明的数据处理系统的典型计算机架构的示意图。数据处理系统120包括连接到内部系统总线123的一个或多个中央处理单元(CPU),该总线123将随机存取存储器(RAM)124、只读存储器126和输入/输出适配器128进行互连,所述适配器128支持诸如打印机130、盘单元132的或(诸如音频输出系统之类的)其他未示出设备之类的I/O设备。系统总线123还连接通信适配器134,其提供对通信链路136的访问。用户接口适配器148连接诸如键盘140和鼠标和(诸如触摸屏、指示笔、话筒之类的)其他未示出设备之类的各种用户设备。显示器适配器144将系统总线123连接到显示设备146。

本领域的普通技术人员应该理解在图1B中的硬件可以根据系统实施而不同。例如,系统可以具有诸如基于IntelPentium处理器和数字信号处理器(DSP)之类的一个或多个处理器,以及一种或多种类型的易失和非易失存储器。除了在图1B中所示的硬件外或替代图1B中所示的硬件,可以使用其他外围设备。所示出的例子并不意味着暗示对于本发明架构上的限制。

除了能够被实施在各种硬件平台上之外,还可以在各种软件环境中实施本发明。在每个数据处理系统内可以使用典型的操作系统来控制程序执行。例如,一个设备可以运行Unix操作系统,而另一个设备包括简单的Java运行时环境。一种代表的计算机平台可以包括作为用于对各种格式的超文本文档进行访问的公知软件应用程序的浏览器,超文本文档诸如有图形文件、文字处理文件、可扩展置标语言(XML)、超文本置标语言(HTML)、手持设备置标语言(HDML)、无线置标语言(WML)和各种其他格式和类型的文件。

如对于图1A和图1B所示的,可以在各种硬件和软件平台上实施本发明。但是更具体地说,本发明涉及一种用于通过使用硬件安全令牌来保护秘密信息的机制。然而在更加详细地对本发明进行描述之前,提供一些关于数字证书的背景信息以评估本发明的操作效率和其他优点。

数字证书支持公钥密码系统,在其中,在通信或者交易中所涉及的每一方都具有所谓公钥和私钥的一组密钥。每一方的公钥是公开的而私钥是秘密的。公钥是与特殊实体相关联的、并且试图对于需要与该实体进行信任交易的每一方都是公知的号码。私钥应该仅仅是特殊实体才知道的、即秘密的号码。在典型非对称密码系统中,私钥就与一个公钥对应。

在公钥密码系统中,由于所有通信仅仅涉及公钥而从来不传送或者共享私钥,所以可以只使用公共信息来产生、并且仅仅使用由所期望的接收方所单独拥有的私钥来解码秘密消息。而且,可以将公钥密码系统用于验证,即数字签名,以及隐私内容,即加密。

加密是将数据转换为对于没有秘密解密密钥的任何人都不可读的形式;加密通过将信息的内容对于所不期望的、即使是那些能够看见加密的数据的人进行隐藏来确保私密性。验证是通过其数字消息的接收者可以对发送者的身份和/或消息的真实性产生信任的过程。

例如,当发送者对消息进行加密时,使用接收者的公钥将原始消息内的数据转换为加密消息的内容。发送者使用所期望的接收者的公钥来对数据进行加密,而接收者使用其私钥对加密过的消息进行解密。

当验证数据时,可以通过使用签名者的私钥从数据中计算数字签名来对数字进行签名。一旦将数据数字签名,则可以用签名者的身份和证明该数据源于签名者的签名来将其进行存储。签名者使用其私钥来对数据签名,而接收者使用签名者的公钥来检验签名。

证书是一种数字文档,其担保诸如个人、计算机系统、在该系统上运行的特定服务器之类的实体的密钥所有关系和身份。由证书管理机构来发放证书。证书管理结构(CA)是这样的实体,其通常对于交易是信任的第三方,并且被信任来为其他人或实体进行签名或者发放证书。证书管理机构通常具有某种法律责任,用于它对公钥及其所有者之间的结合进行担保,其允许一方信任对证书签名的实体。有许多商业性质的证书管理机构;这些管理机构负责在发放证书的时候检验实体的密钥所有关系和身份。

如果证书管理机构将证书发放给实体,该实体必须提供公钥和关于该实体的一些信息。诸如特别装配的网络浏览器之类的软件工具可以对这种信息进行数字签名并且将其发送到证书管理机构。证书管理机构可以是提供信任的第三方证书管理机构服务的商业性质的公司。则证书管理机构可以产生证书并且将其返回。证书可以包括诸如序列号和该证书的有效日期之类的其他信息。部分根据在它们的证明服务实践(CSP)中所公开的它们的检验要求,将由证书管理机构所提供的一部分值用作中性和信任的介绍服务。

证书管理机构通过将请求实体的公钥嵌入其他识别信息然后用证书管理结构的私钥对数字证书进行签名,来创建新数字证书。则在交易或者通信期间接收到数字证书的任何人都可以使用证书管理机构的公钥以在证书内对签名的公钥进行检验。目的是证书管理机构的签名充当数字证书上的防窜改封印,以使得确保证书中的数据的真实性。

还对证书处理的其他方面进行标准化。Myers等“Internet X.509 CertificateRequest Message Format”,Internet Engineering Task Force(IETF)Request forComments(RFC)2511,March 1999,说明了一种已经被建议在依赖方正在向证书管理机构请求证书时所使用的格式。Adams等“Internet X.509Public KeyInfrastructure Certificate Management Protocols”,IETF RFC 2511,March 1999,说明了用于传输证书的协议。本发明基于使用数字证书的分布式数据处理系统;图2-3的描述提供关于涉及数字证书的典型操作的背景信息。

现在参照图2,该框图描述了个人获得数字证书的典型方式。在某种类型的客户端计算机上操作的用户202之前已经获得或者产生了公/私钥对,例如用户公钥204和用户私钥206。用户202产生对包括用户公钥204的证书208的请求,并且将该请求发送到拥有CA公钥212和CA私钥214的证书管理机构210。证书管理机构210以某种方式对用户202的身份进行检验,并且产生包括用户公钥218的X.509数字证书216。用CA私钥214对整个证书进行签名;该证书包括用户的公钥、与用户关联的名称和其他属性。用户202接收新产生的数字证书216,然后用户202可以根据需要出示数字证书216以参加信任交易或者信任通信。从用户202接收数字证书216的实体可以通过使用公开的、并且可用于对实体进行检验的CA公钥212来检验证书管理机构的签名。

现在参照图3,该框图示出了实体可以使用要被对数据处理系统进行验证的数字证书的方式。用户302拥有X.509数字证书304,其被发送到主机系统308上的因特网或者内部网应用程序306;应用程序306包括用于对数字证书进行处理和使用的X.509功能。用户302将其发送到应用程序306的数据用其私钥进行签名或加密。

接收证书304的实体可以是应用程序、系统、子系统等。证书304包括对可以为用户302执行某种服务的应用程序306识别用户302的主体名称或者主体标识符。使用证书304的实体在对于来自用户302的、签名或者加密的数据使用证书之前,对证书的真实性进行检验。

主机系统308可以获得系统注册表310,该表用于授权用户访问系统308内的服务和资源,即协调用户的身份和用户的权限。例如,系统管理员可能已经将用户的身份配置为属于特定的安全组,并且限制用户只能访问被配置为对于作为整体的安全组可用的那些资源。在系统内可以使用用于实施授权方案的各种已知方法。

为了对数字证书进行适当地证实或者检验,应用程序必须检查证书是否已经被无效了。当证书管理机构发放证书时,证书管理机构产生要通过其来识别证书的唯一序号,并且将该序号存储在X.509证书内的“序号”字段内。通常,通过证书的序号在证书无效列表(CRL)内识别无效的X.509证书,无效的证书的序号出现在CRL内的序号列表中。

为了确定证书304是否还有效,应用程序306从CRL储存库312中获得CRL并且使得CRL生效。应用程序306将证书304内的序号与所检索的CRL内的序号列表进行比较,如果不存在匹配的序号,则应用程序306使得证书生效。如果CRL具有匹配的序号,则应该拒绝证书304,并且应用程序306可以采取适当的措施来拒绝该用户对任何受控资源的访问请求。

大多数数据处理系统包括需要被保护的敏感数据。例如,需要保护配置信息的数据真实性不受到非法修改,同时需要保护诸如口令文件之类的其他信息不受到非法公开。给定数据处理系统的操作者可以使用许多不同类型的安全机制来保护数据处理系统。例如,在数据处理系统上的操作系统可以提供诸如各种验证和授权方案之类的各种软件机制来保护敏感数据,同时特定硬件设备和软件应用程序可以依赖于诸如硬件安全令牌和生物测定传感器设备之类的硬件机制来保护敏感数据。即使在给定数据处理系统中可以使用多个软件和硬件机制来保护敏感数据,也可以对敏感数据进行加密,以使得如果某人获得了对加密的敏感数据的非法访问,则在没有对加密的敏感数据进行解密的能力的情况下,加密的敏感数据的复制件也是没有用的。

但是对在数据处理系统内所包含的所有信息进行最终保护的能力具有局限性。例如,在对口令文件进行进一步保护的努力中,可以使用诸如口令或者密码密钥之类的、通常被称为主秘密的另一个秘密来对口令文件进行加密。但是,还需要以某种方式对这样的新秘密进行保护。因此,系统管理员可能进入到这样一种困境中,即实施另外一层安全的任何企图导致也需要被保护的额外的敏感信息。现在转到本发明,剩余的附图描述了解决该困境的本发明的示例实施方式。

现在参照图4,该框图示出了数据处理系统的一部分,其接受可拆卸硬件设备以根据本发明的实施方式允许在数据处理系统内的硬件安全单元中的密码功能。本发明使用保存密码密钥并且执行加密功能的一对匹配智能密钥设备。系统单元402与作为便携或者可拆卸设备的外部智能密钥设备(EXSKD)404连接。系统单元402还包括作为匹配设备的内部智能密钥设备(INSKD)406,其是诸如主板之类的、接收可拆卸设备的主机系统的组成部分。内部智能密钥设备最好是难于从主机系统上拆除的封包集成电路;同时将其描述为硬件安全单元或者设备,其还可以包括用于执行指令的处理单元。在本例中,EXSKD 404和INSKD 406是成对的设备。由系统管理人员(例如,IT管理员)对可拆卸设备进行物理保护;当IT管理员需要允许仅仅可以由主机上的匹配设备(即INSKD406)来执行的特定密码功能时,将可拆卸设备(即EXSKD 404)插入到诸如系统单元402之类的主机中。换句话说,当将外部智能密钥设备插入到系统单元时,特定密码功能是可用的。因为只有INSKD 406包含用于产生特定密码输出的一个或多个具体密码私钥,所以只有INSKD 406可以产生IT管理员所需要的结果。在系统单元402上的应用程序408具有与EXSKD 404和INSKD 406类似的软件智能密钥单元(SWSKU)410。应用程序408使用SWSKU 410来执行特定的功能,将在下面对其进行详细说明。

现在参照图5,该框图示出了根据本发明的实施方式的系统单元,其包括内部智能密钥设备并且使用外部智能密钥设备来允许内部智能密钥设备内的密码功能。图5与图4类似,除了图5还包括关于在各种部件中所存储的密码密钥的额外细节。

外部智能密钥设备(EXSKD)502是可拆除硬件设备;EXSKD 502最好是由系统管理员所控制的、并且充当硬件安全令牌的便携设备。可以将带有电接口504的外部智能密钥设备502插入到带有电接口508的系统单元506中;外部智能密钥设备502和系统单元通过它们对应的接口进行电连接以交换表示数字信息的电信号。

外部智能密钥设备502包括密码引擎510,用于使用在外部智能密钥设备502中所存储的各种数据来执行密码功能。将EXSKD私钥512以这种方式进行存储,以使得其不能被EXSKD 502的外部的实体进行读取或访问;EXSKD 502不包括用于传送或者另外提供EXSKD私钥512的复制件的功能。EXSKD公钥证书514包括EXSKD公钥516的复制件,其与EXSKD私钥512对应作为不对称的密码密钥对。EXSKD 502还包括INSKD公钥证书518的复制件,其自身包含与INSKD私钥526对应作为非对称密码密钥对的INSKD公钥520的复制件。可以将INSKD公钥证书518的复制件写到EXSKD 502之上,作为其制造或初始化过程的一部分。

系统单元506包括内部智能密钥设备(INSKD)522。内部智能密钥设备522包括密码引擎524,用于使用在内部智能密钥设备522中所存储的各种数据项目来执行密码功能。将INSKD私钥526以这样的方式进行存储,以使得其不能被INSKD 522的外部的实体进行读取或者访问;INSKD 522不包括用于传送或者另外提供INSKD私钥526的复制件的功能。INSKD公钥证书528包括INSKD公钥530的复制件,其与INSKD私钥526对应作为非对称密码密钥对。INSKD 522还包括EXSKD公钥证书532的复制件,其自身包含与EXSKD私钥512对应作为非对称密码密钥对的INSKD公钥534的复制件。可以将EXSKD公钥证书532的复制件写到INSKD 522之上,作为其制造或初始化过程的一部分。

在替代实施方式中,可以将INSKD私钥526和INSKD公钥530用于其他功能。在图5中所示的优选实施方式中,保留INSKD私钥526和INSKD公钥530用于INSKD 522和EXSKD 502之间的通信,同时INSKD 522为了其他功能使用一个或多个其他密码密钥对。在本例中,由INSKD 522使用INSKD SW私钥536用于保护应用程序540中的软件智能密钥单元(SWSKU)538和INSKD522之间的通信。INSKD SW公钥证书542包括INSKD SW公钥544的复制件,其与INSKD SW私钥536对应作为非对称密码密钥对。INSKD 522还包括SWSKU公钥证书546的复制件,其自身包含与SWSKU私钥550对应作为非对称密码密钥对的SWSKU公钥548的复制件。

系统单元506支持包括SWSKU 538的应用程序540的执行,其自身包括密码引擎552用于使用在软件智能密钥单元中所存储的各种数据项目来执行密码功能。SWSKU 538不包括用于传送或者另外提供SWSKU私钥550的复制件的功能。SWSKU公钥证书554包括与SWSKU私钥550对应作为非对称密码密钥对的SWSKU密钥556的复制件。SWSKU 538还包括INSKD SW公钥证书558的复制件,其自身还包括与INSKD SW私钥536对应作为非对称密码密钥对的INSKD SW公钥560的复制件。如将在下面更加详细说明的,可以将SWSKU 538进行数字签名。在图5中所示的例子中,SWSKU 538包括已经使用INSKD SW私钥在SWSKU 538上计算的数字签名562。换句话说,INSKD 522已经使用INSKD SW私钥536对SWSKU 538进行数字签名。

现在参照图6,该流程图示出了用于允许主机系统的内部智能密钥设备的密码功能的过程的概况。当将外部智能密钥设备与包括内部智能密钥设备的系统单元进行电连接时该过程开始(步骤602)。例如,IT管理员可以将外部智能密钥设备插入到具有用于接收外部智能密钥设备的插槽的接收单元中。然后内部智能密钥设备和外部智能密钥设备执行相互验证过程(步骤604),之后允许内部智能密钥设备执行密码功能(步骤606),并且过程结束。可以假设在相互验证过程中的任何错误导致对内部智能密钥设备的连续禁止。在较少限制的实施方式中,可以通过在主机系统上正在运行的任何应用程序将内部智能密钥设备的密码功能进行无效。在较多限制的实施方式中,仅仅通过包括软件智能密钥单元的应用程序将内部智能密钥设备的密码功能进行无效,如图7中所示。

现在参照图7,该流程图示出了根据本发明的实施方式,用于允许由特定软件智能密钥单元使用主机系统的内部智能密钥设备的密码功能的过程的流程图。当例如通过应用程序编程接口(API),包括软件智能密钥单元的应用程序或者小应用程序(applet)将内部智能密钥设备的密码功能无效时,该过程开始。然后内部智能密钥设备和软件智能密钥单元执行相互验证过程(步骤704),之后允许内部智能密钥设备执行用于软件智能密钥单元的密码功能(步骤706),并且过程结束。假设在主机系统上的多个软件智能密钥单元已经用内部智能密钥设备完成了相互验证过程,则可以同时允许内部智能密钥设备代表多个软件智能密钥单元来执行密码功能。

当外部智能密钥设备保持与包含内部智能密钥设备的系统单元的连接的时候,允许内部智能密钥设备提供功能以充当证书管理机构,即产生新的公共证书。在一种实施方式中,当安装新软件包时,外部智能密钥设备应该与包括内部智能密钥设备的系统单元连接。在软件安装期间,可以将新的公共证书发放给新软件包;可以将与新发放的数字证书中的公钥对应的私钥嵌入在软件包之内,并且可以通过使得内部智能密钥设备对软件包进行签名来保护私钥。而且,在Java环境中,可以将嵌入有私钥的JAR文件和Java包进一步封印以防止恶意用户窜改私钥。

限制参照图8,该流程图示出了根据本发明的实施方式,用于禁止主机系统的内部智能密钥设备的密码功能的过程。当例如在已经插入外部智能密钥设备和已经允许内部智能密钥设备之后的某个随后时间点,将外部智能密钥设备从包括内部智能密钥设备的系统单元中电断开时,过程开始(步骤802)。当系统单元检测到外部智能密钥设备断开时,则内部智能密钥设备变得被禁止进一步执行密码功能(步骤804),并且过程结束。

在图8中所述的过程作为图7或者图6中所示的任何一个过程的补充过程。但是应该注意,根据本发明的实施方法,内部智能密钥设备还执行一些不完全被禁止的功能。可以假设通过软件或者硬件可以允许或者禁止内部智能密钥设备中的密码功能。例如,在硬件模式中,可以通过根据表示是否已经接受了外部智能密钥设备的允许状态而必须被设置或者清除的特定触发器或其他机制,来防止内部智能密钥设备中的特定电路的操作进入可操作状态;在软件模式中,可以通过对逻辑控制密码功能的执行的特殊允许标记进行设置和清楚来保护特定密码功能的操作。

现在参照图9A-9B,这一对流程图进一步示出了在图6的步骤604中所示出的相互验证过程的进一步详情。图9A示出了内部智能密钥设备对外部智能密钥设备进行验证的过程,而图9B示出了外部智能密钥设备对内部智能密钥设备进行验证的过程。可以在图9B中所示的过程之前执行图9A中所示的过程,反之亦然。根据其中实施本发明的方式,这些过程可以是独立的和/或可以例如通过指示正在被尝试的操作的状态标记或适当信号同时地执行。

现在参照图9A,当内部智能密钥设备使用外部智能密钥设备的公钥对消息(例如随机文字串)进行加密时,该过程开始(步骤902)。内部智能密钥设备通过主机系统的适当接口将加密的消息发送到内部智能密钥设备(步骤904),其然后用私钥对加密的消息进行解密(步骤906)。然后外部智能密钥设备用内部智能密钥设备的公钥对加密的消息进行解密(步骤908),并且将加密的消息发送到内部智能密钥设备(步骤910)。然后该内部智能密钥设备用其私钥对加密的消息进行解密(步骤912),并且将所接收到的消息与其原始消息进行比较(步骤914)。如果两个消息匹配,则内部智能密钥设备例如用适当的信号或者通过设置逻辑标记变量,提供内部智能密钥设备已经确定外部智能密钥设备是可信任的指示(步骤916),以使得完成过程。

现在参照图9B,当外部智能密钥设备使用内部智能设备的公钥来对消息(例如随机文字串)进行加密时,过程开始(步骤922)。外部智能密钥设备将加密的消息发送到内部智能密钥设备(步骤924),其然后用其私钥对加密的消息进行解密(步骤926)。然后内部智能密钥设备用外部智能密钥设备的公钥对解密的消息进行加密(步骤928),并且将加密的消息发送到外部智能密钥设备(步骤930)。然后外部智能密钥设备用其私钥对加密的消息进行解密(步骤932),并且将所接收到的消息与其原始消息进行比较(步骤934)。如果两个消息匹配,则外部智能密钥设备例如用适当的信号或者通过设置逻辑标记变量,来提供外部智能密钥设备已经确定内部智能密钥设备是可信任的指示(步骤936),以使得过程结束。

现在参照图10A-10B,这对流程图示出了图7的步骤704中所示的相互验证过程的进一步详情。10A示出了软件智能密钥单元对内部智能密钥设备进行验证的过程,而图10B示出了内部智能密钥设备对软件智能密钥单元进行验证的过程。可以在图10B中所示的过程之前执行图10A中所示的过程,反之亦然;根据实施本发明的方式,这些过程可以是独立的和/或可以例如通过指示正在被尝试的操作的状态标记或适当消息而同时地执行。

现在参照图10A,当软件智能密钥单元使用内部智能密钥设备的公钥对例如随机文字串的消息进行加密时,该过程开始(步骤1002)。软件智能密钥单元将加密的消息发送到内部智能密钥设备(步骤1004),其然后用私钥对加密的消息进行解密(步骤1006)。然后内部智能密钥设备用软件智能密钥单元的公钥对解密的消息进行加密(步骤1008),并且将加密的消息发送到软件智能密钥单元(步骤1010)。然后该软件智能密钥单元用其私钥对加密的消息进行解密(步骤1012),并且将所接收到的消息与其原始消息进行比较(步骤1014)。如果两个消息匹配,则软件智能密钥单元例如用适当的消息或者通过设置逻辑标记变量,提供软件智能密钥单元已经确定内部智能密钥设备是可信任的指示(步骤1016),以使得完成过程。

与图10A相反,图10B示出了使用会话密钥而不是作为在两个实体之间传送的消息的随机文字串。如果在两个实体之间的相互验证过程成功完成,则在两个实体之间的会话期间使用会话密钥来保护随后的消息通信量;可以对会话进行定时,或者通过诸如软件实体的执行终止或者硬件实体的关机之类的特定事件来终止会话。可以在加密之前将会话密钥放置在包括其他信息的较大的消息中,之后在两个实体之间传送加密的消息。在替代实施方式中,可以将随机文字串用于验证过程,之后两个实体可以交换会话密钥。如将在下面更加详细的描述的,在用于减少用来交换信息的步骤数量的验证过程期间,可以在两个实体之间安全的传送额外的信息。

现在参照图10B,当内部智能密钥设备使用软件智能单元的公钥来对会话密钥进行加密时,过程开始(步骤1022)。内部智能密钥设备将加密的会话密钥发送到软件智能密钥单元(步骤1024),其然后用其私钥对加密的会话密钥进行解密(步骤1026)。然后软件智能密钥单元用内部智能密钥设备的公钥对解密的消息进行加密(步骤1028),并且将加密的会话密钥发送到内部智能密钥设备(步骤1030)。然后内部智能密钥设备用其私钥对加密的会话密钥进行解密(步骤1032),并且将所接收到的会话密钥与其原始会话密钥进行比较(步骤1034)。如果两个版本的会话密钥匹配,则内部智能密钥设备例如用适当的消息或者通过设置逻辑标记变量,来提供内部智能密钥设备已经确定软件智能密钥单元是可信任的指示(步骤1036),以使得过程结束。

可以与图7中所示的过程结合来执行额外的安全步骤。例如,在步骤702,应用程序和小应用程序已经请求使用在内部智能密钥设备中所嵌入的功能。在图10B中所示的过程的开始点之前的某点,内部智能密钥设备可以执行额外的步骤来检验在请求应用程序或者小应用程序中的软件智能密钥单元是否包括安全代码。如参照图5所述,可以对SWSKU 538进行数字签名。SWSKU 538包含已经使用INSKD SW私钥536在SWSKU 538上计算的数字签名562。因此,内部智能密钥设备可以通检验与软件智能密钥单元关联的数字签名,来检验在请求应用程序或者小应用程序中的软件智能密钥单元是否包括安全代码。

在Java环境中,可以将软件智能密钥单元实施为签名的JAR文件。在一个实施方式中,使用内部智能密钥设备来检验签名的JAR文件的数字签名。在不同的实施方式中,可以对JAR文件和Java封包进一步封印,以使得类装载器可以强制应该将封包中的所有代码都从封印的JAR文件进行装载。对JAR文件和Java封包进行封印的行动可以防止恶意用户通过将代码注入到类路径中而对功能进行修改。而且,可以对类装载器自己进行签名和封印,以使得可以检验类装载器的真实性。

在更通用的计算环境中,虽然内部智能密钥设备可以对软件智能密钥单元进行数字签名并且之后使得该数字签名生效,但是可以在例如装载用于执行的软件模块的程序装载器的、内部智能密钥设备的帮助下,由数据处理系统内的适当操作系统模块来控制确保对软件智能密钥单元进行签名和生效的过程。在允许软件模块执行之前,程序装载器可以执行额外的安全过程。而且,还可以对程序装载器自己进行签名和封印,以使得可以检验程序装载器的真实性。

虽然上述过程提供了用于确保软件智能密钥单元的真实性的机制,但是因为可以通过检查包括软件智能密钥单元的代码来察看和复制器密码密钥,所以还可以认为数据处理系统内的软件智能密钥单元的操作在某种程度上是脆弱的。可以假设将密码密钥明确地存储在软件智能密钥单元中。

因此,为了保护软件智能密钥单元,特别是其私钥,还可以结合图7中所示的过程来执行另一个安全步骤。在早先的某时间点,可以将软件智能密钥单元进行加密,以使得将任何敏感信息隐蔽在软件智能密钥单元内,特别是其私钥。在不同的实施方式中,可以将包括软件智能密钥单元的软件模块进行加密。例如,当在数据处理系统上安装软件模块时,在数据处理系统上的内部智能密钥设备可以将软件模块进行加密,作为用于包括该软件模块的应用程序的安装过程的一部分。

在执行该附加步骤的系统中,包括软件智能密钥单元的软件模块和/或软件智能密钥单元就会在对其进行执行之前要求解密。在与上面对于使用数字签名来保护软件智能密钥单元的真实性所述类似的时间点上,例如在开始图10B中所示的过程之前的某时间点上,内部智能密钥设备会执行附加步骤以对包括软件智能密钥单元的软件模块和/或软件智能密钥单元进行解密。而且,以与上述的相同的方式,在内部智能密钥设备的帮助下在数据处理系统内的适当的操作系统模块可以对解密过程进行控制。在下面提供了在安装时对软件模块进行修改以结合内部智能密钥设备进行使用的过程和以安全的方式执行这种软件模块的过程的详细情况。

现在参照图11A,该流程图示出了用于执行由软件智能密钥单元所请求的操作的内部智能密钥设备中的过程,其中根据是否存在外部智能密钥设备而允许或者禁止该操作。当内部智能密钥设备从软件智能密钥单元接收请求消息时该过程开始(步骤1102)。请求消息包括对正在由软件智能密钥单元所请求的操作类型进行指示的消息类型变量。然后确定内部智能密钥设备是否已经对软件智能密钥单元进行了验证(步骤1104)。可以通过使用在验证过程之前内部智能密钥设备发送到软件智能密钥单元的会话密钥成功地对所接收到的消息的内容进行解密来进行该确定,如上面参照图10B所述。如果还没有验证软件智能密钥单元,则内部智能密钥设备产生适当的错误响应(步骤1106),并且将响应消息返回到请求软件智能密钥单元(步骤1108),以使得完成过程。

如果已经验证了软件智能密钥,则内部智能密钥设备确定外部智能密钥设备是否还与系统单元电连接(步骤1110)。例如,该确定可以仅仅允许对本应该被清除的特殊寄存器使得系统单元和外部智能密钥设备之间的电连接中断进行检查。如果外部智能密钥设备不与系统单元电连接,则内部智能密钥设备在步骤1106产生错误响应,并且在步骤1108将响应返回给软件智能密钥单元,以使得完成过程。

如果已经对软件智能密钥单元进行了验证并且外部智能密钥设备还与系统单元电连接,则在可能的情况下,内部智能密钥设备执行用于软件智能密钥单元的所请求的功能。步骤1112和步骤1114示出了由内部智能密钥设备所提供的功能的例子,对这些例子的列举并不暗示着在本发明的其他实施方法中不可以使用其他功能。在优选实施方式中,只有在相互验证后外部智能密钥设备还保持与内部智能密钥设备的电连接,内部智能密钥设备才执行下面功能:当充当证书管理机构时发放新的数字证书,并且使用内部智能密钥设备的私钥对软件模块进行签名,其中私钥与可用的公钥证书对应。应该注意,本发明不允许用于对内部智能密钥设备的私钥进行检索的任何接口,因此,只能由内部智能密钥设备来执行使用其私钥进行的签名操作。

如果软件智能密钥单元已经请求了在被嵌入于请求消息中的数据项目上的数字签名,则内部智能密钥设备使用适当的私钥计算该数据之上的数字签名,并且将数字签名(最好,与其返回的数据项目的复制件一起)插入到响应消息(步骤1112)。如果软件智能密钥单元已经请求了数字证书,则内部智能密钥设备使用适当的私钥来产生数字证书并且将数字证书插入到响应消息中(步骤1114);数字证书可以包括由请求消息内的软件智能密钥单元所提供的各种识别信息。在已经产生了适当的响应消息之后,包括使用适当的会话密钥对任何敏感数据进行加密,在步骤1108将响应消息返回给软件智能密钥单元,并且过程结束。

再次参照步骤1112,可以对任何类型的数字数据项目进行签名。再次参照图4,应用程序408表示可以合并有本发明的功能的许多不同种类的应用程序。在一个实施方式中,应用程序可以是对JavaJAR文件、由应用服务器已经直接产生的或者代表主机系统上的其他应用程序产生的文件进行签名的应用服务器。在某些情况中,新产生的JAR文件自己可以包含能够调用主机系统的内部智能密钥设备中的功能的软件智能密钥单元。

现在参照图11B,该流程图示出了在用于执行由软件智能密钥单元所请求的操作的内部智能密钥设备中的过程,其中不需要由外部智能密钥设备的存在来允许该操作。当内部智能密钥设备从软件智能密钥单元接收请求消息时该过程开始(步骤1122),请求消息包括对正在被软件智能密钥单元请求的操作的类型进行指示的消息类型变量。然后确定是否已经由内部智能密钥设备对软件智能密钥单元进行了验证(步骤1124),通过成功地使用在验证过程之前内部智能密钥设备发送给软件智能密钥单元的会话密钥来对所接收到的消息的内容进行解密来进行确定,例如参照图10B所述。如果软件智能密钥单元还没有被验证,则内部智能密钥设备产生适当的错误响应(步骤1126)并且将该响应消息返回给请求的软件智能密钥单元(步骤1128),以使得完成过程。

如果已经验证了软件智能密钥单元,则在可能的情况下,内部智能密钥设备执行用于软件智能密钥单元的所请求的功能。步骤1130和步骤1132描述了可以由内部智能密钥设备提供的功能的例子,对这些例子的列举不暗示着在本发明的其他实施方法中不可以使用其他功能。在优选实施方式中,在没有外部智能密钥设备的情况下由内部智能密钥设备执行下面功能:对给定的所需要的密钥进行加密和解密;对给定证书进行数字签名的生效;相互验证软件智能密钥单元;和允许所存储的敏感信息被相互验证的软件智能密钥单元进行读/写访问。

如果软件智能密钥单元已经请求在请求了对消息中所嵌入的主秘密的注册,则内部智能密钥设备将主秘密与用于软件智能密钥单元的某些识别信息关联进行存储,并且产生响应消息(步骤1130)。如果软件智能密钥单元已经请求了对之前所注册的主秘密的检索,则内部智能密钥设备根据软件智能密钥单元的身份来检索主秘密,并且产生响应消息(步骤1132)。在已经产生了适当的响应消息之后,包括用适当的会话密钥对任何敏感数据进行加密,在步骤1128将响应消息返回给软件智能密钥单元,并且过程结束。

以这种方式,如果内部智能密钥设备需要执行特定的敏感操作,如发放数字证书,则只需要将外部智能密钥设备保持与内部智能密钥设备的电连接。如参照图11B所述,在不需要有外部智能密钥设备存在的情况下,在软件智能密钥设备已经与内部智能密钥设备进行了相互验证之后,软件智能密钥单元可以将诸如密码密钥之类的敏感信息保存在内部智能密钥设备中,仅仅由相同的软件智能密钥单元来检索敏感信息。

因为软件智能密钥单元能够以与外部智能密钥设备独立的方式同内部智能密钥设备进行相互验证,所以这种方法是有利的。例如,该方法允许以无人模式开始软件程序,即没有人插入外部智能密钥设备;程序使用之前签名并且封印的软件智能密钥单元来从内部智能密钥设备中检索任何敏感信息。软件程序可以从内部智能密钥设备中检索主秘密,以对口令和其他加密的配置信息进行解密从而在没有人干预的情况下安全地完成启动过程。

现在参照图12,该框图示出了用于保护主秘密的本发明的实施方式。如上所述,可以用主秘密对在数据处理系统上所存储的秘密信息进行加密,其使得对主秘密进行保护成为必要。在现有技术系统中,通常通过对在其上正在使用主秘密的主机系统是外部的机制来保护对主秘密的保护。与典型的现有技术系统相反,可以使用本发明的实施方式来保护在将要使用主秘密的主机系统上的主秘密。

图12与图4类似,系统单元1202与外部智能密钥设备1204连接,而系统单元1202也包括内部智能密钥设备1206。系统单元1202还支持软件智能密钥单元1208-1212。但是与图4相反,已经增强了图12中的内部智能密钥设备1206以包括用于保护可以是口令、加密密钥或某些其他形式的主秘密的主秘密注册表1214。如参照图11B中的步骤1130和1132在上面简要说明的,软件智能密钥单元1208-1212可以通过安全请求/响应机制在内部密钥设备1206中存储主秘密。内部智能密钥设备1206与用于请求软件智能密钥单元的识别信息关联对来自软件智能密钥单元1208-1212的主秘密进行存储。例如,主秘密注册表1214包括与主秘密1218关联的SWSKU标识符1216;可以在SWSKU ID 1216上执行的查询操作可以将其与主秘密1218关联。或者,主秘密注册表1214可以支持每个软件智能密钥单元多于一个的主秘密;在适当的情况下可以用每个请求的操作来注册和检索一组主秘密。虽然图11B只示出了注册操作和检索操作,但是还可以支持与对主秘密的管理相关的其他操作,例如删除操作或者盖写操作。

如图10B所述,在用于减少被用来交换信息的步骤数量的验证过程期间,可以在内部智能密钥设备和软件智能密钥单元之间安全地传送附加信息。至此,在验证过程期间可以传送用于软件智能密钥单元的主秘密。由于验证软件智能密钥单元仅仅是应该具有软件智能密钥单元的私钥的复制件的实体,所以只有软件智能密钥单元应该能够在验证过程期间,对内部智能密钥设备所提供的软件智能密钥单元的主秘密进行解密。

现在参照图13-15,该框图示出了多个外部智能密钥设备和多个内部智能密钥设备之间的不同关系。前面图的描述可以视为暗示着在外部智能密钥设备和内部智能密钥设备之间存在有唯一的一对一的关系。参照图13,可以通过使用任何多个外部智能密钥设备1304-1308来允许单独内部智能密钥设备1302。例如,每个小组的IT管理员可能具有能够被插入到包括内部智能密钥设备1302的特定服务器机器中的可拆卸智能密钥设备。参照图14,单独外部智能密钥设备1402可以允许任意多个内部智能密钥设备1404-1408。例如,IT管理员可以在多个服务器机器上使用单个可拆卸的智能密钥设备,其每一个都仅仅包括内部智能密钥设备1404-1408之一。参照图15,多个外部智能密钥设备1502-1506可以允许任意多个内部智能密钥设备1512-1516。例如,每个小组的IT管理员可以具有可以被插入到许多不同服务器机器中的可拆卸智能密钥设备,其每一个都仅仅包括内部智能密钥设备1512-1516之一。为了在给定智能密钥设备上支持多对一关系或者一对多关系,给定智能密钥设备仅仅需要对用于附加对应内部智能密钥设备和/或外部智能密钥设备的附加公钥证书的存储或配置。

在讨论本发明的附加实施方式之前,提供关于基于数字证书的信任关系的背景信息,以评估本发明的附加实施方式的操作效率和其他优点。

现在参照图16A-16C,每个框图示出了通常的一组信任关系。现在参照图16A,证书管理机构1602已经发放了数字证书给服务器1604和1606。如上所述,证书管理机构是代表可能是人员用户的其他实体,但是还可能代表诸如应用程序或者数据处理设备之类的程序实体或者硬件实体,来发放数字证书的信任实体。因此,服务器1604和1606可以已经被诸如图2或图3中所示的用户202或302之类的用户而代表,或者服务器1604和1606可以是诸如图4中的应用程序408之类的某种其他类型的程序实体。证书管理机构1602已经发放数字证书给服务器1604和1606。服务器1604和1606可以通过如本发明所述的、与证书管理机构1602执行相互验证,随后建立与证书管理机构1602的信任关系1608和1610。在某个时间点上,服务器1604可以将其数字证书与对应私钥的拥有证明(proof-of-possession)(例如已经使用其私钥而被签名的数据项目)一同呈现给服务器1616,同时请求服务器1606所提供的服务。因为服务器1606信任证书管理机构1602,所以服务器1606能够通过检验证书管理机构1602签名了从服务器1604接收到的数字证书而对服务器1604进行验证。相反的情况也是可以的,并且服务器1604还能够验证服务器1606。以这种方式,服务器1604和服务器1606能够在它们之间建立信任关系1612。

参照图16B,服务器1614已经与服务器1606建立了信任关系1616。在本例中,不提供用于信任关系1616的基础,并且服务器1604还没有接受同服务器1614的信任关系1616。

参照图16C,类似的参考标记指示与图16A中所示的类似的部件,但是图16C示出了在图16A中所示出的那些之外的部件。证书管理机构1620已经发放数字证书给服务器1606和1622。如果证书管理机构1620已经发放了数字证书给服务器1606和1622,则就可以说证书管理机构建立了分别与服务器1606和1622的信任关系1624和1626。在某个时间点上,服务器1622可以将其数字证书呈现给服务器1606,同时请求服务器1606所提供的服务。因为服务器1622信任证书管理机构1620,所以服务器1606能够通过检验证书管理机构1620签名了从服务器1622接收的数字证书而对服务器1622进行验证。相反的情况也是成立的,并且服务器1622可以验证服务器1606。以这种方式,服务器1622和服务器1606可以在它们之间建立信任关系1628。

信任关系可以传递。如参照图16B所述,服务器1606已经建立了与服务器1614的信任关系1616。但是,服务器1604没有识别信任关系1616,这可能是因为服务器1606不能够提供关于信任关系1616的基础的足够信息。但是在图16C中,服务器1606能够提供关于在服务器1606已经与之建立了信任关系的服务器之间的其信任关系的足够信息。在本例中,服务器1606提供关于信任关系1628的信息给服务器1604。如果给定服务器1604和服务器1606之间的信任关系和服务器1606和1622之间的信任关系,则服务器1604和服务器1622能够在服务器1604和服务器1622之间建立信任关系1630。服务器可以根据上述的证书管理协议来发送证书。

以这种方式,服务器能够在它们自己和证书管理机构之间形成复杂的、体系的、信任关系。可以将每个证书管理机构当作树形结构的根;有时将每个证书管理机构称为根管理机构,特别是当树形结构内的其他实体也充当辅助证书管理机构的时候。使用多个根证书管理机构允许多个树形结构重叠,如图16C中所示的。现在返回到本发明,其中实施本发明以使用已经在上面描述过的内部和外部智能密钥设备的优点来构建信任模型。

现在参照图17,该框图示出了根据本发明的实施方式,基于由内部智能密钥设备提供的信任的信任关系所构建的信任模型的例子。本发明的内部智能密钥设备在充当证书管理机构时提供高等级的信任度。如上面参照其他附图所述,内部智能密钥设备提供用于保护信息的机制。如参照图11所述,由内部智能密钥设备所提供的一个功能时发放数字证书。由于可以将内部智能密钥设备实施为数据处理系统内的系统单元的一部分,例如在主板上的特殊芯片,所以应该对内部智能密钥设备进行物理保护,以使得恶意用户难于施行不当方案。此外,通过由系统管理员借助使用外部智能密钥设备可以对内部智能密钥设备发放数字证书进行控制的事实,可以增强内部智能密钥设备的信任度。因此,内部智能密钥设备发放数字证书的能力允许内部智能密钥设备充当信任模型的基础。

以相同的方式,不同类型的实体,例如不同类型的硬件和软件计算资源,能够在它们自己和充当基于硬件的证书管理机构的内部智能密钥设备之间形成负载的、体系的、信任关系。在该信任模型中,信任以在数据处理系统上的内部智能密钥设备所提供的证书管理机构功能为根。可以通过内部智能密钥设备处于倒金字塔的顶点、并且计算资源形成倒金字塔的倒金字塔,对信任关系体系进行表示,如图17中所示。在分布式数据处理环境中,可以将信任关系看作重叠的倒金字塔的集合,其中每个金字塔基于每个机器上的内部智能密钥设备,如图17中所示。

在图17中,信任模型的例子示出了两个内部智能密钥设备1702和1704,其分别包括证书管理模块1706和1708,它们具有用于允许每个内部智能密钥设备充当证书管理机构的功能。内部智能密钥设备1704已经发放了证书给辅助软件证书管理结构模块1710,其就是在内部智能密钥设备1704位于其上的相同系统单元之上执行的软件应用程序。在数据处理系统内的体系较高的软件证书管理机构模块,如辅助软件证书管理机构模块1710,从诸如数据处理系统上的内部智能密钥设备(即内部智能密钥设备1704)的证书管理功能所提供的根信任之类的、信任体系内的体系较低的软件证书管理机构获取管理权。例如,内部智能密钥设备1704可以对辅助软件证书管理机构模块1710的数字证书进行签名,其使用对应的私钥对其发放的数字证书进行签名。以这种方式,辅助软件证书管理机构模块1710充当内部智能密钥设备1704的下属证书管理机构,这反映在由内部智能密钥设备1704为根的证书链中。在另一个例子中,内部智能密钥设备1704可以签名下述软件证书管理机构模块,其自己可以签名另一个下属软件证书管理机构模块。

内部智能密钥设备1702已经发放了数字证书给实体1712-1718,同时辅助软件证书管理机构1710已经发放了数字证书给实体1722-1728,以使得在证书发放者和证书被发放者之间建立了信任关系。实体1712-1718和实体1722-1728可以是应用程序或者某些其他类型的程序实体。此外,辅助软件证书管理机构1710已经发放了数字证书给实体1716,以使得在这两个实体之间建立信任关系。

虽然图17表示其中所有计算资源可以包括用于将它们自己彼此验证的证书处理功能的信任模型,但是需要将这些计算资源进行配置以包括证书处理功能。例如,如果图17中的不同实体表示软件应用程序,则这些软件应用程序需要包括已经提供了唯一公钥证书并且带有唯一对应私钥的模块。

例如,要独立动作从而其需要执行与其他资源的验证操作的能力的每个计算资源可能例如以其中应用程序540包括SWSKU 538的图5中所示的方式,而具有嵌入的软件智能密钥单元。应用程序540包括具有SWSKU私钥550的SWSKU 538,SWSKU公钥证书554包括与SWSKU私钥550对应作为非对称密码密钥对的SWSKU公钥556的复制件。SWSKU 538还包括INSKD SW公钥证书558的复制件。因此,应用程序540是根于INSKD 522的信任体系的一部分。使用在SWSKU 538内所嵌入的信息和SWSKU 538的功能能力,应用程序540能够与也信任INSKD 522的任何其他计算资源进行验证。因此,为了实施其中所有计算资源可以包括用于根据本发明将它们自己彼此验证的证书处理功能的信任模型,系统管理员需要确保如果计算资源是数据处理设备,则每个计算资源包括内部智能密钥设备,或者如果计算资源是程序实体,则每个计算资源包括软件智能密钥单元。

但是,在图5中所示的例子中,SWSKU 538变得以某种方式嵌入在应用程序540中。可以使用各种过程来将所需要的功能嵌入在每个程序资源中,如在下面所说明的。

现在参照图18,该框图示出了用于产生操作系统文件的数据处理系统,其中在操作系统中的每个程序实体包括用于根据本发明的实施方式基于内部智能密钥设备在信任体系中建立信任关系的功能。图18与图4类似,系统单元1802与外部智能密钥设备1804连接,并且系统单元1802还包括内部智能密钥设备1806。

在本例中,操作系统安装应用程序1808负责将操作系统安装在包括系统单元1802的机器上。在安装过程期间,操作系统安装应用程序1808从诸如磁带或者CD-ROM的分布介质读出操作系统文件1812,并且产生完全可操作的模块1814,如将在下面更加详细地描述的。

应该注意,虽然图18示出了其中相对于操作系统文件而执行动作的例子,但是还可以将替代实施方式应用于任何类型的应用程序文件。例如,可以将操作系统安装应用程序1808概括为如用于任何给定软应用程序的安装应用程序所述,并且可以由与操作系统文件1812类似的普通应用程序文件来表示给定软件应用程序。在完成安装过程之后,安装应用程序已经产生了带有与签名的操作系统文件1814类似的具有证书的软件智能密钥单元的应用程序文件。

虽然图18示出了这样的例子,其中对所有操作系统文件进行保护从而在系统单元1802上可以仅仅执行适当地安装的操作系统模块,但是在上面所提到的替代实施方式可以限制系统内的所有软件的执行。使用用于每个所安装的应用程序的适当的安装过程,可以保护每个应用程序模块。以这种方式,系统单元1802可以通过由外部智能密钥设备的存在来控制的过程对已经在系统上安装的软件模块限制软件执行。在本发明的基于Java实施方法中,可能需要所有Java应用程序包括在安装过程期间被放置倒应用程序中的软件智能密钥单元;如上所示,可以将所有JAR文件和Java封包进行封印,以使得类装载器可以确保从所封印的JAR文件中应该装载封包中的所有代码。

现在参照图19,该流程图示出了一种过程,用于产生包括软件智能密钥单元的操作系统模块,以使得操作系统模块能够根据本发明的实施方式彼此进行验证操作。该过程开始于操作系统安装应用程序检查是否至少存在一个还没有被处理的附加操作系统模块(步骤1902)。如果没有,则过程结束。如果有,则操作系统安装应用程序从分布介质中读出操作系统模块(步骤1904)。例如,再次参照图18,在分布介质上的操作系统模块是不完整的,可以在不进行处理的情况下不安装操作系统模块。操作系统模块1812以操作系统文件的分布版本的形式合并存根例程或者控模块。如果在没有进一步修改的情况下安装然后执行这些操作系统文件,则操作系统服务会不能够执行验证操作,以使得导致操作系统不能操作。

因此,在操作系统安装应用程序已经从诸如磁带或者CD-ROM的分布介质读出操作系统模块1812之后,操作系统安装应用程序从当前正在被处理的操作系统模块中删除存根例程或者空模块(步骤1906)。操作系统安装应用程序产生非对称的密码密钥对(步骤1908),然后代表当前正在被处理的操作系统模块根据新产生的密钥对,来请求本地系统单元上的内部智能密钥设备发放数字证书(步骤1910)。以这种方式,操作系统安装应用程序的SWSKU代表被请求和发放数字证书的实体而承担了该实体的角色。或者,安装应用程序中的操作系统内的软件证书管理机构功能可以发放数字证书,以使得代表被请求和发放数字证书的实体,要求软件证书管理机构的公钥证书和内部智能密钥设备的公钥证书一同变为实体的证书链的一部分。可以假设由拥有外部智能密钥设备的系统管理员控制操作系统安装操作,通过在操作系统安装过程期间将外部智能密钥设备与系统单元连接,系统管理员允许内部智能密钥设备发放数字证书,以使得防止安装过程免于被恶意用户以某种方式进行欺骗。还可以假设每个操作系统模块具有名称空间内的唯一识别符,该名称空间覆盖所有操作系统模块,以使得可以将唯一的识别符合并到数字证书中。

然后操作系统安装应用程序产生软件智能密钥单元的实例(步骤1912)。新产生的SWSKU代表新SWSKU将操作系统安装应用程序所产生的唯一私钥进行合并。新SWSKU还合并与由本地INSKD所发放的私钥对应的公钥证书;此外,还可以包括形成用于新SWSKU的数字证书链的一部分的任何其他公钥证书。证书链表示通过信任体系的信任路径。虽然通常自由地给予和自由地获得公钥证书,但是建造证书链从计算的角度说非常昂贵,因此,包括新SWSKU所需要用来表示其证书链的任何数字证书,允许新的SWSKU在执行时在验证操作期间快速地表示其证书链,因此使得验证操作更加高效。

然后操作系统安装应用程序通过将新SWSKU嵌入到正在被处理的操作系统模块中,即在所去除的存根和空模块的位置,产生诸如图18中的模块1814之一之类的完全可操作的模块(步骤1914)。然后过程循环回步骤1902以检查是否存在任何未处理的操作系统模块,如果没有,则过程结束。因为对操作系统模块进行处理,所以根据需要将新产生的SWSKU模块合并到修改过的操作系统模块中。SWSKU 1810还可以对所部署的操作系统模块和/或新嵌入的SWSKU模块进行数字签名从而显示它们的可靠性(authenticity)。

以这种方式,允许所有操作系统文件借助于用于实施信任关系的嵌入功能来执行验证操作。在操作系统安装过程期间,INSKD 1806充当证书管理机构来发放数字证书,或者,操作系统安装应用程序。1808充当证书管理机构来发放用于模块1814的数字证书;并且如果需要,因为其充当证书管理机构,操作系统安装应用程序1808的公钥证书,所以在它们的证书链中,在模块1814中的每个模块都具有其自己的私钥和对应的公钥证书,INSKD 1806的公钥证书。因此,每个模块具有断言信任体系是基于INSKD 1806的证书链。在运行时环境中,当模块1814中的第一模块试图对模块1814中的第二模块进行验证时,第一模块会将其证书链与适当的拥有证据,例如通过使用对应的私钥而被签名的数字签名,一同呈现给第二模块。因为第二模块信任第一模块的证书链所基于的INSKD 1806,所以第二模块将验证和信任第一模块。因为在模块1814中的每个模块都信任INSKD 1806并且能够呈现向回联系到INSKD 1806的证书链,所以每个模块能够信任其他类似的模块,以使得实施如参照图17所述的信任模型。

现在参照图20,该框图示出了其用于产生项目代码的数据处理系统,其中根据本发明的实施方式,每个程序实体包括用于在基于内部智能密钥设备的信任体系中建立信任关系的功能。图20与图4类似,系统单元2002与外部智能密钥设备2004连接,并且系统单元2002也包括内部智能密钥设备2006。

在本例中,软件配置管理(SCM)应用程序2008负责管理用于其中正在被创建软件应用程序的特定项目的所有代码模块和其他类型的文件。因为由软件工程师创建项目文件,所以项目文件被检查到SCM系统中,其能够根据差异报告和项目时间表(timeline)来跟踪源代码的版本。工程师将存根例程或者空模块合并到项目模块中,以使得可以在不考虑完全实施验证的情况下对项目模块的初步版本能够进行测试和集成。

但是,当需要产生可以被分发给顾客或者可以被另外在生产环境中部署的所谓的生产级应用程序时,SCM系统去除存根和空模块并且用作为软件模块自身的嵌入的软件智能密钥单元代替它们。因此,在发生最终编译和链接操作的某个时间点,在SCM应用程序2008中的SWSKU 2010产生与包括新产生的密钥对的SWSKU模块一起的非对称密钥对和对应数字证书。因为对项目模块2012进行处理,所以根据需要将新产生的SWSKU模块链接到项目模块2014。可以由SWSKU 2010将生产级项目模块2014和/或新嵌入的SWSKU模块进行签名以示出它们的可靠性。

以这种方式,在需要用于完成验证操作的能力的项目应用程序内的每个计算资源可以带有能够执行验证操作的软件智能密钥单元。但是,图20中示出的情形与图18中所示出的情形明显不同。在图18中,由系统单元1802上的操作系统安装应用程序1808来修改操作系统模块1814。在优选实施方式中,在系统单元1802上的INSKD 1806已经对已经被插入到修改过的操作系统模块1816中的SWSKU的数字证书进行签名。

因此,当在运行时环境中正在执行修改过的操作系统模块时,发放了用于修改过的操作系统模块的数字证书的证书管理机构是运行时环境的一部分。这不是图20中所示的情形的情况。当在运行时环境中正在执行修改过的项目模块时,其上创建了项目应用程序的生产版本的系统单元的内部智能密钥设备已经对在修改过的项目模块的SWSKU中所嵌入的数字证书进行签名。换句话说,发放了数字证书给修改过的项目模块中的SWSKU的证书管理机构不是运行时环境的一部分。当修改过的项目模块试图完成与另一个修改过的项目模块的验证操作时,因为每个修改过的项目模块信任其上创建了项目应用程序的生产版本的系统单元的内部智能密钥设备,所以可以完成验证操作。但是,当修改过的项目模块试图完成与操作系统模块(例如操作系统模块1814之一)的验证操作时,因为操作系统模块不信任充当用于操作系统模块的数字证书的证书管理机构的内部智能密钥设备,所以验证操作失败。因此,需要一种机制以在运行时环境中扩展信任关系。

现在参照图21,该流程图示出了根据本发明的实施方式,扩展用于内部智能密钥设备的证书链的过程。如上所述,在运行时环境中正在执行的某些模块可以具有功能,用于建立基于在运行时环境中存在的内部智能密钥设备的信任关系;由于内部智能密钥设备已经充当用于这些模块的证书管理机构,所以因为内部智能密钥设备处于信任体系的根因此这些模块能够呈现可以易于被检验的数字证书链。当将应用程序安装到支持本发明的内部智能密钥设备的运行时环境中时,应用程序模块可以具有功能,用于在因为根证书管理机构不同而还缺少在运行时环境中与其他模块建立信任关系的应用程序模块之间建立信任关系;其他模块不具有信任由应用程序模块所呈现的数字证书的能力。

下面对于图21进行描述的过程提供一种机制,用于允许那些应用程序模块将它们自己建立为值得信任的。虽然可以在运行环境内执行应用程序模块之前的任何时间对运行环境进行修改,但是最好当正在将应用程序模块安装在包括内部智能密钥设备的运行时环境内时执行该过程。但是在本例中,不需要对应用程序模块进行修改。因此,下面所述过程与对于需要操作系统模块的修改的图19而描述的过程不同。

当内部智能密钥设备从安装应用程序或者某些其他形式的管理效用应用程序中的软件智能密钥单元接收请求消息时过程开始(步骤2102),其中所述请求消息指示要求断言外来内部智能密钥设备,即本地运行时环境之外的根数字证书的请求。例如,管理效用应用程序具有对配置文件的访问权,所述配置文件伴随有在本地运行时环境内已经安装或者正在被安装的应用程序模块的生产版本。这些配置文件包括外来内部智能密钥设备用来例如以参照图20所述类型的方式产生用于在应用程序模块内所嵌入的软件智能密钥单元的数字证书的数字证书的复制件。换句话说,配置文件可以伴随有生产了正在被安装的应用程序的供货商的运行时环境的外来内部智能密钥设备所使用的公钥征证书的复制件。在没有当前运行时环境的内部智能密钥设备的能力来检查公共信任的实体的情况下,做出要求断言外来内部智能密钥设备的数字证书的请求;由于每个内部智能密钥设备充当其自己的信任体系内的根信任的实体,所以不存在其上可以建立用于当前运行时环境的内部智能密钥设备和外来内部智能密钥设备的信任的其他公共信任的实体。因此,断言数字证书的过程必须是提供用于完成该任务的信任的安全过程。

为了确保用于断言外来内部智能密钥设备的数字证书的操作的信任性,确定内部智能密钥设备是否已经验证了请求应用程序的软件智能密钥单元(步骤2104)。可以通过使用在之前的验证过程期间发送到了软件智能密钥单元的内部智能密钥设备的会话密钥,例如上面对于图10B所述,成功地对所接收到的消息的内容进行解密来执行确定。如果还没有验证软件智能密钥单元,则内部智能密钥设备产生适当的错误响应(步骤2106)并且返回响应消息给请求软件智能密钥单元(步骤2108),以使得完成过程。

如果已经验证了软件智能密钥单元,则内部智能密钥设备确定外部智能密钥设备是否还连接于系统单元(步骤2110)。以这种方式,确定整个过程在具有执行该过程的权限的系统管理员的控制之下。如果外部智能密钥设备没有连接于系统单元,则内部智能密钥设备在步骤2106产生错误响应,并且在步骤2108将响应消息返回给软件智能密钥单元,以使得完成过程。

如果已经验证了软件智能密钥单元并且外部智能密钥设备还电连接于系统单元,则内部智能密钥设备执行软件智能密钥单元的请求的功能。内部智能密钥设备将外来内部智能密钥设备的被断言的根证书,添加到可能包括之前已经被断言的多个证书的信任根证书表或列表中(步骤2112)。在已经创建了适当的响应消息(步骤2114)之后,在步骤2108将响应消息返回给软件智能密钥单元,并且过程结束。

现在参照图22,该框图示出了根据本发明的实施方式构成信任关系的信任模型的例子,所述信任关系基于维持有包括用于外来内部智能密钥设备的多个根证书的证书链的单个本地内部智能密钥设备所提供的信任。如参照图5和其他附图所说明的,内部智能密钥设备拥有指示一个私钥和其对应的公钥证书;类似地,图22示出了包括数字证书2204的内部智能密钥设备2202。如参照图21所说明的,可能需要系统管理员将附加的根证书断言到具体运行时环境的信任体系中;图22示出了之前已经被断言并且现在被作为其信任的证书链的一部分存储在内部智能密钥设备2202内的数字证书2206和2208。

如上所述,当将应用程序模块安装到支持本发明的内部智能密钥设备的运行时环境中时,可能应用程序模块已经被提供有功能,用于在因为根证书管理机构不同而缺少在运行时环境中建立与其他模块的信任关系的能力的应用程序模块之间建立信任关系。可以将应用程序模块当作与位于不同的信任体系内的其他模块一同位于一个信任体系中。

为了克服该问题,参照图21所述过程示出了在单个运行时环境内用于介绍多个信任体系的机制。参照图22进一步图示该解决方案。通过接受数字证书2206和2208,内部智能密钥设备2202含蓄地同与所接收到的数字证书关联的外来内部智能密钥设备形成信任关系2210和2212。以这种方式,内部智能密钥设备2202分别用根证书2204、2206和2208支持信任体系2214、2216和2218。如果可以将根证书2206和2208用于生效根证书2206和2208所代表的外来内部智能密钥设备签名了的应用程序模块的数字证书,则在运行时环境中的其他模块能够形成桥接信任体系的信任关系2220和2222。

现在参照图23,该流程图示出了用于获得由本地内部智能密钥设备所维持的当前根证书链的过程。而图21示出了系统管理员用于通过将根证书存储在本地智能密钥设备内而将根证书断言到具体运行时环境的信任体系中的过程。图23示出了用于从本地内部智能密钥设备获得当前根证书链的过程。当内部智能密钥设备从软件智能密钥单元接收请求消息,以使得其请求由本地内部智能密钥设备所维持的当前根证书链时,过程开始(步骤2302)。然后本地内部智能密钥设备将包括当前根证书链的响应消息返回给请求软件智能密钥单元(步骤2304),并且完成过程。本地内部智能密钥设备可以要求请求软件智能密钥单元之前对本地内部智能密钥设备已经验证了。与示出了当系统管理员已经使用了外部智能密钥设备来允许操作时才能被执行的内部智能密钥设备中的操作的图11或者图21相反,在图23中所示出的过程不要求经由外部智能密钥设备要求允许。

现在参照图24,该流程图示出了用于确定来自外来内部智能密钥设备的数字证书是否值得信任的过程。在某个时间点,模块请求对由运行时环境内的另一个模块所控制的计算资源的访问。假设两个模块之前还没有完成相互验证操作,则两个模块试图完成例如与参照图9A-9B所述相互验证操作类似的相互验证操作。在本例中,可以假设正在控制所期望的计算资源的模块被包括在基于本地内部智能密钥设备的本地信任体系之内,而同时请求模块被包括在基于外来内部智能密钥设备的信任体系之内,但是,之前已经将用于外来内部智能密钥设备的根证书断言到本地智能密钥设备中。

当控制模块和请求模块已经开始了验证操作时,过程开始(步骤2402)。然后控制模块非常可能直接从请求模块获得请求模块的数字证书(步骤2404)。虽然没有在图24中示出这些步骤,但是使用来自数字证书的公钥来确定请求模块是否拥有与公钥对应的私钥。

为了确定在请求模块的数字证书上的数字证书的可靠性,控制模块要求外来内部智能密钥设备的数字证书的值得信任的复制件,以使得提供与被用来产生了数字签名的私钥对应的公钥的复制件。虽然请求模块应该拥有用于已经发放了请求模块的数字证书的外来内部智能密钥设备的数字证书的复制件,以使得允许请求模块提供外来内部智能密钥设备的数字证书的复制件给控制模块,但是控制模块需要独立的、值得信任的方法来获得外来内部智能密钥设备的数字证书的复制件。在获得外来内部智能密钥设备的数字证书的尝试中,控制模块获得当前正在由本地内部智能密钥设备所维持的根证书链(步骤2406)。

然后控制模块检验用于外来内部智能密钥设备的根证书处于所检索的根证书链中(步骤2408)。如上所述,在图24中所示的例子中,可以假设之前已经将用于外来内部智能密钥设备的根证书断言到本地智能密钥设备中了。因此,步骤2406导致包括外来内部智能密钥设备的数字证书的根证书链的返回。

然后控制模块通过检验请求模块的数字证书上的数字签名来检验请求模块的数字证书的可靠性(步骤2410),并且过程结束。假设检验了数字签名,则控制模块可以用验证操作继续进行。

参照图25和图26在下面提供了本发明的另一个实施方式,该实施方法的例子依赖于已经在前面描述了的本发明的各个方面。如上所述,诸如内部智能密钥设备之类的、在数据处理系统内的硬件安全单元可以充当证书管理机构工作。如参照图17所述,内部智能密钥设备的证书管理机构功能可以被看作其中在数据处理系统内的计算资源是信任关系体系内的实体的信任模型的根。可以通过其中内部智能密钥设备处于倒金字塔的顶点并且计算资源形成倒金字塔的倒金字塔来表示信任关系体系,如图17中所示。如参照图18-20所述,可以使用硬件安全单元的证书管理机构功能来对软件密码模块,即软件安全单元或者软件智能密钥单元进行签名,而且发放数字证书给软件密码模块。如上面简要描述的,可以对软件密码模块的软件封包进行封印以防止窜改代码。

现在参照图25,该数据流示意图示出了根据本发明的实施方式,实施可以被用于确保软件模决的真实性的硬件辅助的信任模型的数据处理系统内的实体。在对图25进行描述之前,在Java运行时环境内描述具体的例子。在将包括某种形式的软件密码单元的Java应用程序的类文件进行封印以防止代码窜改之后,通过类装载器来增强程序真实性。为了确保可以信任类装载器,需要将类装载器进行签名和封印。为了保证类装载器的真实性,需要以某种方式将装载类装载器的装载器,即操作系统程序装载器,进行签名和封印。为了保证操作系统程序装载器的真实性,需要将装载操作系统程序装载器的装载器,即数据处理系统的ROM中的引导装载器,进行签名和封印。

对于更加普通的非Java环境,在已经将软件密码模块的软件封包进行封印以防止代码窜改之后,通过操作系统程序装载器来增强程序真实性。为了确保可以信任操作系统程序装载器,需要将操作系统程序装载器进行签名和封印。为了确保操作系统程序装载器的真实性,需要将装载操作系统程序装载器的装载器,即系统ROM中的引导装载器,进行签名和封印。在图25中反映这些要求和操作。

已经由内部智能密钥设备2504的私钥对引导ROM 2502进行签名,其可以发生在制造过程期间、其中使用闪存更新或者以其他方式来配置引导ROM的现场专用安装过程期间。之后,引导ROM 2502能够执行与内部智能密钥设备2504的相互验证过程,以使得在引导ROM 2502和内部智能密钥设备2504之间创建信任关系。

而且已经通过内部智能密钥设备2504的私钥对操作系统程序装载器2506进行签名,这是根据参照图18和图19所述过程而发生的。引导ROM 2502能够通过在来自内部智能密钥设备2504的帮助下将操作系统程序装载器2506的封印的程序模块上的签名生效,来保证操作系统程序装载器2506的真实性,所述内部智能密钥设备2504帮助引导ROM 2502,这是因为其已经通过完成相互验证过程与引导ROM 2502建立了信任关系。之后,操作系统程序装载器2506能够与内部智能密钥设备2504执行相互验证过程,以使得在操作系统程序装载器2506和内部智能密钥设备2504之间创建信任关系。

已经通过内部智能密钥设备2504的私钥,或者通过充当与充当根证书管理机构的内部智能密钥设备2504的证书管理机构的操作系统中的软件密码单元,来对应用程序模块2508进行签名;这是根据参照图20所述过程而发生的。操作系统程序装载器2506能够通过在来自内部智能密钥设备2504的帮助下将封印的应用程序模块上的签名生效,来保证应用程序模块2508的真实性,其中所述内部智能密钥设备2504帮助操作系统程序装载器2506,这是因为其已经通过完成相互验证过程与操作系统程序装载器2506建立了信任关系。之后,在必要的情况下,应用程序模块2508能够用内部智能密钥设备2504、操作系统模块2510或者其他应用程序模块2512来执行相互验证过程,以信任关系。

现在参照图26,该流程图示出了根据本发明的实施方式用于确保软件模块的真实性的过程。当数据处理系统内的硬件电路通过数据处理系统内的内部智能密钥单元的帮助将引导ROM上的数字签名生效时,在数据处理系统的启动期间,该过程开始(步骤2602)。假设已经成功地将引导ROM上的数字签名生效,然后在数据处理系统上的启动硬件将数据处理系统的引导ROM激活(步骤2604),以使得防止引导ROM执行许多类型的操作直到内部智能密钥设备已经将其生效为止,或者在其他实施方式中,防止引导ROM执行任何操作直到内部智能密钥设备已经将其生效为止。

在某个随后的时间点,大概还是在数据处理系统的启动过程期间,引导ROM检验数据处理系统的进一步初始化所需要的签名的/封印的操作系统模块上的数字签名(步骤2606)。假设引导ROM能够将操作系统模块上的数字签名生效,然后引导ROM装载操作系统模块(步骤2608)并且将执行控制发送给操作系统模块(步骤2610)。

在某个随后的时间点,操作系统内的程序装载器例如响应于数据处理系统的用户的请求,检验在数据处理系统上正在被调用的签名的/封印的应用模块上的数字签名(步骤2612)。假设程序装载器能够将应用程序模块上的数字签名生效,则程序装载器装载应用程序模块(步骤2614)并且将执行控制发送给应用程序模块(步骤2616),以使得完成过程。以这种方式,可以使用本发明来确保在数据处理系统上执行的所有软件模块的真实性。必须通过内部智能密钥设备或者通过内部智能密钥设备所信任的软件证书管理机构模块来对数据处理系统上执行的所有软件进行签名。经由软件证书管理机构模块和内部智能密钥设备之间的相互验证,而且还经由用于将软件证书管理机构模块的证书添加到被信任到内部智能密钥设备之中的证书列表的配置过程来建立信任关系。如部分参照图25并且更加完全地参照之前的图所示的,通过使用之前已经嵌入在相应实体中的数字证书的相互验证过程,在软件执行期间建立适当的信任关系。

通过在上面提供的详细描述,本发明的优点应该变得显而易见。本发明提供了一种机制,用于保护主机系统内的密码功能,以使得当系统管理员通过硬件安全令牌物理地允许它时才可以使用它。此外,将硬件安全单元集成到数据处理系统中,并且硬件安全单元充当硬件证书管理机构。可以将硬件安全单元看作在分布式数据处理系统内支持信任体系或者信任框架。硬件安全单元可以对在包括硬件安全单元的机器上所安装的软件进行签名。使用在该机器上运行的签名的软件的服务器过程可以根据硬件安全单元的它们公共的信任,与硬件安全单元并且在其他服务器过程之间建立相互信任关系。

应该注意,虽然在完全功能的数据处理系统的上下文中已经描述了本发明,但是本领域的普通技术人员应该理解,本发明的过程能够以计算机可读介质中的指令的形式以及各种其他形式进行分发,而与实际用来执行分发的信号承载媒体的具体类型无关。计算机可读媒体的例子包括诸如EPROM、ROM、磁带、纸张、软盘、硬盘、RAM和CD-ROM以及(诸如数字和模拟通行链路之类的)传输类型媒体之类的媒体。

总体上,认为方法是导致所期望的结果的自相容的步骤序列。这些步骤要求物理量的物理操纵。通常,虽然不是必须的,这些量采用能够被存储、传输、组合、比较和其他操纵的电或磁信号的形式。有时出于方便,主要因为通用的原因,将这些量称为比特、值、参数、项目、部件、对象、符号、字符、条件(term)、数字等。但是应该理解,所有这些术语和类似的术语都与适当的物理量关联,并且仅仅是应用于这些量的方便标记。

已经为了图解的目的呈现了本发明的描述,但是本发明的描述并不试图穷尽或者限制所公开的实施方式。许多修改和变形对于本领域的普通技术人员都显而易见。选择了这些实施方式来解释本发明的原理及其实际应用,并且使得本领域的普通技术人员能够理解本发明,以使得以可能适合其他所设想的使用的各种修改来实施各种实施方式。

本领域的普通技术人员应该理解,虽然已经关于前面的例子实施方式描述了本发明,但是本发明并不限于此,而且还存在落在本发明的范围之内的许多可能的变形和修改。

本公开的范围包括这里所公开的特点的组合或者任何新颖的特点。申请人因此提请注意,针对这些特点或者特点的组合,在本申请进行的过程或者从中导出的进一步申请的期间,可以形成新的权利要求。特别是,参照所附的权利要求,可以将来自从属权利要求的特点与独立权利要求的那些特点进行组合,并且能够以任何适当的方式而不仅仅是在权利要求中所列举的具体组合来组合来自相应独立权利要求的特点。

为了避免误解,这里在整个说明书和权利要求书中所使用的术语“包括”不应该被理解为“仅仅包括”的含意。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号