配置高可用联机证书状态协议应答器的方法和装置的制作方法

文档序号:7550953阅读:98来源:国知局
专利名称:配置高可用联机证书状态协议应答器的方法和装置的制作方法
技术领域
本发明涉及改进的数据处理系统,具体地说,涉及用于多计算机数据传送的方法和装置。更具体地说,本发明提供计算机到计算机认证的方法和装置。
背景技术
随着采用基于因特网的业务,人们开始关心电子通信的完整性和保密性。为了保护电子通信,人们开发了各种加密和认证技术,如非对称加密密钥。
为了创建使用密钥的公用、安全计算架构,颁布了用于数字证书的X.509标准集合。X.509数字证书是国际电信联盟(ITU)标准,因特网工程任务组(IETF)已采纳该标准。该标准以密码方式绑定证书持有者(可能是证书内的主体名称)与其公共密钥。密码绑定基于称为认证机构(CA)的用于X.509证书的因特网公共密钥基础设施(PKIX)内的可信实体的参与。因此,证书持有者与其公共密钥之间的强有力的信任关系可以成为公共信息,同时又是防止窜改的并且是可靠的。可靠性的重要方面是发行证书以便使用之前由认证机构戳记在证书上的数字签名。此后,每当因使用服务而向系统提交证书时,总是在认证主体持有者之前验证其签名。在成功完成认证处理后,允许证书持有者访问某些信息、服务或其他受控资源,如批准证书持有者访问某些系统。
本质上,PKIX创建并管理两个不同但密切相关的结构X.509证书和X.509证书撤消列表(CRL)。如上所述,数字证书提供持有证书的主体的公共密钥的保证,即证明,而CRL是认证机构宣布解除证书所代表之绑定的一种方法。换句话说,CRL是认证机构宣布先前发行的尚未到期的证书不再有效的一种方法。撤消证书的原因可能是各种管理因素,如主体与单位的从属关系改变,也可能是安全因素,如由于丢失、被盗或非授权公开私有密钥而危及证书或相关密钥的安全性。已被撤消的证书将永久作废,不能解除撤消、取回、恢复或重新使用。发行机构通过以加密方式对证书数据结构进行签字,认证持有者的公共密钥。同样,通过在CRL数据结构中戳记认证机构的签名,认证撤消处理。
为了正确验证数字证书,应用必须检查该证书是否已被撤消。在认证机构发行证书时,认证机构生成用于标识该证书的唯一序号,并在X.509证书的“序号”字段中存储该序号。通常,借助证书的序号标识CRL内已撤消的X.509证书;已撤消证书的序号出现在CRL内的序号列表中。因此,为了确定证书是否已经被撤消,验证证书的应用必须检查可能与该证书有关的所有证书撤消列表。特别地,必须检查发行证书的认证机构最近公布的所有CRL。
通常,每逢撤消证书时,认证机构总会公布新的CRL。通过各种机制,向证书验证系统分发CRL,但是由于向用户系统推送信息可能出现的问题,商用PKIX系统通常依靠轮询机制,其中验证证书的应用负责轮询CRL。认证机构可以将新公布的CRL放到特定位置,如LDAP(轻量目录访问协议)目录,并在认证机构发行的证书中指定上述特定位置。然而,由使用证书的各应用检查正在处理的各证书的CRL会严重影响上述应用的性能。
除检查CRL之外,有关联机证书状态协议(OCSP)的标准业已颁布。使用OCSP要求使用证书的每个应用与服务器联系,以获取证书的状态,如可用、过期或未知。OCSP客户机向OCSP应答器发出状态请求,并且暂停接受证书直至应答器返回应答。在某些情况中,OCSP应答器的可用性可能受到大量OCSP状态请求的压倒性负荷的影响。
因此,需要配置一组OCSP应答器的方法和系统,以有利改善每个OCSP应答器的可用性。

发明内容
提供用于配置一组OCSP(联机证书状态协议)应答器以使其成为高可用应答器的方法、系统、装置和计算机程序。小组OCSP应答器中的各应答器共享通用公共密钥,但是各OCSP应答器保持用于生成小组数字签名的特有信息。当响应OCSP请求时,OCSP应答器生成包含小组数字签名的OCSP应答,该OCSP应答附带有通用公共密钥的证书,也称为小组公共密钥。OCSP客户机使用小组公共密钥验证来自任一OCSP应答器的OCSP应答上的数字签名。支持多个OCSP应答器的计算环境可以提供附加OCSP应答器,以至附加OCSP应答器能够生成可以利用小组公共密钥证书进行验证的小组数字签名。当向以上小组添加OCSP应答器时,由于可以降低各OCSP应答器的平均处理负载,所以能够提高所述小组中各OCSP应答器的可用性。


附属权利要求书阐述被认为是本发明之特征的全新功能。通过连同附图一起阅读以下详细说明书,将更好地理解本发明、其目的以及其优点,其中图1A表示可以实施本发明的典型分布式数据处理系统;图1B表示可以实施本发明的数据处理系统中使用的典型计算机体系结构;图2表示实体获取数字证书的典型方式;图3是一个框图,表示实体与因特网或应用一起使用数字证书的方式;图4A表示标准X.509数字证书的某些字段;图4B表示X.509证书撤消列表的某些字段;图4C表示OCSP请求和OCSP应答的某些字段;图4D是一个框图,表示简单联机证书状态协议(OCSP)事务处理;图4E是一个框图,表示多OCSP应答器的结构;
图5是一个框图,表示根据本发明一实施方式具有主OCSP应答器的一组多OCSP应答器;图6A是一个流程图,表示利用小组公共密钥配置一组OCSP应答器的过程;图6B是一个流程图,表示OCSP应答器准备生成小组签名的过程;图6C是一个流程图,表示共享小组公共密钥的OCSP应答器生成OCSP应答的过程;以及图6D是一个流程图,表示主OCSP应答器确定复位小组公共密钥的子过程。
具体实施例方式
通常,包含或涉及本发明的设备包括各种数据处理技术。因此,作为背景,在详细描述本发明之前,描述分布式数据处理系统内的硬件和软件组件的典型结构。
现在参照附图,图1A表示可实施本发明之某一部分的数据处理系统的典型网络。分布式数据处理系统100包括网络101,网络101是一种媒介,利用该媒介提供连接在分布式数据处理系统100内的各种设备和计算机之间的通信链路。网络101包括诸如金属线或光纤电缆之类的永久连接,或经由电话或无线通信进行的临时连接。在所示示例中,将服务器102和服务器103以及存储装置104连接到网络101。另外,将客户机105-107也连接到网络101。客户机105-107和服务器102-103可以为各种计算设备,如大型机、个人计算机、个人数字助理(PDA)等。分布式数据处理系统100可以包括附加服务器、客户机、路由器、其他设备和对等体系结构(未示出)。
在所示例子中,分布式数据处理系统100包括与网络101相连的因特网,因特网表示全世界的利用各种协议彼此进行通信的网络和网关的集合,如轻量目录访问协议(LDAP)、传输控制协议/网际协议(TCP/IP)、超文本传输协议(HTTP)、无线应用协议(WAP)等。当然,分布式数据处理系统100可以包括多种不同类型的网络,如内联网、局域网(LAN)或广域网(WAN)等。例如,服务器102直接支持客户机109和网络110,其中网络110包括无线通信链路。支持网络的电话111通过无线链路112连接到网络110,PDA 113通过无线链路114连接到网络110。电话111和PDA 113利用适当技术,如利用蓝牙TM无线技术通过无线链路115创建所谓的个人局域网(PAN)或个人专用网,也能在两者之间直接传送数据。同样,PDA 113能够借助无线通信链路116向PDA 107传送数据。
可以在各种硬件平台上实现本发明;图1A作为异质计算环境的示例,而非对本发明的体系结构限制。
现在参照图1B,该图表示可实施本发明的图1A所示的数据处理系统的典型计算机体系结构。数据处理系统120包括与内部系统总线123相连的一个或多个中央处理器(CPU)122,其中内部系统总线123互连随机存取存储器(RAM)124、只读存储器126和输入/输出适配器128,输入/输出适配器128支持各种I/O设备,如打印机130、磁盘机132、或诸如音频输出系统之类的其他设备(未示出)。系统总线123还连接通信适配器134,后者提供对通信链路136的访问。用户接口适配器148连接各种用户设备,如键盘140、鼠标142或诸如触屏、触笔、麦克风之类的其他设备(未示出)。显示适配器144将系统总线123连接到显示设备146。
一般技术人员可以理解,图1B所示的硬件可以随系统实现而变化。例如,该系统可以有一个或多个处理器,如基于英特尔奔腾的处理器和数字信号处理器(DSP),以及一种或多种类型的易失和非易失存储器。除图1B所示的硬件之外或替代图1B所示的硬件,也可以使用其他外围设备。换句话说,一般技术人员认为不会在支持web或支持网络的电话与全功能桌面工作站中找到完全相同的组件或体系结构。所示示例并不意味着对本发明的体系结构限制。
除了能够在各种硬件平台上实施之外,也可以在各种软件环境中实施本发明。可使用典型操作系统来控制各数据处理系统内的程序执行。例如,一台设备运行Unix操作系统,而另一台设备包含简单Java运行时环境。典型计算机平台可能包括浏览器,后者是一个众所周知的软件应用,用于访问各种格式的超文本文档,如图形文件、字处理文件、扩展标记语言(XML)、超文本标记语言(HTML)、手持设备标记语言(HDML)、无线标记语言(WML),以及各种其他格式和类型的文件。
如上所述,可以在各种硬件和软件平台上实施本发明。更确切地说,本发明的目的在于提高采用OCSP(联机证书状态协议)的分布式数据处理环境内的应用或系统的性能。为了实现上述目的,本发明以全新方式使用与数字证书关联的信任关系。在详细描述本发明之前,提供有关数字证书的某些背景信息,以评估本发明的运行效率和其他优势。
数字证书支持公共密钥加密,其中参与通信或事务的每一方均具有一对密钥,称为公共密钥或私有密钥。每一方的公共密钥均是公开的,而其私有密钥是保密的。公共密钥是与特定实体关联的数字,需要与该实体建立信任互动的所有人均了解公共密钥。私有密钥是只有特定实体才了解的数字,亦即,是保密的。在典型的非对称密码系统中,一个私有密钥只与一个公共密钥对应。
在公共密钥密码系统中,由于所有通信仅仅涉及公共密钥,并且从不传输或共享私有密钥,所以仅仅使用公开信息就能生成秘密消息,并且仅仅使用私有密钥就能解密,其中只有预定接受者才拥有私有密钥。另外,公共密钥密码术可以用于认证(即数字签名)或保密(即,加密)。
加密是将数据转换为没有解密密钥的任何人均无法读取的形式;加密处理通过对预定接收人之外的所有人隐藏信息内容来保证私密性,即使他人能够看到经过加密的数据。认证是一个过程,通过认证,数字消息的接受者能够确信发送者的身份和/或消息的完整性。
例如,当发送者对消息加密时,利用接受者的公共密钥将原始消息内的数据转换为经过加密的消息内容。发送者使用预定接受者的公共密钥对数据进行加密,接受者使用其私有密钥对经过加密的消息进行解密。
当认证数据时,通过使用签名人的私有密钥计算该数据的数字签名,对数据进行签名。在以数字方式对该数据进行签名后,可以与签名人的身份和签名一起存储,其中签名证明该数据源自签名人。签名人使用其私有密钥对数据进行签名,接收者使用签名人的公共密钥来验证签名。
证书是数字文档,用于保证实体的身份和密钥所有权,实体例如是个人、计算机系统或在该系统上运行的特定服务器。证书是由认证机构发行的。认证机构(CA)是一个实体,通常是事务的受信第三方,人们信任其签名或向他人或实体发行的证书。CA通常对公共密钥与其所有人之间的绑定保证负某种类型的法律责任,其中上述绑定保证允许人们信任签署证书的实体。有许多认证机构,如VeriSign、Entrust等。当发行证书时,上述机构负责验证实体的身份和密钥所有权。
如果认证机构为某个实体发行证书,则该实体必须提供公共密钥和有关该实体的某些信息。特别配备有Web浏览器之类的软件工具能够以数字方式对该信息进行签名,然后发送到认证机构。认证机构可能为诸如VeriSign之类的公司,此类公司提供可以信任的第三方认证授权服务。接着,认证机构生成证书,并返回证书。证书可能包含其他信息,如序号和证书的有效日期。认证机构提供的一部分价值在于,部分基于其验证需求,提供一种中立的、可以信任的介绍服务,其中在其认证服务操作规程(CSP)中公开其验证需求。
CA通过嵌入请求实体的公共密钥与其他标识信息,然后利用CA的私有密钥对数字证书进行签名,创建新的数字证书。在事务或通信期间收到数字证书的任何人可以使用CA的公共密钥,来验证证书内签名的公共密钥。其目的在于,CA的签名作为数字证书上的防止窜改封条,从而确保证书内的数据的完整性。
同时对证书处理的其他方面进行标准化。证书请求消息格式(RFC2511)规定信任方向CA请求证书时推荐使用的格式。并且颁布了用于传输证书的证书管理协议。有关X.509公共密钥基础设施(PKIX)的更多信息,可以从网址为www.ietf.org的因特网工程任务组(IETF)那里获得。图2-4B的描述提供有关数字证书的某些有用背景信息,因为本发明驻留在处理数字证书的分布式数据处理系统中。
现在参照图2,图2是一个框图,表示个人获得数字证书的典型方式。在桌类客户计算机上运行的用户202先前获得或生成一个公共密钥/私有密钥对,如用户公共密钥204和用户私有密钥206。用户202生成一个对包含用户公共密钥204的证书的请求208,将该请求发送到认证机构210,后者拥有CA公共密钥212和CA私有密钥214。认证机构210以某种方式验证用户202的身份,然后生成包含用户公共密钥218的X.509数字证书216。利用CA私有密钥214对整个证书进行签名,该证书包含用户的公共密钥,与该用户关联的名称以及其他属性。用户202接收新生成的数字证书216,并在参与信任事务或信任通信时,用户202在必要时提交数字证书216。从用户202那里接收数字证书216的实体利用CA公共密钥212,验证CA的签名,其中CA公共密钥212是公开的,并且验证实体能够获得该公共密钥。
现在参照图3,图3是一个框图,表示某个实体使用数字证书的典型方式,其中因特网系统或应用需要验证数字证书。用户302拥有X.509数字证书304,将该证书传送到主机系统308上的因特网或内联网应用306,应用306包括用于处理和使用数字证书的X.509功能。用户302利用其私有密钥对数据进行签名和加密,然后发送到应用306。
接收证书304的实体可以为应用、系统或子系统等。证书304包含向应用306标识用户302的主体名称或主体标识符,应用306为用户302完成某类服务。对于来自用户302的经过签名或加密的数据,使用证书304的实体在使用证书前,验证证书的真实性。
主机系统308可能包含系统注册表310,利用后者授权用户302使用系统308内的服务和资源,亦即,使用户的身份和用户权限一致。例如,系统管理员将用户的身份配置为属于某个安全组,并且限定该用户只能访问为整个安全组配置的可用资源。可以在该系统内使用实施授权方案的各种周知方法。
如前所述,关于现有技术,为了正确验证数字证书,应用必须检查该证书是否已被撤消。当认证机构发行证书时,认证机构生成用于标识该证书的唯一序号,并在X.509证书的“序号”字段中存储该序号。通常,借助证书的序号标识CRL内已撤消的X.509证书;已撤消证书的序号出现在CRL内的序号列表中。
为了确定证书304是否依然有效,应用306从CRL库312中获取证书撤消列表(CRL),并验证该CRL。应用306比较证书304内的序号与检索到的CRL内的序号列表,如果没有匹配的序号,则应用306确认证书304。如果CRL中有匹配序号,则拒绝证书304,并且应用306可以采取适当措施,以拒绝该用户对访问任何受控资源的请求。
现在参照图4A,该图表示标准X.509数字证书的某些字段。图4A所示的结构为抽象句法符号1(ASN.1),并且由X.509标准定义。
现在参照图4B,该图表示X.509证书撤消列表的某些字段。利用图4B所示的结构标识CRL中的每个已被撤消的证书,该结构亦采用ASN.1符号。“因特网X.509公共密钥基础设施证书和CRL概要”,IETF RFC 2459,1999年1月,详细叙述数字证书和证书撤消列表的定义。
如上所述,证书撤消列表是收回证书的一种机制。换句话说,CRL表示解除或拒绝接受信任第三方与持有或提交证书的一组主体(即,用户)之间的关系。因此,在为用户执行某些操作之前,通常利用CRL来确定证书是否有效。正如图3所示,通常在验证证书的认证处理中使用CRL。
如上所述,替代或除检查CRL之外,应用可以使用OCSP来获取证书的状态。使用OCSP要求使用证书的每个应用与服务器联系,以获取有关证书的状态,如良好、过期或未知,从而将确定证书状态的负荷从使用证书的应用程序转移到OCSP服务器。应用可以增加处理OCSP事务的专用客户机模块。可以由发行有关证书的认证机构来操作该服务器,或者该服务器为其他应用获取并处理CRL,从而这些应用不必处理CRL。
现在参照图4C,该图表示OCSP请求和OCSP应答的某些字段。图4C所示的结构采用抽象句法符号1(ASN.1),并且“X.509因特网公共密钥基础设施联机证书状态协议-OCSP”,IETF RFC 2560,1999年6月,详细叙述该构造。
现在参照图4D,该图是一个框图,表示简单OCSP(联机证书状态协议)事务。OCSP客户机402向OCSP应答器404发出状态请求,并且暂停接受证书直至应答器返回经过签名的应答。根据OCSP规范,必须对OCSP应答消息进行签名,并且对应答进行签名的密钥必须属于发行有关证书的CA;请求者信任其公共密钥的信任应答器;或持有CA直接发行的有特殊记号的证书的CA指定应答器(授权应答器),其中记号表示该应答器可以发行该CA的OCSP应答。因此,在OCSP客户机验证OCSP应答有效之前,该OCSP客户机必须与OCSP应答器建立信任关系,并获得OCSP应答器的公共密钥。
现在参照图4E,该图是一个框图,表示多OCSP应答器的结构。如上所述,在某些情况中,某个OCSP应答器可能因多个OCSP状态请求而过载。减轻OCSP应答器之负载的常规方法包括,将处理负载分布到多个OCSP应答器上,如图4E所示。客户机410已经建立与多个OCSP应答器412-416的信任关系,并且已获得各OCSP应答器的公共密钥。如果客户机410未能收到特定OCSP应答器的应答,则客户机410进到OCSP应答器列表中,直至找到提供应答的OCSP应答器。另外,如果客户机410检测到某个OCSP应答器的响应时间不能令人满意,则客户机410可以向不同的OCSP应答器发送后继OCSP请求。然而,该方法不能很好地进行缩放,并且客户机负责管理众多信任关系和有关公共密钥。
现在转到本发明,剩余附图的叙述旨在解释提高多OCSP应答器之可用性的全新技术。在本发明中,把多个OCSP应答器与小组中的其他应答器关联起来。OCSP客户机最好通过主OCSP应答器与该小组建立信任关系。小组OCSP应答器的各应答器共享同一公共密钥,但各OCSP应答器保持其自己的私有密钥。在应答OCSP请求时,OCSP应答器生成利用该OCSP应答器之私有密钥进行签名的OCSP应答,该OCSP应答附带有同一公共密钥的证书,也称为小组公共密钥。OCSP客户机使用小组公共密钥验证来自任一OCSP应答器的OCSP应答上的签名。OCSP客户机能够根据证书链代表的信任链,确定该组成员利用数字方式签名的消息。以下详细描述本发明。
现在参照图5,该图是一个框图,表示根据本发明一实施方式具有主OCSP应答器的一组多个OCSP应答器。在某些时候,OCSP客户机502需要检查某事务使用的证书的状态,因此OCSP客户机502向任一OCSP应答器504-512发送OCSP请求消息。OCSP客户机从认证机构或其他机构那里获得网络地址、URI或其他标识符。
正如在各个实体均使用非对称密码术的典型系统中那样,各OCSP应答器具有其自己的私有密钥,主OCSP应答器504具有主OCSP应答器私有密钥514,OCSP应答器506具有私有密钥516。另外,主OCSP应答器504具有公共密钥证书518和私有密钥514,公共密钥证书518包含构成私有密钥/公共密钥对的公共密钥。同样,OCSP应答器具有公共密钥证书520和私有密钥516,公共密钥证书520包含构成私有密钥/公共密钥对的公共密钥。主OCSP应答器504和OCSP应答器506按照非对称密码术的典型方式使用其私有密钥/公共密钥,例如对通信进行加密和签名。然而,正如下面详细说明的那样,上述密钥用于非OCSP通信,而非对称密钥的特殊集合用于OCSP通信。
最好将一组OCSP应答器中的一个OCSP应答器指定为主OCSP应答器,如主OCSP应答器504,并且小组OCSP应答器中的主OCSP应答器包括小组公共密钥管理模块522。可以正式指定单一OCSP应答器,从而将唯一一个OCSP应答器配置为包括小组公共密钥管理模块,以下详细说明其重要性。作为选择,可以将小组OCSP应答器中的每个OCSP应答器配置为包括小组公共密钥管理模块,从而在需要时每个OCSP应答器均能作为主OCSP应答器。此时,在初始化一组OCSP应答器时,动态确定小组中的哪个OCSP应答器作为主OCSP应答器,如到达特定初始化状态的第一个OCSP应答器。接着,主OCSP应答器的小组公共密钥管理模块开始起作用,从而其他OCSP应答器的小组公共密钥管理模块不起作用。如果主OCSP应答器出故障,则该小组中的一个其他OCSP应答器以故障转移方式宣称它自己为主OCSP应答器,如果需要的话。将OCSP应答器指定为主OCSP应答器的方式随本发明的实现而变化。
如上所述,在典型的非对称密码系统中,共同生成一对非对称密钥,从而每个私有密钥正好与一个公共密钥对应。有许多种不同的非对称密钥生成方案,上述密钥生成方案依赖于用于生成密钥的参数之间的数学关系。例如,常常按照所谓的RSA算法生成非对称密钥,该算法使用大素数性质来构造私有密钥/公共密钥对,每对密钥共用两个素数的乘积,即模数。了解公共密钥有可能获得私有密钥,但取决于将模数因式分解为分量素数,通过选择合适长度的密钥使得上述任务实际上不能实行,会使得因式分解非常困难。
与通常使用的一个公共密钥只对应一个私有密钥的非对称密码方法相反,某些非对称密码方案不保证一对一关系。通过使用小组签名方案,可以生成与单一公共密钥相对应的一组保密密钥。通过审慎选择参数,密钥具有特定数量性质。小组签名方案允许小组内的各方对信息进行签名,以表示该信息源自该小组,但是验证签名的实体不能将该小组的任一特定成员视为该信息的签名者。图5表示采用特定小组签名方案的本发明的实施方式的示例,但是应该理解,可以采用其他小组签名方案而并不影响本发明的功效。
特别地,图5中的示例遵循作者为Camenisch等的“用于较大分组的有效分组签名方案”(密码学进展-CRYPTO′97,第17届国际密码学年会,计算机科学讲稿第1294卷,Springer-Verlag,p410-424,1997)中描述的小组加密方案。在一个分组签名方案中,在初始化期间,小组管理器根据特定的数量需求选择公共密钥。当某个实体希望加入该小组时,该实体选择一个保密密钥,然后根据特定公式和其他参数计算成员资格密钥。接着,参加实体利用典型私有密钥对成员资格密钥进行签名,并将成员资格密钥的签名和其他信息发送到小组管理器。在验证成员资格密钥和附带信息满足某些标准后,小组管理器向参加实体发送成员资格证书。成员资格证书包含参加实体用来与成员资格密钥一起生成小组签名的信息。
再次参照图5,主OCSP应答器504作为相对于OCSP应答器506-512的小组管理器,OCSP应答器506-512是小组OCSP应答器的成员。对该小组进行配置以根据本发明生成小组签名,本发明以全新方式组合小组签名方案的使用和OCSP协议的使用。如上所述,小组公共密钥管理模块522管理与小组公共密钥有关的管理任务,其中小组OCSP应答器使用小组公共密钥生成小组签名。需要的任务之一是生成小组公共密钥524;小组公共密钥证书526包含小组公共密钥524,并且是由认证机构生成的或者由主OCSP应答器504本身签名的。
每个OCSP应答器均有小组公共密钥证书526的一个副本。在初始化或配置各OCSP应答器时,从主OCSP应答器那里或从其他实体那里获得小组公共密钥证书的副本。例如,主OCSP应答器504负责在适当目录中公布小组公共密钥证书526,从而能够公开获得证书。
每个OCSP应答器保持一个特有成员资格密钥和一个特有成员资格证书,如OCSP应答器506有成员资格密钥528和成员资格证书530。上述项目使OCSP应答器506能够作为小组OCSP应答器的成员生成小组签名。OCSP客户机502能够使用小组公共密钥证书中的小组公共密钥,验证从任一OCSP应答器那里接收的小组签名。
成员资格密钥、成员资格证书和小组公共密钥证书是数据项,它们与各OCSP应答器保存的典型私有密钥/公共密钥对分开并且不同,如私有密钥516和公共密钥证书520。成员资格密钥、成员资格证书和小组公共密钥证书用于对OCSP应答消息进行签名和验证,而私有密钥/公共密钥对用于对其他信息流进行签名和验证。
例如,如果OCSP应答器506在配置、初始化或设置期间希望主动加入小组OCSP应答器,则OCSP应答器506利用其私有密钥516对其成员资格密钥528进行签名,并在适当消息中将经过签名的成员资格密钥发送到主OCSP应答器504,其中所述消息表示加入小组的请求。主OCSP应答器504接收公共密钥证书520与该消息;作为选择,主OCSP应答器504可以从某个目录中检索公共密钥证书520或通过其他方法获得。主OCSP应答器504通过使用公共密钥证书520中存储的公共密钥,验证OCSP应答器506的成员资格密钥上的签名。
同样,主OCSP应答器504能够利用其私有密钥514对发送给OCSP应答器的消息进行签名,并且OCSP应答器能够利用公共密钥证书518的副本验证来自主OCSP应答器504的消息。OCSP应答器能够在接收一消息的同时接收公共密钥证书518的副本;作为选择,OCSP应答器可以从目录中检索公共密钥证书518或通过其他方法获得。来自主OCSP应答器504的消息包括主OCSP应答器504为小组OCSP应答器中各成员生成的成员资格证书。可以按照任何适当方式,最好使用符合公共密钥密码标准(PKCS)的消息,格式化主OCSP应答器与小组OCSP应答器之成员之间的请求。
如果需要,则使用反向代理532以负载平衡方式在一组OCSP应答器之间分配入站OCSP请求。由于各OCSP应答器能够以小组名义生成小组签名,所以处理OCSP请求不会对入站OCSP请求之目的地造成不利影响。作为选择,OCSP客户机502可以直接将一个OCSP请求发送给一个OCSP应答器。
现在参照图6A,该图是一个流程图,表示利用小组公共密钥配置一组OCSP应答器的过程。首先,主OCSP应答器确定初始化、刷新、复位或修改小组公共密钥(步骤602),此后,主OCSP应答器获得用于生成公共密钥或用于获得适当公共密钥证书所需的全部信息(步骤604)。
接着,主OCSP应答器生成公共密钥(步骤606)。新的小组公共密钥是以特定域(如企业分布计算环境)支持的一组OCSP应答器的名义生成的。主OCSP应答器响应管理员或认证机构的命令生成新的小组公共密钥,或者主OCSP应答器周期或根据预先确定的标准刷新小组公共密钥。作为选择,主OCSP应答器也可以在使一或多OCSP应答器联机时复位小组公共密钥。以下会进一步讨论复位小组公共密钥的其他情况。确定生成新的小组公共密钥的方法可以改变而并不影响本发明。
接着,主OCSP应答器获得小组公共密钥的证书(步骤608),最好从第三方认证机构那里获得,但是主OCSP应答器可以生成该证书并对证书进行签名,前提是OCSP客户机与主OCSP应答器具有信任关系,并且愿意接受此类证书。根据OCSP规范,对证书状态信息进行签名的密钥,与对正在请求其状态的证书进行签名的密钥可以不同,并且证书发行者通过发行其OCSP签名者证书之“extendedKeyUsage”字段中包含唯一值的证书,可以代表OCSP签名机构。因此,主OCSP应答器可以要求由表示代表机构的适当认证机构发行小组公共密钥的证书。
接着,主OCSP应答器向小组OCSP应答器中的各OCSP应答器分发小组公共密钥(步骤610)。通过使用与PKCS有关的消息格式在主OCSP应答器与其他OCSP应答器之间交换请求/应答,实现上述处理。作为选择,也可以由管理员向小组OCSP应答器分发包含小组公共密钥的配置文件,或者管理员通过其他方式分发该信息,例如在配置或初始化OCSP应答器时通过图形用户界面输入该信息。分发小组公共密钥的方式可以改变而并不影响本发明。
现在参照图6B,该图是一个流程图,表示OCSP应答器准备生成小组签名的过程。图6B仅仅示出配置OCSP应答器以生成OCSP应答消息上的小组签名的几个步骤;可以在初始化OCSP应答器时执行图6B所示的过程,其中可以分别初始化各OCSP应答器,或者作为设置过程的一部分初始化整组OCSP应答器。作为选择,接收来自主OCSP应答器之小组公共密钥证书可以触发各OCSP应答器的处理。
如上所述,OCSP应答器以某种方式获得小组公共密钥证书(步骤622)。假设个别小组签名方案需要成员资格密钥和成员资格证书,则OCSP应答器产生成员资格密钥(步骤624),此后,OCSP应答器获得成员资格证书(步骤626)。OCSP应答器最好在准备个别小组签名方案所需的全部信息之前获得小组公共密钥证书,因为小组公共密钥证书可能包含产生成员资格密钥所需的参数。在作好准备生成小组签名后,OCSP应答器等待接收OCSP请求消息。
现在参照图6C,该图是一个流程图,表示共用小组公共密钥的OCSP应答器生成OCSP应答的过程。主OCSP应答器或小组内的每个其他OCSP应答器均能执行图6C所示的过程,因为小组内的所有OCSP应答器(包括主OCSP应答器)使用通用小组签名方案。该过程假定已经预先利用小组OCSP应答器内各OCSP应答器通用的小组公共密钥证书配置了该OCSP应答器,例如通过参照图6A说明的示例过程。同时,该过程假定已经预先利用OCSP应答器需要的其他小组签名信息配置了该OCSP应答器,例如通过参照图6B说明的示例过程。
首先,OCSP应答器接收OCSP客户机的OCSP请求消息(步骤632)。接着OCSP应答器从OCSP请求中检索证书标识符(步骤634),并确定已识别证书的状态(步骤636);应答器通过扫描认证机构公布的证书撤消列表,或通过其他方法,确定证书状态。OCSP应答器利用确定的证书状态生成OCSP应答消息(步骤638),并利用其特有的小组签名信息(如其成员资格密钥和来自成员资格证书的信息),对OCSP应答消息进行签名(步骤640)。然后,OCSP应答器将小组公共密钥证书附加到OCSP应答消息上(步骤642),并向OCSP客户机返回OCSP应答消息(步骤644),由此结束过程。
OCSP应答消息的格式规定OCSP应答器可以附加零个或多个证书,正如图4C中的OCSP应答的“证书”字段所示,因此在本发明的一实施方式中的OCSP应答器可以附加证书链。例如,如果主OCSP应答器从认证机构那里获得小组公共密钥证书,则该OCSP应答器可以将小组公共密钥证书附加到OCSP应答消息中,并假定OCSP客户机拥有或者能够检索认证机构的公共密钥证书,从而能够在利用小组公共密钥证书验证OCSP应答消息的真实性之前,验证小组公共密钥证书的真实性。然而,如果主OCSP应答器已经生成小组公共密钥证书,并且已经对其签名,则OCSP应答器可以附加小组公共密钥证书以及验证小组公共密钥证书之真实性所需要的主OCSP应答器的公共密钥证书;换句话说,按照标准方式扩展证书链,以容纳小组公共密钥证书。作为选择,可以假定OCSP客户机能够从预先存储有公共密钥证书的适当LDAP(轻量目录访问协议)目录中检索所需的公共密钥证书,而不是附加公共密钥证书;通常利用上述目录公布公共密钥证书,从而许多实体都能够在需要时获得公共密钥。
必须以某种方式用私有密钥/公共密钥对配置现有OCSP应答器,此后,OCSP应答器接收OCSP请求并生成OCSP应答。通常,现有OCSP应答器生成其自己的私有密钥/公共密钥对,并获得其自己的公共密钥证书。
同样,用公共密钥证书配置本发明的OCSP应答器,只是在本发明中,一个OCSP应答器与一组OCSP应答器共用公共密钥。换句话说,根据图6C容易理解,在利用特有的小组签名信息以及一组OCSP应答器内各OCSP应答器通用的小组公共密钥证书配置OCSP应答器之后,OCSP应答器按照现有OCSP应答器的典型方式运行。因此,在本发明中,关于联机证书状态协议,OCSP应答器无需任何改变;OCSP应答器使用OCSP协议,而无需对OCSP协议进行任何修改。
同样,OCSP客户机通过使用OCSP协议来请求、接收证书状态,而无需任何修改。OCSP客户机能够按照信任等级利用任何适当证书验证OCSP应答的真实性。如果小组公共密钥的证书是由认证机构授权的,则客户机信任该证书,因为它信任认证机构;客户机拥有允许其验证小组公共密钥证书上的签名的认证机构的证书。如果小组公共密钥证书是由主OCSP应答器授权的,则客户机信任该证书,因为该证书是由主OCSP应答器发行并进行签名的,而主OCSP应答器的证书是由认证机构发行并进行签名的。无论如何,均不需要修改OCSP协议,因为客户机能够接收或检索用于验证OCSP应答消息之数字签名的适当数字证书。此外,OCSP客户机能够根据证书之终止限制来高速缓存小组公共密钥证书,而无需像现有解决方案那样额外维护众多OCSP应答器的众多公共密钥证书。
OCSP客户机知道是用哪个算法对收到的OCSP应答进行签名的,因为OCSP应答中指定了签名算法。因此,OCSP客户机知道用于验证从某个OCSP应答器接收的OCSP应答中之小组签名的小组签名算法。例如,图4C表示“BasicOCSPResponse”数据结构中的“signatureAlgorithm”字段;利用表示小组签名算法的标准或已达成一致的数值,填充签名算法标志。正如RFC 2560之4.3小节“强制与可选加密算法”所述
请求OCSP服务的客户机必须能够处理利用RFC 2459之7.2.2小节中规定的DSA sig-alg-oid标识的DSA密钥进行签名的应答。同时,客户机应该能够处理RFC 2459之7.2.1小节中规定的RSA签名。OCSP应答器必须支持SHA1散列算法。
因此,OCSP客户机只需知道对OCSP应答消息进行签名所使用的小组数字签名算法以及许多其他数字签名算法;无需改变与OCSP协议有关的处理。
现在参照图6D,该图是一个流程图,表示主OCSP应答器确定复位小组公共密钥的子过程。主OCSP应答器负责小组公共密钥的生命周期管理。为了管理小组公共密钥的生命周期,主OCSP应答器可以保存小组OCSP应答器中各成员的信息。作为生命周期管理任务的一部分,主OCSP应答器负责确定小组公共密钥的有效期,初始化密钥更新,处理小组公共密钥的撤消。正如参照图6A之步骤602说明的那样,主OCSP应答器在某些时候确定需要初始化、复位、刷新、或修改小组公共密钥;图6D通过显示某些条件提供用于上述确定的子过程,尽管本发明的其他实施方式可能具有不同或附加条件或考虑。子过程可以为主OCSP应答器连续处理事件的循环的一部分。
在该子过程中,主OCSP应答器首先确定是否收到刷新小组公共密钥的特定请求(步骤652)。该请求可能是另一个管理应用发起的,也可能是小组OCSP应答器中的某个OCSP应答器发起的。各小组成员的部分管理责任包括监视或接收例如管理员或其他应用发送的OCSP应答器的密钥或证书已被泄密指示。例如,如果有理由怀疑特定OCSP应答器的成员资格密钥被盗,则该OCSP应答器应请求更新小组公共密钥。作为选择,主OCSP应答器可以从小组中删除发出请求的OCSP应答器,直至稍后主OCSP应答器确定更新小组公共密钥,而不是生成新的小组公共密钥。
无论如何,如果主OCSP应答器收到有效请求,则主OCSP应答器开始生成新的小组公共密钥(步骤654),并完成子过程。如上所述,如果主OCSP应答器没有生成小组公共密钥证书并对其签名,则主OCSP应答器将向认证机构请求小组公共密钥证书。此时,作为启动生成新的小组公共密钥的一部分,主OCSP应答器向发行小组公共密钥证书的认证机构发送撤消请求。然后按照参照图6A所述的方式,生成新的小组公共密钥和有关证书,可能包括通知小组OCSP应答器的各成员正在生成新的公共密钥。
再次参照图6D,另一个条件是小组OCSP应答器中的小组成员资格是否有变化(步骤656)。例如,如果某个OCSP应答器出现故障,则从小组中删除该OCSP应答器,或者使另一台OCSP应答器在线。根据本发明之特定实施方式中使用的小组签名方案,小组成员资格变化要求更新小组公共密钥(步骤654)。然而,以上参照图5论述的小组签名方案允许成员加入小组,而并不妨碍使用部署的小组公共密钥。
生成新的小组公共密钥的另一个考虑包括是否已撤消小组OCSP应答器的公共密钥证书(步骤658)。在本发明中,在验证主OCSP应答器与小组中其他OCSP应答器之间的消息流时,主OCSP应答器依靠各OCSP应答器的公共密钥证书的有效性。如果某个OCSP应答器的公共密钥证书泄密,则主OCSP应答器可能收到恶意第三方的成员资格证书请求。因此,主OCSP应答器扫描公布的CRL,查找其存储的已被撤消的所有公共密钥证书。同样,主OCSP应答器扫描公布的CRL,查找已撤消的小组公共密钥证书。尽管主OCSP应答器很可能启动撤消小组公共密钥证书,但是可能存在以下情况,即,发行小组公共密钥证书的认证机构单方面撤消该证书。
生成新的小组公共密钥的另一个条件或考虑包括小组公共密钥证书的有效期是否已到期(步骤660)。如上所述,主OCSP应答器确定小组公共密钥的有效期和关联信息。例如,主OCSP应答器通过检查小组OCSP应答器公共密钥证书的终止日期,计算有效期,其中主OCSP应答器能够从目录或其他类型的数据块中独立获得该终止日期。在典型实施方式中,主OCSP应答器将小组公共密钥证书的终止日期设置为所有OCSP应答器的公共密钥证书的最早终止日期。终止日期为数字证书中的一部分信息;如果小组公共密钥证书是由认证机构生成的,则将计算的终止日期连同证书请求消息中的小组公共密钥发送到认证机构。
作为选择,可以将主OCSP应答器配置为在小组公共密钥证书过期前的阈值期限内,启动小组公共密钥的更新过程,而不是等待小组公共密钥证书过期才进行更新。例如,可以将阈值限定为一天或几天,从而主OCSP应答器有足够时间与其他OCSP应答器通信,并确保利用生成小组签名的适当信息重新进行配置。
根据以上详细说明,本发明的优点是显而易见的。支持多个OCSP应答器的计算环境通过在小组OCSP应答器中使用小组签名方案,能够以简单方式提供附加OCSP应答器。假定通过由OCSP随机选择或者通过使用支持负载平衡的代理服务器,将入站OCSP请求平均分发到小组OCSP应答器,则对于OCSP客户机而言,小组应答器的可用性高于该小组之任一成员的可用性。
请注意,尽管在全功能数据处理系统的情境中叙述本发明,但是一般技术人员可以理解,能够以计算机可读介质或其他形式上的指令或其他方法的形式,分发与本发明有关的某些过程,而不管进行分发实际使用的特定类型的信号承载介质。计算机可读介质的示例包括诸如EPROM、ROM、磁带、穿孔纸、软盘、硬盘驱动器、RAM和CD-ROM之类的介质,以及诸如数字和模拟通信链路之类的传输类型的介质。
通常认为方法是导致所需结果的前后一致的步骤序列。上述步骤需要物理处理物理量。通常,物理量的表现形式为能够进行存储、传输、组合、比较或其他处理的电磁信号,尽管未必如此。有时,为方便起见,特别是为了日常习惯,将上述信号称为比特、数值、参数、项目、元素、对象、符号、字符、项、数字等。然而,应该理解,所有上述术语和类似术语是与特定物理量关联的,并且只是应用于物理量的方便标识。
提供本发明之详细说明书是为了进行说明,其意图并不是穷举或限制公开的实施方式。一般技术人员容易想到许多修改或变更。选择上述实施方式的目的是解释本发明的原理及其实际应用,并使一般技术人员理解本发明,以便借助适于其他预期用途的各种修改实现各种实施方式。
权利要求
1.一种从分布式计算环境中提供证书状态的方法,其中分布式计算环境包括一组OCSP应答器,该方法包括配置小组OCSP应答器中的各OCSP应答器,从而各OCSP应答器均能生成小组数字签名;小组OCSP应答器中的一OCSP应答器接收OCSP客户机的OCSP请求消息;以及向OCSP客户机返回包含小组数字签名的OCSP应答消息。
2.权利要求1的方法,还包括获得一个非对称公共密钥和一组相关的唯一非对称密钥,其中非对称公共密钥能够验证使用一组相关的唯一非对称密钥中之任一密钥生成的小组数字签名;利用唯一非对称密钥配置小组OCSP应答器中的各OCSP应答器;以及生成OCSP应答消息,该消息包含OCSP应答器利用其唯一非对称密钥生成的小组数字签名。
3.权利要求1的方法,还包括将公共密钥证书的副本附加到OCSP应答消息中。
4.权利要求1的方法,还包括指定小组OCSP应答器中的一个OCSP应答器作为主OCSP应答器。
5.权利要求4的方法,还包括主OCSP应答器向小组OCSP应答器中的各OCSP应答器分发公共密钥证书的副本,其中在公共密钥证书中存储非对称公共密钥。
6.权利要求4的方法,还包括由主OCSP应答器生成非对称公共密钥。
7.权利要求4的方法,还包括由主OCSP应答器管理非对称公共密钥的生命周期。
8.权利要求1的方法,还包括将非对称公共密钥的公共密钥证书的终止期限设置为,与小组OCSP应答器中的OCSP应答器关联的公共密钥证书的最早终止日期。
9.权利要求1的方法,还包括如果与小组OCSP应答器中的一个OCSP应答器关联的公共密钥证书到期或被撤消,则撤消非对称公共密钥的公共密钥证书。
10.一种用于提供证书状态的数据处理系统,其中数据处理系统包括一组OCSP应答器,该数据处理系统包括用于配置小组OCSP应答器中的各OCSP应答器,从而各OCSP应答器均能生成小组数字签名的装置;用于在小组OCSP应答器中的一OCSP应答器接收OCSP客户机的OCSP请求消息的装置;以及用于向OCSP客户机返回包含小组数字签名的OCSP应答消息的装置。
11.权利要求10的数据处理系统,还包括用于获得一个非对称公共密钥和一组相关的唯一非对称密钥的装置,其中非对称公共密钥能够验证使用一组相关的唯一非对称密钥中之任一密钥生成的小组数字签名;利用唯一非对称密钥配置小组OCSP应答器中的各OCSP应答器的装置;以及用于生成OCSP应答消息的装置,该消息包含OCSP应答器利用其唯一非对称密钥生成的小组数字签名。
12.权利要求10的数据处理系统,还包括用于将公共密钥证书的副本附加到OCSP应答消息中的装置。
13.权利要求10的数据处理系统,还包括用于指定小组OCSP应答器中的一OCSP应答器作为主OCSP应答器的装置。
14.权利要求13的数据处理系统,还包括从主OCSP应答器向小组OCSP应答器中的各OCSP应答器分发公共密钥证书之副本的装置,其中在公共密钥证书中存储非对称公共密钥。
15.权利要求13的数据处理系统,还包括供主OCSP应答器生成非对称公共密钥的装置。
16.权利要求13的数据处理系统,还包括供主OCSP应答器管理非对称公共密钥之生命周期的装置。
17.权利要求10的数据处理系统,还包括用于将非对称公共密钥的公共密钥证书的终止期限设置为与小组OCSP应答器中的OCSP应答器关联的公共密钥证书的最早终止日期的装置。
18.权利要求10的数据处理系统,还包括当与小组OCSP应答器中的一OCSP应答器关联的公共密钥证书到期或被撤消时,用于撤消非对称公共密钥之公共密钥证书的装置。
19.一种在数据处理系统中使用的计算机可读介质上的计算机程序产品,其中数据处理系统在包含一组OCSP应答器的分布式计算环境中提供证书状态,该计算机程序产品包括用于配置小组OCSP应答器中的各OCSP应答器,从而各OCSP应答器均能生成小组数字签名的单元;用于在小组OCSP应答器中的一OCSP应答器接收OCSP客户机的OCSP请求消息的单元;以及用于向OCSP客户机返回包含小组数字签名的OCSP应答消息的单元。
20.权利要求19的计算机程序产品,还包括用于获得一个非对称公共密钥和一组相关的唯一非对称密钥的单元,其中非对称公共密钥能够验证使用一组相关的唯一非对称密钥中之任一密钥生成的小组数字签名;利用唯一非对称密钥配置小组OCSP应答器中的各OCSP应答器的单元;以及用于生成OCSP应答消息的单元,该消息包含OCSP应答器利用其唯一非对称密钥生成的小组数字签名。
21.权利要求19的计算机程序产品,还包括用于将公共密钥证书的副本附加到OCSP应答消息中的单元。
22.权利要求19的计算机程序产品,还包括用于指定小组OCSP应答器中的一OCSP应答器作为主OCSP应答器的单元。
23.权利要求22的计算机程序产品,还包括从主OCSP应答器向小组OCSP应答器中的各OCSP应答器分发公共密钥证书之副本的单元,其中在公共密钥证书中存储非对称公共密钥。
24.权利要求22的计算机程序产品,还包括供主OCSP应答器生成非对称公共密钥的单元。
25.权利要求22的计算机程序产品,还包括供主OCSP应答器管理非对称公共密钥之生命周期的单元。
26.权利要求19的计算机程序产品,还包括用于将非对称公共密钥的公共密钥证书的终止期限设置为与小组OCSP应答器中的OCSP应答器关联的公共密钥证书的最早终止日期的单元。
27.权利要求19的计算机程序产品,还包括当与小组OCSP应答器中的一OCSP应答器关联的公共密钥证书到期或被撤消时,用于撤消非对称公共密钥之公共密钥证书的单元。
全文摘要
本发明提供了一种用于配置小组OCSP(联机证书状态协议)应答器以使其成为高可用应答器的方法和系统。小组OCSP应答器中的各应答器共享通用公共密钥。当响应OCSP请求时,OCSP应答器生成利用小组数字签名进行签名的OCSP应答;可以将公用的或小组公共密钥的证书附加到OCSP应答中。OCSP客户机使用小组公共密钥验证来自任一OCSP应答器的OCSP应答上的小组数字签名。对OCSP客户机而言,小组应答器的可用性高于该小组之任一成员的可用性。
文档编号H04L29/06GK1506869SQ20031011362
公开日2004年6月23日 申请日期2003年11月13日 优先权日2002年12月6日
发明者K·K·耶莱佩迪, K K 耶莱佩迪 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1