摘 要 PKI是网络安全的基础,其安全性和可靠性直接影响到上层的网络安全,证书撤销是PKI系统中重要的一个方面。本文详细讨论了现存的证书撤销状态信息发布方法, 并结合时戳服务提出了新的解决方案.该方法在现有时戳协议的基础上, 通过时戳提供证书的状态信息,可以有效降低系 统成本,提高系统的工作效率。 关键词 PKI; 证书撤销列表; 时戳服务
0 引 言 信息安全是日渐得到社会各方注意的热点问题之一。如何在公共网络上保证信息的完整性、机密性和不可否认性是各国推进电子商务、发展网络事业的最大挑战。公钥体制正迅速地成为解决这一问题的基础技术,但它的广泛应用要求有一个公钥基础设施来发布和管理这些公钥值。公钥基础设施( Public Key Infrastructure, 简称PKI )作为一个普适性的基础设施,能为多种协议和安全应用提供统一接口和底层支撑。它能在没有安全保障的公共网络中实现认证、密钥管理、数字签名和不可否认等服务,从而最大限度地满足网络安全的需要。在网络安全问题日趋严重的今天,PKI的应用具有非常重要的意义。 当密钥对的公钥以证书的形式公布后,在其整个有效期内都应该是可使用的。但是在某些情况下,比如发现或怀疑私钥被损害、用户名称的改变以及主体和CA之间关系的变化(比如终止雇佣关系)等,可能需要在密钥的有效期终止之前停止对该密钥的使用。在这些情况下,客户或CA需要撤消证书。用户在验证一个证书是否有效时,通常需要验证该证书是否已被撤消,因此证书撤销在PKI系统中的重要性不言而喻。由于PKI是网络安全的基础,所以其安全性和可靠性直接影响到上层的网络安全,本文详细讨论了PKI技术中有关证书撤销的方式,并提出了新的解决方案。1 现存证书撤销方案证书撤销的方法很多,最常用的方法是周期性的发布机制,比如CA颁发的证书撤消列表(Certificate Revokation List,简称CRL)。另一种方法是在线查询机制如在线证书状态协议。在文献[3]中对现存的证书撤销方法给予了详细说明,在此本文仅对这些方式给以简单介绍。1.1周期发布机制 CRL是一些带有时戳的被撤消证书的列表。CRL可以发布在已知的网址上或从CA自己的X.500目录条目中定期进行发布。每个被撤消的证书在CRL中由其证书序列号来确认。CRL的完整性和可靠性由它本身的数字签名来保障。 大规模网络环境中PKI的构成是复杂的,往往用于鉴别密钥的不再是一个单独的证书,而是一个证书链。要确认链中的证书的有效性,验证者需要获取与每一个证书相对应的CRL并一一加以验证。当CA的数量和层次较多时,下载和维护CRL就会成为沉重的负担。 CRL是定期发布的,而撤销请求的到达是随机的,从证书撤销请求到新的CRL公布之间的不确定的时间差。在这段时间中,被撤销的证书的状态是不一致的。这种不一致会严重影响到证书服务的质量。所以对PKI系统来说,CRL的更新和发布频率非常重要。另外随着用户的增加和系统使用时间延续,CRL列表有可能变得越来越大,最后可能使用户查询起来极不方便。到目前为止,对这个问题的解决方案有如下几种[6,7,8]:(1)完全CRL:即所有撤消证书都列在一个CRL表里,这只可能适合于那些用户群很小的PKI域。(2)CA撤消列表(ARL):ARL不包括用户证书的撤消信息,相当于专项专用,因此在用户验证证书路径时会提高效率。(3)CRL分布点:这是目前最常采用的机制。系统对整个认证空间分区,并将一个单独的CRL与每个区联系。这种机制中的区段称为CRL发布点或分配点,所有撤消认证的子集就保留在这些点上。分区可以按照撤消原因、撤消证书是CA证书还是终端实体证书、用户的姓名等等来进行。每个发布点由一套名称来标识,这组名称可以有多种形式。一旦发布点定义下来,它们就可以包括在证书中,以至于那些必须检查证书状态的应用程序可以访问在证书中CRL发布点而不是主CRL中指定的CRL发布点,与主CRL相比,发布点中的CRL要小一些,可以加速证书状态检查的过程。CRL分配点可以通过使用证书中的cRLDistributionPoints扩展与证书联系起来。(4) 间接CRL:它使得在一个CRL中发布来自多个CA的撤消信息。间接CRL的使用可以减小用户在进行证书验证过程中需要检索的总的CRL的数目。(5) 证书撤消树:这是基于杂凑树概念的一种撤消列表方式。(6) Delta-CRL扩展:Delta-CRL允许用户只记录上次完整CRL发布后所发生的改变。用户维护着自己的CRL数据库,并利用Delta-CRL不断更新它。这样避免了下载整个CRL,节省了通信带宽和计算时间。每次Delta-CRL发布的时候,CA都需要同时发布一个完整的CRL。事实上,这些扩展并没有完全解决CRL撤消证书的延迟性问题。1.2在线检查周期性撤消列表方法的问题之一就是,证书使用系统不能容忍由于时间间隔而造成的撤消通知的延迟。根据应用环境,许多损害来自密钥受损的当天。在理想的情况下,当用户要使用某受损的证书时,他应该马上知道该证书已经受损。 通过实时撤消检查或在线状态检查(OCSP),希望确认证书有效性的证书使用系统可以实现和相应的CA服务器之间的在线通讯。该通讯将返回关于该证书状态的一条指示。CA必须实现高度可用的在线服务,这种服务对所有的潜在用户都是可用的,并且必须在安全的环境中提供这种服务。对证书使用系统来说,该通讯在实时性和来源上必须是安全可靠的。这要求对每一次通讯,CA都产生数字签名,证书使用系统验证该签名。 实时状态检查在一些环境中运转良好,特别是在证书主体和证书使用的封闭环境中。但成本可能成为一个问题,尤其当环境的规模扩大时,考虑到服务器需要为每个询问通讯产生一个数字签名,所要求的加密处理资源也将特别昂贵。安全服务器的运作成本(包括所有安全控制的实施)将会很高。2 结合时间戳的证书撤销方案 在电子商务中,时间戳服务是一个必不可少的服务,通过时间戳服务为交易双方提供一个可信的交易时间,来标记交易的准确发生时间。RFC文档3161详细规定了PKI服务中提供时间戳服务的协议。作为一项重要的服务,时间戳服务同样必须进行安全防护,才能保证时间戳的安全性。时间服务器作为可信第三方TTP,客户端发送消息X的摘要H(X)到时间服务器,时间服务器获取当前时间t,并对(H(X),t)进行签字,把时间t和签字 SigTSS{(H(X),t)}回复给客户端。因为所有签字过程都需要一个可信的时间戳,作为签字时间的一个保证。如果把时间服务器与CA的证书状态服务器相关联,在客户请求时间戳时,除了原来的时间戳请求消息外,还要求客户提供将要使用的签字证书的序列号,然后时间服务器根据证书的序列号,查询该证书的状态,如果证书已撤消,则不给予时间戳,在没有时间戳的情况下,使用该证书对应私钥的签字是无效的,从而可防止用户欺骗行为。同时在发给用户的时间戳中包含当前时间和用户的签字证书序列号,其他用户在验证签字时,首先验证该时戳是否可信,然后再检查用户签字证书的序列号与该时戳中的用户签字证书序列
号是否一致,若一致,就说明签字时用户的签字证书处于有效状态;若不一致,则可怀疑用户有作弊行为,这样,就可以安全地获得用户证书的状态。该方案只需把原时间戳服务协议略加改造即可。(1)签字者在对消息X签字前,首先向时间服务器发送请求,获得时间戳,发送消息为:
TimeStampReq ::= SEQUENCE { version INTEGER , messageImprint MessageImprint, reqPolicy TSAPolicyId OPTIONAL, nonce INTEGER OPTIONAL, certReq BOOLEAN DEFAULT FALSE, extensions [0] IMPLICIT Extensions OPTIONAL }MessageImprint ::= SEQUENCE { hashAlgorithm AlgorithmIdentifier, hashedMessage OCTET STRING signCertID INTEGER }
该消息与rfc3161的协议相比增加了只增加了签字证书的序列号,即消息中的阴影部分的内容。(2)时间服务器接受到请求后,首先检查signCertID对应的签字证书的有效性,如果有效则按照通常的时间服务进行处理,生成响应消息,发送给签字者。响应消息的格式为:
TimeStampResp ::= SEQUENCE {Status PKIStatusInfo,timeStampToken TimeStampToken OPTIONAL}TSTInfo ::= SEQUENCE {version INTEGER,policy TSAPolicyId,messageImprint MessageImprint,serialNumber INTEGER,genTime GeneralizedTime,accuracy Accuracy OPTIONAL,ordering BOOLEAN DEFAULT FALSE,nonce INTEGER OPTIONAL,tsa [0] GeneralName OPTIONAL,extensions [1] IMPLICIT Extensions OPTIONAL }
在这个消息中格式与原来协议的格式一样,只是messageImprint 使用请求者发送来的messageImprint,即包含了请求者的签字证书的序列号。时间戳是对TSTInfo的签字,包括当前时间和messageImprint,因此其他用户不能更改时戳中的签字证书的序列号。(3)签字者按照正常时间戳的使用方式使用时间服务器发送来的时间戳,他在对消息X签字时务必使用在时戳请求中包含的签字证书序列号对应的证书。(4)其他用户在验证该签字时,首先验证时戳是否正确,然后在验证签字所使用的证书的序列号和时戳messageImprint中包含签字证书序列号是否一致,如果一致则表明该证书在使用时是有效的。 在一个安全性要求较高的环境中,时间服务器是必须的,其安全性也是必须要保证的,这样把证书状态响应服务与时间服务相连,可以节省状态响应服务器运行的成本,并且证书的使用者也可以通过验证时戳达到验证了证书状态的目的,从而节省了用户的资源和时间。3 结语 本文提出的结合时戳服务,提供证书状态信息,可以有效的解决证书撤销带来的问题,同时节约了用户和系统的资源和时间,并且对当前的时戳服务只需做一些小的改进,容易实现。上述关于证书撤消的各种方法具有不同的及时性,可以应用于各种不同的环境。除了成本方面的考虑,最合适的方法还依赖于风险评估。该领域的研究还在继续,新的撤消方法还会不断出现。参 考 文 献1 Housley.R, Fond.W, Polk.W, et al. Internet X.509 Public Key Infrastructure Certificate and CRL Profile[S]. (1999-1), RFC 2459.2 Adams C, Farrell S. Internet X.509 Public Key Infrastructure Certificate Management Protocols [S]. (1999-03), RFC, 2510.3 Carlisle Adams, Steve Lloyd 着, 冯登国 等译. 公开密钥基础设施——概念、标准和实施[M]. 人民邮电出版社, 2001.1.4 金融系统电子商务联络与研究小组,电子商务——安全认证与网上支付[M], 人民出版社.2000.4.5 Cain, P., Pinkas, D., and R. Zuccherato, "Internet X.509 Public Key Infrastructure Time Stamp Protocol",[S], rfc3161.6 薛源, 周永彬, 郭建锋, 倪惜珍. 基于Huffman算法的证书撤销树[J]. 通信学报. 2005,26(2):45-50.7 王永静, 谢冬青, 陈华勇. 证书撤销机制的分析与设计[J]. 计算机应用研究. 2004,21(9):147-149.8 刘爱江, 何大可, 许长枫. 基于排队模型的证书撤销机制分析.计算机应用研究[J]. 2004 ,21(4):68-70.
点此咨询学术顾问 快人一步得到答案