一种数据交互方法及可读存储介质与流程

文档序号:32661572发布日期:2022-12-23 23:44阅读:24来源:国知局
一种数据交互方法及可读存储介质与流程

1.本技术涉及通信安全技术领域,具体涉及一种数据交互方法及可读存储介质。


背景技术:

2.随着互联网的不断发展,人们习惯于在网络上购物、交易以及各种信息交流。然而黑客、木马以及网络钓鱼等恶意欺诈行为,给互联网络的安全性带来了极大的挑战。
3.现在的web通讯、交互安全应用都是基于https协议,此协议在实现过程中,认证证书相对固定,通过浏览器客户端随机数产生回话密钥作为对称密码算法aes建立安全通讯通道。然而,以对称密码算法每次在加解密过程中,同样的密钥,同样的明文,加密的结果均相同,其更容易被攻击。另一方面,由于浏览器限制,大部分web应用的加解密密码算法都是基于aes或者rsa密码算法,无法调用sm2/3/4国密密码算法,安全性较低。


技术实现要素:

4.有鉴于此,本技术的目的在于提供一种数据交互方法及可读存储介质,通过在https协议的基础上在web应用客户端中加入国密密码算法,以对数据进行二次身份认证以及二次加密,有效提高数据交互的安全性。
5.为实现上述目的,本技术采用了如下技术方案:
6.第一方面,本发明提供了一种数据交互方法,应用于客户端,包括:
7.获取第一sm2公私钥;
8.根据所述第一sm2公私钥与服务端的第二sm2公私钥进行非对称密钥认证;
9.响应于非对称密钥认证通过,获取第一sm4共享密钥;
10.根据所述第一sm4共享密钥与服务端的第二sm4共享密钥进行对称密钥认证;
11.响应于对称密钥认证通过,根据所述第一sm4共享密钥对目标数据进行加密,并将加密后的所述目标数据发送至所述服务端,使得所述服务端根据所述第二sm4共享密钥对所述目标数据进行解密,以获取所述目标数据。
12.在一实施例中,所述根据第一sm2公私钥与服务端的第二sm2公私钥进行非对称密钥认证,包括:
13.发送所述第一sm2公私钥中的第一公钥至所述服务端,并接收所述服务端的所述第二sm2公私钥中的第二公钥;
14.根据所述第二公钥对第一明文进行加密以获得第一密文,并使用所述第一sm2公私钥中的第一私钥对所述第一密文进行签名;
15.将签名的所述第一密文发送至所述服务端,使得所述服务端根据所述第一公钥对所述第一密文进行验签,并根据所述第二sm2公私钥中的第二私钥对验签后的所述第一密文进行解密以获得所述第一明文,以及在确定所述第一明文合法时,返回非对称密钥认证通过的信息。
16.在一实施例中,所述根据所述第一sm2公私钥与服务端的第二sm2公私钥进行非对
称密钥认证之前,包括:
17.将所述第一sm2公私钥以及当前时间戳记录在当前进程内存中。
18.在一实施例中,所述根据所述第一sm4共享密钥与服务端的第二sm4共享密钥进行对称密钥认证,包括:
19.根据所述第一sm4共享密钥对第二明文进行加密以获得第二密文,并将所述第二密文发送至所述服务端,使得所述服务端根据所述第二sm4共享密钥对所述第二密文进行解密以获得第二明文,以及在确定所述第二明文合法时,返回对称密钥认证通过的信息。
20.在一实施例中,所述对称密钥认证通过之后,还包括:
21.判断所述第一sm4共享密钥的有效性是否超时,若是,则返回获取第一sm2公私钥的步骤。
22.本发明提供了一种数据交互方法,还应用于服务端,包括:
23.获取第二sm2公私钥;
24.根据所述第二sm2公私钥与客户端的第一sm2公私钥进行非对称密钥认证;
25.响应于非对称密钥认证通过,获取第二sm4共享密钥;
26.根据所述第二sm4共享密钥与所述客户端的第一sm4共享密钥进行对称密钥认证;
27.响应于对称密钥认证通过,根据所述第二sm4共享密钥对所述客户端发送的目标数据进行解密,以获取所述目标数据,其中,所述目标数据由所述客户端采用所述第一sm4共享密钥进行加密。
28.在一实施例中,所述根据所述第二sm2公私钥与客户端的第一sm2公私钥进行非对称密钥认证,包括:
29.发送所述第二sm2公私钥中的第二公钥至所述客户端,并接收所述客户端的所述第一sm2公私钥中的第一公钥;
30.根据所述第一公钥对所述客户端发送的第一密文进行验签,并使用所述第二sm2公私钥中的第二私钥对所述第一密文进行解密以获得第一明文,以及在确定所述第一明文合法时,返回非对称密钥认证通过的信息,其中,所述第一密文由所述客户端的所述第二公钥对第一明文进行加密,并使用所述第一sm2公私钥中的第一私钥进行签名得到。
31.在一实施例中,所述根据所述第二sm4共享密钥与所述客户端的第一sm4共享密钥进行对称密钥认证,包括:
32.根据所述第二sm4共享密钥对所述客户端发送的第二密文进行解密以获得第二明文,以及在确定所述第二明文合法时,返回对称密钥认证通过的信息,其中,所述第二密文由所述客户端根据所述第一sm4共享密钥对第二明文进行加密得到。
33.在一实施例中,所述根据所述第二sm2公私钥与客户端的第一sm2公私钥进行非对称密钥认证之前,包括:
34.将所述第二sm2公私钥以及当前时间戳记录在所述服务端的sql数据库中。
35.第二方面,本发明还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,当处理器执行所述计算机程序时,实现如权利要求1至9中任一项所述的数据交互方法的步骤。
36.本发明提出的一种数据交互方法及可读存储介质,通过在https协议的基础上在web应用客户端中加入国密密码算法,以对数据进行二次身份认证以及二次加密,有效提高
数据交互的安全性。
附图说明
37.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
38.图1为本技术一实施例的客户端的数据交互方法的方法流程示意图;
39.图2为本技术一实施例的服务端的数据交互方法的方法流程示意图;
40.图3为本技术一实施例的数据交互方法的方法流程示意图。
具体实施方式
41.下面将结合附图,对本发明的特定实施例进行详细描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的描述,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.在本发明的描述中,除非另有明确的规定和限定,术语“设置”、“安装”、“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语的具体含义。
43.术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
44.而且,术语“第一”、“第二”、“第三”等仅仅是为了区别属性类似的元件,而不是指示或暗示相对的重要性或者特定的顺序。
45.此外,术语“包括”、“包含”或者其任何其他变体,意在涵盖非排他性的包含,除了包含所列的那些要素,而且还可包含没有明确列出的其他要素。
46.请参阅图1,图1为本技术提供的客户端的数据交互方法的方法流程图。
47.本发明提供了一种数据交互方法,应用于客户端,包括:
48.s100、获取第一sm2公私钥。
49.在一实施例中,公私钥也可以称为密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。其中,客户端包括第一公钥以及第一私钥。
50.s110、根据第一sm2公私钥与服务端的第二sm2公私钥进行非对称密钥认证。
51.在一实施例中,非对称加密往往需要密码学安全伪随机数生成器的协助来产生一对密钥,其中一个可以随便公开,称为公钥,另一个不公开,称为私钥,必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。sm2为非对称加密,基于ecc,该算法已公开。由于该算法基于ecc,故其签名速度与秘钥生成速度
都快于rsa。ecc 256位(sm2采用的就是ecc 256位的一种)安全强度比rsa 2048位高,但运算速度快于rsa。其中,客户端的第一sm2公私钥与服务端的第二sm2公私钥进行交换信息。
52.s120、响应于非对称密钥认证通过,获取第一sm4共享密钥。
53.在一实施例中,sm4.0(原名sms4.0)是中华人民共和国政府采用的一种分组密码标准。在商用密码体系中,sm4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,s盒为固定的8比特输入8比特输出。sm4无线局域网标准的分组数据算法,对称加密,密钥长度和分组长度均为128位。其中,当客户端的第一sm2公私钥与服务端的第二sm2公私钥之间的认证通过后,服务端获取第一sm4共享密钥。
54.s130、根据第一sm4共享密钥与服务端的第二sm4共享密钥进行对称密钥认证。
55.在一实施例中,对称密钥认证又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密。简单来说就是有一个明文,通过一个密钥加密之后得到一个密文,这个密文可以通过相同的密要解密得出和原来相同的明文。其中,客户端使用第一sm4共享密钥对服务端的第二sm4共享密钥进行对称密钥认证,且第一sm4共享密钥与第二sm4共享密钥为一对对称密钥。
56.s140、响应于对称密钥认证通过,根据第一sm4共享密钥对目标数据进行加密,并将加密后的目标数据发送至服务端,使得服务端根据第二sm4共享密钥对目标数据进行解密,以获取目标数据。
57.在一实施例中,当客户端的第一sm4共享密钥与服务端的第二sm4共享密钥之间的认证通过后,建立客户端与服务端之间基于sm4密码算法的安全通道。
58.可选的,根据第一sm2公私钥与服务端的第二sm2公私钥进行非对称密钥认证,包括:
59.发送第一sm2公私钥中的第一公钥至服务端,并接收服务端的第二sm2公私钥中的第二公钥。
60.在一实施例中,客户端将第一sm2公私钥中的第一公钥发送至服务端,与此同时,接收服务端发送的第二sm2公私钥中的第二公钥,完成公钥的互换。
61.根据第二公钥对第一明文进行加密以获得第一密文,并使用第一sm2公私钥中的第一私钥对第一密文进行签名。
62.在一实施例中,客户端将与服务端互换公钥之后得到的第二公钥对第一明文进行加密并获得第一密文,再使用第一sm2公私钥中的第一私钥对第一密文进行签名。其中,明文为可以直观理解的未加密文本(或字符串)。密文为加密文本,明文是加密前的文本。密文是用明文加密的信息,主要是为了保护数据不被非法人窃取、阅读的目的。使用公钥加密明文,得到的密文可以透过不安全的途径(如网络)发送,只有对应的私钥持有者才可以解密得到明文,其他人即使从网络上窃取到密文及加密公钥,也无法(在数以年计的合理时间内)解密得出明文。典型例子是在网络银行或购物网站上,因为用户需要输入敏感消息,浏览器连接时使用网站服务器提供的公钥加密并上传数据,可保证只有信任的网站服务器才能解密得知消息,不必担心敏感个人信息因为在网络上发送而被窃取。此外,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。
63.将签名的第一密文发送至服务端,使得服务端根据第一公钥对第一密文进行验签,并根据第二sm2公私钥中的第二私钥对验签后的第一密文进行解密以获得第一明文,以及在确定第一明文合法时,返回非对称密钥认证通过的信息。
64.在一实施例中,客户端将签名的第一密文发送至服务端,以使得服务端使用与客户端互换公钥之后得到的第一公钥对签名的第一密文进行验签。验签通过之后,再使用第二sm2公私钥中的第二私钥对验签后的第一密文进行解密从而获得第一明文,以及在确定第一明文合法时,将认证通过的信息返回至客户端。其中,同一端所产生的sm2公私钥中,公钥为公开的,任何人都能获取,而私钥不公开。例如服务端所产生的第一sm2公私钥,通过第一sm2公私钥的第一公钥对明文a加密得到的密文a,仅能使用第一sm2公私钥中的第一私钥对密文a解密以获得明文a,有效增加数据交互的安全性。
65.可选的,根据第一sm2公私钥与服务端的第二sm2公私钥进行非对称密钥认证之前,包括:
66.将第一sm2公私钥以及当前时间戳记录在当前进程内存中。
67.在一实施例中,基于https协议为基础,客户端与服务端每次通讯前首先通过椭圆曲线产生一对公私钥。在客户端与服务端进行非对称密钥认证之前,客户端将第一公钥、第一私钥以及当前时间戳记录在当前进程内存中。
68.可选的,根据第一sm4共享密钥与服务端的第二sm4共享密钥进行对称密钥认证,包括:
69.根据第一sm4共享密钥对第二明文进行加密以获得第二密文,并将第二密文发送至服务端,使得服务端根据第二sm4共享密钥对第二密文进行解密以获得第二明文,以及在确定第二明文合法时,返回对称密钥认证通过的信息。
70.在一实施例中,客户端使用第一sm4共享密钥对第二明文进行加密以获得第二密文,并将加密后的第二密文发送至服务端,使得服务端使用第二sm4共享密钥对接收的第二密文进行解密以获得第二明文,以及在确定第二明文合法后,将认证通过的信息发送至客户端。其中,第一sm4共享密钥与第二sm4共享密钥为一对对称密钥。
71.可选的,对称密钥认证通过之后,还包括:
72.判断第一sm4共享密钥的有效性是否超时,若是,则返回获取第一sm2公私钥的步骤。
73.在一实施例中,建立基于sm4密码算法的安全通道后,客户端根据当前时间戳判断第一sm4共享密钥的有效性是否超时,若超时了,则客户端需重新返回s100的步骤,有效增加数据交互的安全性。
74.请参阅图2,图为本技术提供的服务端的数据交互方法的方法流程图。
75.本发明提供了一种数据交互方法,还应用于服务端,包括:
76.s200、获取第二sm2公私钥。
77.在一实施例中,公私钥也可以称为密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。其中,服务端包括第二公钥以及第二私钥。
78.s210、根据第二sm2公私钥与客户端的第一sm2公私钥进行非对称密钥认证。
79.在一实施例中,非对称加密往往需要密码学安全伪随机数生成器的协助来产生一
对密钥,其中一个可以随便公开,称为公钥,另一个不公开,称为私钥,必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。sm2为非对称加密,基于ecc,该算法已公开。由于该算法基于ecc,故其签名速度与秘钥生成速度都快于rsa。ecc 256位(sm2采用的就是ecc 256位的一种)安全强度比rsa 2048位高,但运算速度快于rsa。其中,服务端的第二sm2公私钥与客户端的第一sm2公私钥进行交换信息。
80.s220、响应于非对称密钥认证通过,获取第二sm4共享密钥。
81.在一实施例中,sm4.0(原名sms4.0)是中华人民共和国政府采用的一种分组密码标准。在商用密码体系中,sm4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,s盒为固定的8比特输入8比特输出。sm4无线局域网标准的分组数据算法,对称加密,密钥长度和分组长度均为128位。其中,当服务的第二sm2公私钥与客户端的第一sm2公私钥之间的认证通过后,服务端获取第二sm4共享密钥。
82.s230、根据第二sm4共享密钥与客户端的第一sm4共享密钥进行对称密钥认证。
83.在一实施例中,对称密钥认证又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密。简单来说就是有一个明文,通过一个密钥加密之后得到一个密文,这个密文可以通过相同的密要解密得出和原来相同的明文。其中,服务端使用第二sm4共享密钥对客户端的第一sm4共享密钥进行对称密钥认证,且第一sm4共享密钥与第二sm4共享密钥为一对对称密钥。
84.s240、响应于对称密钥认证通过,根据第二sm4共享密钥对客户端发送的目标数据进行解密,以获取目标数据,其中,目标数据由客户端采用第一sm4共享密钥进行加密。
85.在一实施例中,当服务端的第二sm4共享密钥与客户端的第一sm4共享密钥之间的认证通过后,建立服务端与客户端之间基于sm4密码算法的安全通道。
86.可选的,根据第二sm2公私钥与客户端的第一sm2公私钥进行非对称密钥认证,包括:
87.发送第二sm2公私钥中的第二公钥至客户端,并接收客户端的第一sm2公私钥中的第一公钥。
88.在一实施例中,服务端将第二sm2公私钥中的第二公钥发送至客户端,与此同时,接收客户端发送的第一sm2公私钥中的第一公钥,完成公钥的互换。
89.根据第一公钥对客户端发送的第一密文进行验签,并使用第二sm2公私钥中的第二私钥对第一密文进行解密以获得第一明文,以及在确定第一明文合法时,返回非对称密钥认证通过的信息,其中,第一密文由客户端的第二公钥对第一明文进行加密,并使用第一sm2公私钥中的第一私钥进行签名得到。
90.在一实施例中,服务端与客户端互换公钥之后得到的第一公钥对第一密文进行验签,并使用第二sm2公私钥中的第二私钥对验签后的第一密文进行解密以获得第一明文。在确定第一明文合法时,服务端将认证通过的信息返回至客户端。其中,第一密文由客户端的第二公钥对第一明文进行加密,并使用第一sm2公私钥中的第一私钥进行签名得到。此外,同一端所产生的sm2公私钥中,公钥为公开的,任何人都能获取,而私钥不公开。例如服务端
所产生的第一sm2公私钥,通过第一sm2公私钥的第一公钥对明文a加密得到的密文a,仅能使用第一sm2公私钥中的第一私钥对密文a解密以获得明文a,有效增加数据交互的安全性。
91.可选的,根据第二sm4共享密钥与客户端的第一sm4共享密钥进行对称密钥认证,包括:
92.根据第二sm4共享密钥对客户端发送的第二密文进行解密以获得第二明文,以及在确定第二明文合法时,返回对称密钥认证通过的信息,其中,第二密文由客户端根据第一sm4共享密钥对第二明文进行加密得到。
93.在一实施例中,客户端的第一sm4共享密钥对第二明文进行加密得到第二密文并发送至服务端,服务端根据第二sm4共享密钥对第二密文进行解密以获得第二明文。此外,客户端在确定第二明文合法时,将认证通过的信息发送至客户端。其中,第一sm4共享密钥与第二sm4共享密钥为一对对称密钥。
94.可选的,根据第二sm2公私钥与客户端的第一sm2公私钥进行非对称密钥认证之前,包括:
95.将第二sm2公私钥以及当前时间戳记录在服务端的sql数据库中。
96.在一实施例中,基于https协议为基础,客户端与服务端每次通讯前首先通过椭圆曲线产生一对公私钥。在服务端与客户端进行非对称密钥认证之前,服务端将第二公钥、第二私钥以及当前时间戳记录在服务端的sql数据库中。其中,sql(structured query language)是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用sql语言提高计算机应用系统的工作质量与效率。由于sql servers数据库管理系统具有较高的数据管理性能,因其优越的性能,应用范围非常广,大量应用于服务器和客户体系结构中。
97.本发明实施例还提供一种计算机可读存储介质,可读存储介质上存储有计算机程序,当处理器执行计算机程序时,实现如权利要求1至9中任一项的数据交互方法的步骤。
98.在一实施例中,计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random accessmemory)、电载波信号、电信信号以及软件分发介质等。处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
99.请参阅图3,图为本技术提供的数据交互方法的方法流程图。
100.在一实施例中,客户端与服务端双向同步交互运行。
101.基于https协议,web客户端与web服务端之间将默认建议https安全通道。
102.数据交互方法的流程如下:
103.s1、在web客户端上产生第一sm2公私钥,包括第一公钥pk1以及第一私钥sk1。与此同时,在web服务端上产生第二sm2公私钥,包括第二公钥pk2以及第二私钥sk2。
104.s2、web客户端的pk1与web服务端的pk2进行互换。
105.s3、web客户端根据pk2加密第一明文以获得第一密文,sk1签名第一密文,并将签名后的第一密文发送至web服务端。web服务端根据pk1验签第一密文,sk2解密第一密文以获得第一明文,并判断解密后的第一明文的合法性。若合法,则将认证通过的信息返回至客户端。
106.s4、web客户端与web服务端协商获得第一sm4共享密钥与第二sm4共享密钥。
107.s5、web客户端根据第一sm4共享密钥加密第二明文以获得第二密文,并将第二密文发送至web服务端。web服务端根据第二sm4共享密钥对第二密文进行解密以获得第二明文,并判断解密后的第二明文的合法性。若合法,则将认证通过的信息返回至客户端,建立web客户端与web服务端之间以sm4共享密钥为密码算法的安全通道。
108.此外,在建立web客户端与web服务端之间以sm4共享密钥为密码算法的安全通道的步骤之前,还包括判断sm4密钥是否超时,若超时,则返回步骤1。
109.本发明提出的一种数据交互方法及可读存储介质,通过在https协议的基础上在web应用客户端中加入国密密码算法,以对数据进行二次身份认证以及二次加密,有效提高数据交互的安全性。
110.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所附的权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1