一种数据证书文件的存储取用方法、装置、设备和介质与流程

文档序号:31050200发布日期:2022-08-06 06:49阅读:67来源:国知局
一种数据证书文件的存储取用方法、装置、设备和介质与流程

1.本发明涉及计算机技术领域,具体而言,涉及一种数据证书文件的存储取用方法、装置、设备和介质。


背景技术:

2.在使用互联网产品时,使用者都会购买数据证书以实现产品https或者第三方平台上的tls验证,成千上万的数据证书的存储会对磁盘及内存造成极大压力,为了缓解存储数据证书可能造成的内存压力,现在一般会采用压缩数据证书的方法来对数据证书进行存储。
3.目前市面上常规的数据证书压缩都是基于单证书公钥私钥文件进行压缩,但是如果存在海量的数据证书需要进行压缩,在采用常规的单证书压缩方式进行压缩后,还是会存在大量重复内容压缩以及压缩数据冗余,导致数据证书占据的内存空间依旧很大。


技术实现要素:

4.本发明的目的在于提供一种数据证书文件的存储取用方法、装置、设备和介质,旨在于减少存储数据证书所需要占据的内存空间。
5.本发明的实施例通过以下技术方案实现:第一方面本技术实施例提供一种数据证书文件的存储取用方法,所述方法包括:获取待压缩数据证书和索引树,所述索引树用于存储待压缩数据证书的证书链关系;对所述待压缩数据证书进行解析,提取所述待压缩数据证书的证书链和所述证书链中各级证书所对应的多个seq对象;获取所述证书链的指纹;基于所述证书链的指纹,判断所述索引树中是否已存入所述待压缩数据证书的证书链的指纹;若是,则获取下一个待压缩数据证书;若否,则将多个所述seq对象进行压缩,并构建指针分别指向各个所述seq对象的压缩数据;获取多个所述seq对象的指纹;基于所述证书链的结构,将所述证书链中各级证书所对应的多个所述seq对象的指纹和指针存入到所述索引树中;基于所述索引树,取用所需的数字证书。
6.优选地,所述基于所述证书链的指纹,判断所述索引树中是否已存入所述待压缩数据证书的证书链的指纹,包括:构建证书链指纹过滤器;
将所述证书链指纹输入到所述证书链指纹过滤器,进行判断:若所述证书链指纹过滤器中不存在所述证书链对象,则所述索引树中未存入所述待压缩数据证书的证书链关系。
7.优选地,所述基于所述证书链的结构,将所述证书链各级证书所对应的多个所述seq对象的指纹和指针存入到所述索引树中,包括:构建seq对象指纹过滤器;依次获取多个seq对象;每获取到一个seq对象,均基于所述seq对象指纹过滤器,判断所述索引树中是否存在所述seq对象的指纹;若是,则获取下一个seq对象;若否,则基于所述证书链的结构,获取所述seq对象在所述索引树中的父节点;在所述seq对象的父节点下创建新的子节点;将所述seq对象的指纹和指针添加到所述子节点处。
8.优选地,所述对所述待压缩数据证书进行解析,提取所述待压缩数据证书的证书链和所述证书链中各级证书所对应的多个seq对象,包括:获取所述待压缩数据证书的asn1结构;基于所述所述待压缩数据证书的asn1结构,采用openssl提取所述待压缩数据证书的加密算法列表、加密套件列表和签名算法;基于所述待压缩数据证书的加密算法列表、加密套件列表和签名算法,合成所述证书链中各级证书所对应的多个seq对象。
9.优选地,所述基于所述索引树,取用所需的数字证书,包括:获取所需数字证书的证书链;基于所述索引树,查找所述所需数字证书的证书链中各级证书所对应的所述seq对象的多个指针;根据所述多个指针提取对应的压缩数据,构建所需的数字证书文件。
10.优选地,所述根据所述多个指针提取对应的压缩数据,构建所需的数字证书文件,包括:将所述多个指针提取对应的压缩数据合并到所述数字证书的证书链中;基于所述所需数字证书的证书链,采用openssl构造出所需的数字证书文件,采用der编码输出。
11.优选地,所述证书链指纹过滤器和所述seq对象指纹过滤器均采用布隆过滤器。
12.第二方面本技术实施例提供一种数据证书文件的存储取用装置,所述装置包括输入模块、解析模块、证书链指纹获取模块、判断模块、seq对象指纹获取模块、存储模块和取用模块;其中,输入模块,用于获取待压缩数据证书和索引树,所述索引树用于存储待压缩数据证书的证书链关系;解析模块,用于对所述待压缩数据证书进行解析,提取所述待压缩数据证书的证书链和所述证书链中各级证书所对应的多个seq对象;
证书链指纹获取模块,获取所述证书链的指纹;判断模块,用于基于所述证书链的指纹,判断所述索引树中是否已存入所述待压缩数据证书的证书链的指纹;若是,则获取下一个待压缩数据证书;若否,则将多个所述seq对象进行压缩,并构建指针分别指向各个所述seq对象的压缩数据;seq对象指纹获取模块,用于获取多个所述seq对象的指纹;存储模块,用于基于所述证书链的结构,将所述证书链中各级证书所对应的多个所述seq对象的指纹和指针存入到所述索引树中;取用模块,用于基于所述索引树,取用所需的数字证书。
13.第三方面,本技术实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行发明内容第一方面所述的一种数据证书文件的存储取用方法。
14.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如发明内容第一方面所述的一种数据证书文件的存储取用方法。
15.本发明实施例的技术方案至少具有如下优点和有益效果:在获取到待压缩数据证书后,若采用传统的压缩方式进行压缩,易造成内存占用过大的问题;本发明通过对待压缩数据证书进行解析,将待压缩数据证书的证书链和其中各级证书所对应的seq对象提取出来;再将已经存入过索引树的待压缩数据证书剔除;对未存入到索引树的待压缩数据证书中各级证书所对应的seq对象进行压缩并存储,在使用时通过指向seq对象的指针和索引树就能够取用被压缩的数据;从而减少在压缩过程中重复的待压缩数据证书和seq对象,从而达到节约内存的效果。
附图说明
16.图1为本发明实施例提供的一种数据证书文件的存储取用方法的方法流程图;图2为本发明实施例提供的一种数据证书文件的存储取用装置的结构示意图。
具体实施方式
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
18.实施例1数据证书数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,用于在互联网上识别对方的身份。因此数字证书又称为数字标识。
19.对于一些提供成互联网服务产品的公司来说,其客户在计算机网络交流中的信息和数据等均以加密或解密的形式,以保证信息和数据的完整性和安全性;所以客户在应用这些产品时都会购买ssl证书以实现产品https或者第三方平台tls验证,而互联网产品的
复杂性会导致客户使用的数据证书成千上万,成千上万的数据证书的存储会对磁盘及内存造成极大压力。
20.在日常的使用中,为了缓解磁盘的压力,会采用数据压缩的方式对数据证书进行压缩。但是单数据证书文件的压缩方式只能在一定程度上缓解内存压力,成千上万的数据证书中,一部分证书存在重复的情况,所以在本实施例中,出于对可能重复的数据证书的考虑,采用本实施例的方案对大量的数据证书进行处理,以减少可能存在大量重复内容压缩以及压缩数据冗余情况。
21.本实施例提供一种数据证书文件的存储取用方法,参照图1,所述方法包括:s101,获取待压缩数据证书和索引树,所述索引树用于存储待压缩数据证书的证书链关系;在本实施例中, 首先获取待压缩数据证书,在获取时,待压缩数据证书从一个数据证书数据库中取出,该数据证书数据库可以是用户存放数据证书建造的库,也可以是数据证书提供商建造的库,主要用于存放需要使用的数据证书。
22.因为在本实施例中,要减少压缩成千上万的数据证书中存在重复的部分,所以可能会导致压缩后的数据证书存在不完整的情况,所以需要采用索引树记录待压缩数据证书的证书链关系,以在取用数据证书时通过索引树将待压缩数据证书恢复到未压缩时的情况。
23.s102,对所述待压缩数据证书进行解析,提取所述待压缩数据证书的证书链和所述证书链中各级证书所对应的多个seq对象;在本实施例中,采用本实施例提供的方法对x509数据证书进行压缩和取用;x509证书是采用der编码的asn1结构数据,是sequence类型,其包括三个元素。
24.解析过程包括以下子步骤:s1021,获取所述待压缩数据证书的asn1结构;x509证书的数据结构采用asn1结构,在对x509证书进行解析时,首先获取其asn1结构。
25.s1022,基于所述所述待压缩数据证书的asn1结构,采用openssl提取所述待压缩数据证书的加密算法列表、加密套件列表和签名算法;不同证书服务商提供的数据证书,其加密算法列表、加密套件列表和签名算法均不一致,所以通过获取加密算法列表、加密套件列表和签名算法,就能够表征待压缩数据证书。
26.s1023,基于所述待压缩数据证书的加密算法列表、加密套件列表和签名算法,合成所述证书链中各级证书所对应的多个seq对象。
27.通过获取待压缩数据证书的加密算法列表、加密套件列表和签名算法,就能够得到该待压缩数据证书中各级证书的多个seq对象,也能够通过多个seq对象来表示待压缩数据证书。
28.s103,获取所述证书链的指纹;获取证书链的指纹采用sha256算法,因为证书链的不同,所以通过哈希运算得到证书链的指纹是唯一的。
29.s104,基于所述证书链的指纹,判断所述索引树中是否已存入所述待压缩数据证
书的证书链的指纹;在判断索引树中是否已存入待压缩数据证书的证书链关系时,首先需要构建证书链指纹过滤器;证书链指纹过滤器采用布隆过滤器,布隆过滤器实际上是一个很长的二进制向量和一系列随机映射函数;布隆过滤器可以用于检索一个元素是否在一个集合中;它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。
30.通过采用布隆过滤器构建证书链指纹过滤器,在判断索引树中是否已存入待压缩的数据证书时,能够在较快的时间内得到判断结果,且在本实施例中,证书链指纹过滤器仅用于判断索引树中是否已有待压缩数据证书,所以布隆过滤器存在的缺点不会影响到本实施例的使用。
31.将所述证书链指纹输入到所述证书链指纹过滤器,进行判断:因为本实施例提出的方法是为了减少压缩过程中存在的重复数据,所以需要首先对证书链指纹进行判断,判断是否已进行压缩。
32.判断包括以下子步骤:s1041,若是,则获取下一个待压缩数据证书;若所述证书链指纹过滤器中不存在所述证书链对象,则所述索引树中未存入所述待压缩数据证书的证书链关系。所以该待压缩数据证书不需要再次压缩,直接对数据证书数据库中的下一个待压缩数据证书进行判断。
33.s1042,若否,则将多个所述seq对象进行压缩,并构建指针分别指向各个所述seq对象的压缩数据;通过证书链和多个seq对象,就能够表征一个数据证书;而证书链代表了数据证书中,各级证书之间的关系,其存储在索引树中,所以在对数据证书进行压缩时,仅需要压缩多个seq对象即可。
34.在本实施例中,压缩seq对象采用huffman压缩算法,压缩完毕后,使用seq对象的指纹作为文件名存入到硬件存储设备中。
35.s105,获取多个所述seq对象的指纹;s106,基于所述证书链的结构,将所述证书链中各级证书所对应的多个所述seq对象的指纹和指针存入到所述索引树中;包括以下子步骤:s1061,构建seq对象指纹过滤器;seq对象指纹过滤器也采用布隆过滤器设置。
36.s1062,依次获取多个seq对象s1063,每获取到一个seq对象,均基于所述seq对象指纹过滤器,判断所述索引树中是否存在所述seq对象的指纹;在压缩数据证书时,所有的seq对象均需要输入到seq对象指纹过滤器中,所以在采用本实施例提供的方法对同一个数据证书数据库中的所有数据证书进行压缩时,该数据证书数据库中所有的seq对象均会进入到seq对象指纹过滤器中。
37.若是,则获取下一个seq对象;若seq对象指纹过滤器中存在了该seq对象的指纹,则说明该seq对象是重复的,不需要在进行压缩;直接获取下一个seq对象进行判断。
38.若否,则基于所述证书链的结构,获取所述seq对象在所述索引树中的父节点;在seq对象指纹过滤器中不存在该seq对象时,则说明该seq对象并未压缩过,需要对其进行压缩。
39.通过设置seq指纹对象过滤器,能够在减少证书链重复的基础上,进一步的减少seq对象的重复,从而进一步的节约数据证书压缩所需要占用的内存。
40.s1064,在所述seq对象的父节点下创建新的子节点;s1065,将所述seq对象的指纹和指针添加到所述子节点处。
41.在索引树中,通过找到seq对象的父节点,则在创建的新的子节点上方的所有节点均与该seq对象的证书链节点重复,再将该seq对象添加到索引树中,就完成了对一个新的seq对象的索引,不会产生seq对象遗漏的情况。
42.将多个seq对象的指纹和指针存入到索引树中后,在需要使用到对应的seq对象时,引用seq对象对应的指针就能够在硬件存储设备中找到seq对象压缩后的压缩数据,通过对指针引用到的压缩数据进行解压缩,就能够得到对应的seq对象。
43.s107,基于所述索引树,取用所需的数字证书。
44.在取用所需的数字证书时,基于索引树能够找到该数字证书中所有的seq对象,再通过索引树中存储的多个seq对象的指针,就能够引用到所需的数字证书中所有被压缩的压缩数据,从而恢复出所需的数字证书。
45.所述基于所述索引树,取用所需的数字证书,包括:获取所需数字证书的证书链;基于所述索引树,查找所述所需数字证书的证书链中各级证书所对应的所述seq对象的多个指针;根据所述多个指针提取对应的压缩数据,构建所需的数字证书文件。
46.在传统的数字证书压缩解压方案中,对于解压证书文件都是完整解压,无法做到根证书链以及上级证书链的解压内容内存热缓存,每次都需要完整解压或者压缩,浪费cpu资源。在本实施例中,仅提取各个数字证书中不同的seq对象,就能够解压到所需的数字证书,具有节约cpu资源的效果。
47.包括以下步骤:将所述多个指针提取对应的压缩数据合并到所述数字证书的证书链中;基于所述所需数字证书的证书链,采用openssl构造出所需的数字证书文件,采用der编码输出。
48.本实施例中,在获取到待压缩数据证书后,若采用传统的压缩方式进行压缩,易造成内存占用过大的问题;本发明通过对待压缩数据证书进行解析,将待压缩数据证书的证书链和其中各级证书所对应的seq对象提取出来;再将已经存入过索引树的待压缩数据证书剔除;对未存入到索引树的待压缩数据证书中各级证书所对应的seq对象进行压缩并存储,在使用时通过指向seq对象的指针和索引树就能够取用被压缩的数据;从而减少在压缩过程中重复的待压缩数据证书和seq对象,从而达到节约内存的效果。
49.通过合理的根据证书特有asn.1结构 ,将证书压缩分为了多个证书链去重压缩,以及多个证书链中相同sequence对象的去重压缩,对于海量证书,极大的缩小了压缩后的内容大小,并且结合了b+索引树和布隆过滤器,加快了解压和压缩的运行效率,合理规避了
重复多余的压缩解压,对比传统针对单个证书压缩,在海量证书存储情况中,本方案在内存资源,cpu资源,磁盘资源都更加高效廉价,有效的降低了企业成本。
50.实施例2本技术实施例提供一种数据证书文件的存储取用装置,参照图2,所述装置包括输入模块、解析模块、证书链指纹获取模块、判断模块、seq对象指纹获取模块、存储模块和取用模块;其中,输入模块,用于获取待压缩数据证书和索引树,所述索引树用于存储待压缩数据证书的证书链关系;解析模块,用于对所述待压缩数据证书进行解析,提取所述待压缩数据证书的证书链和所述证书链中各级证书所对应的多个seq对象;证书链指纹获取模块,获取所述证书链的指纹;判断模块,用于基于所述证书链的指纹,判断所述索引树中是否已存入所述待压缩数据证书的证书链的指纹;若是,则获取下一个待压缩数据证书;若否,则将多个所述seq对象进行压缩,并构建指针分别指向各个所述seq对象的压缩数据;seq对象指纹获取模块,用于获取多个所述seq对象的指纹;存储模块,用于基于所述证书链的结构,将所述证书链中各级证书所对应的多个所述seq对象的指纹和指针存入到所述索引树中;取用模块,用于基于所述索引树,取用所需的数字证书。
51.实施例3本技术实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行实施例1中所述的一种数据证书文件的存储取用方法。
52.实施例4本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如实施例1中所述的一种数据证书文件的存储取用方法。
53.以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1