客户端与服务器之间通信动态密钥实现方法

文档序号:9633647阅读:602来源:国知局
客户端与服务器之间通信动态密钥实现方法
【技术领域】
[0001]本发明涉及网络通信中的动态密钥技术,具体涉及客户端与服务器之间通信动态密钥实现方法。
【背景技术】
[0002]移动客户端和服务器通信时需要做加密,使用非对称加密时,根据秘钥使用的时长,需要更新秘钥增加安全性。
[0003]因此本发明有必要提出一种客户端与服务器之间通信时动态密钥的实现方法。

【发明内容】

[0004]本发明所要解决的技术问题是:提出一种客户端与服务器之间通信动态密钥实现方法,增加通信安全性。
[0005]本发明解决上述技术问题所采用的方案是:客户端与服务器之间通信动态密钥实现方法,包括以下步骤:
[0006]a.密钥传递步骤:
[0007]al.客户端通过登录信息向服务器请求公钥信息;
[0008]a2.服务器对登录信息验证通过后,利用服务器公钥进行加密生成token(令牌);
[0009]a3.服务器将token连同服务器公钥作为返回参数传递给客户端;
[0010]a4.在后续通信过程中,客户端与服务器之间使用所述token及客户端公钥进行通信;
[0011]b.密钥更新步骤:
[0012]bl.客户端向服务器传递数据时,在数据包中保留两个特定字段用于存放客户端公钥及时间偏移量;
[0013]b2.服务器接收到数据时,如果数据包中此两个特定字段不为空,则使用服务器私钥解密比对token中的信息与客户端相关信息是否一致以及时间偏移量是否在阈值范围之内;如果满足该条件,则替换掉服务器中存放的客户端公钥;
[0014]b3.服务器如果更新服务器公钥,则将新的服务器公钥传递给客户端。
[0015]进一步的,步骤al中,所述登录信息包括用户名及密码信息。
[0016]进一步的,步骤a2中,所述服务器利用服务器公钥进行加密生成token的方法是:
[0017]服务器利用服务器公钥加密当前系统时间s_time和用户名生成token。
[0018]进一步的,步骤bl中,所述时间偏移量为客户端传递数据的时间与服务器通过心跳数据包发送的其当前系统时间的差值。
[0019]进一步的,步骤b2中,客户端根据时间偏移量的增长规模设定规则对客户端公钥定时更新。
[0020]进一步的,步骤b3中,服务器根据运行时长定期更新服务器公钥。
[0021]进一步的,步骤b2中,客户端传输的数据包中只有在需要服务器更新客户端公钥时,所述两个特定字段才不为空。
[0022]本发明的有益效果是:实现客户端与服务器之间的动态密钥通信,增加通信的安全性。
【具体实施方式】
[0023]本发明旨在提出一种客户端与服务器之间通信动态密钥实现方法,增加通信安全性。本发明采用的加密机制为非对称密钥机制,非对称密钥机制需要客户端和服务器端相互保存对方的公钥,用于验证签名以及加密信息。
[0024]该实现方法,包括以下步骤:
[0025]a.密钥传递步骤:
[0026]al.客户端通过登录信息向服务器请求公钥信息;
[0027]a2.服务器对登录信息验证通过后,利用服务器公钥进行加密生成token(令牌);
[0028]a3.服务器将token连同服务器公钥作为返回参数传递给客户端;
[0029]a4.在后续通信过程中,客户端与服务器之间使用所述token及客户端公钥进行通信;
[0030]b.密钥更新步骤:
[0031]bl.客户端向服务器传递数据时,在数据包中保留两个特定字段用于存放客户端公钥及时间偏移量;
[0032]b2.服务器接收到数据时,如果数据包中此两个特定字段不为空,则使用服务器私钥解密比对token中的信息与客户端相关信息是否一致以及时间偏移量是否在阈值范围之内;如果满足该条件,则替换掉服务器中存放的客户端公钥;
[0033]b3.服务器如果更新服务器公钥,则将新的服务器公钥传递给客户端。
[0034]下面结合具体实例对本发明方案的实现作更具体的描述:
[0035]1.密钥传递:
[0036]初始通信时客户端不知道服务器的公钥,先使用用户名+密码信息向服务器请求公钥信息,服务器验证用户名密码后通过[当前系统时间][用户名]生成token,此token为服务器使用服务器公钥(以下简称s_publiC_key)加密[当前系统时间(以下简称s_time)][用户名];token作为用户标识代替后续传递数据中的用户名和密码.该token和s_public_key和s_time作为返回参数传递回客户端。
[0037]2.密钥更新:
[0038]客户端传输数据时,在数据包中保留两个字段用于存放客户端公钥(以下简称d_public_key)和时间偏移量(客户端传递当前数据时系统时间与s_time的差值,下文简称time_offset);该s_time由服务器在心跳包返回数据中传递;
[0039]服务器接收到数据时如果这两个字段不为null,使用服务器私钥(以下简称s_private_key)解密比对token中的用户名和time_offset (服务器接收到数据时的系统时间与s_time的差值)是否一致或在阈值范围内(用户时间戳和d_public_Key值存放于内存中),如果满足,替换掉服务器端存放的d_publiC_key ;下次数据使用新的d_public_key ;从而实现客户端密钥的更新;
[0040]服务器如果密钥更新,在心跳包返回值中传递新的密钥给客户端;
[0041]3.密钥更新策略,由于加入了 time_offset,可以依据该值的增长规模设定规则对客户端密钥定时更新.同样服务器端密钥根据服务器运行时间时长,定时更新。
[0042]4.传递的TokenData数据只在客户端需要服务器端更新d_public_key时才不为空。
【主权项】
1.客户端与服务器之间通信动态密钥实现方法,其特征在于,包括以下步骤: a.密钥传递步骤: al.客户端通过登录信息向服务器请求公钥信息; a2.服务器对登录信息验证通过后,利用服务器公钥进行加密生成token ; a3.服务器将token连同服务器公钥作为返回参数传递给客户端; a4.在后续通信过程中,客户端与服务器之间使用所述token及客户端公钥进行通信; b.密钥更新步骤: bl.客户端向服务器传递数据时,在数据包中保留两个特定字段用于存放客户端公钥及时间偏移量; b2.服务器接收到数据时,如果数据包中此两个特定字段不为空,则使用服务器私钥解密比对token中的信息与客户端相关信息是否一致以及时间偏移量是否在阈值范围之内;如果满足该条件,则替换掉服务器中存放的客户端公钥; b3.服务器如果更新服务器公钥,则将新的服务器公钥传递给客户端。2.如权利要求1所述的客户端与服务器之间通信动态密钥实现方法,其特征在于,步骤al中,所述登录信息包括用户名及密码信息。3.如权利要求2所述的客户端与服务器之间通信动态密钥实现方法,其特征在于,步骤a2中,所述服务器利用服务器公钥进行加密生成token的方法是: 服务器利用服务器公钥加密当前系统时间s_time和用户名生成token。4.如权利要求3所述的客户端与服务器之间通信动态密钥实现方法,其特征在于,步骤bl中,所述时间偏移量为客户端传递数据的时间与服务器通过心跳数据包发送的其当前系统时间s_time的差值。5.如权利要求1所述的客户端与服务器之间通信动态密钥实现方法,其特征在于,步骤b2中,客户端根据时间偏移量的增长规模设定规则对客户端公钥定时更新。6.如权利要求1所述的客户端与服务器之间通信动态密钥实现方法,其特征在于,步骤b3中,服务器根据运行时长定期更新服务器公钥。7.如权利要求1所述的客户端与服务器之间通信动态密钥实现方法,其特征在于,步骤b2中,客户端传输的数据包中只有在需要服务器更新客户端公钥时,所述两个特定字段才不为空。
【专利摘要】本发明涉及网络通信中的动态密钥技术,其公开了一种客户端与服务器之间通信动态密钥实现方法,增加通信安全性。该方法包括:客户端使用和服务器约定好的登录信息请求服务器公钥,服务器验证登录信息,并利用公钥加密登录信息生成用户token并和服务器公钥返回给客户端;客户端和服务器端通信使用token及客户端公钥;当服务器收到客户端的数据时,根据数据包中的特定字段的情况判断客户端有无更新公钥的需求,若客户端需要更新公钥,则服务器保存新的客户端公钥信息,服务器如果更新服务器公钥,则将新的服务器公钥传递给客户端。本发明适用于客户端与服务器之间的安全通信。
【IPC分类】H04L29/08, H04L9/30, H04L9/16, H04L29/06
【公开号】CN105391549
【申请号】CN201510916909
【发明人】魏劲超, 江涛
【申请人】四川长虹电器股份有限公司
【公开日】2016年3月9日
【申请日】2015年12月10日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1