一种用于创建证书测试库的方法和装置与流程

文档序号:11436258阅读:239来源:国知局
一种用于创建证书测试库的方法和装置与流程

本发明涉及公钥基础设施领域,尤其涉及一种用于创建证书测试库的方法和装置。



背景技术:

公钥基础设施(pki)是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范,其通过认证机构(ca)利用证书把用户的公钥和用户的标识信息捆绑在一起,在网络上验证用户的身份。国际电信联盟(itu-t)制定的数字证书标准x.509详细定义了pki中的证书。

安全套接层(ssl)协议及其继任者传输层安全(tls)协议是pki中采用的为网络通信提供安全及数据完整性的一种安全协议,用于在实际的数据传输开始前,对通信双方进行身份认证、协商加密算法、交换加密密钥等。实现或遵循ssl/tls协议的部分或全部的应用通常被称作ssl/tls实现,例如,openssl、nss、gnutls等。ssl/tls实现在对用户进行身份认证时首先需要对用户的证书进行有效性验证。从而,ssl/tls实现能否正确地验证证书的有效性对ssl/tls实现的身份认证功能非常重要。

通常,使用证书测试库来测试ssl/tls实现能否正确地验证证书的有效性,其中,该证书测试库包括多个证书和该多个证书各自的表示有效或无效的有效性指示。然而,在创建该证书测试库时,该多个证书各自的有效性指示是由操作人员对该多个证书检查而确定的。

因此,目前创建证书测试库的方式需要付出较大的人力。



技术实现要素:

考虑到现有技术的上述问题,本发明的实施例提供一种用于创建证书测 试库的方法和装置,其能够在付出较少人力的情况下创建证书测试库。

按照本发明实施例的一种用于创建证书测试库的方法,包括:利用多个具有对公钥基础设施(pki)的证书进行验证的功能的实现,对多个公钥基础设施的证书中的每一个证书进行验证;根据所述多个实现对所述多个证书各自的验证结果,设置所述多个证书各自的表示是否有效的有效性指示;以及,创建证书测试库,所述证书测试库包括至少一个证书和所述至少一个证书各自的所述有效性指示,所述至少一个证书是所述多个证书中其所述有效性指示为有效或无效的证书。

其中,设置所述多个证书各自的表示是否有效的有效性指示包括:如果所述多个实现对所述多个证书中的任一证书的验证结果都表示所述任一证书是有效的,则设置所述任一证书的所述有效性指示为有效;如果所述多个实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为无效;以及,如果所述多个实现中的一部分实现对所述任一证书的验证结果都表示所述任一证书是有效的,以及,所述多个实现中的另一部分实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为有效性未知。

其中,所述方法还包括:如果所述多个证书中的某些证书的所述有效性指示为有效性未知,则根据预定的规则,判断所述某些证书中的每一个证书是否有效;以及,基于判断结果,设置所述某些证书各自的所述有效性指示。

其中,所述方法还包括:如果所述多个证书中的一个或若干证书的所述有效性指示为有效性未知,则呈现所述一个或若干证书以供技术人员检查其是否有效;以及,当接收到指示所述一个或若干证书各自是有效或无效的检查结果时,根据所接收的检查结果,设置所述一个或若干证书各自的所述有效性指示。

其中,所述多个实现包括遵循安全套接层(ssl)协议的实现和/或遵循传输安全层(tls)协议的实现。

按照本发明实施例的一种用于创建证书测试库的装置,包括:验证模块,用于利用多个具有对公钥基础设施(pki)的证书进行验证的功能的实现,对多个公钥基础设施的证书中的每一个证书进行验证;设置模块,用于根据所述多个实现对所述多个证书各自的验证结果,设置所述多个证书各自的表示是否有效的有效性指示;以及,创建模块,用于创建证书测试库,所述证书测 试库包括至少一个证书和所述至少一个证书各自的所述有效性指示,所述至少一个证书是所述多个证书中其所述有效性指示为有效或无效的证书。

其中,所述设置模块用于:如果所述多个实现对所述多个证书中的任一证书的验证结果都表示所述任一证书是有效的,则设置所述任一证书的所述有效性指示为有效;如果所述多个实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为无效;以及,如果所述多个实现中的一部分实现对所述任一证书的验证结果都表示所述任一证书是有效的,以及,所述多个实现中的另一部分实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为有效性未知。

其中,所述装置还包括:判断模块,用于如果所述多个证书中的某些证书的所述有效性指示为有效性未知,则根据预定的规则,判断所述某些证书中的每一个证书是否有效,其中,所述设置模块还用于基于判断结果,设置所述某些证书各自的所述有效性指示。

其中,所述装置还包括呈现模块,用于如果所述多个证书中的一个或若干证书的所述有效性指示为有效性未知,则呈现所述一个或若干证书以供技术人员检查其是否有效,其中,所述设置模块还用于当接收到指示所述一个或若干证书各自是有效或无效的检查结果时,根据所接收的检查结果,设置所述一个或若干证书各自的所述有效性指示。

其中,所述多个实现包括遵循安全套接层(ssl)协议的实现和/或遵循传输安全层(tls)协议的实现。

从以上的描述可以看出,本发明实施例的方案在创建证书测试库时,利用多个具有对pki的证书进行验证的功能的实现对证书的验证结果来获知大部分证书或全部证书是有效的或无效的,从而,与现有技术相比,本发明实施例的方案在创建证书测试库时只需要付出较少的人力或甚至不需付出人力。

附图说明

本发明的其它特征、特点、优点和益处通过以下结合附图的详细描述将变得更加显而易见。其中:

图1示出了按照本发明的一个实施例的用于创建证书测试库的方法的流 程图。

图2示出了按照本发明的另一个实施例的用于创建证书测试库的方法的流程图。

图3示出了按照本发明的一个实施例的用于创建证书测试库的装置的示意图。

图4示出了按照本发明的一个实施例的用于创建证书测试库的设备的示意图。

具体实施方式

下面,将参照附图详细描述本发明的各个实施例。

现在参见图1,其示出了按照本发明的一个实施例的用于创建证书测试库的方法的流程图。图1所示的方法100可以由具有计算能力的任何设备(例如但不局限于,台式计算机、笔记本电脑、服务器等)来实现。

如图1所示,在步骤s102,获取多个证书c。例如但不局限于,从网络上获取该多个证书c,基于数字证书标准x.509通过合成的方式获取该多个证书c等等。本实施例对获取该多个证书c的方式不做任何限制。本实施例中的证书是指pki中的证书。

在步骤s104,利用多个ssl/tls实现对所获取的多个证书c中的每一个证书进行有效性验证。其中,该多个ssl/tls实现可以是其验证证书的有效性的能力已经得到确认和/或尚未得到确认的任何实现。

在步骤s106,根据该多个ssl/tls实现对该多个证书c各自的验证结果,设置该多个证书c各自的表示是否有效的有效性指示。

例如,如果该多个ssl/tls实现对该多个证书c中的任一证书ci的验证结果都表示证书ci有效,则设置该证书ci的有效性指示为有效。例如,假设该多个ssl/tls实现包括五个实现s1、s2、s3、s4和s5,在这种情况下,如果实现s1对证书ci的验证结果表示有效,实现s2对证书ci的验证结果表示有效,实现s3对证书ci的验证结果表示有效,实现s4对证书ci的验证结果表示有效,以及,实现s5对证书ci的验证结果表示有效,则设置该证书ci的有效性指示为有效。

例如,如果该多个ssl/tls实现对证书ci的验证结果都表示证书ci无效,则设置该证书ci的有效性指示为无效。

例如,如果该多个ssl/tls实现的一部分实现对证书ci的验证结果都表示证书ci有效,以及,该多个ssl/tls实现的另一部分实现对证书ci的验证结果都表示证书ci无效,则设置该证书ci的有效性指示为有效性未知。

试验表明,在经过以上的步骤s102-s106之后,已经能够获知该多个证书c中的大部分证书或全部证书是有效的或无效的。对于经过以上的步骤s102-s106之后仍不能确定是有效还是无效的证书,继续执行下面的步骤。

在步骤s108,如果该多个证书c中存在其有效性指示为有效性未知的一个或若干证书cp,则利用预定的规则来判断证书cp中的每一个证书是否有效。

在步骤s110,根据步骤108的判断结果,设置证书cp各自的有效性指示。例如,如果步骤108的判断结果表明证书cp中的任一证书cj有效,则设置证书cj的有效性指示为有效。例如,如果步骤s108的判断结果表明证书cj无效,则设置证书cj的有效性指示为无效。例如,如果步骤s108的判断结果表明不能确定证书cj是否有效,则设置证书cj的有效性指示为有效性未知。

在步骤s112,如果在步骤s110之后,该多个证书cp中仍存在其有效性指示为有效性未知的证书ck,则呈现证书ck,以便由技术人员来检查证书ck是否有效。

在技术人员检查出证书ck是否有效之后,输入表示证书ck是否有效的检查结果

在步骤s114,在接收到所输入的表示证书ck是否有效的检查结果之后,基于所接收的检查结果来设置证书ck的有效性指示。

在步骤s116,创建证书测试库,其包括该多个证书c和该多个证书c各自的有效性指示。

从以上的描述可以看出,本实施例的方案在创建证书测试库时,利用多个ssl/tls实现对证书的验证结果来获知大部分证书或全部证书是有效的或无效的,从而,本实施例的方案在创建证书测试库时只需要付出较少的人 力或甚至不需付出人力。

其他变型

本领域技术人员应当理解,虽然在上面的实施例中,方法100包括步骤s112和s114以基于技术人员的检查结果来设置证书的有效性指示,然而,本发明并不局限于此。在本发明的其它一些实施例中,方法100也可以不包括步骤s112和s114。在方法100不包括步骤s112和s114的情况下,所创建的证书测试库包括证书p和证书p各自的有效性指示,其中,证书p是证书c中其有效性指示为有效或无效的证书。

本领域技术人员应当理解,虽然在上面的实施例中,方法100包括步骤s108和s110,然而,本发明并不局限于此。在本发明的其它一些实施例中,方法100也可以不包括步骤s108和s110。

本领域技术人员应当理解,虽然在上面的实施例中,方法100包括步骤s108、s110、s112和s114,然而,本发明并不局限于此。在本发明的其它一些实施例中,方法100也可以不包括步骤s108、s110、s112和s114。在方法100不包括步骤s108、s110、s112和s114的情况下,所创建的证书测试库包括证书t和证书t各自的有效性指示,其中,证书t是证书c中其有效性指示为有效或无效的证书。

本领域技术人员应当理解,本实施例的方案不但适用于ssl/tls协议的情形,也适用于能对pki的证书进行验证的除了ssl/tls协议之外的其它安全协议。

现在参见图2,其示出了按照本发明的另一实施例的用于创建证书测试库的方法的流程图。图2所示的方法200可以由具有计算能力的任何设备来实现。

如图2所示,方法200可以包括步骤s202、步骤s204和步骤s206。在步骤s202,利用多个具有对pki的证书进行验证的功能的实现,对多个pki的证书中的每一个证书进行验证。在步骤s204,根据所述多个实现对所述多个证书各自的验证结果,设置所述多个证书各自的表示是否有效的有效性指示。在步骤s206,创建证书测试库,所述证书测试库包括至少一个证书和所述至少一个证书各自的所述有效性指示,所述至少一个证书是所述多个 证书中其所述有效性指示为有效或无效的证书。

在一个方面,步骤s204可以包括:如果所述多个实现对所述多个证书中的任一证书的验证结果都表示所述任一证书是有效的,则设置所述任一证书的所述有效性指示为有效;如果所述多个实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为无效;以及,如果所述多个实现中的一部分实现对所述任一证书的验证结果都表示所述任一证书是有效的,以及,所述多个实现中的另一部分实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为有效性未知。

在另一个方面,方法200还可以包括步骤s208和步骤s210。在步骤s208,如果所述多个证书中的某些证书的所述有效性指示为有效性未知,则根据预定的规则,判断所述某些证书中的每一个证书是否有效的步骤s208。在步骤s210,基于步骤s208的判断结果,设置所述某些证书各自的所述有效性指示。

在又一个方面,方法200还可以包括:如果在步骤s204之后或在步骤s210之后,所述多个证书中的一个或若干证书的所述有效性指示为有效性未知,则呈现所述一个或若干证书以供技术人员检查其是否有效的步骤s212;以及,当接收到指示所述一个或若干证书各自是有效或无效的检查结果时,根据所接收的检查结果,设置所述一个或若干证书各自的所述有效性指示的步骤s214。

在再一个方面,所述多个实现可以包括遵循ssl协议的实现和/或遵循tls协议的实现。

现在参见图3,其示出了按照本发明的一个实施例的用于创建证书测试库的装置的示意图。图3所示的装置300可以利用软件、硬件(例如集成电路或dsp等)或软硬件结合的方式来实现。

图3所示,装置300可以包括验证模块302、设置模块304和创建模块306。验证模块302用于利用多个具有对公钥基础设施(pki)的证书进行验证的功能的实现,对多个公钥基础设施的证书中的每一个证书进行验证。设置模块304用于根据所述多个实现对所述多个证书各自的验证结果,设置所述多个证书各自的表示是否有效的有效性指示。创建模块306用于创建证书测 试库,所述证书测试库包括至少一个证书和所述至少一个证书各自的所述有效性指示,所述至少一个证书是所述多个证书中其所述有效性指示为有效或无效的证书。

在一个方面,设置模块304可以用于:如果所述多个实现对所述多个证书中的任一证书的验证结果都表示所述任一证书是有效的,则设置所述任一证书的所述有效性指示为有效;如果所述多个实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为无效;以及,如果所述多个实现中的一部分实现对所述任一证书的验证结果都表示所述任一证书是有效的,以及,所述多个实现中的另一部分实现对所述任一证书的验证结果都表示所述任一证书是无效的,则设置所述任一证书的所述有效性指示为有效性未知。

在另一个方面,装置300还可以包括判断模块308。判断模块308用于如果所述多个证书中的某些证书的所述有效性指示为有效性未知,则根据预定的规则,判断所述某些证书中的每一个证书是否有效,以及,其中,设置模块304还用于基于判断模块308的判断结果,设置所述某些证书各自的所述有效性指示。

在又一个方面,装置300还可以包括呈现模块310,其用于如果在设置模块304根据所述多个实现的验证结果设置所述多个证书的有效性指示之后或者在设置模块304基于判断模块308的判断结果设置所述某些证书的所述有效性指示之后,所述多个证书中的一个或若干证书的所述有效性指示为有效性未知,则呈现所述一个或若干证书以供技术人员检查其是否有效,其中,设置模块304还用于当接收到指示所述一个或若干证书各自是有效或无效的检查结果时,根据所接收的检查结果,设置所述一个或若干证书各自的所述有效性指示。

在再一个方面,所述多个实现可以包括遵循ssl协议的实现和/或遵循tls协议的实现。

现在参见图4,其示出了按照本发明一个实施例的用于创建证书测试库的设备的示意图。如图4所示,用于创建证书测试库的设备400可以包括用于存储可执行指令的存储器410和与存储器410连接的处理器420,其中,处理器420可以执行图2所示的方法200所包括的各个步骤。

本发明的实施例还提供一种种计算机程序产品,包括机器可读介质,其上存储有可执行指令,当该可执行指令被执行时,使得机器执行图2所示的方法200所包括的各个步骤。

本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1