本发明专利技术公开了基于数字证书实现客户端和服务器进行双向认证的方法,包括以下步骤:1)客户端向服务器端发起请求;2)服务器端产生随机数发送至客户端;3)客户端对服务器端产生的随机数进行签名并产生随机数,并将签名结果、客户端产生的随机数、客户端签名证书提交至服务器端;4)服务器端对客户端的签名结果和客户端签名证书进行验证,如果验证成功,则对客户端产生的随机数进行签名,并将签名结果、服务器端签名证书发送至客户端;5)客户端对服务器端的签名和服务器端签名证书进行验证,并将验证结果发送至服务器端;6)服务器端向客户端发送认证消息。本发明专利技术基于数字证书的签名验签技术,实现客户端和服务器端双向认证。
【技术实现步骤摘要】
基于数字证书实现客户端和服务器端进行双向认证的方法
本专利技术涉及网络安全
,尤其涉及一种基于数字证书实现客户端和服务器端进行双向认证的方法。
技术介绍
随着计算机网络使用越来越普及,网络上的应用越来越多,网络安全问题已经越来越被人们重视,网络中应用的身份认证问题则是最被重视的问题之一,相对于传统的用户名密码方式的身份认证方式,基于数字证书的签名验签技术,具有防篡改、防身份抵赖等特性,利用此技术实现的客户端和服务端双向认证方法可以很好的解决网络中应用的身份认证问题。
技术实现思路
本专利技术的目的在于:提供一种基于数字证书实现客户端和服务器进行双向认证的方法。本专利技术所解决的技术问题可以采用以下技术方案来实现:基于数字证书实现客户端和服务器进行双向认证的方法,包括以下步骤:1)客户端向服务器端发起请求;2)服务器端产生随机数发送至客户端;3)客户端对服务器端产生的随机数进行签名并产生随机数,并将签名结果、客户端产生的随机数、客户端签名证书提交至服务器端;4)服务器端对客户端的签名结果和客户端签名证书进行验证,如果验证成功,则对客户端产生的随机数进行签名,并将签名结果、服务器端签名证书发送至客户端;5)客户端对服务器端的签名和服务器端签名证书进行验证,并将验证结果发送至服务器端;6)服务器端根据客户端的验证结果向客户端发送认证通过或认证不通过消息。在本专利技术的一个优选实施例中,所述步骤2)包括以下步骤:2.1)服务器端产生随机数,并将随机数存储在客户端与服务器端的连接会话中;2.3)将服务器端产生的随机数随着连接会话发送至客户端。在本专利技术的一个优选实施例中,所述步骤3)包括以下步骤:3.1)客户端获取服务器端产生的随机数;3.2)客户端产生随机数,并保存在客户端,以便后续可以取出该随机数;3.3)客户端调用内置有客户端签名证书的智能密码钥匙对服务器端产生的随机数进行签名;3.4)客户端获取该智能密码钥匙内的客户端签名证书;3.5)客户端将其产生的随机数、签名结果及客户端签名证书提交至服务器端。在本专利技术的一个优选实施例中,所述步骤4)包括以下步骤:4.1)服务器端获取客户端产生的随机数、客户端签名结果及客户端签名证书;4.2)服务器端对客户端签名结果和客户端签名证书进行验证,如果验证失败,则向客户端发送认证不通过消息,如果验证成功,将客户端签名证书作为登录信息保存在客户端与服务器端的连接会话中,并对客户端产生的随机数进行签名,并将服务器端签名结果、服务器端签名证书发送至客户端。在本专利技术的一个优选实施例中,在所述步骤4.2)中,所述服务端对客户端签名结果进行验证是指:验证使用客户端签名证书解密客户端签名结果所得到的随机数是否与保存在客户端与服务器端的连接会话中的服务器产生的随机数一致,所述服务端对客户端签名证书进行验证是指:验证客户端签名证书的证书链和有效期是否符合要求。在本专利技术的一个优选实施例中,所述步骤5)包括以下步骤:5.1)客户端接收服务器端发送过来的消息;5.2)若服务器端验证失败,则显示认证不通过消息;5.3)若服务器端验证成功,则对服务器端签名结果和服务器签名证书进行验证;5.4)将客户端对服务器端的签名验证结果提交至服务器端。在本专利技术的一个优选实施例中,在所述步骤5.3)中,所述客户端对服务器端签名结果进行验证是指:验证使用服务器端签名证书解密服务器端签名结果所得到的随机数是否与客户端产生的随机数一致;所述客户端对服务器签名证书进行验证是指:验证服务器端签名证书的证书链和有效期是否符合要求。在本专利技术的一个优选实施例中,所述步骤6)包括以下步骤:6.1)服务器端接收客户端的签名验证结果;6.2)如果客户端验证服务器端的签名失败,则清空步骤4.2)中保存在客户端与服务器端的连接会话中的客户端签名证书,并向客户端发送认证不通过消息;6.3)如果客户端验证服务器端的签名成功,则向客户端发送认证通过消息。由于采用了如上的技术方案,本专利技术的有益效果在于:本专利技术基于数字证书的签名验签技术,实现客户端和服务器端双向认证,有效地解决网络中应用的身份认证问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是客户端的框架示意图。图2是客户端和服务器端进行双向认证的流程图。具体实施方式为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本专利技术。本专利技术的基于数字证书实现客户端和服务器进行双向认证的方法,包括以下步骤:1)客户端向服务器端发起请求;2)服务器端产生随机数发送至客户端,具体地,该步骤2)包括以下步骤:2.1)服务器端产生随机数,并将随机数存储在客户端与服务器端的连接会话中;2.3)将服务器端产生的随机数随着连接会话发送至客户端;3)客户端对服务器端产生的随机数进行签名并产生随机数,并将签名结果、客户端产生的随机数、客户端签名证书提交至服务器端;具体地,该步骤3)包括以下步骤:3.1)客户端获取服务器端产生的随机数;3.2)客户端产生随机数,并保存在客户端,以便后续可以取出该随机数;3.3)客户端调用内置有客户端签名证书的智能密码钥匙对服务器端产生的随机数进行签名;3.4)客户端获取该智能密码钥匙内的客户端签名证书;3.5)客户端将其产生的随机数、签名结果及客户端签名证书提交至服务器端;4)服务器端对客户端的签名结果和客户端签名证书进行验证,如果验证成功,则对客户端产生的随机数进行签名,并将签名结果、服务器端签名证书发送至客户端;具体地,该步骤4包括以下步骤:4.1)服务器端获取客户端产生的随机数、客户端签名结果及客户端签名证书;4.2)服务器端对客户端签名结果和客户端签名证书进行验证,其中,所述服务端对客户端签名结果进行验证是指:验证使用客户端签名证书解密客户端签名结果所得到的随机数是否与保存在客户端与服务器端的连接会话中的服务器产生的随机数一致;服务端对客户端签名证书进行验证是指:验证客户端签名证书的证书链和有效期是否符合要求;如果验证失败,则向客户端发送认证不通过消息,如果验证成功,将客户端签名证书作为登录信息保存在客户端与服务器端的连接会话中,并对客户端产生的随机数进行签名,并将服务器端签名结果、服务器端签名证书发送至客户端;5)客户端对服务器端的签名和服务器端签名证书进行验证,并将验证结果发送至服务器端;具体地,该步骤5)包括以下步骤:5.1)客户端接收服务器端发送过来的消息;5.2)若服务器端验证失败,则显示认证不通过消息;5.3)若服务器端验证成功,则对服务器端签名结果和服务器签名证书进行验证,其中,客户端对服务器端签名结果进行验证是指:验证使用服务器签名证书解密服务器端签名结果所得到的随机数是否与客户端产生的随机数一致;客户端对服务器签名证书进行验证是指:验证服务器端签名证书的证书链和有效期是否符合要求。5.4)将客户端对服务器端的签名验证结果提交至服务器端。6)服务器端根据客户端的验证结果向客户端发送认本文档来自技高网...
【技术保护点】
基于数字证书实现客户端和服务器进行双向认证的方法,其特征在于,包括以下步骤:1)客户端向服务器端发起请求;2)服务器端产生随机数发送至客户端;3)客户端对服务器端产生的随机数进行签名并产生随机数,并将签名结果、客户端产生的随机数、客户端签名证书提交至服务器端;4)服务器端对客户端的签名结果和客户端签名证书进行验证,如果验证成功,则对客户端产生的随机数进行签名,并将签名结果、服务器端签名证书发送至客户端;5)客户端对服务器端的签名和服务器端签名证书进行验证,并将验证结果发送至服务器端;6)服务器端根据客户端的验证结果向客户端发送认证通过或认证不通过消息。
【技术特征摘要】
1.基于数字证书实现客户端和服务器进行双向认证的方法,其特征在于,包括以下步骤:1)客户端向服务器端发起请求;2)服务器端产生随机数发送至客户端;3)客户端对服务器端产生的随机数进行签名并产生随机数,并将签名结果、客户端产生的随机数、客户端签名证书提交至服务器端;4)服务器端对客户端的签名结果和客户端签名证书进行验证,如果验证成功,则对客户端产生的随机数进行签名,并将签名结果、服务器端签名证书发送至客户端;5)客户端对服务器端的签名和服务器端签名证书进行验证,并将验证结果发送至服务器端;6)服务器端根据客户端的验证结果向客户端发送认证通过或认证不通过消息。2.如权利要求1所述的基于数字证书实现客户端和服务器进行双向认证的方法,其特征在于,所述步骤2)包括以下步骤:2.1)服务器端产生随机数,并将随机数存储在客户端与服务器端的连接会话中;2.3)将服务器端产生的随机数随着连接会话发送至客户端。3.如权利要求2所述的基于数字证书实现客户端和服务器进行双向认证的方法,其特征在于,所述步骤3)包括以下步骤:3.1)客户端获取服务器端产生的随机数;3.2)客户端产生随机数,并保存在客户端,以便后续可以取出该随机数;3.3)客户端调用内置有客户端签名证书的智能密码钥匙对服务器端产生的随机数进行签名;3.4)客户端获取该智能密码钥匙内的客户端签名证书;3.5)客户端将其产生的随机数、签名结果及客户端签名证书提交至服务器端。4.如权利要求3所述的基于数字证书实现客户端和服务器进行双向认证的方法,其特征在于,所述步骤4)包括以下步骤:4.1)服务器端获取客户端产生的随机数、客户端签名结果及客户端签名证书;4.2)服务器端对客户端签名结果和客户端签名证书进行验证,如果验证失败,则向客户端发送认证不...
【专利技术属性】
技术研发人员:应哲峰,冯高威,
申请(专利权)人:上海格尔软件股份有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。