一种快速检索海量数字证书黑名单的方法技术

技术编号:7525400 阅读:299 留言:0更新日期:2012-07-12 06:07
本发明专利技术的目的在于公开一种快速检索海量数字证书黑名单的方法,基于预处理+多级分类+二分法的检索方法,将黑名单检索的时间复杂度从O(N)提高到了O(LogN),极大提高了检索的性能,在实际测试中,使用本算法对规模为100万的黑名单条目进行检索,平均时间控制在1微秒左右,实现本发明专利技术的目的。

【技术实现步骤摘要】

本专利技术涉及一种数字证书黑名单的检索方法,特别涉及一种海量数字证书黑名单预处理和快速检索的方法。
技术介绍
PKI体系中的CA系统使用黑名单来描述过期或被废除的数字证书,随着CA发证量的增大,黑名单的条目数量也会越来越多,国内较大的CA比如CFCA的黑名单条目数已经接近了百万量级。因为黑名单条目的主要标识是用户证书的证书序列号及其吊销原因,而不同的CA 的证书序列号可能重复,并且由于冻结和解冻操作的存在,同一个证书序列号也会多次出现在同一个黑名单之中,因此传统的黑名单检索技术是基于遍历查询的。国际上的通用πα 相关类库,比如基于C语言的OpenSSL,基于JAVA的BouncyCastle等,均采用了遍历查询方式对黑名单进行检索。在黑名单条目数达到百万的数量级后,遍历查询带来了非常大的性能开销,在实际应用环境中变得难以接受。综上所述,针对现有技术的缺陷,特别需要,以解决以上提到的问题。
技术实现思路
本专利技术的目的在于提供,解决上述现有技术的缺陷,基于预处理+多级分类+ 二分法的检索方法,将黑名单检索的时间复杂度从0 (N)提高到了 0 (Log N),极大提高了检索的性能。本专利技术所解决的技术问题可以采用以下技术方案来实现,其特征在于,它包括如下步骤1)建立一级索引,按照CA的标识建立一张一级索引表,存放指向各个CA的黑名单条目二级索引的指针;2)建立各CA的二级索引,将各CA的黑名单条目按照证书序列号组成一张有序表;3)剔除二级索引中的重复项;4)进行检索时,根据用户证书中的颁发者DN项在一级索引查询,获取到对应二级索引的入口指针;5)根据用户证书自身的序列号,在二级索引中进行查询,如果存在对应条目则认为该用户证书在黑名单中;如果不存在则认为该用户证书不在黑名单中。本专利技术的一个实施例中,黑名单检索的输入条件是用户证书中的颁发者DN项和用户证书自身的序列号。本专利技术的快速检索海量数字证书黑名单的方法,基于预处理+多级分类+ 二分法的检索方法,将黑名单检索的时间复杂度从0 (N)提高到了 0 (Log N),极大提高了检索的性能,在实际测试中,使用本算法对规模为100万的黑名单条目进行检索,平均时间控制在1微秒左右,实现本专利技术的目的。本专利技术的特点可参阅本案图式及以下较好实施方式的详细说明而获得清楚地了解。附图说明图1为本专利技术的快速检索海量数字证书黑名单的方法的索引示意图。 具体实施例方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本专利技术。如图1所示,本专利技术的快速检索海量数字证书黑名单的方法,它包括如下步骤1)建立一级索引,按照CA的标识建立一张一级索引表,存放指向各个CA的黑名单条目二级索引的指针;2)建立各CA的二级索引,将各CA的黑名单条目按照证书序列号组成一张有序表;3)剔除二级索引中的重复项;4)进行检索时,根据用户证书中的颁发者DN项在一级索引查询,获取到对应二级索引的入口指针;5)根据用户证书自身的序列号,在二级索引中进行查询,如果存在对应条目则认为该用户证书在黑名单中;如果不存在则认为该用户证书不在黑名单中。在建立一级索引时,由于不同CA颁发的证书序列号可以重复,因此首先要按照CA 的标识建立一张一级索引表(采用HASH表实现),使用各CA的DN (Distinguished Name) 作为键值,存放指向各个CA的黑名单条目二级索引的指针。在建立各CA的二级索引时,黑名单条目的本质是证书序列号+吊销状态码+吊销时间,按照)(509证书规范,证书序列号以ASN. 1编码的Integer表示,虽然在存储上是一个二进制序列,但在数学意义上也是可以排序的。而吊销状态码按照)(509规范,是一个数值 (字节0x01到0x08),也是可以排序的。吊销时间是秒为单位的绝对时间,也是可以排序。 根据以上组合排序条件,可以将各CA的黑名单条目组成一张有序表。剔除二级索引中的重复项黑名单吊销状态由)(509规范定义如下未定义{0,^Unspecified^}使用者密钥泄漏{1,"Key Compromise"}认证中心密钥泄漏12,〃CA Compromise]使用者资料改变{3,"Affiliation Changed"}凭证已被取代{4,"Superseded]操作停止{5,^Cessation Of Operation^}冻结16,"Certificate Hold"}已从CRL中移除{8,"Remove From CRL"}可以看到,状态8会覆盖之前的吊销操作,因此如果存在状态8,则需要该条目对应吊销时间之前的条目。为统一起见,本算法一律以黑名单条目的吊销时间为准,在二级索引中只保留最新时间的条目,而且如果最新的条目状态为8,则直接从二级索引中移除。这样,在二级索引中,每个证书序列号就只会对应0或1个条目。本专利技术中,黑名单检索的输入条件是用户证书中的颁发者DN项和用户证书自身的序列号。黑名单检索时,根据用户证书中的颁发者DN项在一级索引在中进行HASH查询,获取到对应二级索引的入口指针。如果在一级索引中未找到对应项,则可能是该证书的颁发者未发布黑名单,或该黑名单尚未加载,此时应由算法的调用者自行决定如何处理。根据用户证书自身的序列号,在二级索引中进行二分查询,如果存在对应条目则认为该用户证书在黑名单中;如果不存在则认为该用户证书不在黑名单中。由于预处理可以提前进行(一般在下载新的黑名单后,大约几个小时一次),因此其性能开销可以忽略不计,而影响实际检索性能的是第二步——由于本算法在检索时使用了 HASH + 二分法,这两种算法的时间复杂度均为0 (LOG N),因此本算法的时间复杂度也为0 (LOG N),比原先的遍历查询在性能上有很大的提高。在实际测试中,使用本算法对规模为100万的黑名单条目进行检索,平均时间控制在1微秒左右。以上显示和描述了本专利技术的基本原理和主要特征和本专利技术的优点。本行业的技术人员应该了解,本专利技术不受上述实施例的限制,上述实施例和说明书中描述的只是说明本专利技术的原理,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术范围内,本专利技术要求保护范围由所附的权利要求书及其等效物界定.。权利要求1.,其特征在于,它包括如下步骤1)建立一级索引,按照CA的标识建立一张一级索引表,存放指向各个CA的黑名单条目二级索引的指针;2)建立各CA的二级索引,将各CA的黑名单条目按照证书序列号组成一张有序表;3)剔除二级索引中的重复项;4)进行检索时,根据用户证书中的颁发者DN项在一级索引查询,获取到对应二级索引的入口指针;5)根据用户证书自身的序列号,在二级索引中进行查询,如果存在对应条目则认为该用户证书在黑名单中;如果不存在则认为该用户证书不在黑名单中。2.如权利要求1所述的快速检索海量数字证书黑名单的方法,其特征在于,黑名单检索的输入条件是用户证书中的颁发者DN项和用户证书自身的序列号。全文摘要本专利技术的目的在于公开,基于预处理+多级分类+二分法的检索方法,将黑名单检索的时间复杂度从O(N)提高到了O(LogN),极大提高了检索的性能,在实际测试中,使用本算法对规模为100万的黑名单条目进行检索,平本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:掌晓愚韩洪慧张义民
申请(专利权)人:上海格尔软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术