具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明实施例的一种CRL系统的结构示意图,如图1所示,该系统包括:
证书认证设备10,用于根据获得的CRL下载位置信息,向对应的CRL服务器发送携带有第一CRL文件标识信息的CRL下载请求消息,并当收到的与该CRL下载请求消息关联的响应消息中携带有未修改标识时,利用本地保存的证书撤销列表CRL文件对用户证书(客户端证书)的状态进行有效性验证;
具体的,证书认证服务器10中保存有CA证书和CRL文件,这里的第一CRL文件标识信息表示的是该证书认证设备10本地保存的CRL文件的标识信息,具体可以是CRL文件的修改时间,表示为第一修改时间,或者CRL文件的散列值,表示为第一散列值,也可以是CRL文件的修改时间和CRL文件的散列值的组合(即第一修改时间和第一散列值的组合),包括但不限于此。
以及,这里的未修改标识表示CRL服务器20侧对应的CRL文件相对于证书认证设备10本地保存的CRL文件没有修改或更新,两者的属性是相同的,例如,修改时间是相同的,等等。
以及,这里的利用本地保存的证书撤销列表CRL文件对用户证书的状态进行有效性验证可以包括:利用证书撤销列表CRL信息检查该用户证书是否被撤销/吊销;应当理解的是,用户证书的状态验证还可以包括:检查用户证书是否过期,以及验证用户证书签名等。
CRL服务器20,用于比较接收的CRL下载请求消息中的第一CRL文件标识信息与CRL服务器上的对应CRL文件的第二CRL文件标识信息,当比较结果为第一CRL文件标识信息和第二CRL文件标识信息相同时,返回携带有未修改标识的响应消息。
可选,CRL服务器20进一步用于当比较结果为第一CRL文件标识信息和第二CRL文件标识信息不相同时,返回携带有CRL服务器上的对应CRL文件的响应消息。
相应的,证书认证设备10进一步用于当收到的与该CRL下载请求消息关联的响应消息中携带有CRL文件时,利用从该响应消息中解析出的CRL文件对用户证书的状态进行有效性验证,并更新本地的CRL文件(即将解析出的CRL文件写入本地缓存)。
具体的,在一种实现下,CRL服务器20具体用于比较接收的CRL下载请求消息中的第一修改时间与CRL服务器上的对应CRL文件的第二修改时间,如果两者相同,返回携带有未修改标识的响应消息;如果第二修改时间大于第一修改时间,返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
在另一种实现下,CRL服务器20具体用于比较接收的CRL下载请求消息中的第一散列值与CRL服务器上的对应CRL文件的第二散列值,如果两者相同,返回携带有未修改标识的响应消息;如果不相同,返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
在另一种实现下,CRL服务器20具体用于比较收到的CRL下载请求消息中的第一散列值与CRL服务器上的对应CRL文件的第二散列值,以及比较该CRL下载请求消息中的第一修改时间与CRL服务器上的对应CRL文件的第二修改时间,如果均相同,返回携带有未修改标识的响应消息;如果第一散列值与第二散列值不相同,和/或,第二修改时间大于第一修改时间,返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
应当理解的是,如果CRL服务器20上的CRL文件和证书认证设备100本地保存的CRL文件的修改时间和/或散列值相同,则响应消息中不必携带CRL文件,证书认证设备10从本地获取CRL文件进行验证。如果CRL服务器20上的CRL文件和证书认证设备10本地保存的CRL文件的修改时间和/或散列值不相同,则响应消息中携带CRL文件,证书认证设备10解析出CRL文件进行验证,并更新本地的CRL文件。
以及,本发明实施例的CRL系统中,可选的,如果该系统结构采用C/S模式,该系统可以进一步包括:客户端30,用于向证书认证设备10发送用户证书(客户端证书),并接收证书认证设备10返回的所述用户证书的验证结果。
以及,可选的,该系统可以进一步包括:CA(Certification Authority,认证权威机构)服务器40,用于签发CRL文件并发布。
在一种实现下,该证书认证设备10可以是网关或者安全接入网关或者虚拟专用网VPN;以及该CRL服务器20可以为基于Web的服务器或LDAP(Lightweight Directory Access Protocol,轻型目录访问协议)服务器,等等。
可见,本发明实施例的CRL系统中,证书认证设备10通过向CRL服务器20发送携带有第一CRL文件标识信息的CRL下载请求消息,该CRL服务器20比较收到的该CRL下载请求消息中的第一CRL文件标识信息与CRL服务器本地的CRL文件的第二CRL文件标识信息,根据比较结果有选择的返回携带有未修改标识或最新CRL文件的响应消息,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
以及,网络传输携带未修改标识的响应消息相对于传输携带CRL文件的响应消息所需要的时间减少了,通过利用本地保存的证书撤销列表CRL文件对用户证书(客户端证书)的状态进行有效性验证,实现了用户证书状态的快速检测/验证,提高证书状态检测/验证的效率。
请参阅图2,为本发明实施例的一种证书状态的验证方法,可应用于证书认证设备,包括:
S301、获得CRL下载位置信息;
具体可以是,在该证书认证设备上预先配置CRL下载位置信息,也可以是动态获得的,如从收到的客户端发来的用户证书中获取CDP(CRLDistribution Points,证书撤销列表发布点)信息;
这里的CDP(CRL Distribution Points,证书撤销列表发布点)信息,即CRL下载位置信息,具体可以用URL表示,例如:URL=http://172.16.40.3/crl1.crl;
S302、根据该CRL下载位置信息,向对应的CRL服务器发送CRL下载请求消息,所述CRL下载请求消息携带有第一CRL文件标识信息;
这里的第一CRL文件标识信息表示的是该证书认证设备本地保存的CRL文件的标识信息,具体可以是CRL文件修改时间,表示为第一修改时间,或者CRL文件散列值,表示为第一散列值,也可以是CRL文件修改时间和CRL文件散列值的组合(即第一修改时间和第一散列值的组合),包括但不限于此。
S303、接收返回的与所述CRL下载请求消息关联的响应消息;
S304、当所述响应消息中携带有未修改标识时,利用本地保存的证书撤销列表CRL文件对用户证书(客户端证书)的状态进行有效性验证。
这里的未修改标识表示CRL服务器侧对应的CRL文件相对于证书认证设备本地保存的该CRL文件没有修改/更新,两者的属性是相同的,例如,修改时间是相同的,等等。
以及,这里的利用本地保存的证书撤销列表CRL文件对用户证书的状态进行有效性验证可以包括:从本地缓存中获得对应的CRL文件,并利用该CRL文件中的撤销列表CRL信息检查该用户证书是否被撤销/吊销;应当理解的是,用户证书的状态验证还可以包括:检查用户证书是否过期,以及验证用户证书签名等。
可选的,本发明实施例的方法,可以进一步包括:
S305、当所述响应消息中携带有CRL文件时,利用该CRL文件对用户证书的状态进行有效性验证,并更新本地的CRL文件。
具体可以包括,从该CRL文件中解析并获得证书撤销列表CRL信息,利用该证书撤销列表信息检查用户证书是否被撤销,并使用该CRL文件更新本地的CRL文件。
需要说明的是,返回的响应消息中的CRL文件可以是仅包括当前证书相关的证书撤销列表信息的CRL文件,也可以是一个全局的CRL文件,可以根据实际需要灵活选择方式,形式不限。
可见,本发明实施例的方法中,通过向CRL服务器发送携带第一CRL文件标识信息的CRL下载请求消息,使得CRL服务器根据该请求消息中的第一CRL文件标识信息和CRL服务器侧存有的CRL文件的第二CRL文件标识信息的比较结果,有选择的返回携带有未修改标识或最新CRL文件的响应消息,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
以及,网络传输携带未修改标识的响应消息相对于传输携带CRL文件的响应消息所需要的时间减少了,通过利用本地保存的证书撤销列表CRL文件对用户证书(客户端证书)的状态进行有效性验证,实现了用户证书状态的快速检测,提高证书状态检测的效率。
请参阅图3,为本发明实施例的一种证书状态的验证方法,可以应用于CRL服务器,包括:
S401、接收CRL下载请求消息,所述CRL下载请求消息携带有第一CRL文件标识信息;
这里的第一CRL文件标识信息表示的是该证书认证设备本地保存的CRL文件的标识信息,具体可以是CRL文件的修改时间,表示为第一修改时间,也可以是CRL文件的散列值,表示为第一散列值,也可以是第一修改时间和第一散列值的组合,包括但不限于此。
S402、比较该CRL下载请求消息中的第一CRL文件标识信息与CRL服务器上的对应CRL文件的第二CRL文件标识信息,当第一CRL文件标识信息和第二CRL文件标识信息相同时,返回携带有未修改标识的响应消息。
可选的,本发明实施例方法可以进一步包括:
S403、当第一CRL文件标识信息和第二CRL文件标识信息不相同时,返回携带有CRL服务器上的对应CRL文件的响应消息。
具体的,在一种实现下,比较该CRL下载请求消息中的第一修改时间与CRL服务器上的对应CRL文件的第二修改时间,如果两者相同,表示CRL文件未更新过,返回携带有未修改标识的响应消息;如果第二修改时间大于第一修改时间,表示CRL文件有更新,返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
在另一种实现下,比较该CRL下载请求消息中的第一散列值与CRL服务器上的对应CRL文件的第二散列值,如果两者相同,表示CRL文件未更新过,返回携带有未修改标识的响应消息;如果不相同,表示CRL文件有更新,返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
在再一种实现下,比较该CRL下载请求消息中的第一散列值与CRL服务器上的对应CRL文件的第二散列值,以及比较该CRL下载请求消息中的第一修改时间与CRL服务器上的对应CRL文件的第二修改时间,如果均相同,返回携带有未修改标识的响应消息;如果第一散列值与第二散列值不相同,和/或,第二修改时间大于第一修改时间,返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
需要说明的是,返回的响应消息中的CRL文件可以是仅包括当前证书相关的证书撤销列表信息的CRL文件,也可以是一个全局的CRL文件,可以根据实际需要选择,形式不限。
可见,本发明实施例的方法中,通过接收携带第一CRL文件标识信息的CRL下载请求消息,根据该请求消息中的第一CRL文件标识信息和CRL服务器侧存有的CRL文件的第二CRL文件标识信息的比较结果,有选择的返回携带有未修改标识或最新CRL文件的响应消息,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
下面结合具体的应用场景来详细描述本发明实施例的方法:
如图4所示,为本发明实施例的一种证书状态的验证方法的交互示意图,应用于包括客户端/浏览器、证书认证设备和CRL服务器的系统环境下,其中CRL服务器为基于HTTP(Hypertext Transfer Protocol,超文本传输协议)协议的服务器,证书认证设备可以为认证网关,以及本实施例具体介绍的是基于HTTP协议的证书状态的验证方法,如图4所示,该方法包括:
S501、客户端(或浏览器)在认证过程中向证书认证设备发送用户证书(客户端证书);
S502、证书认证设备从用户证书中提取得到CDP信息,该CDP信息即该用户证书的CRL下载位置信息;
一种用户证书(客户端证书)格式,如图5所示,包括版本号、证书序列号、CA签名算法、签发者CA名称、证书有效期、证书持有者名称、证书公钥、密钥/证书用途、证书扩展域和CA对证书的签名;其中,该“证书扩展域”中包含CDP信息,即CRL服务器信息,例如:URL=http://172.16.40.3/crl1.crl。以及,对于CA证书,密钥/证书用途是证书签名(Certificate Signing)、CRL签名(CRL Signing)。
S503、证书认证设备向客户端(或浏览器)返回一个消息号为100Continue的HTTP响应消息,以通知客户端(或浏览器)暂时需要等待一段时间;
S504、证书认证设备根据提取的CDP信息,向对应的CRL服务器发送下载CRL的HTTP请求报文,其中该HTTP请求报文头中包括If-Modified-Since字段,该If-Modified-Since字段携带当前系统中缓存的CRL文件的修改时间(表示为第一修改时间);
在一种实现下,如果当前系统的缓存中没有对应的CRL文件,则该If-Modified-Since字段填充为1970年1月1日0点0分0秒;
这里的当前系统缓存的CRL文件的修改时间可以指的是证书认证设备上缓存的CRL文件的修改时间,也可以是证书认证设备外挂的存储设备上缓存的CRL文件的修改时间,包括但不限于此。
应当理解的是,通过HTTP请求报文头中的If-Modified-Since字段携带第一修改时间,仅是一种实现,也可以通过HTTP请求报文中的其他字段来携带。
S505、CRL服务器从接收的HTTP请求报文的If-Modified-Since字段中提取得到第一修改时间,比较该第一修改时间与CRL服务器上的对应CRL文件的修改时间(表示为第二修改时间),当比较结果为第二修改时间与第一修改时间相等,执行步骤S506;
应当理解的是,CRL服务器上存有CRL文件,系统可以读到该CRL文件的修改时间。
S506、CRL服务器向证书认证设备返回304Not Modified的HTTP响应消息;
S507、证书认证设备根据收到的304Not Modified的HTTP响应消息,从本地的CRL cache中获得对应的证书撤销列表CRL信息,利用该CRL信息对该用户证书的状态进行有效性验证;
具体是,利用证书撤销列表CRL信息检查该用户证书是否已经被撤销。
S508、证书认证设备向客户端(或浏览器)返回S507中的证书验证结果。流程结束。
如图6所示,为本发明实施例的另一种证书状态的验证方法的交互示意图,应用于包括客户端/浏览器、证书认证设备和CRL服务器的系统环境下,其中CRL服务器为基于HTTP协议的服务器,证书认证设备可以为认证网关,以及本实施例具体介绍的是基于HTTP协议的证书状态的验证方法,如图6所示,该方法包括:
S601、客户端(或浏览器)在认证过程中向证书认证设备发送用户证书(客户端证书);
S602、证书认证设备从客户端证书中提取得到CDP信息,其中该CDP信息即该证书的CRL下载位置信息;
一种证书格式,如图5所示,包括版本号、证书序列号、CA签名算法、签发者CA名称、证书有效期、证书持有者名称、证书公钥、密钥/证书用途、证书扩展域和CA对证书的签名;其中,该证书扩展域中包含CRL分发点(CDP)信息,以及,对于CA证书,密钥/证书用途是证书签名(CertificateSigning)、CRL签名(CRL Signing)。
S603、证书认证设备向客户端(或浏览器)返回一个消息号为100Continue的HTTP响应消息,以通知客户端(或浏览器)暂时需要等待一段时间;
S604、证书认证设备根据提取的CDP信息向对应的CRL服务器发送下载CRL的HTTP请求报文,其中该HTTP请求报文头中包括If-Modified-Since字段,该If-Modified-Since字段携带当前系统中缓存的CRL文件的修改时间(表示为第一修改时间);
在一种实现下,如果当前系统的缓存中没有对应的CRL文件,则该If-Modified-Since字段填充为1970年1月1日0点0分0秒;
这里的当前系统缓存的CRL文件的修改时间可以指的是证书认证设备上缓存的CRL文件的修改时间,也可以是证书认证设备外挂的存储设备上缓存的CRL文件的修改时间,包括但不限于此。
应当理解的是,通过HTTP请求报文头中的If-Modified-Since字段携带第一修改时间,仅是一种实现,也可以通过HTTP请求报文中的其他字段来携带。
S605、CRL服务器从接收的HTTP请求报文的If-Modified-Since字段中提取得到第一修改时间,比较该第一修改时间与CRL服务器上的对应CRL文件的修改时间(表示为第二修改时间),当比较结果为第二修改时间大于第一修改时间时,执行步骤S606;
应当理解的是,CRL服务器上存有CRL文件,系统可以读到该CRL文件的修改时间。
S606、CRL服务器将CRL服务器上对应的CRL文件携带在200OK的HTTP响应报文中,并向证书认证设备返回所述200OK的HTTP响应报文;
S607、证书认证设备从收到的HTTP响应报文中解析出CRL文件,并从该CRL文件中获得证书撤销列表CRL信息,利用该CRL信息对用户证书的状态进行有效性验证。
具体是,利用证书撤销列表CRL信息检查该用户证书是否被撤销。
一种CRL文件格式,如图7所示,包括版本号、CA签名算法、签发者CA名称、本次更新时间、下次更新时间、撤销的证书列表、CRL扩展项和CA对文件的签名;其中,该“本次更新时间”和“下次更新时间”,是CRL文件发布的时间,该“撤销的证书列表”可以包含很多撤销的证书记录,其中单个撤销的证书记录格式如图8所示,其中的条目扩展项可以是吊销理由等。
S608、证书认证设备向客户端(或浏览器)返回S607中的证书验证结果。流程结束。
可见,本发明实施例的方法中,通过向CRL服务器发送携带第一修改时间的CRL下载请求消息,使得CRL服务器根据该请求消息中的第一修改时间和CRL服务器侧存有的CRL文件的第二修改时间的比较结果,有选择的返回304Not Modified的HTTP响应报文或携带有CRL文件的200OK的响应报文,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
如图9所示,为本发明实施例的另一种证书状态的验证方法的交互示意图,应用于包括客户端/浏览器、证书认证设备和CRL服务器的系统环境下,其中CRL服务器为基于LDAP(Lightweight Directory Access Protocol,轻型目录访问协议)协议的服务器,证书认证设备可以为认证网关,以及本实施例具体介绍的是基于LDAP协议的证书状态的验证方法,如图9所示,该方法包括:
S701、客户端(或浏览器)在认证过程中向证书认证设备发送用户证书(客户端证书);
S702、证书认证设备从客户端证书中提取得到CDP信息,其中该CDP信息即该证书的CRL下载位置信息;
S703、证书认证设备根据提取的CDP信息,向对应的CRL服务器发送下载CRL的LDAP请求报文,其中该LDAP请求报文头中携带当前系统中缓存的CRL文件的散列值(表示为第一散列值);
在一种实现下,如果当前系统的缓存中没有对应的CRL文件,则第一散列值为全0;
S704、CRL服务器从接收的LDAP请求报文中提取得到第一散列值,比较该第一散列值与CRL服务器上的对应CRL文件的散列值(表示为第二散列值),如果比较结果为第一散列值与第二散列值相同,执行步骤S705;
具体包括,从LDAP请求报文中获取第一散列值,保存为hash(哈西/散列)1;
将CRL服务器上对应的CRL文件利用统一的算法进行散列计算,得到的散列结果为hash2,即第二散列值;这里的统一的算法指的是客户端和服务器端两者采用相同的算法,例如,都采用MD5(Message-Digest Algorithm 5,信息-摘要算法)、SHA(Secure Hash Algorithm,安全散列算法);
以及,将hash1和hash2进行比较,如果两者相同,表示CRL没有更新;如果两者不相同,表示CRL文件有更新。
应当理解的是,也可以是利用统一的算法预先进行散列计算得到第二散列值,并保存在CRL服务器侧。
S705、CRL服务器向证书认证设备返回携带有未修改标识的LDAP响应报文;
S706、证书认证设备根据收到的携带有未修改标识的LDAP响应报文,从本地的CRL cache中获得对应的证书撤销列表CRL文件,利用该CRL文件中的CRL信息对该用户证书的状态进行有效性验证;
具体是,利用证书撤销列表CRL信息检查该用户证书是否被撤销。
S707、证书认证设备向客户端(或浏览器)返回S706中的证书验证结果。流程结束。
需要说明的是,如图10所示,S701-S703同上不再赘述,如果S704′中比较结果为第一散列值与第二散列值不同,则执行步骤S705′;
S705′、CRL服务器将CRL服务器上对应的CRL文件携带在LDAP响应报文中,并向证书认证设备返回该LDAP响应报文;
S706′、证书认证设备从收到的LDAP响应报文中解析出CRL文件,并从该CRL文件中获得证书撤销列表CRL信息,利用该CRL信息对用户证书的状态进行有效性验证。
具体是,利用证书撤销列表CRL信息检查该用户证书是否被撤销。
S707′、证书认证设备向客户端(或浏览器)返回S706′中的证书验证结果。流程结束。
可见,本发明实施例的方法中,通过向CRL服务器发送携带第一散列值的CRL下载请求消息,使得CRL服务器根据该请求消息中的第一散列值和CRL服务器侧存有的CRL文件的第二散列值的比较结果,有选择性的返回携带有未修改标识或者CRL文件的LDAP响应报文,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
本发明实施例的方法中,进一步可以实现CRL的缓存机制,进行证书状态的快速验证/检测,与前述实施例的区别在于,本实施例用于下载最新的CRL并本地缓存(可以选择系统任务闲时触发下载最新的CRL),以便当后续执行本发明实施例的证书状态的验证方法时,可以利用本地缓存的CRL信息去验证证书状态的有效性。如图11所示,该方法包括:
S801、证书认证设备根据CRL下载配置定时或由管理员手动触发CRL文件下载任务;
S802、证书认证设备获取预先配置的用于CRL下载的CDP信息,其中该CDP信息即该证书的CRL下载位置信息;
S803、证书认证设备根据该CDP信息,向对应的CRL服务器发送下载CRL的HTTP请求报文,该HTTP请求报文头中包括If-Modified-Since字段,该If-Modified-Since字段携带当前系统中缓存的CRL文件的修改时间(表示为第一修改时间);
在一种实现下,如果当前系统的缓存中没有对应的CRL文件,则该If-Modified-Since字段填充为1970年1月1日0点0分0秒;
S804、CRL服务器从接收的HTTP请求报文的If-Modified-Since字段中提取得到第一修改时间,比较该第一修改时间与CRL服务器上的对应CRL文件的修改时间(表示为第二修改时间),如果比较结果为第二修改时间与第一修改时间相等,执行步骤S705;如果比较结果为第二修改时间大于第一修改时间,执行步骤S705′;
S805、CRL服务器向证书认证设备返回304Not Modified的HTTP响应消息;
S806、证书认证设备根据收到的304Not Modified的HTTP响应消息,不作处理;流程结束。
S805′、CRL服务器向证书认证设备返回携带有CRL服务器上对应的CRL文件内容的HTTP响应消息;
S806′、证书认证设备从收到的HTTP响应消息中解析出CRL文件,并写入本地缓存中(即使用该CRL文件更新本地CRL文件)。流程结束。
可见,本发明实施例中,通过CRL的缓存机制实现在证书认证设备上预先进行了CRL的缓存,从而当CRL服务器上的CRL文件的第一修改时间与收到的请求报文中第二修改时间相同时,能避免重复下载,证书认证设备直接利用缓存的CRL进行证书的有效性验证,从而实现了证书状态的快速检测,提高了证书状态检测的效率,进一步的降低网络负载。
请参阅图12,为本发明实施例的一种证书认证设备的结构示意图,如图12所示,该证书认证设备包括:
信息获得单元1201,用于获得CRL下载位置信息;
具体可以是,在该证书认证设备上预先配置CRL下载位置信息,也可以是动态获得的,如从收到的客户端发来的证书中获取CDP信息;这里的CDP信息即CRL下载位置信息,具体可以用URL表示;
通信单元1202,用于根据该CRL下载位置信息,向对应的CRL服务器发送携带有第一CRL文件标识信息的CRL下载请求消息;并接收返回的与所述CRL下载请求消息关联的响应消息;
这里的第一CRL文件标识信息表示的是该证书认证设备本地保存的CRL文件的标识信息,具体可以是CRL文件修改时间,表示为第一修改时间,也可以是CRL文件散列值,表示为第一散列值,也可以是CRL文件修改时间和CRL文件散列值的组合(即第一修改时间和第一散列值的组合),包括但不限于此。
需要说明的是,返回的响应消息中的CRL文件可以是仅包括当前证书相关的证书撤销列表信息的CRL文件,也可以是一个全局的CRL文件,可以根据实际需要选择,形式不限。
处理单元1203,用于当所述响应消息中携带有未修改标识时,利用本地保存的证书撤销列表CRL文件对用户证书(客户端证书)的状态进行有效性验证。
这里的未修改标识表示CRL服务器侧对应的CRL文件相对于证书认证设备本地保存的CRL文件没有修改/更新,两者的属性是相同的,例如,修改时间是相同的,等等。
在一种实现下,处理单元1203为第一处理单元,用于当所述响应消息中携带有未修改标识时,从本地缓存中获得对应的证书撤销列表CRL文件,利用所述证书撤销列表CRL文件中的证书撤销列表CRL信息检查该用户证书是否被撤销。应当理解的是,用户证书的状态验证还可以包括:检查用户证书是否过期,以及验证用户证书签名等
可选的,本发明实施例的证书认证设备中:
处理单元1203进一步用于当所述响应消息中携带有CRL文件时,利用该CRL文件对用户证书的状态进行有效性验证,并更新本地的CRL文件。
具体可以包括,从该CRL文件中解析并获得证书撤销列表CRL信息,利用该证书撤销列表信息检查用户证书是否被撤销,并使用该CRL文件更新本地的CRL文件。
以及,在实际的组网环境中,本发明实施例的证书认证设备可以是网关,或者是虚拟专用网VPN,或者是安全接入网关。
可见,本发明实施例的证书认证设备中,通过向CRL服务器发送携带第一CRL文件标识信息的CRL下载请求消息,使得CRL服务器根据该请求消息中的第一CRL文件标识信息和CRL服务器侧存有的CRL文件的第二CRL文件标识信息的比较结果,有选择的返回携带有未修改标识或最新CRL文件的响应消息,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
以及,网络传输携带未修改标识的响应消息相对于传输携带CRL文件的响应消息所需要的时间减少了,通过利用本地保存的证书撤销列表CRL文件对用户证书(客户端证书)的状态进行有效性验证,实现了用户证书状态的快速检测,提高证书状态检测的效率。
请参阅图13,为本发明实施例的一种CRL服务器的结构示意图,如图13所示,该CRL服务器包括:
通信单元1301,用于接收CRL下载请求消息,所述CRL下载请求消息携带有第一CRL文件标识信息,并返回与该CRL下载请求消息关联的响应消息;
这里的第一CRL文件标识信息表示的是该证书认证设备本地保存的CRL文件的标识信息,具体可以是CRL文件的修改时间,表示为第一修改时间,也可以是CRL文件的散列值,表示为第一散列值,也可以是第一修改时间和第一散列值的组合,包括但不限于此。
检查单元1302,用于比较该CRL下载请求消息中的第一CRL文件标识信息与CRL服务器上的对应CRL文件的第二CRL文件标识信息,当比较结果为第一CRL文件标识信息和第二CRL文件标识信息相同时,由通信单元1301返回携带有未修改标识的响应消息。
可选的,检查单元1302进一步用于当比较结果为第一CRL文件标识信息和第二CRL文件标识信息不相同时,由通信单元1301返回携带有CRL服务器上的对应CRL文件的响应消息。
具体的,在一种实现下,检查单元1302为第一检查单元,用于比较该CRL下载请求消息中的第一修改时间与CRL服务器上的对应CRL文件的第二修改时间,如果两者相同,由通信单元1301返回携带有未修改标识的响应消息;如果第二修改时间大于第一修改时间,由通信单元1301返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
在另一种实现下,检查单元1302为第二检查单元,用于比较该CRL下载请求消息中的第一散列值与CRL服务器上的对应CRL文件的第二散列值,如果两者相同,由通信单元1301返回携带有未修改标识的响应消息;如果不相同,由通信单元1301返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
在再一种实现下,检查单元1302为第三检查单元,用于比较该CRL下载请求消息中的第一散列值与CRL服务器上的对应CRL文件的第二散列值,以及比较该CRL下载请求消息中的第一修改时间与CRL服务器上的对应CRL文件的第二修改时间,如果均相同,由通信单元1301返回携带有未修改标识的响应消息;如果第一散列值与第二散列值不相同,和/或,第二修改时间大于第一修改时间,由通信单元1301返回携带有最新CRL文件(即CRL服务器上的对应CRL文件)的响应消息。
需要说明的是,返回的响应消息中的CRL文件可以是仅包括当前证书相关的证书撤销列表信息的CRL文件,也可以是一个全局的CRL文件,可以根据实际需要选择方式,形式不限。
以及,在实际的组网环境中,本发明实施例的CRL服务器可以是WEB服务器,或者是LDAP服务器,等等。
可见,本发明实施例的CRL服务器中,通过接收携带第一CRL文件标识信息的CRL下载请求消息,根据该请求消息中的第一CRL文件标识信息和CRL服务器侧存有的CRL文件的第二CRL文件标识信息的比较结果,有选择的返回携带有未修改标识或最新CRL文件的响应消息,解决了现有技术每次检测或验证用户证书都需要下载CRL的问题,避免重复下载CRL,有效的减轻了网络负荷。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。