基于chap协议的数据交互方法及装置的制造方法_2

文档序号:9527639阅读:来源:国知局
00和服务器200,所述客户端100对存储在本地的授权码进行加密后传输给所述服务器200,所述服务器200接收到加密后的授权码进行解密并验证其合法性;当验证所述授权码合法时,所述服务器200生成一第一随机数,并利用安全散列算法对所述授权码和所述第一随机数进行加密形成第一密文,将所述第一密文和所述第一随机数发送给所述客户端100,所述客户端100接收到所述第一密文和所述第一随机数后,利用安全散列算法对存储在本地的授权码和所述第一随机数进行加密,形成第二密文,并对所述第一密文和所述第二密文进行比较,当所述第一密文和所述第二密文相同时,所述客户端100和所述服务器200身份合法;所述客户端100利用安全散列算法对存储在本地的授权码、通行密语以及所述第一随机数进行加密,形成第三密文,并将所述第三密文和一业务参数发送给所述服务器200作为应答,所述服务器200接收到所述第三密文和所述业务参数后,验证所述客户端100的应答,当所述客户端100的应答正确时,所述客户端100合法,然后根据第三密文和所述业务参数,获取与所述业务参数相关的业务数据,对所述业务数据进行加密,形成第四密文,将所述第四密文发送给所述客户端100。
[0040]具体的,所述客户端100包括:客户端控制模块1001、客户端发送模块1002、客户端接收模块1003、客户端存储模块1004以及客户端比较模块1005,其中,所述客户端控制模块1001将存储在本地的授权码进行加密,形成加密后的授权码,利用所述安全散列算法对本地存储的授权码和所述第一随机数进行加密形成第二密文;所述客户端发送模块1002将所述加密后的授权码、所述第三密文和所述业务参数发送给所述服务器接收模块2003 ;所述客户端接收模块1003用于接收所述服务器发送模块2002发送的所述第一密文、所述第一随机参数以及所述第四密文;所述客户端存储模块1004用于存储所述授权码、所述第一密文、所述第二密文、所述第三密文、所述第四密文、所述业务参数、所述第一参数以及所述通行密语;所述客户端比较模块1005用于比较所述第一密文和所述第二密文。
[0041 ] 所述服务器200包括:服务器控制模块2001、服务器发送模块2002、服务器接收模块2003以及服务器存储模块2004,其中,所述服务器控制模块2001用于验证所述授权码的合法性、生成所述第一随机参数、形成所述第一密文以及所述第四密文;所述服务器发送模块2002用于发送所述第一密文、所述第一随机参数以及所述第四密文;所述服务器接收模块2003用于接收所述客户端发送模块1002发送的所述加密后的授权码、所述第三密文和所述业务参数;所述服务器存储模块2004用于存储所述授权码、所述第一密文、所述第二密文、所述第三密文、所述第四密文、所述业务参数、所述第一参数以及所述通行密语。
[0042]其具体的实现方法如图2所示,包括以下步骤:
[0043]步骤S1:客户端将存储在本地的授权码用一公钥加密,然后将加密后的授权码发送给服务器进行挑战。
[0044]所述客户端采用非对称加密算法对存储在所述客户端存储模块1004上的授权码进行加密,且利用所述公钥加密,与所述公钥对应的有一私钥,用于对利用所述公钥加密的文件进行解密。
[0045]进一步的,为了使得所述加密后的授权码能够通过HTTP接口进行传输,通常需要对所述加密后的授权码进行编码。在本实施例中,对所述加密后的授权码进行Base64编码之后再向所述服务器传输。在本发明的其他实施例中,还可以利用其他编码方法进行编码,在此不再赘述。
[0046]步骤S2:所述服务器接收到所述加密后的授权码后,用与所述公钥对应的私钥进行解密,获取所述授权码,并验证所述授权码的合法性。
[0047]所述服务器在接收到编码后的所述公钥加密后的授权码后,先对其进行解码,在本实施例中,即进行利用Base64解码,在本发明的其他实施例中,当在所述客户端采用其他编码方法时,在所述服务器即采用相同的方法进行解码即可,在此不再赘述。再用与所述公钥对应的所述私钥进行解密,以获得所述客户端存储的授权码。
[0048]在获取到所述客户端发来的所述授权码后,需要对所述授权码进行验证。通过验证所述授权码是否在所述服务器上已注册以及是否在有效期内来判断所述授权码的合法性。具体的,当所述授权码在所述服务器上已注册且在有效期内,则所述授权码合法。
[0049]步骤S3:当验证所述授权码合法后,所述服务器生成一第一随机数,将所述服务器上存储的与所述授权码对应的随机数更新为所述第一随机数,利用安全散列算法对所述授权码和所述第一随机数进行加密形成一第一密文,并将所述第一密文和所述第一随机数作为第一挑战值发送给所述客户端。
[0050]具体的,在服务器端,所述服务器生成一第一随机数_random,同时将所述服务器上存储的与所述授权码对应的随机数修改为所述第一随机数_random,然后所述服务器利用安全散列算法对所述授权码和所述第一随机数进行加密形成一第一密文,并将所述第一密文和所述第一随机参数发送给所述客户端。
[0051]在本实施例中,采用sha256算法对所述授权码和所述第一随机数进行加密,如式
(1)所示:
[0052]A = sha256 (授权码+_random) ;(1)
[0053]A即为所述第一密文。
[0054]步骤S4:所述客户端接收到所述第一挑战值后,利用所述安全散列算法对存储在本地的授权码和所述第一随机数进行加密形成一第二密文,比较所述第一密文和所述第二密文,当所述第一密文与所述第二密文相同时,则所述服务器身份合法,所述客户端对所述服务器作为应答。
[0055]在本实施例中,采用sha256算法对存储在本地的授权码和所述第一随机数进行加密,如式⑵所示:
[0056]C = sha256 (本地授权码 +_random) ;(2)
[0057]C即为所述第二密文。
[0058]具体的,所述安全散列算法具有不可逆性,也就是说只能利用所述安全散列算法进行加密,不能进行解密,对于相同的内容利用所述安全散列算法进行加密后的密文是唯一的。也就是说,如果所述客户端存储在本地的授权码与所述服务器存储的授权码一致,且所述客户端接收到的所述第一随机数与所述服务器发出的所述第一随机数一致,那么据此利用所述安全散列算法进行加密形成的所述第一密文和所述第二密文的内容是相同的。而所述客户端存储在本地的授权码与所述服务器存储的授权码的一致在步骤S2中已经得到验证,即所述客户端在所述服务器端是合法的。那么如果所述第一密文和所述第二密文的内容相同,则说明所述客户端接收到的所述第一随机数与所述服务器发出的所述第一随机数相同,即可验证所述服务器在所述客户端是合法的。
[0059]因此,需要对所述第一密文和所述第二密文进行比较,当所述第一密文和所述第二密文的内容相同时,在说明所述客户端接收到的所述第一随机数与所述服务器发出的所述第一随机数相同,即验证所述服务器在所述客户端是合法的。至此,所述服务器身份验证完毕,还需要验证所述客户端的合法性。所述客户端需要对所述服务器作出应答。
[0060]步骤S5:所述服务器接收并验证所述客户端的应答,当所述客户端的应答正确时,所述客户端合法,所述客户端和所述服务器之间进行数据传输。
[0061 ] 具体的,如图3所示,包括以下步骤:
[0062]步骤S51:所述客户端利用安全散列算法对存储在本地的授权码、通行密语以及所述第一随机数进行加密,形成第三密文,并将所述第三密文作为对所述服务器的应答,并将一业务参数发送给所述服务器。
[0063]在本实施例中,采用sha256算法对存储在本地的授权码、通行密语以及所述第一随机数进行加密,如式(3)所示:
[0064]D = sha256 (本地授权码 + 通行密语 +_random) ;(3)
[0065]D即为第三密文,即为所述客户端对所述服务器作出的应答。
[0066]所述客户端将对所述服务器作出的应答所述第三密文D以及所述业务参数发送给所述服务器。
[0067]所述客户端和所述服务器上均存储有所述通行密语,且所述通行密语为一字符串ο
[0068]步骤S52:所述服务器接收到所述第三密文和所述业务参数后,验证所述客户端的应答,当所述客户端的应答正确时,所述客户端合法,根据第三密文和所述业务参数,获取与所述业务参数相关的业务数据
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1