基于深度优先搜索的证书路径构建算法的研究

来源 :科学导报·学术 | 被引量 : 0次 | 上传用户:youshouyao
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: 随着互联网的发展,PKI结构日益复杂。本文分析了目前存在的几种典型的PKI信任模型,并设计了一种基于深度优先的递归算法来构建证书路径,描述了详细的算法流程。最后对该算法进行了优化,使其能提前排除无效路径,减轻路径验证的负担。
  关键词: PKI;信任模型;证书路径构建;LDAP
  【中图分类号】TP309【文献标识码】A【文章编号】2236-1879(2017)19-0239-02
  0 引言
  公钥基础设施PKI(Public Key Infrastructure)[1]是一种解决Internet上种种安全问题的框架和遵循既定标准的密钥管理平台,它已经成为信息安全技术的核心和关键技术。由于互联网不断发展,PKI信任域互操作性有着越来越强的需求,信任模型越来越复杂。在复杂的信任模型下,不同信任域的实体间需要进行交叉认证,包含交叉证书的证书路径的跨信任域构建问题成为难题之一。本文提出了一种基于深度优先的递归算法来构建证书路径,并对构建过程进行优化,提高证书验证的效率。
  1 PKI信任模型
  信任模型提供了一种用于建立并管理信任关系的框架,在PKI體系中,它的焦点是用户与CA、CA之间的相互信任的关系。当前PKI系统包含三种最基本的信任模型,即层次模型、对等模型和网状模型。
  然而实际情况要复杂很多,仅用这三种基本的模型无法满足实际需求。许多企业和机构采用了一些混合信任模型,比较成功的是ISO银行业模型和桥CA模型[2-3]。
  ISO银行业模型如图1,它是网状模型与层次模型的结合体。同一信任域内采用层次信任模型,各信任域的根CA间采用网状模型。域内或域间连接两个中介CA的高频路径可以建立直接交叉认证。
  桥CA模型如图2所示。桥CA实际上是一个中心级的交叉认证机构,用于连接不同的PKI体系。桥CA作为公共信任锚,用于各参与CA的交叉认证,管理各CA间的策略映射。该模型成功地运用于美国联邦政府。任何结构类型的PKI,通过桥CA,都可以连接并实现相互之间的信任,因此在该种模型上实现的路径构建算法,实际上必须支持几乎所有的信任模型[4]。
  2 证书路径的构建
  证书使用前必须先验证,为了验证证书,就必须建立一条认证路径,并验证此路径中的每个证书。该认证路径包括了从待验证的目标证书到信任锚之间的一系列证书。证书路径构建通常有两种方向[4],一种是前向(Forward)构建,即从目标证书到信任锚;另一种是反向(Reverse)构建,即从信任锚到目标证书。针对上述典型的PKI信任模型,本文研究并实现了一种较通用的基于深度优先搜索的前向路径构建算法。
  2.1 侯选证书的获取。
  证书以及CRL存储于诸如FTP,HTTP或LDAP服务器、X.500目录服务器等载体中,这些载体一般都是公共且易于访问的。证书中具有一些扩展项,可以用来提供URI信息。主体信息访问扩展SIA(Subject Info Access)可以获得由该证书所颁发的下级证书,具有该扩展的证书适合采用反向路径构建方法。权威信息访问扩展AIA(Authority Info Access),可以用来获得上级颁发者证书信息或OCSP服务器的URI信息。通过AIA可以获得一个或多个颁发者的证书,这些证书可以是CA证书也可以是交叉证书。具有AIA扩展的证书适合采用前向路径构建,这也是本算法实现时获取侯选证书所采用的主要方法。除此以外,还有很多其他的方法可以获得证书,这主要依赖于PKI体系中证书的存储结构和方式。本论文在具体实现时,证书和CRL存放于支持LDAP[5-6]的OpenLDAP目录服务器[7]中。
  Openssl函数库[8]以及OpenLdap函数库提供了很多底层函数,以下其中两个关键函数:
  int X509_get_ext_by_NID(X509 * x, int nid, int lastpos);
  X509_EXTENSION * X509_get_ext(X509 * x, int loc);
  X509_get_ext_by_NID函数通过给定的参数nid从证书扩展中对其进行定位,函数X509_get_ext通过定位loc,获得该扩展。当想要获得AIA扩展时,参数nid为NID_info_access,当想要获得SIA扩展时,参数nid为NID_sinfo_access。
  2.2 路径构建算法。
  路径构建的过程类似于对图中两顶点之间的路径进行搜索的过程,PKI体系中的实体相当于图的顶点,证书相当于图中的弧(由颁发者指向被颁发者)。搜索算法动态地从证书存储库中获得候选证书(指向当前顶点的弧)。本文采用的这种深度优先的递归算法能够返回所有存在的路径。通过对算法进行优化,还能够排除部分肯定无效的路径,从而提高所得路径的健壮性,减轻证书路径验证的负担。本算法基于Openssl库实现,主要函数如下:
  STACK_OF(PATH) * getPath_depthfirst(X509* endCert, X509* anchor, int CurrentDepth)
  CurrentDepth即路径长度,该算法将建立从目标证书endCert到信任锚之间的多条路径,anchor为信任锚证书。PATH表示一条路径,其定义为STACK_OF(X509)。所有路径以栈的形式返回。其调用递归函数为:
  void certPathbuildNodes( X509 *currentCert, X509 *anchor, PathNode *previousNode, STACK_OF(PathNode) *endNodes, int CurrentDepth, int MaxDepth)。   PathNode数据结构为:
  typedef struct path_node_st PathNode;
  struct path_node_st {
  X509* referenceCert;
  PathNode* previousPathNode; } ;
  流程为图3所示。endNods中存放每条路径最后一个结点。该递归函数执行完成后,其参数endNodes中的PathNode建立完成。
  PathNode中都具有前向指针previousPathNode,通过这个指针,可以由最后结点向前,从而建立出完整的路径由流程图可以看出,路径终止原因可能是超过路径最大长度MaxDepth,某个证书无符合要求的颁发者证书(排除可能形成回路的颁发者证书),或者是已经到达信任锚。如何判断CurrentCert是否已经到达信任锚是一个难点。参数anchor是信任锚的证书,但并不意味着CurrentCert必须与anchor为同一张证书才表明已到达信任锚。例如anchor是信任锚的CA证书,而CurrentCert为其他CA颁发给信任锚的交叉证书,二张证书虽然不同,但是实际上已经搜索到信任锚了。本算法采用可区分名DN和公钥相结合的方法解决此问题。如果CurrentCert与anchor只是DN相同,并不能表示二者都为信任锚的证书。很可能CurrentCert只是碰巧和信任锚具有相同DN的实体的证书。所以采用DN加上公钥进行判断是最合适的方法。
  获得currentCert的颁发者证书集 lookupCertPool,意思即为获得当前证书currentCert所签发出去的所有证书,可以通过SIA扩展项到对应的LDAP目录中获得。对lookupCertPool中的证书优化排序后,一部分中间证书被排除,另一部分中间证书将按照优先级别进行排序。iNocrossSubjectFound标志是否已经没有后续证书了,如果为是则将对应结点放入endNodes栈中。
  2.4 路径构建需解决的问题。
  1) 死端(Dead Ends)
  在非层次模型中,可能会由于“死端”而使得某条路径构建失败。以图4为例。
  目标证书为EE,信任锚为CA1。CA1.1有两张证书,一个是由CA2.1颁发的交叉证书,一个是由信任锚CA1颁发的中介CA证书。路径构建算法能够得到路径EE(CA1.1),CA1.1(CA2.1),CA2.1(CA2),CA2(CA2)。CA2没有其他实体给其颁发证书,并且CA2并非目标证书信任锚,因此此路径不完整而且无效。采用本算法,则此例中CA2 的自签名证书也会生成PathNode结点入endNodes栈。但是本算法规定若endNodes栈中的结点所对应的证书不是信任锚证书,则不再通过该结点的前向指针previousPathNode向前建立完整路径,该条无效路径将被放弃。
  2) 回路检测。
  当信任模型中出现回路时,可能会导致路径构建算法的死循环。回路检测不仅仅要判断同一张证书是否出现两次,还要检查相同主体名与主体可选名以及主体公钥是否都出现了两次。因为两张不同的证书可能都是同一个实体的证书,如果不排除,就有可能造成循环。
  3.结束语
  本文针对日益复杂的PKI信任模型,提出了一种基于深度优先搜索的前向路径构建算法。本算法解决了路径构建过程中出现的死端和回路问题。对于具有多个信任锚的情况,本算法采用了多进程并行处理的方式。认证路径处理由路径构建和路径验证两个阶段组成[9-11],并非所有的路径都能通过验证。今后可以进一步对路径构建过程进行优化研究,提前终结一部分无效路径的构建,也可以增加Cache机制,进一步提高路径构建的效率。
  参考文献
  [1]Yee P. Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile[S]. RFC 6818, January 2013.
  [2] [美] Andrew Nash. 公钥基础设施 (PKI) 实现和管理电子安全[M]. 张玉清, 译. 北京: 清华大学出版社, 2002: 249-251.
  [3]Qinghai Bai. Research on Mechanism of PKI Trust Model: Proc of 2011 IEEE International Conference on Information Theory and Information Security(ICITIS 2011), 2011[C]. Washington DC: IEEE Computer Society, 2011: 151-153.
  [4] Cooper M, Dzambasow Y, Hesse P, Joseph S, Nicholas R. Internet X.509 Public Key Infrastructure: Certification Path Building[S]. RFC 4158, September 2005.
  [5]zeilenga K. Lightweight Directory Access Protocol (LDAP) Schema Definitions for X.509 Certificates[S]. RFC4523, June 2006.
  [6]Zeilenga K, Lightweight Directory Access Protocol (LDAP) Transactions[S]. RFC5805, March 2010.
  [7]http://www.openldap.org
  [8]http://www.openssl.org
  [9] Freeman T, Housley R, Malpani A, Cooper D, Polk W. Server-Based Certificate Validation Protocol (SCVP)[S]. RFC5055, December 2007.
  [10]徐蕾, 孙尚波. 基于嚴格二叉树的证书路径构造方法[J]. 计算机应用, 2010, 12:107-109.
  [11]Fujishiro T, Sato A, Kumagai T, et al. Development of hi-speed X.509 certification path validation system: Proc of the 4th International Conference on Advanced Information Networking and Applications Workshops, 2010[C]. Washington DC: IEEE Computer Society, 2010:269-274.
  基金项目:国家自然科学基金资助项目(61373164)
  作者简介: 刘艳(1981-), 女, 江苏南通人, 讲师, 硕士, 主要研究方向为计算机网络、信息安全(xinnr@126.com); 杨哲(1978-), 男, 博士, 副教授, 主要研究方向为计算机网络、物联网应用.
其他文献
摘要: 随着时代的不断进步,我国教育事业也在不断的发展与完善。为了符合当前社会对人才的要求,高校管理必须进行全面的改革与完善。高校精细化教学行政管理模式不但能够节省在高校管理过程中所需要的成本,还能让传统的高效管理模式进行大幅度的创新,是目前传统高校教学行政管理模式进行改革的航向。精细化管理作为管理理念与技术完美结合的产物,有助于推动高校行政管理的实际效应。本文着重论述了高校教学行政管理模式的实践
期刊
摘要: 近些年来,火灾事故、恐怖袭击等引起的爆炸事件层出不穷,这不仅给建筑物的结构带来极大破坏,也给人们的生命安全带来巨大威胁,给企业、社会乃至国家造成巨大的经济损失。为此,要想消除或降低爆炸给现代建筑带来的影响,就必须要对现代建筑的结构进行防爆防护设计,本文便对现代建筑的防爆防护结构设计思路进行深入的探析,希望能为现代建筑的防爆防护设计提供可靠的理论依据。  关键词: 现代建筑;防爆防护;建筑结
期刊
摘要: “多余人”形象是俄国文学十分重要且具有典型意义的文学现象。从普希金《叶甫盖尼·奥涅金》中的奥涅金,到格里鲍耶多夫《聪明误》中的恰茨基,莱蒙托夫《当代英雄》中的毕巧林,屠格涅夫《罗亭》中的罗亭,一直到冈察洛夫《奥勃洛摩夫》中的奥勃罗莫夫,“多余人”形象几乎贯穿了整个十九世纪俄国文学。本文结合十九世纪时代背景和社会现状对这一形象加以探讨。  关键词: “多余人”;普希金;格里鲍耶多夫;莱蒙托夫
期刊
摘要: 当今时代,互联网信息技术在各个领域均得到了广泛应用。信息技術作为一种新型的载体被广泛应用于图书馆,促使街道图书馆也朝着智能化服务的方向进行改革。“互联网+”背景下图书馆的改革不是对传统图书馆服务的简单修补,更多的注重管理思想和服务理念的创新,本文将以自己工作的街道图书馆为具体案例,对“互联网+”背景下图书馆服务的创新进行详细研究。  关键词: “互联网+”;街道图书馆;服务理念;服务创新 
期刊
摘要: 为满足现代电子工业日益增长的散热需求,急需研究和开发新型高导热玻璃基复合材料,而改善复合材增强相与基体的界面结合状况是提高复合材料热导率的重要途径。本文在对金刚石进行镀层和控制氧化的基础上,利用放电等离子烧结方法制备了不同的金刚石增强玻璃基复合材料,并观察了其微观形貌和界面结合状况,测定了复合材料的热导率。实验结果表明:复合材料中金刚石颗粒均匀分布于玻璃基体中,金刚石界面分别是两种复合材料
期刊
摘要: 英语课堂质量可以直接影响到学生的学习效果以及学习质量,对学生的英语学习具有重要意义。然而现阶段我国大部分高职英语课堂教学活动只是单纯的将教材中的英语知识进行讲授,而没有结合学生特点进行合理的教学设计,使得课堂教学质量无法得到有效保证。本文将结合实际情况对有效教学理论的高职英语课堂教学活动设计进行分析,旨在有效提高高职英语课堂教学质量。  关键词: 有效教学理论;高职英语;课堂教学活动设计 
期刊
摘要: 物流服务与管理是一门随着物流行业的发展而逐步形成的、实践性较强的专业,而目前实践性教学环节在物流专业教学中还很缺失,可以通过“引进企业物流人才,优化师资结构”、“改进物流教学模式,加强实践教学环节改革”、“学校与企业协调,完善实习环节”等途径弥补这些缺失。  关键词: 物流专业、实践性教学、教学模式  【中图分类号】G712.4【文献标识码】A【文章编号】2236-1879(2017)19
期刊
摘要: 随着人们对安全的需求日益强烈,视频监控系统作为一种安全防范的有效手段,越来越受到各界的广泛关注。并且随着信息、网络、通信及多媒体等技术渗透到人类生活的各个领域的同时,视频监控也开始走进人们的生活。对视频监控系统的研究也成为了当前的热点。  关键词: 视频监控;技术防范;智能;网络;计算机视觉  Abstract: with the increasing demand for securit
期刊
摘要: 中国高等职业教育改革的进一步深化,多数的高等职业院校采用了开放式的教育模式,“工学交替”的教育模式逐渐普及。作为高等职业院校的英语教师,以职业为导向进行英语教学,适应了当前难度英语教学改革需求,以培养综合能力强的专业人才。本论文针对基于职业导向的高职英语教学改革策略进行研究。  关键词: 高等职业院校;职业导向;英语教学;改革策略  【中图分类号】G71【文献标识码】A【文章编号】2236
期刊
摘要: 当代社会,我们的消费应该是,消费“需要的”和“能力范围内的”。而且要节约资源,保护环境。  关键词: 理性消费,需要的,能力范围,节约资源,保护环境。  【中图分类号】C913.3【文献标识码】A【文章编号】2236-1879(2017)19-0253-01  随着经济社会的不断发展,人民的主要矛盾已发生了根本性的变化。为了满足人民日益增长的美好生活需要,人的消费能力,消费观念自然也在发生
期刊