数字证书验证方法、装置、电子设备及存储介质

未命名 07-22 阅读:99 评论:0


1.本公开涉及网络公钥基础设施安全技术领域,尤其涉及数字证书撤销与验证领域,特别是涉及一种数字证书验证方法、装置、电子设备及存储介质。


背景技术:

2.网络公钥基础设施(web public key infrastructure,web pki)中提供信任的锚点主要是证书授权机构(certificate authority,ca),在传输层安全(transport layer security,tls)握手过程中,浏览器会收到域名发来的数字证书,并会根据ca的公钥对签名进行验证,由此就可以确认数字证书有效。如果数字证书出现了私钥泄露或加密算法失效等问题,该数字证书就需要及时被撤销,避免不安全的证书所带来的安全风险,如钓鱼网站等。因此,数字证书的撤销与验证是web pki安全有效运转的一项不可或缺的机制。
3.相关技术中,数字证书撤销机制包括证书撤销列表(certificate revocation list,crl)和证书在线状态响应协议(online certificate status protocol,ocsp)。两者背后的基础设施都由ca维护,浏览器需要向ca下载crl或者发送ocsp请求来验证证书的状态。然而,上述两个方案的数字证书验证方法,第一是需要向ca额外建立可信连接,导致用户访问网站的延迟增加;第二是需要向ca透露用户所访问的网站,从而泄露了用户隐私;第三是证书撤销与否完全由ca控制,而域名所有者作为数字证书实际所代表的一方却无权直接撤销证书,这就导致如果ca遭到了攻击并与攻击者串通,那么不安全的证书可能迟迟无法被撤销。这给web pki的安全有效运转带来了不小安全隐患。
4.因此,对数字证书撤销和验证机制进行优化和重构,对于提升web pki的安全性有十分重要的意义。


技术实现要素:

5.本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
6.为此,本公开提出了一种数字证书验证方法,借助对dns服务进行的扩展存储证书撤销数据,域名拥有者能够及时撤销自己的数字证书,避免过度依赖第三方ca所带来的安全隐患;同时浏览器查询证书撤销状态时不需要建立额外连接,可有效降低浏览器检查证书状态所带来的延迟,以及避免用户隐私泄露的风险。
7.本公开的另一个目的在于提出一种数字证书验证方法、装置、电子设备及存储介质。
8.为达上述目的,本公开一方面提出一种数字证书验证方法,包括:获取用户输入的域名,以及域名对应的数字证书;向域名系统dns服务器发送第一请求消息;其中,第一请求消息用于请求获取域名对应的已撤销数字证书记录;接收dns服务器发送的第一响应消息,其中,第一响应消息中包括已撤销数字证书记录;根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果。
9.另外,根据本公开上述实施例的数字证书验证方法还可以具有以下附加的技术特
征:
10.在一些实施例中,获取域名对应的数字证书,包括:向dns服务器发送第二请求消息;其中,第二请求消息用于请求获取域名所解析到的互联网协议ip地址;接收dns服务器发送的第二响应消息,其中,第二响应消息中包括ip地址;与ip地址建立传输层安全tls连接,进行tls握手,获取域名对应的数字证书。
11.在一些实施例中,根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果,包括:若数字证书在已撤销数字证书记录中处于撤销状态,则确定验证结果为数字证书已被撤销。
12.在一些实施例中,若数字证书在已撤销数字证书记录中处于未撤销状态,确定数字证书对应的待验证根证书和待验证中间证书;确定已撤销根证书列表和已撤销中间证书列表;根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果。
13.在一些实施例中,根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果,包括:若待验证根证书在已撤销根证书列表中处于未撤销状态,且待验证中间证书在已撤销中间证书列表中处于未撤销状态,确定验证结果为数字证书未被撤销;若待验证根证书在已撤销根证书列表中处于撤销状态,和/或待验证中间证书在已撤销中间证书列表中处于撤销状态,确定验证结果为数字证书已被撤销。
14.在一些实施例中,dns服务器中存储域名对应的已撤销数字证书记录;域名对应的已撤销数字证书记录为dns服务器从域名所有者处获取的。
15.为达上述目的,本公开另一方面提出一种数字证书验证装置,包括:信息获取单元,用于获取用户输入的域名,以及域名对应的数字证书;请求发送单元,用于向域名系统dns服务器发送第一请求消息;其中,第一请求消息用于请求获取域名对应的已撤销数字证书记录;响应接收单元,用于接收dns服务器发送的第一响应消息,其中,第一响应消息中包括已撤销数字证书记录;验证处理单元,用于根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果。
16.为达上述目的,本公开又一方面提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现上述的方法。
17.为达上述目的,本公开又一方面提供一种计算机可读存储介质,所述计算机指令用于使所述计算机执行上述的方法。
18.为达上述目的,本公开又一方面提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的方法。
19.本公开实施例的数字证书验证方法、装置、电子设备及存储介质,借助对dns服务进行的扩展存储证书撤销数据,域名拥有者能够及时撤销自己的数字证书,避免过度依赖第三方ca所带来的安全隐患;同时浏览器查询证书撤销状态时不需要建立额外连接,可有效降低浏览器检查证书状态所带来的延迟,以及避免用户隐私泄露的风险。
20.本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
21.本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
22.图1是本公开实施例提供的一种数字证书验证方法的流程图;
23.图2是本公开实施例提供的一种dns资源记录样例;
24.图3是本公开实施例提供的一种证书撤销列表的一个样例;
25.图4是本公开实施例提供的数字证书验证方法中s1的流程图;
26.图5是本公开实施例提供的另一种数字证书验证方法的流程图;
27.图6是本公开实施例提供的又一种数字证书验证方法的流程图;
28.图7是本公开实施例提供的一种数字证书验证装置的结构图;
29.图8是本公开实施例提供的一种数字证书验证装置中信息获取单元的结构图;
30.图9是本公开实施例提供的一种电子设备的结构图。
具体实施方式
31.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
32.为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
33.下面将参考若干示例性实施方式来描述本公开的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
34.根据本领域技术人员的知识储备可知,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
35.相关技术中,如背景技术所述的两个方案的数字证书验证方法,第一是需要向ca额外建立可信连接,导致用户访问网站的延迟增加;第二是需要向ca透露用户所访问的网站,从而泄露了用户隐私;第三是证书撤销与否完全由ca控制,而域名所有者作为数字证书实际所代表的一方却无权直接撤销证书,上述缺点严重影响了浏览器对于数字证书撤销验证机制的实现意愿,因此目前浏览器几乎都没有恰当地实现数字证书的撤销验证,这一机制实际上几乎没有在当前的web pki体系中发挥作用。这给web pki的安全有效运转带来了不小安全隐患。
36.因此,对数字证书撤销和验证机制进行优化和重构,对于提升web pki的安全性有十分重要的意义。本公开实施例的目的是通过借助dns相关基础设施,针对目前数字证书撤销验证机制中的痛点提供解决方案。
37.根据本公开实施例提供的实施方式,提出了一种数字证书验证方法、装置、电子设
备及存储介质,改变了域名所有者需要依赖ca撤销证书的情况,减少了ca失信的隐患,提升了web pki体系的安全性;同时浏览器不需与ca建立额外连接以验证数字证书,减少了浏览时延。
38.本公开涉及到的名词解释:
39.web pki:网络公钥基础设施(web public key infrastructure)。
40.ca:证书授权机构(certificate authority)。
41.dns:域名解析系统(domain name system)。
42.crl:证书撤销列表(certificate revocation list)。
43.根证书和中间证书:根证书代表ca向域名签发叶子证书,浏览器在验证叶子证书的有效性时会检查其签发者是否在操作系统或浏览器自身维护的可信根列表中。为了减轻根证书的签发压力,根证书又签发了多个中间证书,代替根证书行使签发权力,由此信任一个数字证书变为代表信任其对应的签发链,信任沿证书签发的链条传递,而整个web pki的信任体系也由此逐渐成为了森林状结构。
44.下面参照附图描述根据本公开实施例提出的数字证书验证方法、装置、电子设备及存储介质。
45.图1是本公开实施例的数字证书验证方法的流程图。
46.如图1所示,该方法包括但不限于以下步骤:
47.s1,获取用户输入的域名,以及域名对应的数字证书。
48.本公开实施例中,浏览器可以获取域名,以及域名对应的数字证书。
49.可以理解的是,用户可以在浏览器中输入域名,由此,可以获取用户输入的域名。
50.其中,浏览器获取域名对应的数字证书可以在与域名对应的互联网协议地址(internet protocol address,ip地址)建立tls连接,进行tls握手的过程中,接收域名发送的自己所使用的数字证书。
51.s2,向域名系统dns服务器发送第一请求消息;其中,第一请求消息用于请求获取域名对应的已撤销数字证书记录。
52.在一些实施例中,域名系统(domain name system,dns)服务器中存储域名对应的已撤销数字证书记录;域名对应的已撤销数字证书记录为dns服务器从域名所有者处获取的。
53.本公开实施例中,修改相关技术中dns服务器的存储和响应逻辑,使dns服务器支持存储域名所对应的已撤销证书信息。dns服务器内部所维护的每个域名都有自己的域文件,而域文件内部是由多个资源记录组成的。dns服务器在收到针对某个域名的查询后,会对该域名对应的域文件内容进行查询从而获取相应种类的记录,并将记录封装成dns响应返回。因此所述步骤对dns服务器的修改主要为首先定义新的dns资源类型,以存储域名对应的证书撤销数据;其次令dns服务器能够根据该新类型定义解析相应资源记录,并将记录封装成dns响应。
54.图2为本公开实施例提供的一种dns资源记录样例。dns资源记录名称为tlsr记录,用于记录域名所对应的已撤销数字证书信息。具体来说,本步骤所定义的tlsr记录的第一项为选择子,该项取值可以为0或1,其中取值为0代表将整个证书作为后续计算的输入,取值为1则代表将公钥作为后续计算的输入;第二项为匹配类型,该项取值可以为0、1或2,其
中0代表匹配时使用上一项所选择的原始数据,1代表匹配时首先使用sha-256算法计算上一项所选择的原始数据的摘要,将所得到的结果进行匹配;2代表匹配时首先使用sha-512算法计算上一项所选择的原始数据的摘要,将所得到的结果进行匹配;第三项为具体数据,图2所示样例为数字证书经过sha-256算法计算后所得到的结果。
55.域名所有者希望撤销某个数字证书时,可向域名服务提供商发送请求,请求内容包括需要撤销的证书数据以及计算tlsr记录时的选择子和匹配类型。域名服务提供商根据请求内容计算得到tlsr记录后,应及时更新域名对应的域文件。
56.本公开实施例中,在dns服务器中存储有域名对应的已撤销数字证书记录的情况下,可以向dns服务器发送第一请求消息,第一请求消息用于请求获取域名对应的已撤销数字证书记录。
57.s3,接收dns服务器发送的第一响应消息,其中,第一响应消息中包括已撤销数字证书记录。
58.本公开实施例中,在向dns服务器发送第一请求消息之后,可以接收dns服务器发送的第一响应消息,第一响应消息中包括已撤销数字证书记录。
59.示例性地,浏览器访问域名时需要向dns服务器发送查询该域名对应的tlsr记录的请求(第一请求消息),请求内容包括域名值以及dns资源记录类型(即tlsr)。dns服务器收到请求后应当对该域名所对应的域文件进行查询,获取该域名对应的所有tlsr记录,并将其作为tlsr响应(第一响应消息)返回给浏览器。
60.由于浏览器在访问网站时,首先需要使用dns请求查询域名对应的ip地址,然后再与对应的ip地址建立连接,在不考虑缓存的情况下,向dns服务器查询域名对应的ip地址是必经之路,所以不存在泄露用户隐私的情况;同时浏览器在获取dns响应时就可以提前获得域名所有者所提交的已撤销数字证书信息,无需在tls握手过程中与第三方建立额外连接以查询数字证书状态,节省了证书状态验证的时延。
61.s4,根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果。
62.本公开实施例中,在确定域名对应的数字证书,以及已撤销数字证据记录的情况下,可以根据二者的对比,确定域名对应的数字证书的验证结果。
63.在一些实施例中,根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果,包括:若数字证书在已撤销数字证书记录中处于撤销状态,则确定验证结果为数字证书已被撤销。
64.本公开实施例中,根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果,在数字证书在已撤销数字证书记录中处于撤销状态的情况下,则可以确定验证结果为数字证书已被撤销。
65.在一些实施例中,若数字证书在已撤销数字证书记录中处于未撤销状态,确定数字证书对应的待验证根证书和待验证中间证书;确定已撤销根证书列表和已撤销中间证书列表;根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果。
66.本公开实施例中,在数字证书在已撤销数字证书记录中处于未撤销状态的情况下,可以确定数字证书对应的待验证根证书和待验证中间证书;并且确定已撤销根证书列
表和已撤销中间证书列表;进而根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果。
67.本公开实施例中,浏览器所维护的上述撤销列表类似于目前web pki体系中谷歌浏览器所使用的crlset方案和火狐浏览器所使用的onecrl方案。已撤销根证书列表和已撤销中间证书列表包含多个已被撤销的根证书或中间证书的条目,每个条目包含被撤销的证书所对应的证书序列号(被撤销的根证书所对应的证书序列号,或被撤销的中间证书所对应的证书序列号),该证书(根证书或中间证书)被撤销的时间点,以及该证书(根证书或中间证书)被撤销的原因。
68.其中证书序列号是证书的标识符,可以通过比较序列号查找一个证书是否在该列表中。图3是本步骤所述证书撤销列表的一个样例。需要说明的是,分发给每个域名的数字证书在web pki森林状的信任结构中处在叶子节点处,数量巨大,因此如果直接使用证书撤销列表记录所有的已撤销证书会消耗大量的本地存储空间,且维护这样庞大的列表开销巨大,故没有实际可行性。而存储根证书和中间证书的撤销列表是被认为可行的方案,只是由于证书撤销机制存在的种种问题而没有得到广泛的重视和实现。
69.本公开实施例中,浏览器中维护有已撤销根证书列表和已撤销中间证书列表,并且可以根据数字证书确定其对应的根证书和中间证书。
70.在此情况下,可以根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果。
71.在一些实施例中,根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果,包括:若待验证根证书在已撤销根证书列表中处于未撤销状态,且待验证中间证书在已撤销中间证书列表中处于未撤销状态,确定验证结果为数字证书未被撤销;若待验证根证书在已撤销根证书列表中处于撤销状态,和/或待验证中间证书在已撤销中间证书列表中处于撤销状态,确定验证结果为数字证书已被撤销。
72.本公开实施例中,根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果,在待验证根证书在已撤销根证书列表中处于未撤销状态,且待验证中间证书在已撤销中间证书列表中处于未撤销状态的情况下,可以确定验证结果为数字证书未被撤销。
73.本公开实施例中,根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果,在待验证根证书在已撤销根证书列表中处于撤销状态,和/或待验证中间证书在已撤销中间证书列表中处于撤销状态的情况下,可以确定验证结果为数字证书已被撤销。
74.可以理解的是,证书的信任是由根证书经中间证书传递到叶子证书(数字证书)的。如果叶子证书(数字证书)在已撤销数字证书记录中处于撤销状态,则可直接认为该数字证书处于撤销状态;反之,还需要浏览器对签发该叶子证书(数字证书)的根证书和中间证书进行进一步验证。浏览器通过查询本地维护的已撤销根证书列表和已撤销中间证书列表,比对所查询的证书序列号是否处于已撤销列表之内,如果处于则说明该证书已被撤销,不应继续后续的连接;否则可认为该证书通过撤销检查,状态应为未撤销。浏览器可继续进行关于该证书的其他合法性检查以确认该证书的合法性,如实际域名与证书中所列出的公
用名或别名列表是否匹配等。
75.本公开实施例的基于dns扩展的数字证书撤销及验证装置,借助对dns服务进行的扩展存储证书撤销数据,从而让域名所有者能够及时撤销自己的证书,避免过度依赖第三方ca所带来的安全隐患;同时浏览器查询证书撤销状态时不需要建立额外连接,可有效降低浏览器检查证书状态所带来的延迟,以及避免用户隐私泄露的风险。
76.通过实施本公开实施例,获取用户输入的域名,以及域名对应的数字证书;向域名系统dns服务器发送第一请求消息;其中,第一请求消息用于请求获取域名对应的已撤销数字证书记录;接收dns服务器发送的第一响应消息,其中,第一响应消息中包括已撤销数字证书记录;根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果。由此,借助对dns服务进行的扩展存储证书撤销数据,域名拥有者能够及时撤销自己的数字证书,避免过度依赖第三方ca所带来的安全隐患;同时浏览器查询证书撤销状态时不需要建立额外连接,可有效降低浏览器检查证书状态所带来的延迟,以及避免用户隐私泄露的风险。
77.如图4所示,在一些实施例中,s1,获取域名对应的数字证书,包括:
78.s11,向dns服务器发送第二请求消息;其中,第二请求消息用于请求获取域名所解析到的互联网协议ip地址。
79.s12,接收dns服务器发送的第二响应消息,其中,第二响应消息中包括ip地址。
80.s13,与ip地址建立传输层安全tls连接,进行tls握手,获取域名对应的数字证书。
81.本公开实施例中,可以向域名系统(domain name system,dns)发送第二请求消息,第二请求消息用于请求获取域名所解析到的互联网协议ip地址。
82.在此情况下,可以接收dns服务器发送的第二响应消息,第二响应消息中包括ip地址。
83.基于此,可以与ip地址建立tls连接,进行tls握手,获取域名对应的数字证书。
84.如图5所示,示例性实施例中,在步骤s101中,需要修改dns权威服务器的存储和响应逻辑,使之支持存储域名所对应的已撤销证书信息。dns权威服务器内部所维护的每个域名都有自己的域文件,而域文件内部是由多个资源记录组成的。dns服务器在收到针对某个域名的查询后,会对该域名对应的域文件内容进行查询从而获取相应种类的记录,并将记录封装成dns响应返回。因此所述步骤对dns服务器的修改主要为首先定义新的dns资源类型,以存储域名对应的证书撤销数据;其次令dns服务器能够根据该新类型定义解析相应资源记录,并将记录封装成dns响应。
85.图2为本步骤所定义的dns资源记录样例。本步骤所定义的dns资源记录名称为tlsr记录,用于记录域名所对应的已撤销数字证书信息。具体来说,本步骤所定义的tlsr记录的第一项为选择子,该项取值可以为0或1,其中取值为0代表将整个证书作为后续计算的输入,取值为1则代表将公钥作为后续计算的输入;第二项为匹配类型,该项取值可以为0、1或2,其中0代表匹配时使用上一项所选择的原始数据,1代表匹配时首先使用sha-256算法计算上一项所选择的原始数据的摘要,将所得到的结果进行匹配;2代表匹配时首先使用sha-512算法计算上一项所选择的原始数据的摘要,将所得到的结果进行匹配;第三项为具体数据,图2所示样例为数字证书经过sha-256算法计算后所得到的结果。
86.域名所有者希望撤销某个数字证书时,可向域名服务提供商发送请求,请求内容
包括需要撤销的证书数据以及计算tlsr记录时的选择子和匹配类型。域名服务提供商根据请求内容计算得到tlsr记录后,应及时更新域名对应的域文件。
87.在步骤s102中,浏览器需要维护和存储已撤销的根证书和中间证书列表。
88.本步骤中浏览器所维护的上述撤销列表类似于目前web pki体系中谷歌浏览器所使用的crlset方案和火狐浏览器所使用的onecrl方案。已撤销的根证书和中间证书列表包含多个已被撤销的根证书或中间证书条目,每个条目包含被撤销的证书所对应的证书序列号,该证书被撤销的时间点,以及该证书被撤销的原因。其中证书序列号是证书的标识符,可以通过比较序列号查找一个证书是否在该列表中。图3是本步骤所述证书撤销列表的一个样例。需要说明的是,分发给每个域名的数字证书在web pki森林状的信任结构中处在叶子节点处,数量巨大,因此如果直接使用证书撤销列表记录所有的已撤销证书会消耗大量的本地存储空间,且维护这样庞大的列表开销巨大,故没有实际可行性。而存储根证书和中间证书的撤销列表是目前被认为可行的方案,只是由于目前证书撤销机制存在的种种问题而没有得到广泛的重视和实现。
89.在步骤s103中,浏览器访问域名并获取dns服务器返回的数字证书撤销信息。
90.在本步骤中,浏览器访问域名时需要向dns服务器发送查询该域名对应的tlsr记录的请求,请求内容包括域名值以及dns资源记录类型(即tlsr)。dns服务器收到请求后应当对该域名所对应的域文件进行查询,获取该域名对应的所有tlsr记录,并将其作为tlsr响应返回给浏览器。
91.由于浏览器在访问网站时,首先需要使用dns请求查询域名对应的ip地址,然后再与对应的ip地址建立连接,在不考虑缓存的情况下,向dns服务器查询域名对应的ip地址是必经之路,所以不存在泄露用户隐私的情况;同时浏览器在获取dns响应时就可以提前获得域名所有者所提交的已撤销数字证书信息,无需在tls握手过程中与第三方建立额外连接以查询数字证书状态,节省了证书状态验证的时延。
92.在步骤s104中,浏览器检查域名在tls握手时提供的证书是否在dns所返回的撤销证书列表中。
93.如图6为步骤s103与步骤s104结合起来的流程示意图:
94.1、在用户输入域名后,浏览器向dns服务器发送请求(第二请求消息),希望查询域名的a记录,也就是该域名所解析到的ip地址。
95.2、浏览器同时向dns服务器发送请求(第一请求消息),希望查询域名的tlsr记录,也就是该域名对应的已撤销数字证书记录。
96.3、dns服务器返回关于域名的a记录响应(第二响应消息),也就是告知浏览器域名所对应的ip地址。
97.4、dns服务器返回关于域名的tlsr记录响应(第一响应消息),也就是告知浏览器域名所对应的已撤销数字证书列表,其中包含证书c0的sha-256摘要。
98.5、浏览器与第1步返回的ip地址尝试建立tls连接,首先进行tls握手。
99.6、域名向浏览器发来自己所使用的数字证书c0以验证身份。
100.7、浏览器计算c0的sha-256摘要,并与dns服务器发来的tlsr记录中的数据项进行比对,发现该证书已经被域名持有者撤销。
101.8、浏览器判定该连接所使用的数字证书处于撤销状态,因此不能相信对方的身
份,从而中断了与该网站的连接。
102.在步骤s105中,浏览器继续在本地查询根证书和中间证书的撤销列表,得到证书撤销状态。
103.如前所述,证书的信任是由根证书经中间证书传递到叶子证书的。如果叶子证书没有通过步骤s103至步骤s104的检查,则可直接认为该证书处于撤销状态;反之,还需要浏览器对签发该叶子证书的根证书和中间证书进行进一步验证。浏览器通过查询本地维护的已撤销根证书和中间证书列表,比对所查询的证书序列号是否处于已撤销列表之内,如果处于则说明该证书已被撤销,不应继续后续的连接;否则可认为该证书通过撤销检查,状态应为未撤销。浏览器可继续进行关于该证书的其他合法性检查以确认该证书的合法性,如实际域名与证书中所列出的公用名或别名列表是否匹配等。
104.本公开实施例中,借助对dns服务进行的扩展存储证书撤销数据,从而让域名所有者能够及时撤销自己的证书,避免过度依赖第三方ca所带来的安全隐患;同时浏览器查询证书撤销状态时不需要建立额外连接,可有效降低浏览器检查证书状态所带来的延迟,以及避免用户隐私泄露的风险。
105.为了实现上述实施例,如图7所示,本实施例中还提供了数字证书验证装置1,该装置包括信息获取单元11、请求发送单元12、响应接收单元13和验证处理单元14。
106.信息获取单元11,用于获取用户输入的域名,以及域名对应的数字证书。
107.请求发送单元12,用于向域名系统dns服务器发送第一请求消息;其中,第一请求消息用于请求获取域名对应的已撤销数字证书记录。
108.响应接收单元13,用于接收dns服务器发送的第一响应消息,其中,第一响应消息中包括已撤销数字证书记录。
109.验证处理单元14,用于根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果。
110.如图8所示,在一些实施例中,信息获取单元11,包括:
111.消息发送模块111,用于向dns服务器发送第二请求消息;其中,第二请求消息用于请求获取域名所解析到的互联网协议ip地址。
112.消息接收模块112,用于接收dns服务器发送的第二响应消息,其中,第二响应消息中包括ip地址。
113.信息获取模块113,用于与ip地址建立传输层安全tls连接,进行tls握手,获取域名对应的数字证书。
114.在一些实施例中,验证处理单元14,还用于若数字证书在已撤销数字证书记录中处于撤销状态,则确定验证结果为数字证书已被撤销。
115.在一些实施例中,验证处理单元14,还用于若数字证书在已撤销数字证书记录中处于未撤销状态,确定数字证书对应的待验证根证书和待验证中间证书;确定已撤销根证书列表和已撤销中间证书列表;根据数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定域名对应的数字证书的验证结果。
116.在一些实施例中,验证处理单元14,还用于若待验证根证书在已撤销根证书列表中处于未撤销状态,且待验证中间证书在已撤销中间证书列表中处于未撤销状态,确定验证结果为数字证书未被撤销;若待验证根证书在已撤销根证书列表中处于撤销状态,和/或
待验证中间证书在已撤销中间证书列表中处于撤销状态,确定验证结果为数字证书已被撤销。
117.在一些实施例中,dns服务器中存储域名对应的已撤销数字证书记录;域名对应的已撤销数字证书记录为dns服务器从域名所有者处获取的。
118.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,信息获取单元11可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上信息获取单元11的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
119.上述实施例的装置用于实现前述任一实施例中相应的数字证书验证方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
120.基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的数字证书验证方法。
121.图9示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
122.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
123.存储器1020可以采用rom(read only memory,只读存储器)、ram(random accessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
124.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
125.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
126.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输
出接口1030和通信接口1040)之间传输信息。
127.本公开实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中数字证书验证方法的技术方案。
128.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例数字证书验证方法的技术方案。
129.本公开实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中数字证书验证方法的技术方案。
130.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
131.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
132.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
133.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
134.应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述
实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
135.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
136.此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
137.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种数字证书验证方法,其特征在于,包括:获取用户输入的域名,以及所述域名对应的数字证书;向域名系统dns服务器发送第一请求消息;其中,所述第一请求消息用于请求获取所述域名对应的已撤销数字证书记录;接收所述dns服务器发送的第一响应消息,其中,所述第一响应消息中包括所述已撤销数字证书记录;根据所述域名对应的所述数字证书,以及所述已撤销数字证书记录,确定所述域名对应的数字证书的验证结果。2.根据权利要求1所述的方法,其特征在于,所述获取所述域名对应的数字证书,包括:向所述dns服务器发送第二请求消息;其中,所述第二请求消息用于请求获取所述域名所解析到的互联网协议ip地址;接收所述dns服务器发送的第二响应消息,其中,所述第二响应消息中包括所述ip地址;与所述ip地址建立传输层安全tls连接,进行tls握手,获取所述域名对应的数字证书。3.根据权利要求1或2所述的方法,其特征在于,所述根据所述域名对应的所述数字证书,以及所述已撤销数字证书记录,确定所述域名对应的数字证书的验证结果,包括:若所述数字证书在所述已撤销数字证书记录中处于撤销状态,则确定所述验证结果为所述数字证书已被撤销。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述数字证书在所述已撤销数字证书记录中处于未撤销状态,确定所述数字证书对应的待验证根证书和待验证中间证书;确定已撤销根证书列表和已撤销中间证书列表;根据所述数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定所述域名对应的数字证书的验证结果。5.根据权利要求4所述的方法,其特征在于,所述根据所述数字证书对应的待验证根证书和待验证中间证书,以及已撤销根证书列表和已撤销中间证书列表,确定所述域名对应的数字证书的验证结果,包括:若所述待验证根证书在所述已撤销根证书列表中处于未撤销状态,且所述待验证中间证书在所述已撤销中间证书列表中处于未撤销状态,确定所述验证结果为所述数字证书未被撤销;若所述待验证根证书在所述已撤销根证书列表中处于撤销状态,和/或所述待验证中间证书在所述已撤销中间证书列表中处于撤销状态,确定所述验证结果为所述数字证书已被撤销。6.根据权利要求1所述的方法,其特征在于,所述dns服务器中存储所述域名对应的所述已撤销数字证书记录;所述域名对应的所述已撤销数字证书记录为所述dns服务器从域名所有者处获取的。7.一种数字证书验证装置,其特征在于,包括:信息获取单元,用于获取用户输入的域名,以及所述域名对应的数字证书;请求发送单元,用于向域名系统dns服务器发送第一请求消息;其中,所述第一请求消
息用于请求获取所述域名对应的已撤销数字证书记录;响应接收单元,用于接收所述dns服务器发送的第一响应消息,其中,所述第一响应消息中包括所述已撤销数字证书记录;验证处理单元,用于根据所述域名对应的所述数字证书,以及所述已撤销数字证书记录,确定所述域名对应的数字证书的验证结果。8.根据权利要求7所述的装置,其特征在于,所述信息获取单元,包括:消息发送模块,用于向所述dns服务器发送第二请求消息;其中,所述第二请求消息用于请求获取所述域名所解析到的互联网协议ip地址;消息接收模块,用于接收所述dns服务器发送的第二响应消息,其中,所述第二响应消息中包括所述ip地址;信息获取模块,用于与所述ip地址建立传输层安全tls连接,进行tls握手,获取所述域名对应的数字证书。9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至6中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6中任一项所述的方法。

技术总结
本公开提供了一种数字证书验证方法、装置、电子设备及存储介质,该方法包括:获取用户输入的域名,以及域名对应的数字证书;向域名系统DNS服务器发送第一请求消息;其中,第一请求消息用于请求获取域名对应的已撤销数字证书记录;接收DNS服务器发送的第一响应消息,其中,第一响应消息中包括已撤销数字证书记录;根据域名对应的数字证书,以及已撤销数字证书记录,确定域名对应的数字证书的验证结果。由此,对DNS服务进行的扩展存储证书撤销数据,域名拥有者能够及时撤销数字证书,避免过度依赖第三方CA所带来的安全隐患;同时浏览器查询证书撤销状态时不需要建立额外连接,可有效降低浏览器检查证书状态所带来的延迟,避免用户隐私泄露的风险。私泄露的风险。私泄露的风险。


技术研发人员:王继龙 张程远 安常青 祖林美
受保护的技术使用者:清华大学
技术研发日:2023.04.17
技术公布日:2023/7/20
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐