证书撤销方法研究
发布时间:2015-07-04 09:21
摘 要 pki是网络安全的基础,其安全性和可靠性直接影响到上层的网络安全,证书撤销是pki系统中重要的一个方面。本文详细讨论了现存的证书撤销状态信息发布方法, 并结合时戳服务提出了新的解决方案.该方法在现有时戳协议的基础上, 通过时戳提供证书的状态信息,可以有效降低系 统成本,提高系统的工作效率。
关键词 pki; 证书撤销列表; 时戳服务
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中包含签字证书序列号是否一致,如果一致则表明该证书在使用时是有效的。 在一个安全性要求较高的环境中,时间服务器是必须的,其安全性也是必须要保证的,这样把证书状态响应服务与时间服务相连,可以节省状态响应服务器运行的成本,并且证书的使用者也可以通过验证时戳达到验证了证书状态的目的,从而节省了用户的资源和时间。
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.上一篇:通用软件自动更新平台构建研究
下一篇:主题门户理论研究