一种基于证书的通信方法及系统与流程

文档序号:12037889阅读:264来源:国知局
一种基于证书的通信方法及系统与流程

本发明涉及通信技术领域,更具体地说,涉及一种基于证书的通信方法及系统。



背景技术:

随着通信技术的发展,客户端和服务器之间越来越多地采用证书来验证登录请求。现有技术提供了一种商用客户端登录服务器的方法。具体包括:客户端与服务器建立连接后,将登录请求发送至服务器、注册证书;服务器验证登录请求通过后信任对应注册的证书;客户端基于注册的证书实现对服务器的登录。

然而在用上述商用客户端登录服务器的方法时,如果攻击方伪装成服务器,获取客户端创建的证书,就能以此证书登录到服务器,从而达到攻击目的。

综上所述,如何降低攻击方利用证书非法登录服务器的风险性是目前本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种基于证书的通信方法,其能解决如何降低攻击方利用证书非法登录服务器的风险性的技术问题。本发明还提供了一种基于证书的通信系统。

为了实现上述目的,本发明提供如下技术方案:

一种基于证书的通信方法,包括:

连接服务器,发送验证凭据至所述服务器;

接收所述服务器发送的验证结果,所述验证结果为所述服务器验证所述验证凭据是否通过后发送的;

解析所述验证结果,若所述验证结果表明所述服务器验证所述验证凭据通过,则向所述服务器申请csr;

接收所述服务器发送的所述csr,判断所述csr是否有效,若有效,则基于所述csr签署第一证书,发送所述第一证书至所述服务器,以利用所述第一证书登录所述服务器。

优选的,所述连接服务器包括:

与服务器建立第一次连接;

所述接收所述服务器发送的验证结果之后,所述向所述服务器申请csr之前还包括:

断开所述第一次连接;

所述断开所述第一次连接之后,所述向所述服务器申请csr之前还包括:

与所述服务器建立第二次连接;

所述发送所述第一证书至所述服务器之后还包括:

断开所述第二次连接。

优选的,所述与服务器建立第一次连接包括:

与服务器基于ssl协议建立第一次连接;

所述与所述服务器建立第二次连接包括:

与所述服务器基于ssl协议建立第二次连接。

优选的,所述发送验证凭据至所述服务器包括:

发送验证凭据至所述服务器,所述验证凭据包括用户名、密码、ca根证书和crl。

优选的,所述连接服务器之前还包括:

获取服务器的第二证书;

验证所述第二证书是否合法,若合法,则利用所述第二证书登录所述服务器,若不合法,则执行所述连接服务器的步骤。

本发明还提供了一种基于证书的通信系统,包括:

第一连接装置,用于连接服务器,发送验证凭据至所述服务器;

第一接收装置,用于接收所述服务器发送的验证结果,所述验证结果为所述服务器验证所述验证凭据是否通过后发送的;

解析装置,用于解析所述验证结果,若所述验证结果表明所述服务器验证所述验证凭据通过,则向所述服务器申请csr;

第二接收装置,用于接收所述服务器发送的所述csr,判断所述csr是否有效,若有效,则基于所述csr签署第一证书,发送所述第一证书至所述服务器,以利用所述第一证书登录所述服务器。

优选的,所述第一连接装置包括:

第一连接模块,用于在所述连接装置发送验证凭据至所述服务器之前,与服务器建立第一次连接;

所述系统还包括:

第一断开装置,用于在所述第一接收装置接收所述验证结果之后,所述解析装置向所述服务器申请csr之前,断开所述第一次连接;

第二连接装置,用于在所述第一连接模块断开所述第一次连接之后,所述解析装置向所述服务器申请csr之前,与所述服务器建立第二次连接;

第二断开装置,用于在所述第二接收装置发送所述第一证书至所述服务器之后,断开所述第二次连接。

优选的,所述第一连接模块包括:

第一连接单元,用于与服务器基于ssl协议建立第一次连接;

所述第二连接装置包括:

第二连接模块,用于与所述服务器基于ssl协议建立第二次连接。

优选的,所述第一连接装置包括:

发送模块,用于发送验证凭据至所述服务器,所述验证凭据包括用户名、密码、ca根证书和crl。

优选的,还包括:

获取装置,用于在所述第一连接装置连接服务器之前,获取服务器的第二证书;

验证装置,用于验证所述获取装置获取的所述第二证书是否合法,若合法,则利用所述第二证书登录所述服务器,若不合法,则提示所述第一连接装置连接服务器。

本发明提供的一种基于证书的通信方法,包括:连接服务器,发送验证凭据至服务器;接收服务器发送的验证结果,验证结果为服务器验证验证凭据是否通过后发送的;解析验证结果,若验证结果表明服务器验证验证凭据通过,则向服务器申请csr;接收服务器发送的csr,判断csr是否有效,若有效,则基于csr签署第一证书,发送第一证书至服务器,以利用第一证书登录服务器。本发明提供的一种基于安全证书的通信方法在与服务器建立连接后,先将验证凭据发送给服务器,服务器验证验证凭据是否通过,若验证通过,还需要在验证服务器的csr有效的情况下才可以为服务器颁发必定能实现登录服务器的第一证书,本发明不仅需要服务器验证验证凭据是否通过,还需要验证csr是否有效,验证次数比现有技术多,而且攻击方在获取证书时不仅需要伪装成服务器,还需要伪装成需要登录服务器的一端,与现有技术中攻击方仅仅需要伪装成服务器便可获得证书相比,伪装次数多,提高了证书被攻击方获得的难度。综上所述,本发明提供的一种基于证书的通信方法解决了如何降低攻击方利用证书非法登录服务器的风险性的技术问题。本发明所提供的一种基于证书的通信系统也解决了相应的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种基于证书的通信方法的流程图;

图2为本发明实施例提供的一种基于证书的通信系统的结构示意图;

图3为实际应用中一种基于证书的通信方法的流程图。

具体实施方式

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

请参阅图1,图1为本发明实施例提供的一种基于证书的通信方法的流程图。

本发明所提供的一种基于证书的通信方法中各个动作的执行主体可以为客户端本身,而该客户端内可以设置有基于证书的通信系统,因此本发明所提供的一种基于证书的通信方法中各个动作的执行主体也可以为内置于客户端的系统,本发明在这里不做具体限定。为了描述方便,下面将本方法中各个动作的执行主体设定为客户端。

本发明实施例提供的一种基于证书的通信方法可以包括以下步骤:

步骤s1:连接服务器,发送验证凭据至服务器。

由于客户端需要与服务器进行信息交互,所以需要先连接服务器。客户端连接服务器是为了实现客户端与服务器之间互相验证,可以将客户端连接服务器设置为维持短时间的连接,在客户端与服务器完成互相验证后即可断开连接。当然,根据不同的实际需要,也可将客户端连接服务器设置为可维持长时间的连接,本发明在这里不做具体限定。

步骤s2:接收服务器发送的验证结果,验证结果为服务器验证验证凭据是否通过后发送的。

服务器可以比较客户端发送的验证凭据是否合法来验证验证凭据是否通过,若验证凭据合法,则验证验证凭据通过,若验证凭据不合法,则验证验证凭据未通过。在实际应用中,根据不同的应用场景,可以选择不同的方法来验证验证凭据是否合法。

这里的服务器验证验证凭据是否通过可以用来表示服务器是否信任客户端,如果服务器验证验证凭据通过则表示服务器信任客户端,如果服务器验证验证凭据未通过则表示服务器不信任客户端。服务器验证验证凭据后会向客户端发送一个验证结果,以便客户端得知服务器验证验证凭据后的结果。

步骤s3:解析验证结果,若验证结果表明服务器验证验证凭据通过,则向服务器申请csr。

客户端只有在解析验证结果得出验证结果表明服务器验证验证凭据通过的情况下,才会向服务器申请csr(certificatesigningrequest,证书签名请求)以及执行步骤s4。

如果客户端解析验证结果得出验证结果表明服务器验证验证凭据未通过,则客户端可以结束与服务器之间的连接,也可以有其他操作,本发明在这里不做具体限定。

步骤s4:接收服务器发送的csr,判断csr是否有效,若有效,则基于csr签署第一证书,发送第一证书至服务器,以利用第一证书登录服务器。

客户端接收服务器发送的csr后,先判断csr是否有效,若有效,则表明客户端信任服务器,可以为服务器颁发证书;若csr无效,则表明客户端不信任服务器,客户端可以结束与服务器之间的连接,也可以有其他操作,本发明在这里不做具体限定。

客户端在判断csr有效的情况下,可以基于csr签署第一证书,然后发送第一证书至服务器,即客户端为服务器颁发第一证书。由于第一证书是在服务器验证验证凭据通过而且客户端判断csr有效的情况下,即服务器信任客户端而且客户端信任服务器的情况下,客户端颁发给服务器的,所以第一证书为客户端登录服务器的安全证书。

本申请中的csr可以与验证凭据对应,进一步的,由于csr是与客户端发送至服务器的验证凭据对应的,所以客户端可以通过判断csr是否与验证凭据对应来判断csr的有效性,若csr与验证凭据对应,则csr有效,若csr与验证凭据不对应,则csr无效,当然也可以有其他判断csr是否有效的方法,本发明在这里不做具体限定。客户端在判断csr有效的情况下,可以根据csr中包含的证书有效时间、名称等信息制作出和这些信息对应的第一证书。

本发明提供的一种基于安全证书的通信方法在与服务器建立连接后,先将验证凭据发送给服务器,服务器验证验证凭据是否通过,若验证通过,还需要在客户端验证服务器的csr有效的情况下才可以为服务器颁发必定能实现登录服务器的第一证书,本发明不仅需要服务器验证验证凭据是否通过,还需要客户端验证csr是否有效,可见本申请中需要通过实现多次验证最终实现服务器的登录,且攻击方在获取证书时不仅需要伪装成客户端还要伪装成服务器,与现有技术中攻击方仅仅需要伪装成服务器便可获得证书相比,提高了证书被攻击方获得的难度。综上所述,本发明提供的一种基于证书的通信方法解决了如何降低攻击方利用证书非法登录服务器的风险性的技术问题。

本发明实施例提供的一种基于证书的通信方法中,连接服务器可以包括:

与服务器建立第一次连接;

在接收服务器发送的验证结果之后,向服务器申请csr之前还可以包括:

断开第一次连接;

在断开第一次连接之后,向服务器申请csr之前还可以包括:

与服务器建立第二次连接;

在发送第一证书至服务器之后还可以包括:

断开第二次连接。

可以在接收服务器发送的验证结果之后,解析验证结果之前,断开第一次连接,这种情况下,可以是在断开第一次连接之后,解析验证结果之前,与服务器建立第二次连接,也可以是在解析验证结果之后,向服务器申请csr之前,与服务器建立第二次连接;也可以在解析验证结果之后,向服务器申请csr之前断开第一次连接,本发明在这里不做具体限定。

在断开第一次连接之后,向服务器申请csr之前,可以与服务器建立第二次连接。如果是在接收服务器发送的验证结果之后,解析验证结果之前,断开第一次连接,则可以是在断开第一次连接之后,解析验证结果之前,与服务器建立第二次连接,也可以是在解析验证结果之后,向服务器申请csr之前,与服务器建立第二次连接;如果是在解析验证结果之后,向服务器申请csr之前,断开第一次连接,则可以是在断开第一次连接之后,向服务器申请csr之前,与服务器建立第二次连接。本发明在这里不做具体限定。

在实际应用中,客户端可以通过与服务器进行多次连接来完成为服务器颁发证书的过程,比如可以通过两次连接来完成。这样进行多次连接的好处是,在有攻击方攻击服务器的情况下,由于客户端与服务器之间进行多次连接,所以攻击方不仅需要在伪装成客户端的时候与服务器进行多次连接,而且需要在伪装成服务器的时候与客户端进行多次连接,使得攻击方在攻击服务器时与客户端和服务器之间的连接关系变得复杂,进一步提高证书被攻击方获得的困难,从而降低证书被攻击的风险性。

本发明实施例提供的一种基于证书的通信方法中,与服务器建立第一次连接可以包括:

与服务器基于ssl协议建立第一次连接;

与服务器建立第二次连接可以包括:

与服务器基于ssl协议建立第二次连接。

在与服务器基于ssl协议建立连接的过程中,客户端可以先发送ssl连接请求至服务器,服务器接收ssl连接请求后判断是否与客户端建立连接,若是,则与客户端建立连接,若否,则不与客户端建立连接。

客户端在与服务器建立连接的时候可以根据不同的应用场景选择不同的协议,本发明在这里不做具体限定。优选的,本发明在这里选择ssl协议,因为选择ssl协议可以使得客户端连接服务器的过程简单易实现。

本发明实施例提供的一种基于证书的通信方法中,发送验证凭据至服务器可以包括:

发送验证凭据至服务器,验证凭据可以包括用户名、密码、ca根证书和crl。

在不同的应用场景下,客户端可以向服务器发送不同的验证凭据,比如只发送用户名和密码,只发送ca根证书(carootcertificate,数字认证机构的根证书)和crl(certificaterevocationlist,证书吊销列表)等,本发明在这里不做具体限定。优选的,本发明选择客户端向服务器发送包括用户名、密码、ca根证书和crl的验证凭据,因为验证凭据的内容越多,服务器验证验证凭据的结果更准确,从而攻击方越难攻击服务器,进一步降低证书被攻击方获得风险性。

服务器接收到客户端发送的用户名、密码、ca根证书和crl后,可以比较客户端发送的用户名、密码跟服务器自身存储的对应用户名、密码是否一致,具体为判断客户端发送的用户名与自身存储的用户名是否一致的同时判断客户端发送的密码与自身存储的密码是否一致;以及判断ca根证书和crl是否合法,若客户端发送的用户名、密码跟服务器自身存储的用户名、密码一致且ca根证书和crl合法,则验证验证凭据通过,否则则验证验证凭据未通过。当然,也可以有其他验证验证凭据是否通过的方法,本发明在这里不做具体限定。

服务器判断ca根证书和crl是否合法也即判断服务器是否认可客户端,若ca根证书和crl合法,则服务器认可客户端,否则服务器不认可客户端。这里的服务器认可客户端只是服务器信任客户端的一部分,只有在服务器认可客户端以及验证其他验证凭据通过的情况下,服务器才信任客户端。

优选的,服务器在验证验证凭据通过的情况下,可以添加ca根证书和crl到服务器的信任库中。服务器可以生成与ca根证书和crl对应的csr,相应的,客户端在验证csr是否有效时可以验证csr是否为与自身的ca根证书和crl对应的csr,若是对应的,则csr有效,否则csr无效。由于csr跟ca根证书和crl之间的对应关系,如果服务器将ca根证书和crl添加到服务器的信任库中,那么可以为客户端验证csr以及基于csr签署第一证书提供进一步的安全保证。

本发明实施例提供的一种基于证书的通信方法中,连接服务器之前还可以包括:

获取服务器的第二证书;

验证第二证书是否合法,若合法,则利用第二证书登录服务器,若不合法,则执行连接服务器的步骤。

实际应用场景中,客户端在与服务器建立连接前可以先验证服务器的第二证书是否合法,若是,则可以利用第二证书直接登录服务器,不需要进行为服务器颁发证书的过程,从而节省客户端登录服务器的时间,提高效率。

这里客户端验证服务器的第二证书是否合法也即验证服务器的第二证书是否是客户端颁发给服务器的,如果服务器的第二证书合法,则服务器的第二证书是客户端颁发给服务器的,第二证书为客户端登录服务器的安全证书;如果服务器的第二证书不合法,则服务器的第二证书不是客户端颁发给服务器的,第二证书不是客户端登录服务器的安全证书,这时需要客户端为服务器颁发新的证书。

这里的获取服务器的第二证书及验证第二证书是否合法的过程也是客户端利用颁发给服务器的证书登录服务器的过程,如果服务器的第二证书是客户端颁发给服务器的,则允许客户端直接登录服务器。

由于客户端在为服务器颁发证书的过程中会为证书签署证书指纹,所以客户端可以通过判断服务器的第二证书的证书指纹是否是客户端签署的来验证第二证书是否合法,如果第二证书的证书指纹是客户端签署的,则第二证书合法,如果第二证书的证书指纹不是客户端签署的,则第二证书不合法。也可以有其他验证第二证书是否合法的方法,本发明在这里不做具体限定。

实际应用中,在客户端登录服务器后,还可以删除客户端为服务器颁发的第一证书,这样做的好处是可以避免攻击方仅仅需要获得第一证书便可利用第一证书攻击服务器,提高攻击方攻击服务器的困难度。当然也可以不删除第一证书,本发明在这里不做具体限定。

本发明还提供了一种基于证书的通信系统,其具有本发明提供的一种基于证书的通信方法具有的对应效果。请参阅图2,图2为本发明实施例提供的一种基于证书的通信系统的结构示意图。

本发明实施例提供的一种基于证书的通信系统可以包括:

第一连接装置a1,用于连接服务器,发送验证凭据至服务器;

第一接收装置a2,用于接收服务器发送的验证结果,验证结果为服务器验证验证凭据是否通过后发送的;

解析装置a3,用于解析验证结果,若验证结果表明服务器验证验证凭据通过,则向服务器申请csr;

第二接收装置a4,用于接收服务器发送的csr,判断csr是否有效,若有效,则基于csr签署第一证书,发送第一证书至服务器,以利用第一证书登录服务器。

本发明实施例提供的一种基于证书的通信系统中,连接装置可以包括:

第一连接模块,用于在连接装置发送验证凭据至服务器之前,与服务器建立第一次连接;

通信系统还可以包括:

第一断开装置,用于在第一接收装置接收验证结果之后,解析装置向服务器申请csr之前,断开第一次连接;

第二连接装置,用于在第一连接模块断开第一次连接之后,解析装置向服务器申请csr之前,与服务器建立第二次连接;

第二断开装置,用于在第二接收装置发送第二证书至服务器之后,断开第二次连接。

本发明实施例提供的一种基于证书的通信系统中,第一连接模块可以包括:

第一连接单元,用于与服务器基于ssl协议建立第一次连接;

第二连接装置可以包括:

第二连接模块,用于与服务器基于ssl协议建立第二次连接。

本发明实施例提供的一种基于证书的通信系统中,第一连接装置可以包括:

发送模块,用于发送验证凭据至服务器,验证凭据包括用户名、密码、ca根证书和crl。

本发明实施例提供的一种基于证书的通信系统中,还可以包括:

获取装置,用于在第一连接装置连接服务器之前,获取服务器的第二证书;

验证装置,用于验证获取装置获取的第二证书是否合法,若合法,则利用第二证书登录服务器,若不合法,则提示第一连接装置连接服务器。

本发明实施例提供的一种基于证书的通信系统中相关部分的说明请参见本发明实施例提供的一种基于证书的通信方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

在实际应用中,根据不同的应用场景,可以选择不同的方法来降低证书被攻击方获得的风险性。请参阅3,图3为实际应用中一种基于证书的通信方法的流程图。

此实际应用中,服务器部署有自签名证书,客户端登录服务器可以包括以下步骤:

客户端请求服务器的自签名证书,服务器发送自签名证书至客户端,客户端验证自签名证书是否合法,若合法,则利用自签名证书直接登录服务器,若不合法,则执行后续步骤;

客户端通过第一ssl连接请求连接服务器,将用户名、密码、ca根证书和crl作为验证凭据发送至服务器,服务器验证验证凭据是否通过,若通过,则添加ca根证书和crl到信任库,断开第一ssl连接;

客户端通过第二ssl连接请求连接服务器,向服务器申请csr;服务器发送csr至客户端;客户端验证csr是否有效,若有效,则基于csr签署证书,发送证书至服务器,断开第二ssl连接;服务器用客户端签署的证书替换自签名证书;

客户端通过第三ssl连接请求连接服务器,利用签署的证书登录服务器。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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