证书安全性检测方法、装置和存储介质与流程

文档序号:25722767发布日期:2021-07-02 21:07阅读:264来源:国知局
证书安全性检测方法、装置和存储介质与流程

本发明涉及计算机技术领域,并且更具体地,涉及一种证书安全性检测方法、装置和存储介质。



背景技术:

安全套接字层(securesocketslayer,ssl)协议是为网络通信提供安全及数据完整性的一种安全协议。ssl协议位于tcp/ip协议和应用层协议之间,可为各种应用层协议提供安全性保证,例如ftp,telnet协议等。

ssl证书可以用来加密传输数据,如果ssl证书的安全性存在缺陷将会导致站点数据的加密传输失效,造成敏感数据的泄露,后果严重。采用人工发现证书是否过期的方法不够及时,并且,当用户访问网页看到告警提示,会导致用户对站点的信任度降低,造成用户流量损失,因此,如何进行证书的安全性检测以及时通知服务端是一项急需解决的问题。



技术实现要素:

本申请提供了一种证书安全性检测方法、装置和存储介质,能够有效检测待检测目标的证书的安全性,及时告警证书的安全风险,通知服务端及时更新证书,保证业务可用,提升用户体验。

第一方面,提供了一种证书安全性检测方法,包括:

周期性获取待检测目标的证书信息;

对所述待检测目标的证书信息进行关键词字段检测,得到所述待检测目标的证书的检测结果;

将所述待检测目标的证书的检测结果生成待处理消息,并将所述待检测目标的证书的每次检测结果所对应的待处理消息按照时间先后顺序依次写入消息队列;

按照先入先出的顺序依次从所述消息队列获取所述待检测目标的证书的检测结果所对应的待处理消息;

对从所述消息队列获取的所述待检测目标的证书的检测结果所对应的待处理消息进行处理。

第二方面,提供了一种证书安全性检测装置,用于执行上述第一方面或其各实现方式中的方法。

具体地,该证书安全性检测装置包括:

获取模块,周期性获取待检测目标的证书信息;

检测模块,对所述待检测目标的证书信息进行关键词字段检测,得到所述待检测目标的证书的检测结果;

消息生成模块,用于将所述待检测目标的证书的检测结果生成待处理消息,并将所述待检测目标的证书的每次检测结果所对应的待处理消息按照时间先后顺序依次写入消息队列;

消息消费模块,按照先入先出的顺序依次从所述消息队列获取所述待检测目标的证书的检测结果所对应的待处理消息;

处理模块,用于对从所述消息队列获取的所述待检测目标的证书的检测结果所对应的待处理消息进行处理。

第三方面,提供了一种证书安全性检测装置,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述第一方面或其各实现方式中的方法。

第四方面,提供了一种存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面或其各实现方式中的方法。

第五方面,提供了一种计算机程序产品,包括计算机程序指令,所述计算机程序指令使得计算机执行上述第一方面或其各实现方式中的方法。

第六方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或其各实现方式中的方法。

基于上述技术方案,通过周期性获取待检测目标的证书信息,进一步对待检测目标的证书信息进行关键词字段检测,确定证书的安全性的检测结果,有利于及时发现证书的安全性隐患,进一步将该证书的安全性的检测结果生成待处理消息写入消息队列,通过消息队列对该待检测目标的周期性的检测结果进行缓存,能够避免消息的发送方和消息的接收方直接进行交互检测结果导致检测结果的丢失,进一步地,通过消息队列对检测结果对应的待处理消息进行有序存储,进一步由消息的消费者对该消息队列中的消息进行有序处理,有利于实现对待检测目标的证书的及时告警。

附图说明

图1是基于ssl代理服务器进行数据交互的示意图。

图2是根据本申请实施例的证书安全性检测方法的示意性流程图。

图3是根据本申请实施例的监控系统的示意性结构图。

图4是通过客户端输入待检测目标的配置信息的示意性图。

图5是消息队列的工作原理的示意图。

图6是本申请一个示例性实施例的证书安全性检测方法的示意性流程图。

图7是本申请实施例提供的一种证书安全性检测装置的示意性框图。

图8是本申请实施例提供的另一种证书安全性检测装置的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。针对本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在相关技术中,如图1所示,通常在客户端101和服务器103之间设置ssl代理服务器102,代理服务器102分别与服务器103和客户端101建立两条ssl连接,ssl证书可以用于客户端101和服务器103之间交互的信息进行加密,确定传输的数据不被泄露或篡改。

因此,ssl证书的安全性非常重要,如何及时告警ssl证书的安全风险,并通知服务器端及时更新证书是一项急需解决的问题。

本申请实施例提供了一种证书安全性检测方法、装置和存储介质。在实际应用中,该装置中的各功能模块可以由设备(如终端设备、服务器或服务器集群)的硬件资源,如处理器等计算资源、通信资源(如用于支持实现光缆、蜂窝等各种方式通信)协同实现。

结合图2至图6,详细说明根据本申请实施例的证书安全性检测方法。

以下,从检测系统的角度描述该证书安全性检测方法。应理解,该检测系统可以集成于待检测目标对应的客户端或服务器中,或者也可以为独立的设备,本申请对此不作限定。

图3示出了检测系统的示意性组成架构图。如图3所示,该检测系统可以包括:配置模块,存储模块,检测模块,消息队列,告警模块、日志模块。

可选地,该配置模块用于获取待检测目标的配置信息。该待检测目标的配置的信息可以包括待检测目标的信息,待检测目标的检测类型,检测频率,告警方式等。

可选地,该存储模块可以用于存储该检测系统的配置信息,例如,该待检测目标的配置信息,或者,该日志模块所记录的日志内容。

可选地,该检测模块可以用于对待检测目标的证书进行检测,并将检测结果写入消息队列。

可选地,该告警模块可以用于从消息队列获取检测结果,根据该检测结果进行告警。

可选地,该日志模块可以用于记录该检测系统运行过程中的行为。

参见图2,该根据本申请实施例的证书安全性检测方法200可以包括如下至少部分内容:

s201,周期性获取待待检测目标的证书信息。

在本申请一些实施例中,该检测系统可以支持多种业务模式的检测,例如待检测目标可以为网站,主机和应用程序接口(applicationinterface,api)等。

以下,以待检测目标为网站为例进行说明,但本申请并不限于此。

在一些实施例中,检测系统可以向待检测目标发送请求报文,获取待检测目标的证书信息。

在一些实施例中,网站检测可以分为多种检测类型,例如pc网站,移动网站,第三方应用网站等,由于探测报文的封装方式不同,不同的检测类型可以采用不同的检测方式。

例如,对于不同的目标网站,检测系统可以在请求报文的用户代理(useragent,ua)字段设置不同的内容。

表1示出了三种类型的网站和请求报文中的ua字段的设置方式的示例。

表1

在本申请一些实施例中,该方法200还包括:

接收用户通过客户端输入的待检测目标的配置信息,其中,该待检测目标的配置信息包括待检测目标的信息。

可选地,该接收用户通过客户端输入的待检测目标的配置信息可以由检测系统中的配置模块执行。

在一些实施例中,待检测目标的信息可以为待检测目标的域名,或者ip地址等能够唯一标识待检测目标的信息。

在一些实施例中,待检测目标的配置信息还可以包括以下中的至少一项:

待检测目标的检测类型,待检测目标的检测周期,待检测目标的告警方式。

图4示出了用户通过客户端输入待检测目标的配置信息的示意图。

作为示例,待检测目标的检测类型可以包括pc网站,移动网站和第三方应用网站等。

作为示例,待检测目标的检测频率可以为低频,普通和高频,分别对应的检测周期例如可以为每月,每周,每天。

作为示例,待检测目标的告警模式例如可以包括邮箱告警,短信告警和第三方应用告警。

应理解,上述检测类型,检测频率,告警模式仅为示例,在其他实施例中,也可以根据具体需求进行设置,本申请并不限于此。

在一些实施例中,若未配置检测类型,检测频率和告警模式,该检测类型可以为默认的检测类型,例如pc网站,检测频率可以为默认的检测频率,例如普通,告警模式可以为默认的告警模式,例如短信告警。

在本申请一些实施例中,该待检测目标的配置信息可以存储在该检测系统的存储模块中。例如,该存储模块可以包括一整套数据库集群,数据库架构可以一主多备份(例如,双备份)的方式进行数据存储,保证数据不会丢失。

s202,对所述待检测目标的证书信息进行关键词字段检测,得到待检测目标的证书的检测结果。

例如,该检测模块可以根据待检测目标的检测周期周期性地解析待待检测目标的证书信息,进一步对该待检测目标的证书信息进行关键词字段检测,确定该待检测目标的证书是否存在安全风险,或者是否需要告警。

在一些实施例中,待检测目标所使用的证书为ssl证书,该ssl证书的证书信息可以包括如下关键词字段:

版本字段、签名算法字段、签名哈希算法字段,有效期字段,颁发机构字段。

在本申请一些实施例中,s202可以包括以下中的至少一项:

对待检测目标的证书信息进行版本字段检测;

对待检测目标的证书信息进行签名算法字段检测;

对待检测目标的证书信息进行签名哈希算法字段检测;

对待检测目标的证书信息进行有效期字段检测;

对待检测目标的证书信息进行颁发机构字段检测。

应理解,以上仅以对ssl证书进行检测为例进行说明,当对其他证书进行检测时,可以根据其他证书包括的关键词字段进行检测,本申请对此不作限定。

低版本的ssl证书存在安全漏洞,在数据传输的安全性上存在重大缺陷。服务器端需要保证证书的版本为最新保本,才能有效地保护业务数据。

在一些实施例中,该对待检测目标的证书信息进行版本字段检测,可以包括:

检测所述待检测目标的证书信息中的版本字段所指示的版本是否为最新版本。

可选地,若所述待检测目标的证书信息中的版本字段所指示的版本不是最新版本,确定该待检测目标的证书的版本的检测结果为存在安全风险;或者,若所述待检测目标的证书信息中的版本字段所指示的版本是最新版本,确定该待检测目标的证书的版本的检测结果为不存在安全风险。

例如,假设ssl证书当前的最新版本为v3,若该待检测目标的证书的版本不是v3,则确定待检测目标的证书的版本存在安全风险。

签名算法的强度直接关系到ssl证书的安全性,如果使用存在漏洞的签名算法,可能导致证书信息被破解,危及业务数据安全。

在一些实施例中,该对待检测目标的证书的签名算法进行检测,可以包括:

检测待检测目标的证书信息中的签名算法字段所指示的签名算法是否为安全的签名算法。

可选地,若所述待检测目标的证书信息中的签名算法字段所指示的签名算法不是安全的签名算法,确定该待检测目标的证书的签名算法的检测结果为存在安全风险;或者,若所述待检测目标的证书信息中的签名算法字段所指示的签名算法是安全的签名算法,确定该待检测目标的证书的签名算法的检测结果为不存在安全风险。

在一些实施例中,安全的签名算法可以包括预设的至少一个签名算法,若该ssl证书所使用的签名算法在该预设的至少一个签名算法中,确定该ssl证书使用了安全的签名算法,否则,确定该ssl证书使用了不安全的签名算法。

签名哈希算法与ssl证书的安全性也有重要关联,如果使用存在漏洞的签名哈希算法,可能导致证书信息被破解,危及业务数据安全。

在一些实施例中,该对待检测目标的证书的签名哈希算法进行检测,可以包括:

检测待检测目标的证书信息中的签名哈希算法字段所指示的签名哈希算法是否为安全的签名哈希算法。

可选地,若所述待检测目标的证书信息中的签名哈希算法字段所指示的签名哈希算法不是安全的签名哈希算法,确定该待检测目标的证书的签名哈希算法的检测结果为存在安全风险;或者,若所述待检测目标的证书信息中的签名哈希算法字段所指示的签名哈希算法是安全的签名哈希算法,确定该待检测目标的证书的签名哈希算法的检测结果为不存在安全风险。

在一些实施例中,安全的签名哈希算法可以包括预设的至少一个签名哈希算法,若该ssl证书所使用的签名哈希算法在该预设的至少一个签名哈希算法中,确定该ssl证书使用了安全的签名哈希算法,否则,确定该ssl证书使用了不安全的签名哈希算法。

ssl证书到期失效将会导致待检测目标的业务数据的加密传输失效,造成敏感数据的泄露,后果严重。

在一些实施例中,该对待检测目标的证书的有效期进行检测,可以包括:

根据待检测目标的的证书信息中的有效期字段确定所述待待检测目标的证书的有效期是否到期,或者,待待检测目标的证书的剩余有效期是否小于第一时间阈值,例如30天。

在一些实施例中,ssl证书是否到期可以根据ssl证书信息中的剩余有效时间进行判断。例如,可以将ssl证书的到期时间和当前时间进行比对,到期时间减去当前时间即为证书的剩余有效时间。如果ssl证书已经过期,则ssl证书的剩余有效时间将为负值,如果ssl证书尚未到期,该值为正值,若ssl证书到期,确定ssl证书的检测结果为为存在安全风险,或者,若该ssl证书的剩余有效时间小于第一时间阈值,确定ssl证书的检测结果为存在安全风险。

ssl证书的颁发机构又称证书授权(certificateauthority,ca)机构,是一个受信任的数字证书颁发机构。ssl证书的颁发机构需要遵从行业规则的约束,通过webtrust国际安全审计认证之后才能成为全球可信的ssl证书颁发机构,颁发的根证书才能预装到驻留浏览器。

在一些实施例中,该对待检测目标的证书的颁发机构进行检测,可以包括:

检测待检测目标的证书信息中的颁发机构字段所指示的颁发机构是否为受信任的证书颁发机构。

检测系统通过对证书的颁发机构进行检测,避免使用了不受信任的机构颁发的证书,导致服务数据泄露的问题。

可选地,若所述待检测目标的证书信息中的颁发机构字段所指示的颁发机构不是受信任的证书颁发机构,确定该待检测目标的证书的颁发机构的检测结果为存在安全风险;或者,若所述待检测目标的证书信息中的颁发机构字段所指示的颁发机构是受信任的证书颁发机构,确定该待检测目标的证书的颁发机构的检测结果为不存在安全风险。

可选地,在本申请一些实施例中,该检测系统可以按照预设的关键词字段顺序依次对该待检测目标的证书信息进行至少一个关键词字段的检测。

应理解,本申请对于该预设的关键词字段顺序不作限定。例如,该预设的关键词字段顺序可以根据对证书的安全性的影响程度确定。

作为一个示例,该预设的关键词字段顺序可以为有效期字段,颁发机构字段,签名算法字段,签名哈希算法字段,版本字段。

作为另一示例,该预设的关键词字段顺序可以为版本字段,签名算法字段,签名哈希算法字段、有效期字段,颁发机构字段。

在一些实施例中,证书的有效期对证书的安全性的影响最大,因此,可以首先对待检测目标的证书信息进行有效期字段检测,再对该待检测目标的证书信息进行其他关键词字段检测。

在本申请一些实施例中,该检测系统可以在对待检测目标的证书信息进行第一关键词字段检测确定待检测目标的第一关键词字段的检测结果为不存在安全风险的情况下,再对待检测目标的证书信息进行第二关键词字段检测;或者,

在对待检测目标的证书信息进行第一关键词字段检测确定待检测目标的第一关键词字段的检测结果为存在安全风险的情况下,不对待检测目标的证书信息进行第二关键词字段检测。

其中,第一关键词字段为预设的关键词字段顺序中第二关键词字段之前的一个关键词字段。

以预设的关键词字段顺序为有效期字段,颁发机构字段,签名算法字段,签名哈希算法字段,版本字段为例,该检测系统可以在首先对待检测目标的证书信息进行有效期字段检测,在待检测目标的证书的有效期的检测结果为不存在安全风险的情况下,再对待检测目标的证书信息进行颁发机构字段检测。进一步地,在对待检测目标的证书信息进行颁发机构字段检测,确定该待检测目标的证书的颁发机构的检测结果为不存在安全风险的情况下,再对待检测目标的证书信息进行签名算法字段检测,依次类推,这里不再赘述。

在本申请一些实施例中,对待检测目标的证书信息进行关键词字段检测确定待检测目标的关键词字段的检测结果,可以包括:

若关键词字段为版本字段,在待检测目标的证书的版本为最新版本的情况下,确定待检测目标的证书的版本的检测结果为不存在安全风险,否则,确定待检测目标的证书的版本的检测结果为不存在安全风险;

若关键词字段为签名算法字段,在待检测目标的证书的的签名算法为安全的签名算法的情况下,确定待检测目标的证书的签名算法的检测结果为不存在安全风险,否则,确定待检测目标的证书的签名算法的检测结果为存在安全风险;

若关键词字段为签名算法字段,在待检测目标的证书的的签名算法为安全的签名哈希算法的情况下,确定待检测目标的证书的签名哈希算法的检测结果为不存在安全风险,否则,待检测目标的证书的签名哈希算法的检测结果为存在安全风险;

若关键词字段为有效期字段,在待检测目标的证书的有效期未到期,或者待检测目标的证书的剩余有效期大于或等于第一时间阈值的情况下,确定待检测目标的证书的有效期的检测结果为不存在安全风险,否则,确定待检测目标的证书的有效期的检测结果为存在安全风险;

若关键词字段为颁发结构字段,在待检测目标的证书的颁发机构为受信任的证书颁发机构的情况下,确定待检测目标的证书的颁发机构的检测结果为不存在安全风险,否则,确定待检测目标的证书的颁发机构的检测结果为存在安全风险。

在一些实施例中,该待检测目标的证书的检测结果可以包括该待检测目标的证书信息中的每个关键词字段的检测结果。例如,该待检测目标的证书的检测结果可以包括每个关键词字段是否存在安全风险的指示信息。

作为示例,该待检测目标的证书的检测结果可以包括5比特(b4~b0),每个比特对应一个关键词字段,例如,b4对应版本字段,b3对应签名算法字段,b2对应签名哈希算法字段,b1对应有效期字段,b0对应颁发机构字段,该每个比特的取值用于指示对应的关键词字段的检测结果,比如取值为1,表示存在安全风险,取值为0表示不存在安全风险。例如,若该5比特为00010,则可以确定该待检测目标的证书的有效期存在安全风险。

在一些实施例中,该检测系统根据该待检测目标的证书信息中的每个关键词字段的检测结果生成告警提示信息,该告警提示信息用于提示是否需要告警。

作为示例,该告警提示信息可以为1比特,用于指示是否需要告警,例如,取值为1表示需要告警,取值为0表示不需要告警。

在一些实施例中,在该待检测目标的证书信息的所有关键词字段的检测结果均为不存在安全风险的情况下,该告警提示信息提示不需要告警。或者,在该待检测目标的证书信息有至少一个关键词字段的检测结果为存在安全风险的情况下,该告警提示信息提示需要告警。或者,若待检测目标的证书的关键词字段的检测结果中存在安全风险的关键词字段的数量大于第一数量阈值,例如,3个,此情况下,该告警提示信息提示需要告警。或者,若待检测目标的证书的特定关键词字段的检测结果为存在安全风险,该告警提示信息提示需要告警,即只要该特定关键词字段的检测结果为存在安全风险,无论其他关键词字段的结果是否为存在安全风险,该告警提示信息均提示需要告警。可选地,该特定关键词字段可以为有效期字段,或者颁发机构字段等。

在一些实施例中,该待检测目标的证书的检测结果还可以包括以下中的至少一项:所述待待检测目标的信息,所述待待检测目标的检测时间,所述待待检测目标的剩余有效期。

作为一个示例,待检测目标(target)可以为www.xxx.com,检测时间(detecttime)例如为2020/10/910:52:41,剩余有效时间(validtime)为86400分钟,该待检测目标的证书的ca机构不是受信任的颁发机构,即该待检测目标的证书存在安全风险,该告警提示信息可以为1,分别用于指示需要告警,该待检测目标的证书的检测结果可以包括如下信息:

“target”:“www.xxx.com”;

“detecttime”:“2020/10/910:52:41”;

“validtime”:“86400”;

“operation”:1。

作为又一个示例,待检测目标(target)可以为www.yyy.com,检测时间(detecttime)例如为2020/10/2114:05:22,剩余有效时间(validtime)为-400分钟,即该待检测目标的证书过期存在安全风险,该告警提示信息可以为1,分别用于指示需要告警,该待检测目标的证书的检测结果可以包括如下信息:

“target”:“www.yyy.com”;

“detecttime”:“2020/10/2114:05:22”;

“validtime”:“-400”;

“operation”:1。

作为又一个示例,待检测目标(target)可以为www.zzz.com,检测时间(detecttime)例如为2020/12/2121:15:27,剩余有效时间(validtime)为564000分钟,该待检测目标的证书不存在安全风险,该告警提示信息可以为0,分别用于指示不需要告警,该待检测目标的证书的检测结果可以包括如下信息:

“target”:“www.zzz.com”;

“detecttime”:“2020/12/2121:15:27”;

“validtime”:“564000”;

“operation”:0。

s203,将待检测目标的证书的检测结果生成待处理消息,并将待检测目标的证书的每次检测结果所对应的待处理消息按照时间先后顺序依次写入消息队列。

在一些实施例中,该检测模块可以根据待检测目标的证书的检测结果和告警提示信息生成待处理信息。

例如,该待处理消息可以包括待检测目标的信息,待检测目标的检测时间,待检测目标的剩余有效期和告警提示信息。

又例如,该待处理信息可以包括待检测目标的信息,该待检测目标的检测时间,待检测目标的剩余有效期以及该待检测目标的证书信息中的关键词字段的检测结果。

可选地,该待检测目标的证书信息中的关键词字段的检测结果可以包括所有关键词字段的检测结果,或者,也可以只包括执行检测的关键词字段的检测结果。

在本申请实施例中,消息队列可以作为消息缓冲器,检测模块可以将对该待检测目标的证书信息进行关键词字段检测得到的检测结果所生成的待处理消息按照时间先后顺序依次写入消息队列,即该检测模块可以为消息生产者,用于生产检测结果以生成待处理消息。

消息队列是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,因此,消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。

如图5所示,消息队列采用先进先出(fifo,first-in-first-out),保证检测消息的正确时序。

在本申请一些实施例中,在消息生产阶段,检测模块产生待处理消息,进一步经由网络发送到消息队列的broker端。在该消息生产阶段,检测模块和broker端可以通过请求确认机制来保障待处理消息的正确写入,以及对发送失败、超时等异常情况进行处理。其中,请求确认机制可以指消息生产者发送待处理消息到消息队列的broker,broker收到待处理消息之后给消息生产者回包进行确认的过程。

在本申请一些实施例中,在消息存储阶段,broker为了保证消息不丢失,对待处理消息进行持久化处理,此外还采用多副本模式。例如,把待处理消息复制到多个节点上。通过上述方式可以有效解决消息丢失问题,同时还提高了系统的可用性。如果单个节点无法提供服务,可以通过其他节点继续工作。作为示例,多副本模式可以采用主从模式来保证数据的一致性,例如,首先将数据写入到主节点,然后再复制一份到从节点,如果出现了主数据和从数据不一致的情况,以主节点为主。

s204,按照先入先出的顺序依次从消息队列获取待检测目标的证书的检测结果所对应的待处理消息。

在一些实施例中,该告警模块作为消息队列的消费者,消费消息队列中的待处理消息,并根据该待处理消息确定是否进行告警作业。

在本申请一些实施例中,在消息消费阶段,消息消费者即告警模块可以通过确认机制来保证消息获取的稳定性。例如,告警模块获取到消息队列中的第一待处理消息之后,向消息队列的broker发送确认消息,如果broker没有收到该确认消息,那么告警模块作为消费者下一次获取消息时还是会获取第一待处理消息。若broker收到该确认消息,表示该第一待处理消息已经被成功消费。

s205,对从消息队列获取的待检测目标的证书的检测结果所对应的待处理消息进行处理。

具体地,该告警模块可以按照先入先出的顺序依次从消息队列中提取待处理消息,进一步根据该待处理消息判断是否需要进行告警。

在一些实施例中,可以根据证书的剩余有效期,或告警提示信息,或者,该待检测目标的证书信息中的关键词字段的检测结果确定是否告警。

作为一个示例,判断证书的剩余有效期是否小于30天,如果大于30天不进行告警,如果小于30天,则进行告警。例如,根据前述配置的告警方式进行告警。

作为另一示例,若告警提示信息指示需要告警,进行告警,否则不进行告警。

作为又一示例,若待检测目标的证书信息中的特定关键词字段的检测结果为存在安全风险,则进行告警,例如,该特定关键词字段可以为有效期字段。

作为再一示例,若所述待检测目标的证书的关键词字段的检测结果中存在安全风险的关键词字段的数量大于第一数量阈值,则进行告警。例如,若有3个关键词字段的检测结果为存在风险,则进行告警。

若配置的告警方式为短信告警,此情况下,可以通过统一的手机号码封装告警信息发送给客户预先设置好的告警接收手机号码。

若配置的告警方式为邮件告警,此情况下,可以通过统一的邮箱封装告警信息发送给客户预先设置好的告警接收邮箱地址。

若配置的告警方式为第三方应用告警,此情况下,可以通过统一的第三方账号封装告警信息发送给客户预先设置好的第三方应用账号。

在一些实施例中,该检测系统中的日志模块用于记录整个检测系统的运行日志,例如将运行日志存储到存储模块的日志数据库中,同时也在本地以文本的方式存储。日志主要用于检测系统日常的排障及状态记录。

作为示例,日志内容可以包括如下内容:

配置日志:记录用户新增,删除,修改配置的行为。

检测日志:记录检测模块每次检测待检测目标的证书有效性的操作行为。

告警日志:记录告警模块每次对外告警动作的行为。

运行日志:用于记录整个检测系统后台运行过程中的行为。

以下,结合图6以对前述三种类型的网站的证书进行检测为例说明根据本申请实施例的证书安全性检测方法。

如图6所示,可以包括如下步骤:

s601,接收从客户端输入的待检测目标的配置信息。

具体地,接收用户通过客户端输入的该待检测目标的配置信息。

在本申请实施例中,待检测目标或称监控目标。

在一些实施例中,该待检测目标的配置信息包括待检测目标的信息。

例如,该待检测目标的信息可以为待检测目标的域名,或者ip地址等能够唯一标识待检测目标的信息。

进一步地,在一些实施例中,该待检测目标的配置信息还可以包括以下中的至少一项:

待检测目标的检测类型,待检测目标的检测周期,待检测目标的告警方式。

作为示例,待检测目标的检测类型可以包括pc网站,移动网站和第三方应用网站等。

作为示例,待检测目标的检测频率可以为低频,普通和高频,分别对应的检测周期例如可以为每月,每周,每天。

作为示例,待检测目标的告警模式例如可以包括邮箱告警,短信告警和第三方应用告警。

在一些实施例中,若未配置检测类型,检测频率和告警模式,该检测类型可以为默认的检测类型,例如pc网站,检测频率可以为默认的检测频率,例如普通,告警模式可以为默认的告警模式,例如短信告警。

在本申请一些实施例中,该待检测目标的配置信息可以存储在检测系统的存储模块中。例如,该存储模块可以包括一整套数据库集群,数据库架构可以一主多备份(例如,双备份)的方式进行数据存储,保证数据不会丢失。

s602,根据待检测目标的配置信息确定需要检测哪个待检测目标的证书信息。

例如,可以根据待检测目标的域名或ip地址确定需要获取那个待检测目标的证书信息。

可选地,在一些实施例中,若该待检测目标的配置信息还包括待检测目标的检测类型,该方法还可以包括:

s603,根据待检测目标的配置信息确定待检测目标的检测类型。例如,待检测目标是pc网络,移动网络或第三方应用网络。

由于不同检测类型对应的探测报文的封装格式不同,相应地,获取待检测目标的证书信息所采用的请求报文的封装格式也不同,在一些实施例中,该方法还可以包括:

s604,根据待检测目标的检测类型确定请求报文所采用的探测报文格式,该请求报文用于获取待检测目标的证书信息。

例如,可以根据待检测目标的检测类型,设置请求报文中的ua字段,具体设置方式参考前文实施例中的表1的示例,为了简洁,这里不再赘述。

可选地,在一些实施例中,若该待检测目标的配置信息还包括待检测目标的检测频率,该方法还可以包括:

s605,根据待检测目标的配置信息确定待检测目标的检测频率。

可选地,在一些实施例中,该方法还包括:

根据待检测目标的配置信息确定待检测目标的告警方式。

应理解,上述待检测目标的检测类型,检测频率和告警方式的确定顺序不分先后,例如可以同时执行,或者也可以按照先后顺序执行,本申请对此不作限定。

s606,周期性获取待检测目标的证书信息。

例如,可以根据s604中确定的用于请求获取该待检测目标的证书信息所使用的探测报文格式,根据s605中确定的检测频率周期性向待检测目标的服务器发送该探测报文格式的请求报文,以获取该待检测目标的证书信息。

s607,对获取的待检测目标的证书信息进行关键词字段检测,确定证书的安全性。

以待检测目标的证书为ssl证书为例,该ssl证书的关键词字段可以包括版本字段,签名算法字段,签名哈希算法字段,有效期字段和颁发机构字段。

相应地,s607可以包括s6071中所示步骤:

对待检测目标的证书信息进行版本字段检测,确定待检测目标的证书的版本是否为最新版本;

对待检测目标的证书信息进行签名算法字段检测,确定待检测目标的证书的签名算法是否为安全的签名算法;

对待检测目标的证书信息进行签名哈希算法字段检测,确定待检测目标的证书的签名哈希算法是否为安全的签名哈希算法;

对待检测目标的证书信息进行有效期字段检测,确定待检测目标的证书的有效期是否到期,或者检测待检测目标的证书的剩余有效期是否小于第一时间阈值;

对待检测目标的证书信息进行颁发结构字段检测,确定待检测目标的证书的颁发机构是否为受信任的证书颁发机构。

在一些实施例中,上述关键词字段的检测顺序可以是预先设置的,该检测顺序可以根据对证书的安全性的影响程度确定。

作为一个示例,该检测顺序可以为有效期字段,颁发机构字段,签名算法字段,签名哈希算法字段,版本字段。

作为另一示例,该检测顺序可以为版本字段,签名算法字段,签名哈希算法字段、有效期字段,颁发机构字段。

证书的有效期对证书的安全性的影响最大,因此,在一些实施例中,可以首先对待检测目标的证书信息进行有效期字段检测,再对该待检测目标的证书信息进行其他关键词字段检测。

s608,将待检测目标的证书的检测结果所对应的待处理消息按照时间先后顺序依次写入消息队列。

例如,该待处理消息可以包括待检测目标的信息,待检测目标的检测时间,待检测目标的剩余有效期和告警提示信息。

又例如,该待处理信息可以包括待检测目标的信息,该待检测目标的检测时间,待检测目标的剩余有效期以及该待检测目标的证书信息中的关键词字段的检测结果。

通过消息队列存储证书的周期性检测结果,这样不需要消息的发送方和消息的接收方直接进行交互,双方只需要和消息队列进行交互,有利于避免双方交互导致检测结果丢失,进而导致证书的安全性不能及时告警的问题。

s609,从消息队列获取待检测目标的证书的检测结果对应的待处理消息,并根据该待处理消息进行告警。

具体地,按照消息队列先进先出fifo的时序,依次获取该消息队列中的待处理消息,进一步根据该待处理消息进行告警,从而能够保证按照检测时序依次对需要告警的证书进行及时告警。

在一些实施例中,可以在对待处理消息进行处理,确定是否需要告警。例如,若每个关键词的检测结果均为不存在安全风险,则确定不需要告警。或者,在有一个关键词字段的检测结果为存在安全风险的情况下,确定需要告警,或者,在有效期字段的检测结果为存在安全风险的情况下,确定需要告警。

在该s609中,可以根据前述s601中所配置的待检测目标的告警方式进行告警。以短信告警,邮件告警和第三方应用告警为例,s609可以包括s6091:

若在s601中被配置为短信告警,则通过统一的手机号码封装告警信息,进一步发送给用户预先设置的告警接收手机号码。

若在s601中被配置为邮件告警,则通过统一的邮箱封装告警信息,进一步发送给用户预先设置的告警接收邮箱地址。

若在s601中被配置为第三方应用告警,则通过统一第三方应用账号封装告警信息,进一步发送给用户预先设置的告警接收第三方应用账号。

s610,记录整个检测系统的日志。

例如将运行日志存储到日志数据库中,同时也在本地以文本的方式存储。日志主要用于检测系统日常的排障及状态记录。

在一些实施例中,日志内容可以包括如下内容:

配置日志:记录用户新增,删除,修改配置的行为。

检测日志:记录检测模块每次检测待检测目标的证书有效性的操作行为。

告警日志:记录告警模块每次发出对外告警动作的行为。

运行日志:用于记录整个检测系统后台运行过程中的行为。

综上,在本申请实施例中,通过周期性获取待检测目标的证书信息,进一步对待检测目标的证书信息进行关键词字段检测,确定证书的安全性的检测结果,有利于及时发现证书的安全性隐患,进一步将该证书的安全性的检测结果生成待处理消息写入消息队列,通过消息队列对该待检测目标的周期性的检测结果进行缓存,能够避免消息的发送方和消息的接收方直接进行交互检测结果导致检测结果的丢失,进一步地,通过消息队列对检测结果对应的待处理消息进行有序存储,进一步由消息的消费者对该消息队列中的消息进行有序处理,有利于实现对待检测目标的证书的及时告警。

图7是根据本申请一个实施例的证书安全性检测装置的示意性结构图。如图7所示,该证书安全性检测装置700可以包括:

获取模块710,用于周期性获取待检测目标的证书信息;

检测模块720,用于对该待检测目标的证书信息进行关键词字段检测,得到该待检测目标的证书的检测结果;

消息生成模块730,用于将该待检测目标的证书的检测结果生成待处理消息,并将该待检测目标的证书的每次检测结果所对应的待处理消息按照时间先后顺序依次写入消息队列;

消息消费模块740,用于按照先入先出的顺序依次从该消息队列获取该待检测目标的证书的检测结果所对应的待处理消息;

处理模块,750,用于对从该消息队列获取的该待检测目标的证书的检测结果所对应的待处理消息进行处理。

在本申请一些实施例中,该待检测目标的证书为安全套接字层ssl证书;

其中,该检测模块720还用于:

对该待检测目标的证书信息进行以下至少一个关键词字段的检测:

版本字段、签名算法字段、签名哈希算法字段、有效期字段检测以及颁发机构字段。

在本申请一些实施例中,该检测模块720还用于:

对该待检测目标的证书信息进行版本字段检测,确定该待检测目标的证书的版本是否为最新版本;

对该待检测目标的证书信息进行签名算法字段检测,确定该待检测目标的证书的签名算法是否为安全的签名算法;

对该待检测目标的证书信息进行签名哈希算法字段检测,确定该待检测目标的证书的签名哈希算法是否为安全的签名哈希算法;

对该待检测目标的证书信息进行有效期字段检测,确定该待检测目标的证书的有效期是否到期,或者检测该待检测目标的证书的剩余有效期是否小于第一时间阈值;

对该待检测目标的证书信息进行颁发结构字段检测,确定该待检测目标的证书的颁发机构是否为受信任的证书颁发机构。

在本申请一些实施例中,该检测模块720还用于:

按照预设的关键词字段顺序对该待检测目标的证书信息进行该至少一个关键词字段的检测。

在本申请一些实施例中,该检测模块720还用于:

在对所述待检测目标的证书信息进行第一关键词字段检测确定所述待检测目标的第一关键词字段的检测结果为不存在安全风险的情况下,对所述待检测目标的证书信息进行第二关键词字段检测;或者,

在对所述待检测目标的证书信息进行第一关键词字段检测确定所述待检测目标的第一关键词字段的检测结果为存在安全风险的情况下,不对所述待检测目标的证书信息进行第二关键词字段检测;

其中,所述第一关键词字段为所述预设的关键词字段顺序中所述第二关键词字段之前的一个关键词字段。

在本申请一些实施例中,该检测模块720还用于:

若所述第一关键词字段为版本字段,在所述待检测目标的证书的版本为最新版本的情况下,确定所述待检测目标的证书的版本的检测结果不存在安全风险;

若所述第一关键词字段为签名算法字段,在所述待检测目标的证书的的签名算法为安全的签名算法的情况下,确定所述待检测目标的证书的签名算法的检测结果为不存在安全风险;

若所述第一关键词字段为签名算法字段,在所述待检测目标的证书的的签名算法为安全的签名哈希算法的情况下,确定所述待检测目标的证书的签名哈希算法的检测结果为不存在安全风险;

若所述第一关键词字段为有效期字段,在所述待检测目标的证书的有效期未到期,或者所述待检测目标的证书的剩余有效期大于或等于第一时间阈值的情况下,确定所述待检测目标的证书的有效期的检测结果为不存在安全风险;

若所述第一关键词字段为颁发结构字段,在所述待检测目标的证书的颁发机构为受信任的证书颁发机构的情况下,确定所述待检测目标的证书的颁发机构的检测结果为不存在安全风险。

在本申请一些实施例中,该装置700还包括:

生成模块,用于根据该待检测目标的证书的检测结果,生成告警提示信息,其中,该告警提示信息用于提示是否需要告警;

其中,将消息生成模块730还用于:

将该待检测目标的证书的检测结果和根据该检测结果生成的该告警提示信息生成一个待处理消息。

在本申请一些实施例中,在该待检测目标的证书的关键词字段的检测结果满足以下至少一个条件的情况下,该告警提示信息用于提示需要告警:

该待检测目标的证书的版本不是最新版本;

该待检测目标的证书的签名算法不是安全的签名算法;

该待检测目标的证书的签名哈希算法不是安全的签名哈希算法;

该待检测目标的证书已到期,或,该待检测目标的证书的剩余有效期小于第一时间阈值;

该待检测目标的证书的颁发机构不是受信任的证书颁发机构。

在本申请一些实施例中,该处理模块750还用于:

在满足以下条件的至少一个的情况下,向该待检测目标的服务器发送告警信息:

该告警提示信息提示需要告警;

该待检测目标的证书的关键词字段的检测结果中存在安全风险的关键词字段的数量大于第一数量阈值;

该待检测目标的证书的特定关键词字段的检测结果为存在安全风险。

在本申请一些实施例中,该装置还包括:

输入模块,用于接收用户通过客户端输入的该待检测目标的配置信息,其中,该待检测目标的配置信息包括该待检测目标的信息、该待检测目标的检测类型,该待检测目标的检测周期,该待检测目标的告警模式。

在本申请一些实施例中,该装置700还包括:

设置模块,用于根据该待检测目标的检测类型,设置用于获取该待检测目标的证书信息的请求报文中的用户代理ua字段的内容;

该获取模块710还用于:

周期性地向该待检测目标的服务器发送该请求报文以获取该待检测目标的证书信息。

在一些实施例中,该检测模块720,消息消费模块740,配置模块分别用于执行方法实施例中的检测模块、告警模块,配置模块的操作,为了简洁,这里不再赘述。

在一些实施例中,该证书安全性检测装置700可以包括日志模块,用于存储该证书安全性检测装置700的运行日志,例如,待检测目标的配置信息。

需要说明的是,本申请实施例中的证书安全性检测装置700中各模块的功能可对应参考上述各方法实施例中图2至图6任意实施例的具体实现方式,这里不再赘述。

上述证书安全性检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各个模块可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个模块对应的操作。

证书安全性检测装置700例如可以集成在平板电脑、子机、及笔记本电脑等具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该证书安全性检测装置700为该终端或服务器。

本申请实施例中提供证书安全性检测装置解决问题的原理与有益效果与本申请方法实施例中证书安全性检测方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

本申请实施例还提出了一种证书安全性检测装置,如图8所示,该证书安全性检测装置800包括:存储器801,用于存储计算机程序;处理器802,用于调用所述计算机程序以执行前述实施例中的证书安全性检测方法。

可选地,该存储器801还可以用于存储待检测目标的配置信息,或者该证书安全性检测装置800的运行日志。

可选地,该证书安全性检测装置800还可以包括通信接口803和通信总线804,该存储器801、处理器802和通信接口803可以通过该通信总线804实现相互间的通信。通信接口803可以实现该证书安全性检测装置800与其他设备之间的通信。例如,该通信接口803可以实现证书安全性检测装置800和待检测目标之间的通信。

在一个示例性实施例中,处理器802(具体是处理器包含的各器件)通过调用存储器中的一条或多条指令来执行图2至图6所示的证书安全性检测方法的各步骤。具体地,存储器存储有一条或多条指令,该一条或多条指令适于由处理器加载并执行如下步骤:

周期性获取待检测目标的证书信息;

对该待检测目标的证书信息进行关键词字段检测,得到该待检测目标的证书的检测结果;

将该待检测目标的证书的检测结果生成待处理消息,并将该待检测目标的证书的每次检测结果所对应的待处理消息按照时间先后顺序依次写入消息队列;

按照先入先出的顺序依次从该消息队列获取该待检测目标的证书的检测结果所对应的待处理消息;

对从该消息队列获取的该待检测目标的证书的检测结果所对应的待处理消息进行处理。

在一些实施例中,证书安全性检测装置800例如可以集成在平板电脑、子机、及笔记本电脑等具备储存器并安装有处理器而具有运算能力的终端或服务器中,或者该证书安全性检测装置800为该终端或服务器。

在一些实施例中,本申请还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本申请实施例中的证书安全性检测方法中的相应流程,为了简洁,在此不再赘述。

本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的证书安全性检测方法中的相应流程,为了简洁,在此不再赘述。

本申请实施例还提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的证书安全性检测方法中的相应流程,为了简洁,在此不再赘述。

应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)以及直接内存总线随机存取存储器(directrambusram,drram)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

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