CN100478975C - 将光盘用作智能密钥装置的方法和系统 - Google Patents

将光盘用作智能密钥装置的方法和系统 Download PDF

Info

Publication number
CN100478975C
CN100478975C CNB2005800362001A CN200580036200A CN100478975C CN 100478975 C CN100478975 C CN 100478975C CN B2005800362001 A CNB2005800362001 A CN B2005800362001A CN 200580036200 A CN200580036200 A CN 200580036200A CN 100478975 C CN100478975 C CN 100478975C
Authority
CN
China
Prior art keywords
intelligent key
key
unit
certificate
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2005800362001A
Other languages
English (en)
Other versions
CN101044490A (zh
Inventor
史蒂文·贝德
赵青云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101044490A publication Critical patent/CN101044490A/zh
Application granted granted Critical
Publication of CN100478975C publication Critical patent/CN100478975C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

数据处理系统接受可移动存储介质,可移动存储介质变成与数据处理系统内的系统单元电气接合,此后,可移动存储介质与硬件安全单元彼此进行相互验证。可移动存储介质存储第一不对称加密密钥对的私钥和与硬件安全单元相关的第二不对称加密密钥对的公钥,而硬件安全单元存储第二不对称加密密钥对的私钥和与可移动存储介质相关的第一不对称加密密钥对的公钥。响应于在可移动存储介质与硬件安全单元之间成功进行了相互验证操作,在可移动存储介质保持与系统单元接合时,允许系统单元调用硬件安全单元上的加密功能。

Description

将光盘用作智能密钥装置的方法和系统
相关申请的交叉引用
本涉及以下具有共同受让人的申请,并且,这里通过引用并入这些申请:美国专利申请公报No.2005/0154875,标题为“Method andsystem for establishing a trust framework based on smart keydevices”于2004年1月8日提交;以及,美国专利申请公报No.2005/0154898,标题为“Method and System for Protecting MasterSecrets Using Smart Key Devices”,于2004年1月8日提交。
技术领域
本发明涉及改进的数据处理系统,具体地说,涉及利用密码进行数据存储保护的方法和设备。
背景技术
多数数据处理系统包含需要保护的敏感数据。例如,需要防止配置信息的数据完整性被非法修改,同时,需要防止其他信息如密码文件被非法公开。给定的数据处理系统的操作员会使用许多不同类型的安全机制来保护数据处理系统。例如,数据处理系统上的操作系统会提供各种软件机制来保护敏感数据,如各种验证和授权方案,而某些硬件装置和软件应用程序可以依靠硬件机制来保护敏感数据,如硬件安全令牌(security token)和生物传感器装置。即使在给定的数据处理系统内可以使用多个软件和硬件机制来保护敏感数据,仍然可以对敏感数据加密,使得如果某人非法访问经过加密的敏感数据,在不能对经过加密的敏感数据进行解密的情况下,对经过加密的敏感数据的任何拷贝都是无用的。
然而,包含在数据处理系统内的对所有信息进行最终保护的能力是有限的。例如,在努力对密码文件加强保护的过程中,可以利用另一种秘密如密码或加密密钥(cryptographic key)对密码文件进行加密,所述的这种密码或加密密钥通常称为主秘密(master secret)。但是,也需要以某种方式对于这个新秘密进行保护。因此,系统管理员会遇到两难的情形,即,对实现另一层安全性的任何努力都产生了也需要保护的附加敏感信息。现在看本发明,其余附图示出了解决这种两难情形的本发明的典型实施例。
因此,具有一种用于安全地存储并管理秘密信息如加密密钥的机制是有利的。安全地存储并管理用于对其他秘密信息进行保护的主秘密尤其有利。
发明内容
本发明的第一方面提供了一种计算机可读介质上的计算机程序产品,用于在数据处理系统中执行加密功能,该计算机程序产品包括:存储在计算机可读介质上的逻辑,用于利用耦合到系统单元的介质读取装置,读取可移动存储介质,其中,系统单元包括硬件安全单元和用于对介质读取装置进行控制的装置驱动器,其中,可移动存储介质包含与第一不对称加密密钥对对应的第一私钥以及与第二不对称加密密钥对对应的第一公钥,并且,其中,硬件安全单元包含与第二不对称加密密钥对对应的第二私钥以及与第一不对称加密密钥对对应的第二公钥;存储在计算机可读介质上的逻辑,用于在可移动存储介质与介质读取装置接合(engage)时,在介质读取装置与硬件安全单元之间进行相互验证操作;以及存储在计算机可读介质上的逻辑,用于在可移动存储介质与介质读取装置系统单元保持接合时,响应于在可移动存储介质与硬件安全单元之间成功地进行了相互验证操作,启用硬件安全单元上的加密功能可用。
本发明的第二方面提供了一种方法,用于执行加密功能,该方法包括如下步骤:使可移动存储介质与耦合到系统单元的介质读取装置接合,其中,系统单元包括硬件安全单元和用于对介质读取装置进行控制的装置驱动器;并且,其中,可移动存储介质包含与第一不对称加密密钥对对应的第一私钥以及与第二不对称加密密钥对对应的第一公钥,并且,其中,硬件安全单元包含与第二不对称加密密钥对对应的第二私钥以及与第一不对称加密密钥对对应的第二公钥;根据第一和第二不对称加密密钥对,在可移动介质与硬件安全单元之间进行相互验证操作;并且,响应于成功地进行了相互验证操作,在可移动存储介质保持与介质读取装置接合时,使系统单元能够调用硬件安全单元上的加密功能。
本发明的另一个方面提供了一种计算机可读介质上的计算机程序产品,用于在数据处理系统中执行加密功能,计算机程序产品包括:存储在计算机可读介质上的逻辑,用于利用耦合到系统单元的介质读取装置读取可移动存储介质,其中,系统单元包括硬件安全单元和用于对介质读取装置进行控制的装置驱动器,其中,可移动存储介质包含与第一不对称加密密钥对对应的第一私钥以及与第二不对称加密密钥对对应的第一公钥,并且,其中,硬件安全单元包含与第二不对称加密密钥对对应的第二私钥以及与第一不对称加密密钥对对应的第二公钥;存储在计算机可读介质上的逻辑,用于在可移动存储介质保持与介质读取装置接合时,在介质读取装置与硬件安全单元之间进行相互验证;以及存储在计算机可读介质上的逻辑,用于响应于成功地在可移动存储介质与硬件单元之间进行了相互验证操作,在可移动存储介质保持与介质读取装置系统单元相接合时,启用硬件安全单元上的加密功能。
数据处理系统接受可移动存储介质,可移动存储介质变成与数据处理系统内的系统单元电气接合,此后,可移动存储介质与硬件安全单元对其自身进行相互验证。可移动存储介质存储第一不对称加密密钥对的私钥和与硬件安全单元相关联的第二不对称加密密钥对的公钥,而硬件安全单元存储第二不对称加密密钥对的私钥和与可移动存储介质相关联的第一不对称加密密钥对的公钥。响应于在可移动存储介质与硬件安全单元之间成功进行了相互验证操作,在可移动存储介质保持与系统单元接合时,使系统单元能够调用硬件安全单元上的敏感加密功能。
附图说明
在所附权利要求中叙述了据信能够表征本发明的新颖的特性。当结合附图阅读时,通过参照以下对说明性实施例的详细描述,将得到对本发明本身以及其他目的和优点的最佳理解,其中:
图1A示出了数据处理系统的典型网络,其中的每一个都可以实施本发明;
图1B示出了在可以实施本发明的数据处理系统内可以使用的典型的计算机体系结构;
图2为示出了个人获得数字证书的典型方式的框图;
图3为示出了实体可以使用数字证书来向数据处理系统进行验证的典型方式的框图;
图4为示出了数据处理系统的一部分的框图,该数据处理系统接受可移动硬件装置,从而启用(enable)数据处理系统内的硬件安全单元中的加密功能;
图5为示出了系统单元的框图,该系统单元包含内部智能密钥装置,并且使用外部智能密钥装置以便启用内部智能密钥装置的加密功能;
图6为示出了用于启用主机系统的内部智能密钥装置的加密功能的总体处理的流程图;
图7为示出了由特殊软件智能密钥单元使用的、用于启用主机系统的内部智能密钥装置的加密功能的总体处理的流程图;
图8为示出了用于禁用(disable)主机系统的内部智能密钥装置的加密功能的处理的流程图;
图9A-9B为示出了在图6的框604中示出的相互验证过程的更多细节的一对流程图;
图10A-10B为示出了在图7的框704中示出的相互验证过程的更多细节的一对流程图;
图11A为示出了内部智能密钥装置中的处理的流程图,用于按照软件智能密钥单元的请求进行操作,其中,根据是否存在外部智能密钥装置,启用和禁用操作;
图11B为示出了内部智能密钥装置中的处理的流程图,用于按照软件智能密钥单元的请求进行操作,其中,不需要依据存在外部智能密钥装置来启用操作;
图12为示出了用于保护主秘密的本发明的实施例的框图;
图13-15为示出了多个外部智能密钥装置与多个内部智能密钥装置之间的不同关系的框图;
图16A-16C为示出了一套典型的受信任关系的框图;
图17为示出了信任模型的例子的框图,该信任模型由基于由内部智能密钥装置提供的信任的信任关系构成;
图18为示出了用于生成操作系统文件的数据处理系统的框图,其中,操作系统中的每个编程实体包含用于根据内部智能密钥装置建立信任体系中的信任关系的功能;
图19为示出了用于生成操作系统模块的处理的流程图,该操作系统模块包含软件智能密钥单元,使得操作系统模块能够进行相互验证操作;
图20为示出了用于生成项目代码(project code)的数据处理系统的框图,其中,每个编程实体包含用于根据内部智能密钥装置建立信任体系中的信任关系的功能;
图21为示出了用于扩展内部智能密钥装置的证书链的处理的流程图;
图22为示出了信任模型的例子的框图,该信任模型由信任关系构成,其中,信任关系是基于由保持包含用于外来(foreign)内部智能密钥装置的多个根证书的证书链的单个本地内部智能密钥装置提供的信任;
图23为示出了用于获得由本地内部智能密钥装置保持的当前根证书链的处理的流程图;
图24为示出了用于确定来自外来内部智能密钥装置的数字证书是否可信的处理的流程图;
图25为示出了在可以用于保证软件模块的完整性的硬件辅助信任模型内的实体的数据流图;
图26为示出了用于保证软件模块的完整性的处理的流程图;
图27为示出了数据处理系统的一部分的框图,该数据处理系统接受可移动存储介质,从而启用数据处理系统内的硬件安全单元中的加密功能;
图28为示出了启用内部智能密钥装置内的加密功能的可移动存储介质的框图;
图29为示出了系统单元的框图,该系统单元包含内部智能密钥装置以及与图28的可移动存储介质结合的可移动存储介质智能密钥装置,以启用内部智能密钥装置内的加密功能;
图30为示出了用于启用主机系统的内部智能密钥装置的加密功能的总体处理的流程图;
图31为示出了由特定可移动介质使用的、启用主机系统的内部智能密钥装置的加密功能的总体处理的流程图;并且
图32为示出了用于禁用主机系统的内部智能密钥装置的加密功能的处理的流程图。
具体实施方式
一般而言,可以包括或者涉及本发明的设备包括种类繁多的数据处理技术。因此,作为背景,在对本发明进行更详细的描述之前,先对分布式数据处理系统内的硬件和软件组件的典型结构进行描述。
参照附图,图1A示出了数据处理系统的典型网络,其中的每个部分可以实施本发明的一部分。分布式数据处理系统100包含网络101,它是可以用于在各种装置和计算机之间提供通信链接的媒介,这些装置和计算机在分布式数据处理系统100内连接在一起。网络101可以包括:永久连接如导线或光纤电缆;或者,通过电话或无线通信形成的临时连接。在示出的例子中,服务器102和服务器103连同存储单元104一起连接到网络101。此外,客户机105-107也连接到网络101。各种计算设备如大型计算机、个人计算机、个人数字助理(PDA)等可以代表客户机105-107以及服务器102-103。分布式数据处理系统100可以包括没有示出的附加服务器、客户机、路由器、其他设备以及对等构架。
在示出的例子中,分布式数据处理系统100可以包括具有网络101的因特网,代表在全球范围内的网络和网关的汇集,这些网络和网关利用各种协议相互通信,其中,这些协议包括轻权目录访问协议(Lightweight Directory Access Protocol,LDAP)、传输控制协议/互联网协议(TCP/IP)、超文本传输协议(HTTP)、无线应用协议(WAP)等。当然,分布式数据处理系统100可以包括许多不同类型的网络,例如,内部网、局域网(LAN)或广域网(WAN)。例如,服务器102直接支持并入了无线通信链接的客户机109和网络110。网络使能(network-enabled)电话111通过无线链接112连接到网络110,PDA113通过无线链接114连接到网络110。利用合适的技术,如蓝牙(BletoothTM)无线技术,电话111和PDA 113也可以经过无线链接115在它们自己之间直接传输数据,从而建立所谓的个人区域网络(personal area network,PAN)或个人自组织(ad-hoc)网络。以相似的方式,PDA 113可以通过无线通信链接116向PDA 107传输数据。
本发明可以在各种硬件平台上实现;图1A是异构计算环境的例子,而不是对本发明的结构性限制。
参照图1B,图1B示出了如图1A所示的、可以实施本发明的数据处理系统的典型的计算机体系结构。数据处理系统120包含一个或多个连接到内部系统总线123的中央处理单元(CPU)122,内部系统总线123与随机存取存储器(RAM)124、只读存储器126和输入/输出适配器128互连,输入/输出适配器128支持各种I/O装置,如打印机130、盘单元132或没有示出的其他设备,如音频输出系统等。系统总线123还连接提供对通信链接136的访问的通信适配器134。用户接口适配器148连接各种用户装置,如键盘140和鼠标142,或者没有示出的其他装置,如触摸屏、输入笔(stylus)、麦克风等。显示适配器144将系统总线123连接到显示装置146。
本领域技术人员应该明白,可以根据系统实施方案来改变图1B中的硬件。例如,系统可以具有一个或多个处理器,如基于
Figure C20058003620000132
的处理器和数字信号处理器(DSP),以及一种或多种易失和非易失存储器。除了图1B中示出的硬件以外,可以使用其他外围装置,或者可以用其他外围装置代替图1B中示出的硬件。示出的例子不暗示对本发明的结构性限制。
除了能够在各种硬件平台上实施以外,本发明还可以在各种软件环境中实施。可以将典型的操作系统用于对每个数据处理系统内的程序执行进行控制。例如,一个装置可以运行
Figure C20058003620000133
操作系统,而另一个装置包含简单的
Figure C20058003620000134
运行时环境。代表性的计算机平台可以包括浏览器,它是一个众所周知的软件应用程序,用于访问各种格式的超文本文档,如图形文件、字处理文件、可扩展标识语言(XML)、超文本标识语言(HTML)、手持设备标识语言(HDML)、无线标识语言(WML)以及各种其他格式和种类的文件。
如上面关于图1A和图1B所述,本发明可以在各种硬件和软件平台上实施。然而,更确切地说,本发明旨在提出一种用于利用硬件安全令牌(hardware security token)来保护秘密信息的机制。在详细描述本发明之前,提供关于数字证书的一些背景信息,以便对本发明的操作有效性和其他优点进行评价。
数字证书支持公钥加密,其中,处于通信或交易中的每一方都有一对密钥,称为公钥和私钥。每一方的公钥被公开,而私钥保密。公钥是与特定实体相关联的号码,并且为需要与该实体进行可信交互的每个人所知。私钥是只为特定实体所知的号码、即保密的号码。在典型的不对称加密系统中,一个私钥严格对应于一个公钥。
在公钥加密系统内,由于所有通信只涉及公钥,而私钥不被发送或共享,因此,只利用公开信息生成机密消息,并且,只能利用为预期的接收者所独自拥有的私钥对机密消息进行解密。此外,可以将公钥加密用于验证、即数字签名,以及,用于保密、即加密。
加密(encryption)指的是将数据转换为不能被没有秘密的解密密钥的任何人读取的形式;加密通过使信息的内容相对于非预期的任何人、甚至那些能够看到经过加密的数据的人隐藏起来,来进行保密。验证是这样一个过程,通过这个过程,数字消息的接收者能够确认发送者的身份和/或消息的完整性。
例如,当发送者对消息进行加密时,使用接收者的公钥来将原始消息内的数据转换为经过加密的消息的内容。发送者用预期接受者的公钥对数据加密,而接收者用其私钥对经过加密的消息进行解密。
当验证数据时,可以通过利用签名者的私钥从数据计算数字签名,来对数据进行签名。一旦对数据进行了数字签名,则可以将它与签名者的身份以及证明该数据源于签名者的签名一起存储。签名者用其私钥对数据签名,接收者用签名者的公钥对签名进行检验。
证书是一个数字文档,它用于保证(vouch)实体如个人、计算机系统、在该系统上运行的特定服务器等的身份和密钥所有权。证书由证书管理机关颁发。证书管理机关(certificate authority,CA)是一个实体,通常是对交易来说的受信任的第三方,它被信任来为其他人或实体签署或颁发证书。证书管理机关通常对于其保证公钥与其所有者之间的绑定关系、从而使得某人相信签署证书的实体负有某种法律责任。有许多商业证书管理机关;这些管理机关负责当颁发证书时对实体的身份和密钥所有权进行检验。
如果证书管理机关为实体颁发证书,则实体必须提供公钥以及关于该实体的某些信息。软件工具如特殊配备的Web浏览器,可以对该信息进行数字签名,并且将它发送到证书管理机关。证书管理机关可以是提供受信任的第三方证书管理服务的商业公司。然后,证书管理机关生成证书,并将它返回。证书可以包含其他信息,如序列号以及证书的有效日期。某种程度上,根据证书管理机关的检验要求,证书管理机关提供的一部分价值是起中立的并且可信的介绍服务的作用,所述的要求公开地发布在它们的证明服务业务(certification servicepractice,CSP)上。
证书管理机关通过嵌入请求实体的公钥与其他识别信息,然后用证书管理机关的私钥签署数字证书,来创建新的数字证书。接收数字证书的任何人都可以在交易或通信期间,利用证书管理机关的公钥对签署在证书内的公钥进行检验。意图在于证书管理机关的签名起数字证书的防篡改封条的作用,由此确保证书内的数据的完整性。
证书处理的其他方面还被标准化。Myers等人的,“Internet X.509Certificate Request Message Format”,Internet Engineering TaskForce(IETF)Request for Comments(RFC)2511,1999年3月,规定了已经推荐的、每当信任方请求来自证书管理机关的证书时使用的格式。Adams等人的,“Internet X.509Public Key InfrastructureCertificate Management Protocols”,IETF RFC 2511,1999年3月,规定了用于传送证书的协议。本发明属于使用数字证书的分布式数据处理系统;图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对证书管理机关的签名进行检验,CA公钥212是公开的,并且可以由进行检验的实体获得。
参照图3,框图示出了实体可以使用数字证书来向数据处理系统进行验证的典型方式。用户302拥有X.509数字证书304,该证书被发送到主机系统308上的因特网或内部网应用程序306;应用程序306包括X.509功能,用于处理和使用数字证书。用户302用其私钥对其发送到应用程序306的数据进行签名或加密。
接收证书304的实体可以是应用程序、系统、子系统等。证书304包含主题名称或主题标识符,用于向应用程序306标识用户302,应用程序306可以为用户302提供某种服务。使用证书304的实体在使用关于来自用户302的经签名或加密的数据的证书之前,检验证书的真实性。
主机系统308还可以包含系统注册处(registry)310,用于授权用户302访问系统308内的服务和资源,即,使用户的身份与用户权利一致。例如,系统管理员已经将用户的身份配置为属于某个安全组,于是该用户被限制为只能访问被配置为对该整个安全组可用的那些资源。可以在系统内使用用于实行授权方案的各种众所周知的方法。
为了适当地确认(validate)或检验数字证书,应用程序必须对证书是否已经被撤消进行检查。当证书管理机关颁发证书时,证书管理机关生成唯一的序列号,利用该序列号识别证书,并且,该序列号被存储在X.509证书内的“Serial Number”字段内。通常,通过证书的序列号,在CRL(certificate revocation list,证书撤消列表)内对被撤消的X.509证书进行识别;被撤消的证书的序列号出现在CRL内的序列号列表中。
为了确定证书304是否仍然有效,应用程序306包含来自CRL库312的证书撤消列表,并且对CRL进行确认。应用程序306将证书304中的序列号与检索到的CRL内的序列号列表进行比较,并且,如果没有匹配的序列号,则应用程序306确认证书304有效。如果CRL具有匹配的序列号,则证书304应该被拒绝,并且,应用程序306可以采取适当措施,对访问任何受控资源的用户请求加以拒绝。
大多数数据处理系统包含需要保护的敏感数据。例如,需要防止配置信息的数据完整性被非法修改,同时,需要防止其他信息如密码文件被非法公开。给定的数据处理系统的操作员可以使用许多不同类型的安全机制来保护数据处理系统。例如,数据处理系统上的操作系统可以提供各种软件机制来保护敏感数据,如各种验证和授权方案,而某些硬件装置和软件应用程序可以依靠硬件机制来保护敏感数据,如硬件安全令牌和生物传感器装置。即使在给定的数据处理系统内可以使用多个软件和硬件机制来保护敏感数据,还可以对敏感数据加密,使得如果某人非法访问经过加密的敏感数据,在不能对经过加密的敏感数据进行解密的情况下,对经过加密的敏感数据的任何拷贝都是无用的。
然而,对包含在数据处理系统内的所有信息进行最终保护的能力是有限的。例如,在努力对密码文件加强保护的过程中,可以利用另一种秘密如密码或加密密钥对密码文件进行加密,这种密码或加密密钥通常称为主秘密。但是,也需要以某种方式对于这个新秘密进行保护。因此,系统管理员会遇到两难的情形,即,对实现另一层安全性的任何努力都产生了也需要保护的附加敏感信息。现在看本发明,其余附图示出了解决这种两难情形的、本发明的示例性实施例。
参照图4,框图示出了按照本发明实施例的数据处理系统的一部分,该数据处理系统接受可移动硬件装置,以启用数据处理系统内的硬件安全单元中的加密功能可用。本发明使用一对匹配的智能密钥装置,这对匹配智能密钥装置保存加密密钥,并且执行加密功能。系统单元402与作为便携式装置或可移动装置的外部智能密钥装置(external smart key device,EXSKD)404接口。系统单元402还包含内部智能密钥装置(internal smart key device,INSKD)406,它是一个匹配装置,该匹配装置是接纳可移动装置的主机系统、如主板的整体部分。最好,内部智能密钥装置是难以从主机系统中移除的、封装的集成电路;尽管它可以被描述为硬件安全单元,但是,它也可以包括用于执行指令的处理单元。在本例中,EXSKD 404和INSKD 406为成对的装置。可移动装置实际由系统管理人员,例如IT管理员保管;当IT管理员需要启用只能由主机如系统单元402上的匹配装置、即INSKD 406执行的某些加密功能时,可移动装置、即EXSKD 404被插入主机。换句话说,当外部智能密钥装置被插入系统单元时,某些加密功能可用。只有INSKD 406能够产生IT管理员需要的结果,这是由于只有INSKD 406包含用于产生某种加密输出的一个或多个特定的加密私钥。系统单元402上的应用程序408具有与EXSKD 404和INSKD 406相似的软件智能密钥单元(software smart key unit,SWSKU)410。应用程序408用SWSKU 410执行某些功能,以下对此进行详细说明。
参照图5,框图示出了按照本发明的实施例的系统单元,该系统单元包含内部智能密钥装置,并且使用外部智能密钥装置来启用内部智能密钥装置的加密功能。除了图5包括关于存储在各个部件内的加密密钥的附加的细节以外,图5与图4相似。
外部智能密钥装置(EXSKD)502为可移动硬件装置;最好,EXSKD 502为由系统管理员控制的并且起硬件安全令牌作用的便携式装置。具有电接口504的外部智能密钥装置502可以插入具有电接口508的系统单元506;外部智能密钥装置502与系统单元506通过它们各自的接口实现电气接合,从而交换代表数字信息的电信号。
外部智能密钥装置502包含加密引擎510,用于利用存储在外部智能密钥装置502中的各种数据项来执行加密功能。以这样的方式存储EXSKD私钥512,使得它不能被EXSKD 502外部的实体读取或访问;EXSKD 502不包含发送或以其他方式提供EXSKD私钥512的拷贝的功能。EXSKD公钥证书514包含EXSKD公钥516的拷贝,与EXSKD私钥512对应,作为不对称加密密钥对。EXSKD 502还包含INSKD公钥证书518的拷贝,其本身包含INSKD公钥520的拷贝,与INSKD私钥526对应,作为不对称加密密钥对。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的拷贝,其本身包含INSKD公钥534的拷贝,与EXSKD私钥512对应,作为不对称加密密钥对。EXSKD公钥证书532的拷贝可以被写到INSKD 522上,作为其制造和初始化处理的一部分。
在另外的实施例中,INSKD私钥526和INSKD公钥530可以用于其他功能。在图5所示的优选实施例中,为了在INSKD 522与EXSKD 502之间进行通信,保留INSKD私钥526和INSKD公钥530,同时INSKD 522使用用于其他功能的一个或多个其他加密密钥对。在本例中,INSKD_SW私钥536由INSKD 522使用,用于保护INSKD522与应用程序540中的软件智能密钥单元(SWSKU)538之间的通信。INSKD_SW公钥证书542包含INSKD_SW公钥544的拷贝,与INSKD_SW私钥536对应,作为不对称加密密钥对。INSKD 522还包含SWSKU公钥证书546的拷贝,其本身包含SWSKU公钥548的拷贝,与SWSKU私钥550对应,作为不对称加密密钥对。
系统单元506支持执行包含SWSKU 538的应用程序540,SWSKU 538本身包含加密引擎552,用于利用存储在软件智能密钥单元538中的各种数据项执行加密功能。SWSKU 538不包含发送或以其他方式提供SWSKU私钥550的拷贝的功能。SWSKU公钥证书554包含SWSKU公钥556的拷贝,其与SWSKU私钥550对应,作为不对称加密密钥对。SWSKU 538还包含INSKD_SW公钥证书558的拷贝,其本身包含INSKD_SW公钥560的拷贝,与INSKD_SW私钥536对应,作为不对称加密密钥对。如以下更详细说明的,可以对SWSKU 538进行数字签名。在图5所示的例子中,SWSKU 538包含已经在SWSKU 538之上利用INSKD_SW私钥536计算的数字签名562;换句话说,INSKD 522已经利用INSKD_SW私钥536对SWSKU538进行了数字签名。
参照图6,流程图示出了用于启用主机系统的内部智能密钥装置的加密功能的总体处理。当外部智能密钥装置与包括内部智能密钥装置的系统单元电气接合时,处理自框602开始。例如,IT管理员可以将外部智能密钥装置插入包括用于接纳外部智能密钥装置的槽的接收单元。然后,在框604期间,内部智能密钥装置和外部智能密钥装置执行相互验证过程,此后,在框606期间,允许内部智能密钥装置执行加密功能,并且,处理结束。可以假设,相互验证过程中的任何错误导致内部智能密钥装置持续禁用。在限制性较小的实施例中,可以由在主机系统上运行的任何应用程序调用内部智能密钥装置的加密功能。而在限制性较大的实施例中,只能由包括软件智能密钥单元的应用程序调用内部智能密钥装置的加密功能,如图7所示。
参照图7,流程图示出了按照本发明的实施例的,由特定软件智能密钥单元使用的、用于启用主机系统的内部智能密钥装置的加密功能的处理的流程图。当包含软件智能密钥单元的应用程序或小应用程序(applet)例如通过应用编程接口调用内部智能密钥装置的加密功能时,处理自框702开始。然后,在框704期间,内部智能密钥装置和软件智能密钥单元执行相互验证过程,此后,在框706期间,允许内部智能密钥装置为软件智能密钥单元执行加密功能,并且,处理结束。假设主机系统上的多个软件智能密钥单元已经完成了与内部智能密钥装置的相互验证过程,则可以同时允许内部智能密钥装置代表多个软件智能密钥单元执行加密功能。
在外部智能密钥装置保持与包含内部智能密钥装置的系统单元接合时,允许内部智能密钥装置提供起证书管理机关的作用的功能,即,生成新的公共证书。在一个实施例中,当安装了新的软件包时,应该使外部智能密钥装置与包含内部智能密钥装置的系统单元接合。在软件安装期间,可以给新软件包颁发新公共证书;与新颁发的数字证书中的公钥对应的私钥可以被嵌在软件包中,并且,可以通过使内部智能密钥装置对软件包进行签名,对私钥进行保护。此外,在环境中,可以对嵌入了私钥的JAR文件和
Figure C20058003620000211
数据包进一步进行密封,从而防止恶意用户篡改私钥。
参照图8,流程图示出了按照本发明实施例的,用于禁用主机系统的内部智能密钥装置的加密功能的处理。当外部智能密钥装置在电气上与包含内部智能密钥装置的系统单元脱离(disengage)时,例如,在外部智能密钥装置已经被插入并且已经启用内部智能密钥装置之后的某个随后的时刻,处理在框802中开始。当系统单元检测到外部智能密钥装置脱离时,在框804期间,内部智能密钥装置被禁用,不再执行加密功能,处理结束。
图8中示出的处理作为图6或图7中示出的处理的补充处理运行。应该注意,依据本发明的实施方案,内部智能密钥装置仍然可以执行某些功能,从而它不被完全禁用。可以假设,可以通过软件或硬件使内部智能密钥装置中的加密功能启用或禁用。例如,在硬件模式中,可以利用必须根据表示是否已经接受外部智能密钥装置的使能状态进行设定或清除的某些触发器或其他机构来防止内部智能密钥装置中的特定电路的运行进入可操作状态;在软件模式中,通过对在逻辑上控制加密功能的执行的特定使能标志进行设定或清除,可以阻止某些加密功能的运行。
参照图9A-9B,两个流程图示出了在图6的框604中示出的相互验证过程的更多细节。图9A示出了内部智能密钥装置对外部智能密钥装置进行验证的处理,而图9B示出了外部智能密钥装置对内部智能密钥装置进行验证的处理。图9A中示出的处理可以在图9B中示出的处理之前进行,反之亦然;根据实施本发明的方式,这些处理可以是独立的和/或可以例如通过表示正在试图进行的操作的适当信号或状态标志同时进行。
参照图9A,当内部智能密钥装置利用外部智能密钥装置的公钥对消息例如随机文本串进行加密时,处理自框902开始。在框904期间,内部智能密钥装置通过主机系统的适当接口,将经过加密的消息传送到外部智能密钥装置,然后,在框906期间,外部智能密钥装置利用其私钥对经过加密的消息进行解密。在框908期间,外部智能密钥装置用内部智能密钥装置的公钥对经过解密的消息进行加密,并且,在框910期间,将经过加密的消息传递到内部智能密钥装置。然后,在框912期间,内部智能密钥装置用其私钥对经过加密的消息进行解密,并且,在框914期间,将接收到的消息与其原始消息进行比较。如果两个消息匹配,则在框916期间,内部智能密钥装置例如利用适当信号或通过设定逻辑标志变量,提供内部智能密钥装置已经确定外部智能密钥装置真实可信的指示,由此结束处理。
参照图9B,当外部智能密钥装置利用内部智能密钥装置的公钥对消息例如随机文本串进行加密时,处理自框922开始。在框924期间,外部智能密钥装置将经过加密的消息传送到内部智能密钥装置,然后,在框926期间,内部智能密钥装置利用其私钥对经过加密的消息进行解密。在框928期间,内部智能密钥装置用外部智能密钥装置的公钥对经过解密的消息进行加密,并且,在框930期间,将经过加密的消息传递到外部智能密钥装置。然后,在框932期间,外部智能密钥装置用其私钥对经过加密的消息进行解密,并且,在框934期间,将接收到的消息与其原始消息进行比较。如果两个消息匹配,则在框936期间,外部智能密钥装置例如利用适当信号或通过设定逻辑标志变量,提供外部智能密钥装置已经确定内部智能密钥装置真实可信的指示,由此结束处理。
参照图10A-10B,两个流程图示出了在图7的框704中示出的相互验证过程的更多细节。图10A示出了软件智能密钥单元对内部智能密钥装置进行验证的处理,而图10B示出了内部智能密钥装置对软件智能密钥单元进行验证的处理。图10A中示出的处理可以在图10B中示出的处理之前进行,反之亦然;根据实施本发明的方式,这些处理可以是独立的和/或例如可以通过表示正在试图进行的操作的适当消息或状态标志同时进行。
参照图10A,当软件智能密钥单元利用内部智能密钥装置的公钥对消息例如随机文本串加密时,处理自框1002开始。在框1004期间,软件智能密钥单元将经过加密的消息传送到内部智能密钥装置,然后,在框1006期间,内部智能密钥装置利用其私钥对经过加密的消息进行解密。在框1008期间,内部智能密钥装置用软件智能密钥单元的公钥对经过解密的消息进行加密,并且,在框1010期间,将经过加密的消息传递到软件智能密钥单元。然后,在框1012期间,软件智能密钥单元用其私钥对经过加密的消息进行解密,并且,在框1014期间,将接收到的消息与其原始消息进行比较。如果两个消息匹配,则在框1016期间,软件智能密钥单元例如利用适当信号或通过设定逻辑标志变量,提供软件智能密钥单元已经确定内部智能密钥装置真实可信的指示,由此结束处理。
与图10A相比,图10B示出了将会话密钥而不是随机文本串用作在两个实体之间传递的消息。如果两个实体之间的相互验证处理成功完成,则在两个实体间的会话期间,会话密钥用于保护随后的消息流(traffic);可以对会话进行计时,或者,会话可以由于特殊事件如软件实体执行结束或硬件实体断电而终止。会话密钥可以在加密之前放在较大的包含其他信息的消息内,此后,经过加密的消息在两个实体之间传递。在另一个实施例中,将随机文本串用于验证过程,然后,两个实体可以交换会话密钥。如以下更详细说明的,在验证处理期间,附加信息可以安全地在两个实体之间传递,从而减少了用于交换信息的动作数量。
参照图10B,当内部智能密钥装置利用软件智能密钥单元的公钥对会话密钥加密时,处理自框1022开始。在框1024期间,内部智能密钥装置向软件智能密钥单元传送经过加密的会话密钥,然后,在框1026期间,软件智能密钥单元利用其私钥对经过加密的会话密钥进行解密。在框1028期间,软件智能密钥单元用内部智能密钥装置的公钥对经过解密的会话密钥进行加密,并且,在框1030期间,将经过加密的会话密钥传递到内部智能密钥装置。然后,在框1032期间,内部智能密钥装置用其私钥对经过加密的会话密钥进行解密,并且,在框1034期间,将接收到的会话密钥与其原始会话密钥进行比较。如果会话密钥的两个版本匹配,则在框1036期间,内部智能密钥装置例如利用适当消息或通过设定逻辑标志变量,提供内部智能密钥装置已经确定软件智能密钥单元真实可信的指示,由此结束处理。
可以结合图7所示的处理,执行附加的安全动作。例如,在框702中,应用程序或小应用程序已经请求使用嵌入内部智能密钥装置中的功能。在图10B中示出的处理开始之前的某个时刻,内部智能密钥装置可以执行附加动作,用于检验请求应用程序或小应用程序中的软件智能密钥单元是否包含安全代码。如以上针对图5叙述的,SWSKU 538可以被数字签名;SWSKU 538包含已经利用INSKD_SW私钥536在SWSKU 538之上计算的数字签名562。因此,内部智能密钥装置可以通过检验与软件智能密钥单元相关联的数字签名,来检验请求应用程序或小应用程序中的软件智能密钥单元是否包含安全代码。
Figure C20058003620000241
环境中,可以将软件智能密钥单元实现为经过签名的JAR文件;在一个实施例中,内部智能密钥装置被用于检验经过签名的JAR文件的数字签名。在一个不同的实施例中,可以对JAR文件和
Figure C20058003620000242
数据包进一步密封(seal),使得类加载器(class loader)强行从密封的JAR文件中装载数据包中的所有代码。密封JAR文件和
Figure C20058003620000243
数据包的动作能够防止恶意用户通过将代码注入类路径来修改功能。此外,类加载器本身可以被签名并被密封,使得类加载器的完整性能够被检验。
在更一般的计算环境中,尽管内部智能密钥装置可以对软件智能密钥单元进行数字签名,并且随后可以对数字签名进行确认,可以在内部智能密钥装置的帮助下,通过数据处理系统内的适当的操作系统模块,例如用于装载软件模块以便执行的程序加载器,对确保对软件智能密钥单元进行签名并对其进行确认的处理进行控制。在允许软件模块执行之前,程序加载器可以执行附加安全处理。此外,程序加载器本身可以被签名并被密封,使得程序加载器的完整性能够被检验。
虽然上述处理提供了用于确保软件智能密钥单元的完整性的机制,但是,数据处理系统内的软件智能密钥单元的操作仍然被认为易受攻击,这是由于通过查阅包括软件智能密钥单元的代码,可以看到并复制软件智能密钥单元的加密密钥;可以假设,加密密钥以明文(inthe clear)被存储在软件智能密钥单元内。
因此,为了保护软件智能密钥单元,尤其是其私钥,可以结合图7中示出的处理,执行另一个安全动作。可以在稍早的某个时刻,对软件智能密钥单元加密,由此隐藏软件智能密钥单元内的任何敏感信息,尤其是其私钥。在不同实施例中,可以对包括软件智能密钥单元的软件模块加密。例如,当在数据处理系统上安装软件模块时,作为用于包括软件模块的应用程序的安装过程的一部分,数据处理系统上的内部智能密钥装置可以对软件模块加密。
在执行这个附加动作的系统中,软件智能密钥单元和/或包括软件智能密钥单元的软件模块需要在执行之前解密。在与上面关于利用数字签名保护软件智能密钥单元的完整性所述的时刻相似的时刻,例如,在开始图10B中示出的处理之前的某个时刻,内部智能密钥装置执行对软件智能密钥单元和/或包括软件智能密钥单元的软件模块进行解密的附加动作。同样,以与上述方式相似的方式,可以在内部智能密钥装置的帮助下,通过数据处理系统内的适当的操作系统模块,对解密处理进行控制。以下提供关于在为了结合内部智能密钥装置使用而进行安装时对软件模块进行修改的处理以及关于以安全方式执行这种软件模块的处理的进一步细节。
参照图11A,流程图示出了内部智能密钥装置中的、用于依照软件智能密钥单元的请求进行操作的处理,其中,根据是否存在外部智能密钥装置,启用或禁用操作。当内部智能密钥装置接收到来自软件智能密钥单元的请求消息时,处理自框1102开始;请求消息包含消息类型变量,表示软件智能密钥单元正在请求的操作的类型。在框1104期间,确定软件智能密钥单元是否已经被内部智能密钥装置验证;可以通过利用内部智能密钥装置在例如针对图10B描述的先前验证过程期间传递到软件智能密钥单元的会话密钥成功地对接收的消息的内容进行解密,来进行这样的确定。如果软件智能密钥单元还没有被验证,则在框1106期间,内部智能密钥装置生成适当的出错响应,并且,在框1108期间,将该响应消息返回到请求软件智能密钥单元,由此结束处理。
如果软件智能密钥单元已经被验证,则在框1110期间,内部智能密钥装置确定外部智能密钥装置是否仍然与系统单元电气接合。例如,该确定可以仅对特殊寄存器进行检查,当系统单元与外部智能密钥装置之间的电连接已经断开时,该特殊寄存器应该被清零。如果外部智能密钥装置没有与系统单元电气接合,则内部智能密钥装置在框1106期间生成出错响应,并且在框1108期间将该响应消息返回到软件智能密钥单元,由此结束处理。
如果软件智能密钥单元已经被验证,并且外部智能密钥装置仍然与系统单元电气接合,则如果可能,内部智能密钥装置为软件智能密钥单元执行所请求的功能。框1112和框1114示出了可以由内部智能密钥装置提供的功能的例子;列举的这些例子不意味着,在本发明的其他实施中其他功能不可用。在优选实施例中,在相互验证之后,只有当外部智能密钥装置保持与内部智能密钥装置电气接合时,内部智能密钥装置执行以下功能:颁发新的数字证书,其间起证书管理机关的作用;并且,利用内部智能密钥装置的私钥对软件模块签名,其中,私钥与可用公钥证书对应。应该注意,本发明不允许用于检索内部智能密钥装置的私钥的任何接口;因此,只有内部智能密钥装置能够利用其私钥进行签名操作。
如果软件智能密钥单元已经请求对嵌在请求消息内的数据项进行数字签名,则在框1112期间,内部智能密钥装置利用适当的私钥,计算关于数据项的数字签名,并且,将数字签名(最好,与它返回的数据项的拷贝一起)插入响应消息。如果软件智能密钥单元已经请求数字证书,则在框1114期间,内部智能密钥装置利用适当的私钥生成数字证书,并且将数字证书插入响应消息;数字证书可以包括由软件智能密钥单元在请求消息内提供的各种识别信息。在已经生成了适当的响应消息之后(包括用适当的会话密钥对任何敏感数据加密),在框1108将响应消息返回软件智能密钥单元,处理结束。
再次参照框1112,可以对任何类型的数字数据项进行签名。再次参照图4,应用程序408代表并入了本发明的功能的许多不同类型的应用程序。在一个实施例中,应用程序可以是对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将来自软件智能密钥单元1208-1212的主秘密与用于请求软件智能密钥单元的识别信息一起存储。例如,主秘密注册处1214包含与主秘密1218相关联的SWSKU标识符1216;对SWSKU ID1216进行的查表操作将使它与主秘密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颁发了数字证书。如上所述,证书管理机关是可信实体,它代表其他实体颁发数字证书,其他实体可能是自然人用户,也可能代表编程实体或硬件实体,如应用程序或数据处理装置。因此,可以由用户,如图2或图3中示出的用户202或302,代表服务器1604和1606;或者,服务器1604和1606可以是某些其他类型的编程实体,如图4中示出的应用程序408。证书管理机关1602已经给服务器1604和1606颁发了数字证书。此后,如本发明所描述的,服务器1604和1606可以通过与证书管理机关1602进行相互验证,建立与证书管理机关1602的信任关系1608和1610。在某个时刻,在请求服务器1606提供的服务时,服务器1604可以将它的数字证书与对应的私钥的拥有证明,例如已经用它的私钥进行过签名的数据项,一起出示给服务器1606。由于服务器1602信任证书管理机关1602,因此,服务器1606可以通过检验从服务器1604接收的数字证书被证书管理机关1602进行过签名,来对服务器1604进行验证。反过来的情况也成立,并且,服务器1604可以对服务器1606进行验证。以这样的方式,服务器1604和服务器1606能够在它们自己之间建立信任关系。
参照图16B,服务器1614已经与服务器1606建立了信任关系1616。在该例中,没有给信任关系1616提供基础,并且,服务器1604还没有接受与服务器1614的信任关系1616。
参照图16C,相似的标号表示与图16A中示出的要素相似的要素;图16C示出了图16A中示出的要素以外的要素。证书管理机关1620已经给服务器1606和1622颁发了数字证书。假设证书管理机关1620已经给服务器1606和1622颁发了数字证书,则认为证书管理机关1620已经分别建立了与服务器1606和1622的信任关系1624和1626。在服务器1622请求服务器1606提供的服务时,在某个时刻,服务器1622可以将它的数字证书出示给服务器1606。由于服务器1622信任证书管理机关1620,因此,服务器1606可以通过检验从服务器1622接收的数字证书被证书管理机关1620进行过签名,来对服务器1622进行验证。反过来的情况也成立,并且,服务器1622可以对服务器1606进行验证。以这样的方式,服务器1622和服务器1606能够在它们自己之间建立信任关系1628。
信任关系可以传递。如以上针对图16B描述的,服务器1606已经建立了与服务器1614的信任关系1616。但是,服务器1604没有承认信任关系1616,这可能是由于服务器1606没能提供关于信任关系1616的基础的足够信息。不过在图16C中,服务器1606能够在已经与服务器1606建立了信任关系的服务器当中,提供关于其信任关系的足够信息。在本例中,服务器1606向服务器1604提供关于信任关系1628的信息。在给定了服务器1604与服务器1606之间的信任关系1612和服务器1606与服务器1622之间的信任关系1628的情况下,则服务器1604和服务器1622能够在服务器1604与服务器1622之间建立传递信任关系1630。服务器可以按照上述的证书管理协议传送证书。
以这样的方式,服务器能够在它们自己与证书管理机关之间形成复杂的、分级的信任关系。可以将每个证书管理机关看成树结构的根;尤其当树结构内的其他实体还起第二证书管理机关的作用时,证书管理机关有时被称为根管理机关。使用多个根证书管理机关允许多个树结构重叠,如图16C所示。回到本发明,剩余的附图示出了本发明的实施例的例子,其中,利用上面已经描述的内部和外部智能密钥装置的优点来实施本发明,从而构成信任模型。
参照图17,框图示出了按照本发明实施例的,由基于内部智能密钥装置提供的信任的信任关系构成的信任模型的例子。本发明的内部智能密钥装置在充当证书管理机关的过程中,提供了高度的可信度。如以上参考其他附图所述的,内部智能密钥装置提供用于保护信息的机制。如以上参考其他附图所述的内部智能密钥装置提供用于保护信息的机制。如以上针对图11描述的,内部智能密钥装置可以提供的功能之一是颁发数字证书。由于内部智能密钥装置将被实施为数据处理系统内的系统单元部分,例如主板上的专用芯片,因此,应该在物理上对内部智能密钥装置进行保护,使得恶意用户难以实施不良企图。此外,依据系统管理员可以通过使用外部智能密钥装置对内部智能密钥装置颁发数字证书进行控制的事实,提高了内部智能密钥装置的可信度。因此,内部智能密钥装置颁发数字证书的能力允许内部智能密钥装置起信任模型的基础的作用。
以这样的方式,不同类型的实体,例如,不同种类的硬件和软件计算资源能够在它们自己与起基于硬件的证书管理机关的内部智能密钥装置之间,形成复杂的、分级的信任关系。在这样的信任模型中,信任的根在于由数据处理系统上的内部智能密钥装置提供的证书管理机关功能。如图17所示,信任关系的分级结构可以表示为倒金字塔形,其中,内部智能密钥装置位于倒金字塔的顶点,并且,计算资源形成了倒金字塔。在分布式数据处理环境中,如图17所示,信任关系可以被看作重叠的倒金字塔的集合,其中,每个金字塔基于每台机器上的内部智能密钥装置。
在图17中,信任模型的例子示出了两个内部智能密钥装置1702和1704,内部智能密钥装置1702和1704分别包括证书管理机关模块1706和1708,证书管理机关模块1706和1708包含用于允许每个内部智能密钥装置起证书管理机关作用的功能。内部智能密钥装置1704已经向二级软件证书管理机关模块1710颁发了证书,二级软件证书管理机关模块1710是在内部智能密钥装置1704所在的同一个系统上执行的软件应用程序。在数据处理系统内,分级结构中的上面的软件证书管理机关模块,如二级软件证书管理机关模块1710,从信任分级结构中的下面的软件证书管理机关获得权力,如数据处理系统上的内部智能密钥装置即内部智能密钥装置1704的证书管理机关功能提供的根信任。例如,内部智能密钥装置1704可以对二级软件证书管理机关模块1710的数字证书进行签名,该二级软件证书管理机关模块1710利用对应的私钥对它颁发的数字证书签名。以这样的方式,二级软件证书管理机关模块1710起内部智能密钥装置1704的下级证书管理机关的作用。这将反映在以内部智能密钥装置1704为根的证书链中。在另一个例子中,内部智能密钥装置1704可以对下级软件证书管理机关模块进行签名,而该下级软件证书管理机关模块本身又可以对另一个下级软件证书管理机关模块签名。
内部智能密钥装置1702已经向实体1712-1718颁发了数字证书,而二级软件证书管理机关1710已经向实体1722-1728颁发了数字证书,由此在证书颁发者与证书颁发对象之间建立信任关系;实体1712-1718以及实体1722-1728可以是应用程序或者某些其它类型的编程实体。此外,二级软件证书管理机关1710已经向实体1716颁发了数字证书,由此在这两个实体之间建立信任关系。
尽管图17代表了这样的信任模型,其中所有计算资源可以包括用于它们自己彼此验证的证书处理功能,但是,这些计算资源也需要被配置为包括证书处理功能。例如,如果图17中的不同实体代表软件应用程序,则这些软件应用程序需要包括已经被提供了唯一的公钥证书并且具有唯一的、对应的私钥的模块。
例如,独立起作用、因而需要与其他资源进行验证操作的能力的每个计算资源可以例如以图5中示出的方式具有嵌入的软件智能密钥单元,其中,应用程序540包含SWSKU 538。应用程序540包含SWSKU 538,SWSKU 538包括SWSKU私钥550;SWSKU公钥证书554包含与SWSKU私钥550对应的SWSKU公钥556的拷贝,作为不对称加密密钥对。SWSKU 538还包含INSKD_SW公钥证书558的拷贝。这里,应用程序540是根基在INSKD 522的信任体系的一部分。利用嵌在SWSKU 538内的信息和SWSKU 538的操作能力(functionalability),应用程序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可以只对通过由外部智能密钥装置的存在控制的处理安装在系统上的软件模块限制软件执行。在本发明的基于
Figure C20058003620000351
的实施方式中,可以要求所有
Figure C20058003620000352
应用程序包含在安装应用程序过程期间放入应用程序中的软件智能密钥单元;如上所述,可以对所有JAR文件和
Figure C20058003620000353
数据包进行密封,使得类加载器将强行从密封的JAR文件中装载数据包中的所有代码。
参照图19,流程图示出了按照本发明实施例的,用于生成操作系统模块的处理,该操作系统模块包含软件智能密钥单元,使得操作系统模块能够相互进行验证操作。处理自框1902开始,操作系统安装应用程序对是否存在至少一个还没有被处理过的附加操作系统模块进行检查。如果不存在,则处理结束。如果存在,则在框1904中,操作系统安装应用程序从分布介质中读取操作系统模块。例如,再次参照图18,分布介质上的操作系统模块不完整;没有进一步处理,操作系统模块不能被安装。操作系统模块1812并入了采用分布式版本的操作系统文件形式的存根例程(stub routine)或空模块;如果安装了并且在不进一步修改的情况下执行了这些操作系统文件,则操作系统服务将不能执行验证操作,由此使操作系统不能运行。
因此,在操作系统安装应用程序已经从诸如磁带或CD-ROM的分布介质中读取了操作系统模块1812之后,在框1906期间,操作系统安装应用程序从当前正在处理的操作系统模块中删除存根例程或空模块。在框1908期间,操作系统安装应用程序生成不对称加密密钥对,然后,在框1910期间,请求本地系统单元上的内部智能密钥装置代表当前正在处理的操作系统模块根据新生成的密钥对颁发数字证书。以这样的方式,操作系统安装应用程序的SWSKU模仿实体,代表该实体数字证书正在被请求并且被颁发;或者,操作系统安装应用程序内的软件证书管理机关功能可以颁发数字证书,由此要求软件证书管理机关的公钥证书与内部智能密钥装置的公钥证书一起成为实体的证书链的一部分,代表该实体数字证书正在被请求并且被颁发。可以假设,操作系统安装操作受拥有外部智能密钥装置的系统管理员的控制;通过在操作系统安装过程期间,使外部智能密钥装置与系统单元接合,系统管理员允许内部智能密钥装置颁发数字证书,由此防止安装过程被恶意用户以某种方式欺骗。还可以假设,每个操作系统模块具有在覆盖了所有操作系统模块的命名空间(namespace)内的唯一的标识符,使得这个唯一的标识符可以被并入数字证书。
然后,在框1912期间,操作系统安装应用程序生成软件智能密钥单元的实例。新生成的SWSKU并入了由代表新的SWSKU的操作系统安装应用程序生成的唯一的私钥。新的SWSKU还并入了与由本地INSKD颁发的私钥对应的公钥证书;此外,还可以包括构成了用于新的SWSKU的数字证书链的一部分的任何其他公钥证书。证书链代表穿过信任体系的信任路径。虽然公钥证书被自由授予并且可以自由获得,但是,建立证书链在计算方面非常昂贵;因此,包括新的SWSKU可能需要用来代表其证书链的任何数字证书允许新的SWSKU在执行时在验证操作期间快速出示其证书链,由此使验证操作更有效。
然后,在框1914期间,操作系统安装应用程序通过将新的SWSKU嵌入当前正在被处理的操作系统模块,即,取代被移除的存根或空模块,生成完全可操作模块,如图18中的模块1814中的一个。然后,处理返回到框1902,检查是否还有未处理的操作系统模块,如果没有,则处理结束。当操作系统模块被处理时,按照需要,将新生成的SWSKU模块并入经过修改的操作系统模块。部署的操作系统模块和/或新嵌入的SWSKU模块也可以被SWSKU 1810数字签名,以显示它们的真实性。
以这样的方式,使所有操作系统文件能够利用嵌入的、用于实现信任关系的功能,进行验证操作。在操作系统安装过程期间,INSKD1806起颁发数字证书的证书管理机关的作用,或者,操作系统安装应用程序1808起给模块1814颁发数字证书的证书管理机关的作用;在它们的证书链中,模块1814中的每个模块都具有它自己的私钥以及对应的公钥证书、INSKD 1806的公钥证书,并且,如果由于它起证书管理机关的作用而需要,模块1814中的每个模块还具有操作系统安装应用程序1808的公钥证书。因此,每个模块都具有维护(assert)基于INSKD 1806的信任体系的证书链。在运行时环境中,当模块1814中的第一模块试图向模块1814中的第二模块进行验证时,第一模块会将其证书链与适当的拥有证明、例如利用对应的私钥签名的数字签名,一起出示给第二模块;由于第二模块信任第一模块的证书链基于的INSKD 1806,因此,第二模块将验证并且信任第一模块。由于模块1814中的每个模块都信任INSKD 1806,并且能够出示与INSKD 1806相关的证书,因此,每个模块都可以信任其他相似的模块,由此实现针对图17描述的信任模型。
参照图20,框图示出了按照本发明实施例的,用于生成项目代码(project code)的数据处理系统,其中,每个编程实体包含用于根据内部智能密钥装置在信任体系中建立信任关系的功能。图20与图4相似;系统单元2002与外部智能密钥装置2004接口,并且,系统单元2002还包含内部智能密钥装置2006。
在本例中,软件配置管理(software configuration management,SCM)应用程序2008负责管理所有代码模块以及用于正在创建软件应用程序的特定项目的其他类型的文件。在软件工程师创建项目文件时,项目文件被登记到SCM系统中,SCM系统能够根据不符报告(discrepancy report)和项目时间线,跟踪源代码的版本。工程师将存根例程或空模块并入项目模块,使得能够在不考虑完全实现验证因素的情况下,测试并集成项目模块的初级版本。
但是,当需要生成可以分发给用户或以其他方式部署在生产环境中的所谓生产级应用程序时,SCM系统去除存根和空模块,并且用嵌入的软件智能密钥单元替换它们,这些软件智能密钥单元就是软件模块本身。因此,当进行最后的编译或链接操作时的某个时刻,SCM应用程序2008中的SWSKU 2010生成不对称密钥对,连同包含新生成的密钥对和对应的数字证书的SWSKU模块。在对项目模块2012进行处理时,按照需要,将新生成的SWSKU模块链接到项目模块2014中。SWSKU 2010还可以对生产级的项目模块2014和/或新嵌入的SWSKU模块进行数字签名,以显示它们的真实性。
以这样的方式,需要完成验证操作的能力的项目应用程序内的每个计算资源都可以配备有能够进行验证操作的软件智能密钥单元。但是,图20中示出的情况与图18中示出的情况明显不同。在图18中,由系统单元1802上的操作系统安装应用程序1808对操作系统模块1814进行修改。在优选实施例中,已经由系统单元1802上的INSKD1806对已经颁发给经过修改的操作系统模块1816中的SWSKU的数字证书进行了签名。
因此,当经过修改的操作系统模块正在运行时环境中执行时,为经过修改的操作系统模块颁发数字证书的证书管理机关是运行时环境的一部分。这与图20中呈现的情况不同。当经过修改的项目模块正在运行时环境中执行时,系统单元的内部智能密钥装置已经对嵌在经过修改的项目模块的SWSKU中的数字证书进行了签名,其中,在系统单元上,创建了项目应用程序的生产版本。换句话说,给经过修改的项目模块中的SWSKU颁发数字证书的证书管理机关不是运行时环境的一部分。当经过修改的项目模块试图完成与另一个经过修改的项目模块的验证操作时,由于经过修改的项目模块中的每一个信任系统单元的内部智能密钥装置,因此,验证操作可以完成,其中,在系统单元上,创建了项目应用程序的生产版本。但是,当经过修改的项目模块试图完成与操作系统模块,例如操作系统模块1814中的一个的验证操作时,由于操作系统模块不信任起用于操作系统模块的数字证书的证书管理机关作用的内部智能密钥装置,因此验证操作失败。因此,需要用于对运行时环境中的信任关系进行扩展的机制。
参照图21,流程图示出了按照本发明实施例的,用于对内部智能密钥装置的证书链进行扩展的处理。如上所述,在运行时环境内正在执行的某些模块可以具有建立信任关系的功能,该信任关系基于在运行时环境内存在的内部智能密钥装置;由于对这些模块来说,内部智能密钥装置起证书管理机关的作用,因此,由于内部智能密钥装置处在信任体系的根部使得这些模块能够出示便于检验的数字证书链。当应用程序被安装在支持本发明的内部智能密钥装置的运行时环境中时,由于根证书管理机关不同,因此,应用程序模块可以具有在还没有能力与其他模块建立信任关系的应用程序模块之间建立信任关系的功能;其他模块不具有相信由所述应用程序模块出示的数字证书的能力。
以下针对图21描述的处理提供了用于允许这些应用程序模块将它们自己建立为可信的机制。最好当正在包括内部智能密钥装置的运行时环境内安装应用程序模块时执行这个处理,尽管可以在在运行时环境内执行应用程序模块之前的任何时候对运行时环境进行修改。然而,在本例中,不需要对应用程序模块进行修改。因此,以下描述的处理与针对图19描述的处理不同,在针对图19描述的处理中,需要对操作系统模块进行修改。
当内部智能密钥装置接收到来自安装应用程序或者某些其他形式的管理实用程序中的软件智能密钥单元的请求消息时,处理从框2102开始,其中,请求消息表示对维护(assert)外来的、即本地运行时环境之外的内部智能密钥装置的根数字证书的请求。例如,管理实用程序可以访问伴随在本地运行时环境内已经安装或正在安装的应用程序模块的生产版本的配置文件。这些配置文件包含由外来内部智能密钥装置使用的数字证书的拷贝,以便例如以与针对图20描述的方式相似的方式,为嵌在应用程序模块内的软件智能密钥单元生成数字证书。换句话说,由制作正在安装的应用程序的销售商的运行时环境的外来内部智能密钥装置使用的公钥证书的拷贝可以伴随配置文件。在当前运行时环境的内部智能密钥装置没有检查共同信任的实体的能力的情况下,提出维护外来内部智能密钥装置的数字证书的请求;由于每个内部智能密钥装置起它自己的信任体系内的根受信实体的作用,因此,没有其他共同信任的实体,在这个实体上,可以为当前运行时环境的内部智能密钥装置和外来内部智能密钥装置找到信任。因此,维护数字证书的处理必须是为了完成任务而提供信任的安全过程。
为了确保对维护外来内部智能密钥装置的数字证书的操作的信任,在框2104期间,确定内部智能密钥装置是否已经验证了请求应用程序的软件智能密钥单元;通过利用在验证过程之前,例如,针对图10B描述的由内部智能密钥装置传递给软件智能密钥单元的会话密钥,成功地对接收的消息的内容进行解密,可以进行该确定。如果软件智能密钥单元还没有被验证,则在框2106期间,内部智能密钥装置生成适当的出错响应,并且,在框2108期间,将响应消息返回到请求软件智能密钥单元,由此结束处理。
如果软件智能密钥单元已经被验证,则在框2110期间,内部智能密钥装置确定外部智能密钥装置是否仍然与系统单元电气接合。以这样的方式,整个过程被确定为在具有执行该过程的特权的系统管理员的控制下。如果外部智能密钥装置没有与系统单元电气接合,则内部智能密钥装置在框2106生成出错响应,并且,在框2108,将响应消息返回到软件智能密钥单元,由此结束处理。
如果软件智能密钥单元已经被验证,并且外部智能密钥装置仍然与系统单元电气接合,则内部智能密钥装置为软件智能密钥单元执行请求的功能。在框2112期间,内部智能密钥装置将外来内部智能密钥装置的所维护的根证书添加到信任的根证书的表格或列表中,这可能包含前面已经维护的多个证书。在已经在框2114期间建立了适当的响应消息之后,在框2108将响应消息返回到软件智能密钥单元,由此结束处理。
参照图22,框图示出了按照本发明实施例的信任模型的例子,该信任模型由信任关系构成,而信任关系基于由单个本地内部智能密钥装置提供的信任,这个单个本地内部智能密钥装置保持包含用于外来内部智能密钥装置的多个根证书的证书链。如针对图5和其他附图说明的,内部智能密钥装置拥有至少一个私钥及其对应的公钥证书;相似地,图22示出了包含数字证书2204的内部智能密钥装置2202。如针对图21说明的,需要系统管理员将附加的根证书维护到特定运行时环境的信任体系中;图22示出了数字证书2206和2208以前已经被维护,并且现在被存储在内部智能密钥装置2202中,作为其信任的证书链的一部分。
如上所述,当应用程序模块被安装到支持本发明的内部智能密钥装置的运行时环境中时,由于根证书管理机关不同,因此,给应用程序模块配备了这样的功能,即,用于在没有能力在运行时环境中与其他模块建立信任关系的应用程序模块之间建立信任关系。可以认为应用程序模块驻留在一个信任体系中而其他模块驻留在一个不同信任体系内。
为了解决这个问题,针对图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示出了只有当系统管理员已经利用外部智能密钥装置启用操作时在内部智能密钥装置中进行的操作,与图11或图21相反,图23中示出的处理不要求通过外部智能密钥装置来启用操作。
参照图24,流程图示出了用于确定来自外来内部智能密钥装置的数字证书是否可信的处理。某些时候,模块请求访问受运行时环境内的另一模块控制的计算资源。假设两个模块还没有预先完成相互验证操作,则两个模块试图完成相互验证操作,例如,与针对图9A-9B描述的相似的相互验证操作。在本例中,可以假设正在对希望的计算资源进行控制的模块包括在基于本地内部智能密钥装置的本地信任体系内,而请求模块包括在基于外来内部智能密钥装置的信任体系内;但是,先前已经将用于外来内部智能密钥装置的根证书维护到本地智能密钥装置中。
当控制模块和请求模块已经开始验证操作时,处理自框2402开始。然后,在框2404期间,控制模块很可能直接从请求模块获得请求模块的数字证书;来自数字证书的公钥被用于确定请求模块是否拥有与公钥对应的私钥,尽管图24中没有示出这些动作。
为了确定请求模块的数字证书上的数字签名的真实性,控制模块需要外来内部智能密钥装置的数字证书的可信拷贝,由此提供与用于生成数字证书的私钥的对应的公钥的拷贝。尽管请求模块拥有用于已经颁发了请求模块的数字证书的外来内部智能密钥装置的数字证书的拷贝,由此允许请求模块向控制模块提供外来内部智能密钥装置的数字证书的拷贝,但是,控制模块需要用于获得外来内部智能密钥装置的数字证书的拷贝的独立并且可信的方法。在试图获得外来内部智能密钥装置的数字证书的拷贝的过程中,在框2406期间,控制模块获得当前正在由本地内部智能密钥装置保持的根证书链。
然后,在框2408期间,控制模块检验用于外来内部智能密钥装置的根证书是否在检索的根证书链中。如上所述,在图24所示的例子中,可以假设先前已经将用于外来内部智能密钥装置的根证书维护到本地智能密钥装置中。因此,框2406导致返回包括外来内部智能密钥装置的数字证书的拷贝的根证书链。
然后,在框2410期间,控制模块通过检验请求模块的数字证书上的数字签名,检验请求模块的数字证书的真实性,并且,处理结束。假设数字签名经过验证,则控制模块可以继续进行验证操作。
以下针对图25和图26,提供本发明的另一个实施例,这个实施方案依赖于前面已经描述的本发明的各个方面。如上所述,数据处理系统内的硬件安全单元,如内部智能密钥装置可以起证书管理机关的作用。如针对图17描述的,内部智能密钥装置的证书管理机关功能可以被看作信任模型的根,其中,数据处理系统内的计算资源是信任关系体系内的实体。像图17中那样,信任关系体系可以用倒金字塔代表,其中,内部智能密钥装置处在倒金字塔的顶点,而计算资源构成了倒金字塔。如针对图18-20描述的,硬件安全单元的证书管理机关功能可以用于对软件加密模块、即软件安全单元或软件智能密钥单元进行签名,并且,还向软件加密模块颁发数字证书。如以上简要描述的,可以对软件加密模块的软件包进行密封,以便防止代码被篡改。
参照图25,数据流图示出了按照本发明一个实施方案的,在用于实现硬件辅助信任模型的数据处理系统内的实体,其中,硬件辅助信任模型可以用于保证软件模块的完整性。在描述图25之前,在
Figure C20058003620000431
运行时环境内,对特定例子进行描述。在已经对包括某种形式的软件加密单元的
Figure C20058003620000432
应用程序的类文件进行密封以防止代码被篡改之后,利用类加载器提高程序完整性。为了确保类加载器可以被信任,类加载器同样需要被签名并且被密封。为了保证类加载器的完整性,用于装入类加载器的加载器,即,操作系统程序加载器,需要以某种方式被签名并且被密封。为了保证操作系统程序加载器的完整性,用于装入操作系统程序的加载器,即,数据处理系统的ROM中的引导加载器需要被签名并且被密封。
对于更一般的、非
Figure C20058003620000433
环境,在已经将软件加密模块的软件数据包密封以防止代码篡改之后,利用操作系统程序加载器提高程序完整性。为了确保操作系统程序加载器可以被信任,操作系统程序加载器同样需要被签名并且被密封。为了保证操作系统程序加载器的完整性,用于装入操作系统程序加载器的加载器、即系统ROM中的引导加载器,也需要被签名并且被密封。这些需要和操作反映在图25中。
引导ROM 2502已经被内部智能密钥装置2504的私钥签名;这可以发生在制造过程期间,在利用闪速存储器更新或者以某种其他方式对引导ROM进行配置的针对特定地点的安装过程期间。此后,引导ROM 2502能够执行与内部智能密钥装置2504的相互验证过程,由此在引导ROM 2502与内部智能密钥装置2504之间建立信任关系。
操作系统程序加载器2506也已经被内部智能密钥装置2504的私钥进行了签名;这可以按照针对图18和图19描述的处理发生。借助于内部智能密钥装置2504的帮助,通过对操作系统程序加载器2506的、经过密封的程序模块上的签名进行确认,引导ROM 2502能够保证操作系统程序加载器2506的完整性,其中,由于内部智能密钥装置2504通过完成相互验证过程,已经与引导ROM 2502建立了信任关系,因此内部智能密钥装置2504帮助引导ROM 2502。此后,操作系统程序加载器2506能够与内部智能密钥装置2504进行相互验证过程,由此在操作系统程序加载器2506与内部智能密钥装置2504之间建立信任关系。
应用程序模块2508已经被内部智能密钥装置2504的私钥,或者被操作系统中的、起证书管理机关作用的软件加密单元,利用起根证书管理机关作用的内部智能密钥装置2504进行了签名;这可以按照针对图20描述的处理发生。操作系统程序加载器2506能够借助于内部智能密钥装置2504,通过对经过密封的应用程序模块上的签名进行确认,保证应用程序模块2508的完整性,其中,由于内部智能密钥装置2504通过完成相互验证过程已经与操作系统程序加载器2506建立了信任关系,因此内部智能密钥装置2504帮助操作系统程序加载器2506。此后,为了按需要信任关系,应用程序模块2508能够与内部智能密钥装置2504、操作系统模块2510或其他应用程序模块2512进行相互验证过程。
参照图26,流程图示出了按照本发明的实施方案的,用于保证软件模块的完整性的处理。在数据处理系统启动期间,当通过数据处理系统内的内部智能密钥装置的帮助,数据处理系统内的硬件电路对引导ROM上的数字签名进行确认时,处理自框2602开始。假设已经成功地对引导ROM上的数字签名进行确认,则在框2604期间,数据处理系统上的启动硬件将数据处理系统的引导ROM激活,由此,在内部智能密钥装置已经对引导ROM进行确认之前,防止引导ROM进行多种类型的操作,或者,在另外的实施方案中,在内部智能密钥装置已经对引导ROM进行确认之前,防止引导ROM进行任何操作。
在随后的某个时刻,可以假设仍然在数据处理系统的启动过程期间,在框2606期间,引导ROM检验对数据处理系统进行进一步初始化所要求的经过签名的/经过密封的操作系统模块上的数字签名。假设引导ROM能够对操作系统模块上的数字签名进行确认,则在框2608期间,引导ROM装入操作系统模块,并且,在框2610期间,引导ROM向操作系统模块传递执行控制。
在随后的某个时刻,例如,响应于数据处理系统的用户的请求,在框2612期间,操作系统内的程序加载器对数据处理系统上正在被调用的、经过签名的/经过密封的应用程序模块上的数字签名进行检验。假设程序加载器能够对应用程序模块上的数字签名进行确认,则在框2614期间,则程序加载器装入应用程序模块,并且,在框2616期间,向应用程序模块传递执行控制,由此结束处理。以这样的方式,可以利用本发明来确保在数据处理系统上执行的所有软件模块的完整性;在数据处理系统上执行的所有软件必须被内部智能密钥装置或者被内部智能密钥装置信任的软件证书管理机关模块签名。通过软件证书管理机关模块与内部智能密钥装置之间的相互验证,并且,通过将软件证书管理机关模块的证书添加到内部智能密钥装置信任的证书的列表中的配置处理,建立信任关系。如针对图25部分描述的以及针对前面的附图更充分描述的,在通过使用已经预先嵌入各个实体中的数字证书的相互验证过程来执行软件期间,建立适当的信任关系。
参照图27,框图示出了按照本发明实施例的一部分数据处理系统,该数据处理系统接受可移动存储介质,从而启用数据处理系统内的硬件安全单元中的加密功能。本发明将可移动存储介质,例如但不限于光盘(CD)、数字多用或视频盘(DVD)或磁带,与智能密钥装置结合起来使用,可移动存储介质与智能密钥装置都持有加密密钥。利用加密密钥启用加密功能。系统单元2702与介质读取装置接口,在本例中,介质读取装置为CD装置2704,它被安装在系统单元2702中,并且能够读取CD 2712。如上所述,可以使用目前可以买到的以及尚在开发的、其他类型的介质读取装置以及对应的介质,例如但不限于各种类型的CD、DVD和磁带装置中的任何一种。在许多可能配置中的一种配置中,CD装置2704可以被耦合到系统单元2702,对于计算领域的技术人员来说,这是显而易见的。例如,CD读取器可以被安装在系统单元2702的外部或内部。
系统单元2702包含内部智能密钥装置(INSKD)2706,后者是主机系统2702的整体部分,即,被安装在系统2702内,例如主板(没有示出)上。最好,内部智能密钥装置2706是经过封装的、难以从主机系统移除的集成电路。尽管它被描述为硬件安全单元或装置,但是,它也可以包括用于执行指令的处理单元。在本例中,CD 2712和INSKD2706是配对的,因而CD 2712启用INSKD 2706的功能。CD 2712由系统管理人员,例如IT管理员保管。当IT管理员需要启用只能由主机上的匹配装置、即INSKD 2706执行的某些加密功能时,CD 2712被插入与主机如系统单元2702耦合的CD装置2704。换句话说,当CD 2712被插入CD装置2704时,某些加密功能可用。由于只有INSKD2706包含用于生成某个加密输出的一个或多个特定加密私钥,因此,只有INKSD 2706能够生成IT管理员需要的结果。
系统单元2702上的应用程序2708具有与CD 2712和INSKD2706类似的软件智能密钥单元(SWSKU)2710。应用程序2708利用SWSKU 2710执行某些功能,以下将对此进行更详细的说明。系统单元2702还包括CD装置驱动器2714,它是对CD装置2704的工作进行控制的逻辑。CD装置驱动器2704的标准的非加密功能为计算领域的技术人员所熟悉。以下将结合图29,对INKSD 2706、应用程序2708、SWSKU 2710和CD装置驱动器2714进行更详细的说明。
参照图28,框图示出了启用内部智能密钥装置内的加密功能的可移动存储介质。本例中的可移动存储介质为CD 2712(图27)。CD 2712包括用于加密引擎2810、CD私钥2812、内部智能密钥装置(INSKD)公钥2814、CD公钥证书2816和数字签名2816的存储器,其中,CD公钥证书2816本身包含CD公钥2818。以下将结合图29,对加密引擎2810、CD私钥2812、INSKD公钥2814、CD公钥证书2816、CD公钥2818和数字签名2820进行更详细的描述。如以下结合图29描述的,INSKD公钥2814为INSKD公钥2930的拷贝。由于CD、如CD2712能够被克隆,因此系统的安全性取决于CD 2712的安全存储,即,CD 2712必须被存储在安全的地方,以防止CD 2712被克隆。
在一个实施例中,CD装置2704(图27)从CD 2712中读取并向CD 2712写入。在这种情况下,系统管理员可以利用系统单元2702和CD装置2704,将包含在CD 2712中的信息写到2712。在另一个实施例中,CD装置2704只能读取CD 2712。在这种情况下,系统管理员在利用CD 2712启用INKSD 2706(图27)的加密功能之前,利用单独的装置(没有示出)对CD 2712进行一次配置。
参照图29,框图更详细地示出了图27的系统单元。如以上结合图27说明的,按照本发明的实施例,系统单元2702包含INKSD 2706(图27),INKSD 2706与介质读取装置或CD装置2704(图27)一道利用CD 2712(图27)启用INKSD 2706内的加密功能。除了图29包括关于各种组件和存储在组件内的加密密钥的附加细节之外,图29与图27相似。
如以上结合图27说明的,由装置驱动器控制的介质读取器对诸如CD、DVD、磁带等外部存储介质或任何其他外部存储介质进行读取,并且可能进行写入。在本例中,在CD装置驱动器2714(图27)的控制下,CD装置2704从CD2712中读取并向CD2712写入。CD 2712由系统管理员控制并用作硬件安全令牌。可以将CD 2712插入用于使CD 2712耦合到系统单元2702的CD装置2704中。CD 2712和CD装置2704通过CD读取器驱动器2714与系统单元2702接合并通信,以便交换代表数字信息的电信号。以上结合图28,对CD 2712的逻辑图进行了说明。
INKSD 2706包含加密引擎2924,用于利用存储在INKSD 2706中的各种数据项执行加密功能。以这样的方式存储INSKD私钥2926,使得它不能被INKSD 2706外部的实体读取或访问。INKSD 2706不包含用于发送或以其他方式提供INSKD私钥2926的拷贝的功能。INSKD公钥证书2928包含INSKD公钥2930的拷贝,INSKD公钥2930与INSKD私钥2926对应,作为不对称加密密钥对。INKSD 2706还包含CD公钥证书2932的拷贝,CD公钥证书2932本身包含CD公钥2933的拷贝。CD公钥2933是CD公钥2818(图28)的拷贝,二者都与CD私钥2812(图28)对应,作为不对称加密密钥对。CD公钥证书2932可以被写入INSKD 2706,作为其制造或初始化过程的一部分。
INKSD 2706还包含CDD公钥证书2934的拷贝,CDD公钥证书2934本身包含CDD公钥2935的拷贝。CD公钥2935是CDD公钥2988的拷贝,CDD公钥2988与CDD私钥2996对应,作为不对称加密密钥对。CDD公钥证书2934可以被写入INSKD 2706,作为其制造或初始化过程的一部分。
在另外的实施例中,INSKD私钥2926和INSKD公钥2930可以用于多种功能。在图29所示的实施例中,在INKSD 2706使用用于其他功能的一个或多个其他加密密钥对的同时,保留INSKD私钥2926和INSKD公钥2930,用于在INKSD 2706与CD装置驱动器2714之间以及INKSD 2706与CD 2712之间进行通信。在本例中,INKSD 2706利用INSKD_SW私钥2936对INKSD 2706与应用程序2708中的软件智能密钥单元(SWSKU)2710(图27)之间的通信进行保护。INSKD_SW公钥证书2942包含INSKD_SW公钥2944的拷贝,INSKD_SW公钥2944与INSKD_SW私钥2936对应,作为不对称加密密钥对。尽管本例示出了单个SWSKU 2710,但是,也可以是多个SWSKU。在这种情况下,每个SWSKU将拥有它自己的、与INSKD_SW私钥2936对应的私钥。INKSD 2706还包含SWSKU公钥证书2946的拷贝,SWSKU公钥证书2946本身包含SWSKU公钥2948的拷贝,SWSKU公钥2948与SWSKU 2710中的SWSKU私钥2950对应,作为不对称加密密钥对。
系统单元2702支持执行包含SWSKU 2710的应用程序2708,SWSKU 2710本身包含加密引擎2952,用于利用存储在软件智能密钥单元2710中的各种数据项执行加密功能。SWSKU公钥证书2954包含SWSKU公钥2956的拷贝,SWSKU公钥2956与SWSKU私钥2950对应,作为不对称加密密钥对。SWSKU 2710还包含INSKD_SW公钥证书2958的拷贝,INSKD_SW公钥证书2958本身包含INSKD_SW公钥2944的拷贝,INSKD_SW公钥2944与INSKD_SW私钥2936对应,作为不对称加密密钥对。如以下更详细说明的,可以对SWSKU2710进行数字签名。在图29所示的例子中,SWSKU 2710包含已经在SWSKU 2710上利用INSKD_SW私钥2936计算的数字签名2962。换句话说,INSKD 2706利用INSKD_SW私钥2936对SWSKU 2710进行数字签名。如上所述,通常,应该有用于应用程序的每个实例的、不同的INSKD_SW私钥2936,并且,不同的应用程序具有不同的INSKD_SW。
CD装置驱动器2714(图27)包括CD驱动器智能密钥单元(CDDSKU)2982。CDDSKU 2982包含加密引擎2984,用于利用存储在CD 2712和CDDSKU 2982中的各种数据项执行加密功能。在另一个实施例中,可以使用加密引擎2924,或者,可以下载并使用存储在CD 2712上的加密引擎2810(图28)。尽管可以读取CD 2712、CD装置驱动器2714以及存储在其中的密钥,但是,以与如本说明书中描述的多个例子中的用于保护SWSKU 2710的处理相似的方式,通过INSKU 2706进行签名以及检验处理,对这些密钥进行保护。CDDSKU公钥证书2986使用CDD公钥2988,CDD公钥2988与CDD私钥2996对应,作为不对称加密密钥对。
CDDSKW 2982包含已经在CDDSKU 2982上利用INSKD私钥2926计算的数字签名2990。换句话说,INSKD 2706利用INSKD私钥2926和CDD私钥2996对CDDSKU 2982进行数字签名。该处理对CD装置驱动器2714进行验证。
参照图30,流程图示出了用于启用主机系统的内部智能密钥装置的加密功能的总体处理。处理自框3002开始,在此期间,CD或其他可移动存储介质与相容的介质读取装置接合。在框3004期间,介质读取装置与包括内部智能密钥装置的系统单元电气接合,同时,CD或其他可移动存储介质与介质读取装置接合。例如,IT管理员可以将CD 2712(图27和28)插入CD装置2704(图27和29),由此使CD 2704与系统单元2702(图27和29)以及兼容单元如INSKD 2706(图27和29)耦合。在框3006期间,INSKD 2704与CD 2712,以及INSKD 2704与CD装置驱动器2714(图27和29)执行相互验证过程。这个相互验证过程包括INSKD 2704根据INSKD私钥2996,对数字签名2990(图29)进行确认,以及,INSKD 2704还根据INSKD私钥2996,对数字签名2820进行确认(图28)。在另一个实施例中,INSKD 2706可以将不同的私钥用于对CD2712和CD装置驱动器2714进行验证。这样的确认确保了CD 2712和CD装置驱动器2714的真实性。然后,在框3008期间,允许INSKD 2704进行加密,并且,处理结束。
可以假设在相互验证过程中的任何错误使得防止INSKD 2704给相互验证处理失败的装置或软件提供数字签名。换句话说,没有CD2712,INSKD 2704不能对新软件进行签名,由此防止在系统2702上修改或安装软件。已经安装的任何软件可以正常执行,并且,INSKD2704可以提供确认数字签名、解密以及加密等服务。在限制较少的实施例中,INSKD 2704的加密功能可以由在主机系统上运行的任何应用程序调用。在限制较多的实施例中,INSKD 2704的加密功能仅可以由包括软件智能密钥单元如SWSKU 2710(图27和29)的应用程序调用。
参照图31,流程图示出了按照本发明实施例的,由特定CD智能密钥单元使用的,启用主机系统的内部智能密钥装置的加密功能的处理。在框3102期间,当包含CD驱动器智能密钥单元如CDDSKU2714(图27和29)的CD装置驱动器例如通过应用编程接口(API)调用INSKD 2704的验证过程时,处理开始。INSKD 2706,或者在另一个系统软件(没有示出)中,利用INSKD公钥2934(图29)对确实被INSKD私钥2927签名的数字签名2990(图29)进行检验。这个确认过程保证了CDDSKU 2982相互验证密钥没有被另一个应用程序或装置占用。
在框3104期间,允许INSKD 2706执行用于CDDSKU 2982的加密功能。在框3106期间,CDDSKU 2982调用INSKD 2706的加密功能,并且处理结束。假设,除了CDDSKU 2982以外,主机系统上的多个软件智能密钥单元已经完成了与内部智能密钥装置的相互验证过程,则可以同时允许INSKD 2707代表CDDSKU 2982和多个软件智能密钥单元执行加密功能。
在CD 2712保持与CD装置2704(图27和29)接合,并且因此与包含INSKD 2706的系统单元2702接合时,允许INSKD 2706起证书管理机关的作用,例如,生成新的公共证书。在一个实施例中,当安装新软件包时,应该使CD 2712与CD装置2704以及系统单元2702接合。INSKD 2706给新软件颁发相互验证证书,并且对软件连同密钥一起进行签名和密封。在对新软件签名之后,可以将CD 2712移除,并且,经过签名的软件能够继续启动并使用INSKD 2706的加密功能。
在软件安装期间,可以给新软件包颁发新的公共证书;与新颁发的数字证书中的公钥对应的私钥可以被嵌入该软件包,并且,通过使内部智能密钥装置对软件包进行签名,可以保护私钥。此外,在
Figure C20058003620000511
环境中,可以对嵌入了私钥的JAR文件和数据包进一步进行密封,以防止恶意用户篡改私钥。
参照图32,流程图示出了按照本发明实施例的,用于禁用主机系统的内部智能密钥装置的加密功能的处理。在框3202期间,当将CD2712(图27和28)从CD装置2704中取出,由此将CD 2712与包含INSKD 2706(图27和29)的系统单元2702(图27和29)分离时,处理开始。在框3204期间,当系统单元2702检测出CD 2712脱离时,INSKD2706被禁止再进行数字签名、颁发密钥或执行证书,并且处理结束。应该注意,INKSD 2706继续执行其他加密功能,如确认签名、加密和解密服务。
图32中示出的处理起图30或图31中示出的处理的补充处理的作用。然而,应该注意,在另一个实施例中,根据本发明的实施方案,INSKD 2706可以继续执行某些功能,因而它没有完全被禁用。还应该注意,与以上结合图9A、9B、10A、10B、11A、11B以及19-26描述的内部智能密钥装置和外部智能密钥装置有关的处理,还可以应用于以上结合图27-32描述的可移动存储介质安全系统的加密功能。此外,由于CD装置驱动器2714是在系统单元2702上执行的软件,因此,本说明书针对软件描述的安全功能同样可以应用于CD装置驱动器2714。为了简单起见,没有针对CDDSKU 2982和CD 2712,重复与图9A、9B、10A、10B、11A、11B和19-26对应的图。
可以假设,可以通过软件或硬件启用内部智能密钥装置的加密功能。例如,在硬件模式中,根据代表外部智能密钥装置是否已经被接受的使能状态,利用必须被设定或清除的某种触发或其他机制,可以防止内部智能密钥装置中的特定电路的运行进入可操作状态;在软件模式中,通过设定和清除对执行加密功能进行逻辑控制的特定使能标志,对某些加密功能的操作进行保护。
根据以上提供的详细描述,本发明的优点应该显而易见。本发明提供了用于保护主机系统内的加密功能的机制,使得只有当系统管理员亲自通过硬件安全令牌允许它时,它才可以被使用。此外,硬件安全单元被集成到数据处理系统中,并且,硬件安全单元起硬件证书管理机关的作用。硬件安全单元可以被看作对分布式数据处理系统内的信任体系或信任框架进行支持。硬件安全单元可以对安装在包含硬件安全单元的机器上的软件进行签名。使用在机器上运行的经过签名的软件的服务器处理可以建立与硬件安全单元的相互信任关系以及与其他服务器处理之间的相互信任关系,这个相互信任关系基于这些服务器处理对硬件安全单元的共同信任。
重要的是注意到,尽管已经在全功能数据处理系统的情况下,对本发明进行了描述,但是,本领域一般技术人员应该理解,本发明的处理能够以计算机可读介质中的指令的形式以及各种其他形式分布,不论实际用于执行分布的信号承载介质的具体类型如何。计算机可读介质的例子包括诸如EPROM、ROM、磁带、纸、软盘、硬盘驱动器、RAM和CD-ROM等介质以及诸如数字的和模拟的通信链接等传输型介质。
一般将方法想象成导致希望的结果的自相容动作序列。这些动作要求对物理量的物理操作。通常(但不是必要的),这些量采用能够被存储、传输、组合、比较以及以其他方式操作的电或磁信号的形式。主要出于公共使用的原因,将这些信号称为位、值、参数、项目、要素、对象、符号、字符、术语、号码等更为方便。但是,应该注意,所有这些术语以及相似术语都与合适的物理量相关,并且,仅仅是应用于这些量的方便的标签。
出于说明的目的,已经给出了对本发明的描述,但是,描述的意图不是穷举或者对公开的实施例进行限制。本领域的一般技术人员应该明白许多修改和变化。实施例被选择来对本发明的原理及其实际应用进行说明,并且使本领域的其他一般技术人员能够理解本发明,以便当适合于其他预期用途时,利用各种修改实现各种实施例。
为了避免疑惑,在说明书和权利要求中使用的术语“包括”不应该理解为“仅由…组成”的意思。

Claims (16)

1.一种数据处理系统,包括:
系统单元;
介质读取装置,与所述系统单元耦合;
装置驱动器,用于对所述介质读取装置进行控制;
可移动存储介质,可以被所述介质读取装置读取,其中,所述可移动存储介质存储与第一不对称加密密钥对对应的第一私钥以及与第二不对称加密密钥对对应的第一公钥;以及
硬件安全单元,与所述系统单元耦合,其中,所述硬件安全单元存储与第二不对称加密密钥对对应的第二私钥以及与第一不对称加密密钥对对应的第二公钥,所述硬件安全单元包括:
用于根据所述第一和第二加密密钥对,对所述可移动存储介质与所述硬件安全单元进行验证的逻辑;以及
用于在所述可移动存储介质与硬件安全单元已经相互验证后,在所述可移动存储介质保持与所述介质读取装置接合时,允许所述系统单元调用所述硬件安全单元上的加密功能的逻辑。
2.如权利要求1所述的数据处理系统,还包括下述逻辑,用于一旦所述可移动存储介质已经被验证,并且所述可移动存储介质保持与所述介质读取装置接合,则对应用程序进行验证。
3.如权利要求1或2所述的数据处理系统,还包括下述逻辑,用于在所述可移动存储介质保持与所述介质读取装置接合时,利用所述硬件安全单元为所述可移动存储介质生成数字证书。
4.如权利要求1所述的数据处理系统,还包括下述逻辑,用于在所述可移动存储介质保持与所述介质读取装置接合时,响应于来自所述装置驱动器的请求,利用所述硬件安全单元对来自所述装置驱动器的数据项进行数字签名。
5.如权利要求1所述的数据处理系统,还包括下述逻辑,用于在成功地进行了所述可移动存储介质与所述硬件安全单元之间的相互验证操作之后,响应于来自所述装置驱动器的请求,利用所述硬件安全单元为所述装置驱动器执行加密功能,而不要求所述可移动存储介质与所述介质读取装置接合。
6.如权利要求1所述的数据处理系统,所述装置驱动器包括:
第三私钥,与第三不对称加密密钥对对应;以及
第三公钥,与第四不对称加密密钥对对应,并且
所述数据处理系统还包括:
第四私钥,存储在所述硬件安全单元上,与所述第四不对称加密密钥对对应,以及第四公钥,与所述第三不对称加密密钥对对应;
用于根据所述第三和第四不对称加密密钥对,在所述装置驱动器与所述硬件安全单元之间进行相互验证操作的逻辑;以及
用于在所述可移动存储介质与所述装置驱动器已经相互验证之后,在所述可移动存储单元保持与所述介质读取装置接合时,允许所述装置驱动器调用所述硬件安全单元上的功能的逻辑。
7.如权利要求6所述的数据处理系统,还包括下述逻辑,用于一旦所述可移动存储介质和所述装置驱动器已经被验证,并且所述可移动存储单元保持与所述介质读取装置接合,则对应用程序进行验证。
8.如权利要求6或7所述的数据处理系统,还包括下述逻辑,用于在所述可移动存储介质保持与所述介质读取装置接合时,利用所述硬件安全单元为所述装置驱动器生成数字证书。
9.一种用于执行加密功能的方法,所述方法包括如下步骤:
使可移动存储介质与耦合到系统单元的介质读取装置接合,
其中,所述系统单元包括硬件安全单元和用于对所述介质读取装置进行控制的装置驱动器;并且
其中,所述可移动存储介质包含与第一不对称加密密钥对对应的第一私钥以及与第二不对称加密密钥对对应的第一公钥,并且
其中,所述硬件安全单元包含与第二不对称加密密钥对对应的第二私钥以及与第一不对称加密密钥对对应的第二公钥;
根据所述第一和第二不对称加密密钥对,在所述可移动存储介质与所述硬件安全单元之间执行相互验证操作;并且
响应于成功地进行了相互验证操作,在所述可移动存储介质保持与所述介质读取装置接合时,允许所述系统单元调用所述硬件安全单元上的加密功能。
10.如权利要求9所述的方法,还包括一旦所述可移动存储介质已经被验证,并且在所述可移动存储单元保持与所述介质读取装置接合时,对应用程序进行验证。
11.如权利要求9或10所述的方法,还包括在所述可移动存储介质保持与所述介质读取装置接合时,利用所述硬件安全单元为所述可移动存储介质生成数字证书。
12.如权利要求9所述的方法,还包括在所述可移动存储介质保持与所述介质读取装置接合时,响应于来自所述装置驱动器的请求,利用所述硬件安全单元对来自所述装置驱动器的数据项进行数字签名。
13.如权利要求9所述的方法,还包括在成功地进行了所述可移动存储介质与所述硬件安全单元之间的相互验证操作之后,响应于来自所述装置驱动器的请求,利用所述硬件安全单元执行加密功能,而不要求所述可移动存储介质与所述介质读取装置接合。
14.如权利要求9所述的方法,
其中,所述装置驱动器包括:第三私钥,与第三不对称加密密钥对对应;以及,第三公钥,与第四不对称加密密钥对对应,并且
其中,所述数据处理系统还包括:第四私钥,存储在所述硬件安全单元上,与所述第四不对称加密密钥对对应,以及,第四公钥,与所述第三不对称加密密钥对对应;所述方法还包括如下步骤:
根据所述第三和第四不对称加密密钥对,在所述装置驱动器与所述硬件安全单元之间进行相互验证操作;并且
在所述可移动存储介质与所述装置驱动器已经进行相互验证之后,在所述可移动存储单元保持与所述介质读取装置接合时,允许所述装置驱动器调用所述硬件安全单元上的功能。
15.如权利要求14所述的方法,还包括一旦所述可移动存储介质和所述装置驱动器已经被验证,并且所述可移动存储单元保持与所述介质读取装置接合,则对应用程序进行验证。
16.如权利要求14或15所述的方法,在所述可移动存储介质保持与所述介质读取装置接合时,利用所述硬件安全单元为所述装置驱动器生成数字证书。
CNB2005800362001A 2004-12-16 2005-11-30 将光盘用作智能密钥装置的方法和系统 Active CN100478975C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/014,559 2004-12-16
US11/014,559 US7386736B2 (en) 2004-12-16 2004-12-16 Method and system for using a compact disk as a smart key device

Publications (2)

Publication Number Publication Date
CN101044490A CN101044490A (zh) 2007-09-26
CN100478975C true CN100478975C (zh) 2009-04-15

Family

ID=35896395

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800362001A Active CN100478975C (zh) 2004-12-16 2005-11-30 将光盘用作智能密钥装置的方法和系统

Country Status (4)

Country Link
US (2) US7386736B2 (zh)
JP (1) JP4841563B2 (zh)
CN (1) CN100478975C (zh)
WO (1) WO2006063935A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7779039B2 (en) 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7711951B2 (en) * 2004-01-08 2010-05-04 International Business Machines Corporation Method and system for establishing a trust framework based on smart key devices
US7849326B2 (en) * 2004-01-08 2010-12-07 International Business Machines Corporation Method and system for protecting master secrets using smart key devices
US7475247B2 (en) * 2004-12-16 2009-01-06 International Business Machines Corporation Method for using a portable computing device as a smart key device
US20100215176A1 (en) * 2005-06-10 2010-08-26 Stephen Wilson Means and method for controlling the distribution of unsolicited electronic communications
US10733308B2 (en) * 2005-08-17 2020-08-04 Cambium Learning, Inc. Tags for unlocking digital content
US7861307B2 (en) * 2005-08-17 2010-12-28 Kurzweil Educational Systems, Inc. Unlocking digital content on remote systems
US9009078B2 (en) * 2005-08-17 2015-04-14 Kurzweil/Intellitools, Inc. Optical character recognition technique for protected viewing of digital files
US10296854B2 (en) * 2005-08-17 2019-05-21 Cambium Learning, Inc. Techniques for protected viewing of digital files
CN101243513A (zh) 2005-08-23 2008-08-13 皇家飞利浦电子股份有限公司 使用物理单向函数的信息载体鉴别
CN101258483B (zh) 2005-09-09 2015-08-12 易享信息技术(上海)有限公司 用于在多租户数据库环境中导出、发布、浏览和安装随需应用的系统及其方法
US7647336B2 (en) * 2006-02-09 2010-01-12 International Business Machines Corporation Creating a real-time class package to class archive file mapping index
US7624440B2 (en) * 2006-08-01 2009-11-24 Emt Llc Systems and methods for securely providing and/or accessing information
DE102007015788B3 (de) * 2007-03-30 2008-10-23 Fm Marketing Gmbh Multimedia-Einrichtung und Verfahren zur Datenübertragung bei einer Multimedia-Einrichtung
US7930554B2 (en) 2007-05-31 2011-04-19 Vasco Data Security,Inc. Remote authentication and transaction signatures
US9069990B2 (en) * 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
US20090204801A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Mechanism for secure download of code to a locked system
US8719585B2 (en) * 2008-02-11 2014-05-06 Nvidia Corporation Secure update of boot image without knowledge of secure key
US9069706B2 (en) * 2008-02-11 2015-06-30 Nvidia Corporation Confidential information protection system and method
US20090204803A1 (en) * 2008-02-11 2009-08-13 Nvidia Corporation Handling of secure storage key in always on domain
US9158896B2 (en) * 2008-02-11 2015-10-13 Nvidia Corporation Method and system for generating a secure key
US9613215B2 (en) 2008-04-10 2017-04-04 Nvidia Corporation Method and system for implementing a secure chain of trust
JPWO2010001544A1 (ja) * 2008-07-01 2011-12-15 パナソニック株式会社 ドライブ装置、コンテンツ再生装置、記録装置、データ読み出し方法、プログラム、記録媒体、および集積回路
US8667280B2 (en) * 2010-02-24 2014-03-04 Ca, Inc. Method and apparatus for applying a partial password in a multi-factor authentication scheme
EP2365456B1 (en) * 2010-03-11 2016-07-20 CompuGroup Medical SE Data structure, method and system for predicting medical conditions
BR112012029148A2 (pt) * 2010-05-19 2016-08-09 Koninkl Philips Electronics Nv sistema de assinatura digital com base no atributo, estação de trabalho, estação de trabalho, aparelho de aquisição de imagem clínica, método de processamento de assinatura digital com base no atributo e produto de programa de computador
US9336402B2 (en) 2010-09-13 2016-05-10 City University Of Hong Kong Secure data in removable storage devices via encryption token(s)
US9489924B2 (en) 2012-04-19 2016-11-08 Nvidia Corporation Boot display device detection and selection techniques in multi-GPU devices
JP6418162B2 (ja) * 2013-09-30 2018-11-07 ソニー株式会社 受信装置および受信方法
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
DE102014204252A1 (de) * 2014-03-07 2015-09-10 Bundesdruckerei Gmbh Sicherheitssystem mit Zugriffskontrolle
US10116446B2 (en) * 2015-08-04 2018-10-30 Ge Aviation Systems Llc Cryptographic ignition key (CIK) embedded in removable data cartridge
US10002257B2 (en) * 2015-08-04 2018-06-19 Ge Aviation Systems Llc Cryptographic key loader embedded in removable data cartridge
US10972262B2 (en) 2015-12-30 2021-04-06 T-Mobile Usa, Inc. Persona and device based certificate management
US10652023B2 (en) * 2015-12-30 2020-05-12 T-Mobile Usa, Inc. Persona and device based certificate management
US10764063B2 (en) * 2016-04-13 2020-09-01 Rockwell Automation Technologies, Inc. Device specific cryptographic content protection
US10642988B2 (en) * 2016-08-04 2020-05-05 Honeywell International Inc. Removable media protected data transfer in a cyber-protected system
CN107359992A (zh) * 2017-08-23 2017-11-17 合肥中盈信息工程有限公司 一种基于密钥控制和监控请求的电源柜监管系统
EP3537323A1 (de) 2018-03-09 2019-09-11 Siemens Aktiengesellschaft Projektbezogenes zertifikatsmanagement
US11030280B2 (en) * 2018-08-01 2021-06-08 Microsoft Technology Licensing, Llc Hardware based identities for software modules
CN110245466B (zh) * 2019-06-19 2021-08-24 苏州科达科技股份有限公司 软件完整性保护和验证方法、系统、设备及存储介质
US11601288B1 (en) * 2019-08-21 2023-03-07 Cox Communications, Inc. On-demand security certificates for improved home router security
US11341247B2 (en) 2019-08-27 2022-05-24 Red Hat, Inc. Use of a trusted execution environment as a safe build environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568552A (en) * 1994-09-07 1996-10-22 Intel Corporation Method for providing a roving software license from one node to another node

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218582A (en) 1977-10-06 1980-08-19 The Board Of Trustees Of The Leland Stanford Junior University Public key cryptographic apparatus and method
US4817140A (en) 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US5396558A (en) 1992-09-18 1995-03-07 Nippon Telegraph And Telephone Corporation Method and apparatus for settlement of accounts by IC cards
US5787172A (en) 1994-02-24 1998-07-28 The Merdan Group, Inc. Apparatus and method for establishing a cryptographic link between elements of a system
US5905799A (en) 1994-07-20 1999-05-18 Bell Atlantic Network Services, Inc. Programmed computer for identity verification, forming joint signatures and session key agreement in an RSA public cryptosystem
US5604801A (en) 1995-02-03 1997-02-18 International Business Machines Corporation Public key data communications system under control of a portable security device
US6615350B1 (en) 1998-03-23 2003-09-02 Novell, Inc. Module authentication and binding library extensions
US6607136B1 (en) 1998-09-16 2003-08-19 Beepcard Inc. Physical presence digital authentication system
US6988250B1 (en) * 1999-02-15 2006-01-17 Hewlett-Packard Development Company, L.P. Trusted computing platform using a trusted device assembly
DE60007724T3 (de) 1999-03-05 2011-06-09 Hewlett-Packard Development Co., L.P., Houston Chipkarten-benutzerschnittstelle für eine vertraute computerplattform
EP2955652A1 (en) 2000-06-16 2015-12-16 MIH Technology Holdings BV Methods and systems to distribute content via a network utilizing distributed conditional access agents and secure agents, and to perform digital rights management (drm)
US6832730B2 (en) 2001-07-27 2004-12-21 Storcard, Inc. Smart card with rotating storage
US6607707B2 (en) 2001-08-15 2003-08-19 Ovonic Battery Company, Inc. Production of hydrogen from hydrocarbons and oxygenated hydrocarbons
US20030108205A1 (en) 2001-12-07 2003-06-12 Bryan Joyner System and method for providing encrypted data to a device
WO2003073688A1 (en) * 2002-02-22 2003-09-04 Emc Corporation Authenticating hardware devices incorporating digital certificates
JP2004320593A (ja) * 2003-04-18 2004-11-11 Sony Computer Entertainment Inc 通信管理システムおよび方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568552A (en) * 1994-09-07 1996-10-22 Intel Corporation Method for providing a roving software license from one node to another node

Also Published As

Publication number Publication date
US20060136748A1 (en) 2006-06-22
CN101044490A (zh) 2007-09-26
US7908492B2 (en) 2011-03-15
JP2008524886A (ja) 2008-07-10
US20090327763A1 (en) 2009-12-31
WO2006063935A1 (en) 2006-06-22
JP4841563B2 (ja) 2011-12-21
US7386736B2 (en) 2008-06-10

Similar Documents

Publication Publication Date Title
CN100478975C (zh) 将光盘用作智能密钥装置的方法和系统
CN110933108B (zh) 基于区块链网络的数据处理方法、装置、电子设备及存储介质
US8112628B2 (en) Using a portable computing device as a smart key device
CN100440100C (zh) 用于根据智能密钥设备建立信任框架的方法和系统
JP4668619B2 (ja) 装置鍵
US8799981B2 (en) Privacy protection system
JP5060652B2 (ja) 呼び出しプログラムについての秘密の封印解除方法
KR100868121B1 (ko) 런타임 패키지 서명에서 트러스트된, 하드웨어 기반의 신원증명을 사용하여 모바일 통신과 고액 거래 실행을 보안처리하기 위한 방법
EP1714422B1 (en) Establishing a secure context for communicating messages between computer systems
US7526649B2 (en) Session key exchange
US7849326B2 (en) Method and system for protecting master secrets using smart key devices
CN112202713A (zh) 一种Kubernetes环境下用户数据安全保护方法
Borselius Multi-agent system security for mobile communication
CN111651740B (zh) 一种面向分布式智能嵌入式系统的可信平台共享系统
JP4626001B2 (ja) 暗号化通信システム及び暗号化通信方法
CN118282644A (zh) 密钥托管方法、装置、设备、存储介质及产品
CN118172060A (zh) 一种区块链钱包的管理方法和管理系统
JP5180264B2 (ja) 装置鍵
Chawla Registration and Authentication Protocol for OCEAN:(Open Computation Exchange and Auctioning Network)
Wang et al. A virtual private network for virtual enterprise information systems
Zhang et al. Enhance Opensst Protocol's Security with Smart Card.
Kuntur Security of DaAgent system
Zhang Development of security features for the FIPA architecture.
Morogan Generic Security Objects
Hancke Securing real-time field area network using small cards

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20190809

Address after: American California

Patentee after: Facebook Inc

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Yuan platform Co.

Address before: California, USA

Patentee before: Facebook, Inc.

CP01 Change in the name or title of a patent holder