检验SSL证书的方法和系统与流程

文档序号:14879651发布日期:2018-07-07 09:22阅读:455来源:国知局

本发明涉及网络信息安全领域,特别涉及一种检验ssl证书的方法和系统。



背景技术:

为了保证数据在传输过程当中不被窃取或篡改,部分web网站采用https(hypertexttransferprotocoloversecuresocketlayer,基于安全套接层的超文本传输协议)协议,通过ssl(securitysocketlayer,安全套接层)证书实现身份验证和数据加密。ssl证书可以由权威机构签发或服务器自签发,部分企业自建的web网站中往往采用web服务器自签发ssl证书的方式。浏览器可直接验证由权威机构签发的ssl证书,对自签发的ssl证书将给出风险提示,由用户决定是否继续浏览。

但是,黑客可以发起dns(domainnamesystem,域名系统)劫持或局域网arp(addressresolutionprotocol,地址解析协议)欺骗攻击,截获web客户端与服务器之间交互的流量,并冒充web服务器伪造ssl证书实施中间人攻击,由于用户不知道真实ssl证书为权威机构签发还是web服务器自签发,往往倾向于信任ssl证书,导致黑客获取客户端加密密钥,从而窃取客户端传输的敏感数据。此外,部分钓鱼网站也采用非法ssl证书,一旦用户访问钓鱼网站,可能导致被挂马、信息窃取、账号密码丢失等风险。



技术实现要素:

本发明需要解决的一个技术问题是:提供一种检验ssl证书的方法。

根据本发明的第一方面,提供了一种检验ssl证书的方法,包括:客户端在收到web服务器发送的ssl证书后,对所述ssl证书的签发机构进行验证,如果验证不通过,则生成所述ssl证书的散列值,并将所述散列值发送给证书验证服务器;所述证书验证服务器在接收到所述客户端发送的所述散列值后,将所述散列值与证书黑白名单库中已经存储的散列值进行比对,并将比对结果返回给所述客户端;以及所述客户端根据所述比对结果判断所述ssl证书是否为伪造的ssl证书。

在一个实施例中,所述证书黑白名单库包括:白名单库和黑名单库;其中,所述白名单库存储已验证的web服务器自签发证书的散列值;所述黑名单库存储已知恶意证书的散列值。

在一个实施例中,所述客户端根据所述比对结果判断所述ssl证书是否为伪造的ssl证书的步骤包括:所述客户端若根据所述比对结果确定所述ssl证书的散列值属于所述白名单库,则确定所述ssl证书不是伪造的ssl证书,进而生成会话密钥,并利用所述ssl证书中包含的所述web服务器的公钥对所述会话密钥加密,将加密后的会话密钥发送给所述web服务器。

在一个实施例中,所述客户端根据所述比对结果判断所述ssl证书是否为伪造的ssl证书的步骤包括:所述客户端若根据所述比对结果确定所述ssl证书的散列值属于所述黑名单库,则确定所述ssl证书是伪造的ssl证书,进而弹出证书错误信息,阻止用户继续访问所述web服务器。

在一个实施例中,所述客户端根据所述比对结果判断所述ssl证书是否为伪造的ssl证书的步骤包括:所述客户端若根据所述比对结果确定所述ssl证书的散列值不属于所述证书黑白名单库,则提示当前访问的所述web服务器存在风险。

在一个实施例中,所述方法还包括:用户若在访问存在风险的web服务器时发现所述ssl证书是伪造的ssl证书,则通过客户端提交所述web服务器的url地址,所述客户端获取所述web服务器的ssl证书后,向所述证书验证服务器发送伪造通知消息,其中,所述伪造通知消息包含所述ssl证书的散列值以及所述ssl证书是伪造的ssl证书的信息;以及所述证书验证服务器在接收到所述伪造通知消息后将所述ssl证书的散列值存入所述黑名单库中。

在一个实施例中,所述散列值包括但不仅限于:md5值、sha-1值或sha-2值。

本发明的上述方法实现了对ssl证书的检验,提升了web网站访问安全性,可以保障web用户安全,防范用户敏感信息泄露。

根据本发明的第二方面,提供了一种检验ssl证书的系统,包括:客户端,用于在收到web服务器发送的ssl证书后,对所述ssl证书的签发机构进行验证,如果验证不通过,则生成所述ssl证书的散列值,并将所述散列值发送给证书验证服务器;并且根据所述证书验证服务器返回的比对结果判断所述ssl证书是否为伪造的ssl证书;以及所述证书验证服务器,用于在接收到所述客户端发送的所述散列值后,将所述散列值与证书黑白名单库中已经存储的散列值进行比对,并将比对结果返回给所述客户端。

在一个实施例中,所述系统还包括:所述证书黑白名单库,其包括:白名单库和黑名单库;其中,所述白名单库存储已验证的web服务器自签发证书的散列值;所述黑名单库存储已知恶意证书的散列值。

在一个实施例中,所述客户端若根据所述比对结果确定所述ssl证书的散列值属于所述白名单库,则确定所述ssl证书不是伪造的ssl证书,进而生成会话密钥,并利用所述ssl证书中包含的所述web服务器的公钥对所述会话密钥加密,将加密后的会话密钥发送给所述web服务器。

在一个实施例中,所述客户端若根据所述比对结果确定所述ssl证书的散列值属于所述黑名单库,则确定所述ssl证书是伪造的ssl证书,进而弹出证书错误信息,阻止用户继续访问所述web服务器。

在一个实施例中,所述客户端若根据所述比对结果确定所述ssl证书的散列值不属于所述证书黑白名单库,则提示当前访问的所述web服务器存在风险。

在一个实施例中,用户若在访问存在风险的web服务器时发现所述ssl证书是伪造的ssl证书,则可以通过客户端提交所述web服务器的url地址,所述客户端获取所述web服务器的ssl证书后,向所述证书验证服务器发送伪造通知消息,其中,所述伪造通知消息包含所述ssl证书的散列值以及所述ssl证书是伪造的ssl证书的信息;以及所述证书验证服务器在接收到所述伪造通知消息后将所述ssl证书的散列值存入所述黑名单库中。

在一个实施例中,所述散列值包括但不仅限于:md5值、sha-1值或sha-2值。

本发明的上述系统实现了对ssl证书的检验,提升了web网站访问安全性,可以保障web用户安全,防范用户敏感信息泄露。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1是示出根据本发明一个实施例的检验ssl证书的方法的流程图。

图2是示出根据本发明另一个实施例的检验ssl证书的方法的流程图。

图3是示意性地示出根据本发明一个实施例的检验ssl证书的系统的结构图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1是示出根据本发明一个实施例的检验ssl证书的方法的流程图。

在步骤s102,客户端在收到web服务器发送的ssl证书后,对该ssl证书的签发机构进行验证,如果验证不通过,则生成该ssl证书的散列值,并将该散列值发送给证书验证服务器。

例如,当终端上的客户端通过https协议访问web网站时,web服务器将包含公钥及相关信息的ssl证书发送给客户端,客户端在收到web服务器发送的ssl证书后,对该ssl证书的签发机构进行验证,如果证书验证不通过,则生成该ssl证书的散列值,并将该散列值发送给证书验证服务器。

在一个实施例中,如果客户端对ssl证书的签发机构验证通过,则该客户端生成一段随机数作为会话密钥,并用该ssl证书中包含的web服务器的公钥对该会话密钥加密,将加密后的会话密钥发送给web服务器。该web服务器利用私钥对该加密的会话密钥解密后用该会话密钥加密通信数据,从而实现加密通信。

在本发明的实施例中,散列值可以包括:md5(messagedigestalgorithm5,消息摘要算法第五版)值、sha-1(securehashalgorithm-1,安全散列算法第一版)值或sha-2(securehashalgorithm-2,安全散列算法第二版)值等。当然本领域技术人员应该理解,该散列值还可以是其他类型的散列值,例如md2值或md4值等,因此本发明的范围并不仅限于此。优选地,散列值可以为md5值,利用md5值可以使得计算比较简便。

在步骤s104,证书验证服务器在接收到客户端发送的散列值后,将该散列值与证书黑白名单库中已经存储的散列值进行比对,并将比对结果返回给该客户端。

例如,以md5值作为散列值为例,证书验证服务器在接收到客户端发送的证书md5值后,将该md5值与证书黑白名单库中已经存储的md5值进行比对,判断该md5值是否属于该证书黑白名单库,并将比对结果发送给客户端。

在一个实施例中,该证书黑白名单库可以包括:白名单库和黑名单库。其中,该白名单库存储已验证的web服务器自签发证书的散列值(例如md5值)。该黑名单库存储已知恶意证书的散列值(例如md5值)。在一个实施例中,在步骤s102之前,所述方法还可以包括:设置该证书黑白名单库。例如,可以通过收集已验证的web服务器自签发证书的散列值和已知恶意证书的散列值来构建该证书黑白名单库,并可以将该证书黑白名单库设置在云端。

在步骤s106,客户端根据比对结果判断该ssl证书是否为伪造的ssl证书。

在一个实施例中,该步骤s106可以包括:客户端若根据比对结果确定ssl证书的散列值(例如md5值)属于白名单库(例如,该ssl证书的散列值与白名单库中的某个散列值相同),则确定该ssl证书不是伪造的ssl证书,进而生成会话密钥(例如可以生成一段随机数作为会话密钥),并利用该ssl证书中包含的所述web服务器的公钥对该会话密钥加密,将加密后的会话密钥发送给web服务器。该web服务器利用私钥对该加密的会话密钥解密后用该会话密钥加密通信数据,从而实现加密通信。

在另一个实施例中,该步骤s106可以包括:客户端若根据比对结果确定ssl证书的散列值(例如md5值)属于黑名单库(例如,该ssl证书的散列值与黑名单库中的某个散列值相同),则确定该ssl证书是伪造的ssl证书,进而弹出证书错误信息,阻止用户继续访问web服务器。

在另一个实施例中,该步骤s106可以包括:客户端若根据比对结果确定ssl证书的散列值(例如md5值)不属于证书黑白名单库(例如该ssl证书的散列值与证书黑白名单库中的散列值均不相同,既不属于黑名单库,也不属于白名单库,即无比对项),则提示当前访问的web服务器存在风险。

在本发明的上述实施例中,提供了一种检验ssl证书的方法。在该方法中,客户端在对ssl证书验证不通过的情况下,生成散列值并发送到证书验证服务器,该证书验证服务器对该散列值与证书黑白名单库中的散列值进行比对,将比对结果返回给客户端,客户端根据比对结果判断上述ssl证书是否为伪造的证书,从而实现了对ssl证书的检验。

例如,当有黑客伪造ssl证书对客户端实施中间人攻击,或者有钓鱼网站向客户端发送非法ssl证书时,客户端接收到该ssl证书后对该ssl证书的签发机构进行验证,一般情况下,验证不通过,则客户端生成该ssl证书的散列值并发送到证书验证服务器。该证书验证服务器对该散列值与证书黑白名单库中的散列值进行比对,例如,发现该散列值属于黑名单库,则将该比对结果返回给客户端。该客户端根据该比对结果确认该ssl证书是伪造的证书,进而弹出证书错误信息,阻止用户继续访问web服务器。因此,本发明的上述方法可以防范伪造ssl证书进行的中间人攻击,并可以避免钓鱼网站攻击,提升了基于https协议的web网站访问安全性,可以保障web用户安全,防范用户敏感信息泄露。

在本发明的实施例中,上述方法通过对已验证的web服务器自签发证书的散列值形成白名单,客户端接收到web服务器的ssl证书时,通过对证书的验证,保证在白名单中的web网站被正常访问。

在一个实施例中,上述方法还可以包括:用户若在访问存在风险的web服务器时发现上述ssl证书是伪造的ssl证书,则可以通过客户端提交该web服务器的url(uniformresourcelocator,统一资源定位符)地址,客户端获取该web服务器的ssl证书后,向证书验证服务器发送伪造通知消息,其中,该伪造通知消息包含该ssl证书的散列值以及该ssl证书是伪造的ssl证书的信息;以及该证书验证服务器在接收到该伪造通知消息后将该ssl证书的散列值存入黑名单库中。

例如,客户端从证书验证服务器接收到比对结果,根据该比对结果确定ssl证书的散列值(例如md5值)不属于证书黑白名单库(即无比对项),则提示当前访问的web服务器存在风险,但是用户依然对该存在风险的web服务器进行访问,用户在访问期间发现上述ssl证书是伪造的ssl证书(例如黑客的中间人攻击或钓鱼网站提供的证书),则可以通过客户端提交该web服务器的url地址,客户端获取该web服务器的ssl证书后,向证书验证服务器通知该ssl证书是伪造证书,该证书验证服务器在获得该信息后,就将该ssl证书的散列值存入黑名单库中,从而实现了对黑名单的积累,防止在以后再次收到该ssl证书时遭受攻击。

图2是示出根据本发明另一个实施例的检验ssl证书的方法的流程图。

在步骤s201,客户端发起对web服务器的https访问,收到该web服务器发送的ssl证书。

在步骤s202,客户端对该ssl证书的签发机构进行验证,判断该验证是否通过。如果通过,则过程进入步骤s203,否则过程进入步骤s204。

在步骤s203,客户端生成会话密钥,利用该ssl证书中包含的web服务器的公钥对该会话密钥加密后发送给web服务器。

在步骤s204,客户端生成该ssl证书的散列值,并将该散列值发送给证书验证服务器。

在步骤s205,证书验证服务器在接收到客户端发送的散列值后,将该散列值与证书黑白名单库中已经存储的散列值进行比对,并将比对结果返回给该客户端。

在步骤s206,客户端根据比对结果判断ssl证书是否为伪造的ssl证书。如果比对结果是散列值属于白名单库,则过程进入步骤s207;如果比对结果是散列值属于黑名单库,则过程进入步骤s208;如果比对结果是散列值无比对项(即该散列值既不属于白名单库也不属于黑名单库),则过程进入步骤s209。

在步骤s207,客户端确定该ssl证书不是伪造的ssl证书,进而生成会话密钥,并利用该ssl证书中包含的web服务器的公钥对该会话密钥加密后发送给web服务器。

在步骤s208,客户端确定该ssl证书是伪造的ssl证书,进而弹出证书错误信息,阻止用户继续访问web服务器。

在步骤s209,弹出风险提示。即提示当前访问的web服务器存在风险。

在该实施例中,针对现有https中ssl证书伪造与中间人攻击的问题,提供了基于ssl证书散列值(例如md5值)检验的方法。例如在云端统一部署ssl证书黑白名单库,在客户端对web服务器证书进行验证时,通过访问证书黑白名单库进行基于黑白名单的检测,从而防止伪造ssl证书进行的中间人攻击,并可以避免钓鱼网站攻击,提升基于https协议的web网站访问安全性,保证恶意证书被有效识别,防范用户由于安全意识不当导致点击浏览伪造证书网站的问题。

图3是示意性地示出根据本发明一个实施例的检验ssl证书的系统的结构图。如图3所示,该检验ssl证书的系统30可以包括:客户端302和证书验证服务器304。图3中还示出了web服务器310。

该客户端302用于在收到web服务器310发送的ssl证书后,对该ssl证书的签发机构进行验证,如果验证不通过,则生成ssl证书的散列值,并将该散列值发送给证书验证服务器304;并且根据该证书验证服务器304返回的比对结果判断该ssl证书是否为伪造的ssl证书。例如,该散列值可以包括但不限于:md5值、sha-1值或sha-2值等。优选地,该散列值可以为md5值。

在一个实施例中,如果客户端302对ssl证书的签发机构验证通过,则该客户端302生成一段随机数作为会话密钥,并利用该ssl证书中包含的该web服务器310的公钥对该会话密钥加密,将加密后的会话密钥发送给web服务器310。该web服务器利用私钥对该加密的会话密钥解密后用该会话密钥加密通信数据,从而实现加密通信。

该证书验证服务器304用于在接收到客户端302发送的散列值后,将该散列值与证书黑白名单库306中已经存储的散列值进行比对,并将比对结果返回给该客户端302。

在上述实施例中,提供了一种检验ssl证书的系统。在该系统中,客户端在对ssl证书验证不通过的情况下,生成散列值并发送到证书验证服务器,该证书验证服务器对该散列值与证书黑白名单库中的散列值进行比对,将比对结果返回给客户端,客户端根据比对结果判断上述ssl证书是否为伪造的证书,从而实现了对ssl证书的检验。上述系统可以防范伪造ssl证书进行的中间人攻击,并可以避免钓鱼网站攻击,提升了基于https协议的web网站访问安全性,可以保障web用户安全,防范用户敏感信息泄露。

在一个实施例中,如图3所示,该系统30还可以包括证书黑白名单库306。该证书黑白名单库306包括:白名单库和黑名单库。该白名单库存储已验证的web服务器自签发证书的散列值(例如md5值)。该黑名单库存储已知恶意证书的散列值(例如md5值)。

在一个实施例中,客户端302若根据比对结果确定ssl证书的散列值(例如md5值)属于白名单库,则确定该ssl证书不是伪造的ssl证书,进而生成会话密钥,并利用该ssl证书中包含的该web服务器310的公钥对该会话密钥加密,将加密后的会话密钥发送给web服务器310。该web服务器310利用私钥对该加密的会话密钥解密后用该会话密钥加密通信数据,从而实现加密通信。

在一个实施例中,客户端302若根据比对结果确定ssl证书的散列值(例如md5值)属于黑名单库,则确定该ssl证书是伪造的ssl证书,进而弹出证书错误信息,阻止用户继续访问web服务器310。

在一个实施例中,客户端302若根据比对结果确定ssl证书的散列值(例如md5值)不属于证书黑白名单库,则提示当前访问的web服务器310存在风险。

在一个实施例中,用户若在访问存在风险的web服务器时发现ssl证书是伪造的ssl证书,则可以通过客户端302提交该web服务器的url地址,该客户端302获取该web服务器的ssl证书后,向证书验证服务器304发送伪造通知消息。其中,该伪造通知消息包含该ssl证书的散列值以及该ssl证书是伪造的ssl证书的信息。该证书验证服务器304在接收到该伪造通知消息后将该ssl证书的散列值存入黑名单库中。从而实现了对黑名单的积累,防止在以后再次收到该ssl证书时遭受攻击。

在本发明的实施例中,针对现有https中ssl证书伪造与中间人攻击的问题,提供了基于ssl证书散列值(例如md5值)检验的系统。例如在云端统一部署ssl证书黑白名单库,在客户端对web服务器证书进行验证时,通过访问证书黑白名单库进行基于黑白名单的检测,从而可以防止伪造ssl证书进行的中间人攻击,并可以避免钓鱼网站攻击,提升基于https协议的web网站访问安全性,保证恶意证书被有效识别,防范用户由于安全意识不当导致点击浏览伪造证书网站的问题。

至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

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