一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种登录的方法、服务器及客户端与流程

2022-03-05 00:15:50 来源:中国专利 TAG:


1.本发明涉及信息安全技术领域,特别是一种登录的方法、服务器及客户端。


背景技术:

2.随着科技发展和智能化应用的普及,信息安全和隐私安全等方面已经越发受到关注。为了保证信息安全,隐私安全,目前已经提出有很多的方法。例如:采用数字签名的方法,采用证书安全体系的方法等。
3.目前用户通过客户端注册并登录各类服务器,使用各类服务器提供的功能,是一个被广泛应用的场景。一般情况下,用户首先需要进行注册,注册成功后用户的相关信息会保持在服务器中,一般相关信息是指用户名、设置的密码等。注册成功后,用户再使用注册时的相关信息,登录服务器进行相关业务。
4.上述通过客户端注册以及登录的过程,为了保证信息安全、隐私安全,客户端和服务器之间的安全多数使用基于证书的体系,但这很依赖证书安全体系,证书安全体系被破解或者窃取,基本无法保障数据安全。
5.而较好的解决方式是:客户端和服务端使用算法生成秘钥,例如:目前已有的数字签名,就是使用对称加密算法或者非对称加密算法来保障数据安全,但这类方式需要客户端与服务器之间多次的数据交互才可以生成秘钥,实现业务会话。这不但导致注册以及登录耗时较长,并且多次的数据交互,增加数据泄露可能性的同时,也在一定程度上降低了客户端和服务器的工作效率。


技术实现要素:

6.鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种登录的方法、服务器及客户端。
7.第一方面,提供了一种登录的方法,所述方法应用于服务器,所述方法包括:
8.解析来自于客户端的登录请求,从中获取用户登录信息和客户端校验信息,根据所述用户登录信息,确定与所述用户登录信息对应的秘密信息,所述客户端校验信息用于识别所述客户端,所述秘密信息用于识别所述用户登录信息对应的用户;
9.根据所述秘密信息、所述客户端校验信息以及服务器校验信息,生成第一登录验证信息,将所述第一登录验证信息、所述秘密信息以及所述服务器校验信息传输至所述客户端,所述服务器校验信息用于识别所述服务器,所述第一登录验证信息用于客户端对所述登录请求进行验证;
10.接收所述客户端反馈的第二登录验证信息并验证,所述第二登录验证信息用于服务器对所述登录请求进行验证;
11.在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证通过的情况下,与所述客户端建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据。
12.可选地,所述客户端校验信息包括第一随机数,所述服务器校验信息包括第二随机数,根据所述秘密信息、所述客户端校验信息以及服务器校验信息,生成第一登录验证信息,包括:
13.利用密码散列算法对第一组合信息和所述第二随机数,进行运算,得到所述第一登录验证信息;
14.其中,所述第一组合信息包括:所述秘密信息、所述第一随机数以及预设的服务器特征信息。
15.可选地,接收所述客户端反馈的第二登录验证信息并验证,包括:
16.利用所述密码散列算法对第二组合信息和所述第一随机数,进行运算,得到客户端信息;
17.验证所述第二登录验证信息与所述客户端信息是否一致,一致则验证通过,不一致则验证不通过;
18.其中,所述第二组合信息包括:所述秘密信息、所述第二随机数、预设的客户端特征信息。
19.可选地,根据所述用户登录信息,确定与所述用户登录信息对应的秘密信息,包括:
20.根据所述用户登录信息,查询预存信息,确定对应所述用户登录信息的秘密信息,所述预存信息包括所有用户的秘密信息与所有用户的用户登录信息之间对应关系。
21.可选地,在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证通过的情况下,与所述客户端进行建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据,包括:
22.利用所述密码散列算法对第三组合信息和随机数组合信息,进行运算,得到第一业务会话信息;
23.以所述第一业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
24.其中,所述第三组合信息包括:所述秘密字符串、所述服务器特征信息、所述客户端特征信息,所述随机数组合信息包括:所述第一随机数、所述第二随机数。
25.可选地,所述方法还包括:
26.在所述第二登录验证信息验证不通过的情况下,对来自于所述客户端的业务会话反馈拒绝信息;
27.在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证不通过的情况下,以所述第一业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
28.在第一预设时长后未接收到来自于所述客户端的业务会话,注销所述第一业务会话信息。
29.第二方面,还提供了另一种登录的方法,所述方法应用于客户端,所述方法包括:
30.向服务器发送登录请求;
31.接收所述服务器反馈的第一登录验证信息、秘密信息、服务器校验信息,并验证所
述第一登录验证信息,所述第一登录验证信息用于所述客户端对所述登录请求进行验证,所述秘密信息用于识别所述用户登录信息对应的用户,所述服务器校验信息用于识别所述服务器;
32.根据所述秘密信息、所述服务器校验信息以及客户端校验信息,生成第二登录验证信息,将所述第二登录验证信息传输至所述服务器,所述第二登录验证信息用于所述服务器对所述登录请求进行验证,所述客户端校验信息用于识别所述客户端;
33.在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证通过的情况下,与所述服务器建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据。
34.可选地,向服务器发送登录请求之前,所述方法还包括:
35.接收注册信息,所述注册信息包括:用户自定义信息;
36.利用密码散列算法对第四组合信息和随机信息,进行运算,得到所述秘密信息,
37.将所述秘密信息发送至所述服务器进行存储;
38.其中,所述第四组合信息包括:所述用户自定义信息、预设信息。
39.可选地,所述客户端校验信息包括:第一随机数,所述服务器校验信息包括:第二随机数,根据所述秘密信息、所述服务器校验信息以及客户端校验信息,生成第二登录验证信息,包括:
40.利用密码散列算法对第五组合信息和所述第一随机数,进行运算,得到所述第二登录验证信息;
41.其中,所述第五组合信息包括:所述秘密字符串、所述第二随机数、预设的客户端特征信息。
42.可选地,验证所述第一登录验证信息,包括:
43.利用所述密码散列算法对第六组合信息和所述第二随机数,进行运算,得到服务器信息;
44.验证所述第一登录验证信息与所述服务器信息是否一致,一致则验证通过,不一致则验证不通过;
45.其中,所述第六组合信息包括:所述秘密字符串、所述第一随机数、预设的服务器特征信息。
46.可选地,在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证通过的情况下,与所述服务器建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据,包括:
47.利用所述密码散列算法对第七组合信息和随机数组合信息,进行运算,得到第二业务会话信息;
48.以所述第二业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
49.其中,所述第七组合信息包括:所述秘密字符串、所述服务器特征信息、所述客户端特征信息,所述随机数组合信息包括:所述第一随机数、所述第二随机数。
50.可选地,所述方法还包括:
51.在所述第一登录验证信息验证不通过的情况下,拒收来自于所述服务器的业务会
话,并显示第一错误信息;
52.在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证不通过的情况下,以所述第二业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
53.在第二预设时长内接收到来自于所述服务器的拒绝信息,注销所述第二业务会话信息,显示第二错误信息;
54.在所述第二预设时长内未接收到来自于所述服务器的任何信息,则在所述第二预设时长后,注销所述第二业务会话信息,显示第三错误信息。
55.第三方面,还提供了一种服务器所述服务器包括:
56.解析获取秘密信息模块,用于解析来自于客户端的登录请求,从中获取用户登录信息和客户端校验信息,根据所述用户登录信息,确定与所述用户登录信息对应的秘密信息,所述客户端校验信息用于识别所述客户端,所述秘密信息用于识别所述用户登录信息对应的用户;
57.生成登录验证信息模块,用于根据所述秘密信息、所述客户端校验信息以及服务器校验信息,生成第一登录验证信息,将所述第一登录验证信息、所述秘密信息以及所述服务器校验信息传输至所述客户端,所述服务器校验信息用于识别所述服务器,所述第一登录验证信息用于客户端对所述登录请求进行验证;
58.接收验证模块,用于接收所述客户端反馈的第二登录验证信息并验证,所述第二登录验证信息用于服务器对所述登录请求进行验证;
59.建立会话模块,用于在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证通过的情况下,与所述客户端建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据。
60.可选地,所述客户端校验信息包括第一随机数,所述服务器校验信息包括第二随机数,所述生成登录验证信息模块具体用于:
61.利用密码散列算法对第一组合信息和所述第二随机数,进行运算,得到所述第一登录验证信息;
62.其中,所述第一组合信息包括:所述秘密信息、所述第一随机数以及预设的服务器特征信息。
63.可选地,所述接收验证模块具体用于:
64.利用所述密码散列算法对第二组合信息和所述第一随机数,进行运算,得到客户端信息;
65.验证所述第二登录验证信息与所述客户端信息是否一致,一致则验证通过,不一致则验证不通过;
66.其中,所述第二组合信息包括:所述秘密信息、所述第二随机数、预设的客户端特征信息。
67.可选地,所述解析获取秘密信息模块具体用于:
68.根据所述用户登录信息,查询预存信息,确定对应所述用户登录信息的秘密信息,所述预存信息包括所有用户的秘密信息与所有用户的用户登录信息之间对应关系。
69.可选地,所述建立会话模块具体用于:
70.利用所述密码散列算法对第三组合信息和随机数组合信息,进行运算,得到第一业务会话信息;
71.以所述第一业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
72.其中,所述第三组合信息包括:所述秘密字符串、所述服务器特征信息、所述客户端特征信息,所述随机数组合信息包括:所述第一随机数、所述第二随机数。
73.可选地,所述服务器还包括:
74.反馈模块,用于在所述第二登录验证信息验证不通过的情况下,对来自于所述客户端的业务会话反馈拒绝信息;
75.传输会话模块,用于在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证不通过的情况下,以所述第一业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
76.注销模块,用于在第一预设时长后未接收到来自于所述客户端的业务会话,注销所述第一业务会话信息。
77.第四方法,还提供了一种客户端,所述客户端包括:
78.发送请求模块,用于向服务器发送登录请求;
79.接收验证模块,用于接收所述服务器反馈的第一登录验证信息、秘密信息、服务器校验信息,并验证所述第一登录验证信息,所述第一登录验证信息用于所述客户端对所述登录请求进行验证,所述秘密信息用于识别所述用户登录信息对应的用户,所述服务器校验信息用于识别所述服务器;
80.生成登录验证信息模块,用于根据所述秘密信息、所述服务器校验信息以及客户端校验信息,生成第二登录验证信息,将所述第二登录验证信息传输至所述服务器,所述第二登录验证信息用于所述服务器对所述登录请求进行验证,所述客户端校验信息用于识别所述客户端;
81.建立会话模块,用于在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证通过的情况下,与所述服务器建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据。
82.可选地,所述客户端还包括:
83.接收注册模块,用于接收注册信息,所述注册信息包括:用户自定义信息;
84.秘密信息模块,用于利用密码散列算法对第四组合信息和随机信息,进行运算,得到所述秘密信息,
85.发送秘密信息模块,用于将所述秘密信息发送至所述服务器进行存储;
86.其中,所述第四组合信息包括:所述用户自定义信息、预设信息。
87.可选地,所述客户端校验信息包括:第一随机数,所述服务器校验信息包括:第二随机数,所述生成登录验证信息模块具体用于:
88.利用密码散列算法对第五组合信息和所述第一随机数,进行运算,得到所述第二登录验证信息;
89.其中,所述第五组合信息包括:所述秘密字符串、所述第二随机数、预设的客户端特征信息。
90.可选地,所述接收验证模块具体用于:
91.利用所述密码散列算法对第六组合信息和所述第二随机数,进行运算,得到服务器信息;
92.验证所述第一登录验证信息与所述服务器信息是否一致,一致则验证通过,不一致则验证不通过;
93.其中,所述第六组合信息包括:所述秘密字符串、所述第一随机数、预设的服务器特征信息。
94.可选地,所述建立会话模块具体用于:
95.利用所述密码散列算法对第七组合信息和随机数组合信息,进行运算,得到第二业务会话信息;
96.以所述第二业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
97.其中,所述第七组合信息包括:所述秘密字符串、所述服务器特征信息、所述客户端特征信息,所述随机数组合信息包括:所述第一随机数、所述第二随机数。
98.可选地,所述客户端还包括:
99.拒收模块,用于在所述第一登录验证信息验证不通过的情况下,拒收来自于所述服务器的业务会话,并显示第一错误信息;
100.传输会话模块,用于在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证不通过的情况下,以所述第二业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
101.第一注销模块,用于在第二预设时长内接收到来自于所述服务器的拒绝信息,注销所述第二业务会话信息,显示第二错误信息;
102.第二注销模块,用于在所述第二预设时长内未接收到来自于所述服务器的任何信息,则在所述第二预设时长后,注销所述第二业务会话信息,显示第三错误信息。
103.本技术实施例具有以下优点:
104.在本发明中,登录时,服务器解析来自于客户端的登录请求,从中获取用户登录信息和客户端校验信息,根据根据用户登录信息,确定与用户登录信息对应的秘密信息。之后服务器根据秘密信息、客户端校验信息以及服务器校验信息,生成第一登录验证信息,将第一登录验证信息、秘密信息以及服务器校验信息传输至客户端。然后接收客户端反馈的第二登录验证信息并验证,最后客户端、服务器各自分别进行比较,若第二登录验证信息验证通过,且客户端对第一登录验证信息验证通过,则服务器与客户端建立会话,客户端登录成功,服务器根据客户端校验信息、服务器校验信息以及秘密信息生成会话密钥,使用会话密钥与客户端进行业务会话。
105.本发明的客户端与服务器之间,利用秘密信息(基于密码散列算法得到)、两个校验信息进行运算得到登录验证信息,基于密码散列算法高安全性,不易破解性,双重保证了登录时的交互数据安全。并且仅需进行3次交互:客户端发送登录请求1次,服务器发送第一登录验证信息1次以及客户端发送第二登录验证信息1次,最后客户端和服务器各自进行验
证,即可实现客户端的安全登录。较大的减少了客户端与服务器之间数据交互的次数,不但降低了登录耗时,并在降低数据泄露可能性的同时,一定程度上提高了客户端和服务器的工作效率。
附图说明
106.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
107.图1是本发明实施例一种登录的方法的流程图;
108.图2是本发明实施例另一种登录的方法的流程图;
109.图3是本发明实施例中例举的客户端和服务器之间进行注册并登录时的数据交互示意图;
110.图4是本发明实施例一种服务器的框图;
111.图5是本发明实施例一种客户端的框图。
具体实施方式
112.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。
113.参照图1,示出了本发明实施例一种登录的方法的流程图,该方法包括:
114.步骤101:解析来自于客户端的登录请求,从中获取用户登录信息和客户端校验信息,根据用户登录信息,确定与用户登录信息对应的秘密信息,客户端校验信息用于识别客户端,秘密信息用于识别用户登录信息对应的用户。
115.本发明实施例中,当用户需要登录服务器时,需要通过客户端输入登录请求,该登录请求包括:用户登录信息和客户端校验信息。本发明实施例中,客户端校验信息用于识别客户端,其可以是客户端发送登录请求时生成的一个随机数(即第一随机数),例如:发送时间随机数或者数字签名随机数等。用户登录信息可以包括:用户在注册时使用的部分自定义信息,例如:用户名。在登录请求中仅携带用户名,可以增加信息安全和隐私安全,因为用户通过客户端登陆时,假若登录请求中携带有用户注册时使用的密码,那么客户端在向服务器发送登录请求的过程中,信息可能被窃取,这样会使得用户密码被窃取,增加信息泄露风险。
116.本发明实施例中,由于秘密信息的存在,即使用户注册时使用的密码被窃取,也可以保证信息安全和隐私安全,但在登陆请求中不携带用户注册时使用的密码,更进一步的增加了信息安全和隐私安全。秘密信息用于识别用户登录信息对应的用户,每一个用户对应唯一一个秘密信息,其是用户在初次注册时生成的,并且是在客户端侧生成的,后发送至服务器中存储。这样也避免了服务器侧可能存在的安全问题。秘密信息具体如何生成在下文客户端侧进行说明,先不赘述。
117.步骤102:根据秘密信息、客户端校验信息以及服务器校验信息,生成第一登录验证信息,将第一登录验证信息、秘密信息以及服务器校验信息传输至客户端,服务器校验信
息用于识别服务器,第一登录验证信息用于客户端对登录请求进行验证。
118.本发明实施例中,服务器接收到登录请求后,可以根据用户登录信息,确定对应用户登录信息的秘密信息,同时会生成服务器校验信息,服务器校验信息用于识别服务器,其可以是服务器生成的一个随机数(即第二随机数),例如:接收时间随机数或者数字签名随机数等。
119.服务器根据秘密信息、客户端校验信息以及服务器校验信息,生成第一登录验证信息,将第一登录验证信息、秘密信息以及服务器校验信息传输至客户端,其中,秘密信息是注册后存储在服务器中,由于服务器中可能存储有大量的秘密信息,不同用户的用户登录信息对应的秘密信息不相同,因此当某一用户发起登录请求后,需要根据用户登录信息确定该用户的秘密信息。一种优选的方法为:
120.服务器根据用户登录信息,查询预存信息,确定对应用户登录信息的秘密信息,所谓预存信息包括所有用户的秘密信息与所有用户的用户登录信息之间对应关系。
121.例如:用户登录信息为用户名,则服务器可以根据用户名确定该用户名对应的秘密信息,本发明实施例中要求用户名是唯一的,不能重复。
122.服务器确定秘密信息后,需要将该秘密信息发送至客户端,以供客户端在后续步骤中使用。
123.需要说明的是,如果客户端在发送登录请求时,登录请求中携带了用户的密码,那么服务器也可以不存储秘密信息,而是在收到登录请求后,按照预先约定的算法,对用户登录信息中的用户名和密码进行加密计算,得到该用户的秘密信息。这种方法降低了服务器的存储开销,但是一定程度上增加了服务器的运算需求,也增加了密码泄露的可能性,降低了数据安全性。
124.第一登录验证信息用于客户端对登录请求进行验证,其具体生成方法包括如下步骤:
125.步骤v1:利用密码散列算法对第一组合信息和第二随机数,进行运算,得到第一登录验证信息;其中,第一组合信息包括:秘密信息、第一随机数以及预设的服务器特征信息。
126.步骤v1中,服务器中需要配置有密码散列算法库,该密码散列算法库包括:argon2。服务器在需要进行加密运算时,调用自身的密码散列算法库。
127.服务器利用argon2对第一组合信息和第二随机数进行运算,得到第一登录验证信息;其中,第一组合信息包括:秘密信息、第一随机数以及预设的服务器特征信息
128.由于服务器还需要对客户端发来的第二登录验证信息进行验证,因此在步骤v1的同时,还有:
129.步骤v2:利用密码散列算法对第二组合信息和第一随机数,进行运算,得到客户端信息,其中,第二组合信息包括:秘密信息、第二随机数、预设的客户端特征信息。
130.在步骤v1、步骤v2中,服务器利用argon2分别进行运算:利用argon2对第一组合信息和第二随机数进行运算,得到第一登录验证信息;利用argon2对第二组合信息和第一随机数进行运算,得到客户端信息。
131.一般情况下,由于服务器是同时与大量的客户端进行数据交互的,而客户端根据业务需求的不同,也可能需要和进行不同业务处理的多个服务器进行数据交互。因此客户端向服务器发送数据时,可以携带表征自身标识的信息,即预设的客户端特征信息;同理,
服务器向客户端发送数据时,也可以携带也有预设的服务器特征信息。
132.或者客户端和服务器之间可以提前预置各自的特征信息,需要进行加密运算时直接使用即可,这样也减少了客户端特征信息或者服务器特征信息泄露的风险,进一步提高数据安全性。。。
133.假设预设的客户端特征信息为"vvclient",预设的服务器特征信息为"vvserver",那么第一组合信息和第二随机数为:("vvserver" 秘密信息 第一随机数,第二随机数),第二组合信息和第一随机数为:("vvclient" 秘密信息 第二随机数,第一随机数)。服务器利用argon2("vvclient" 秘密信息 第二随机数,第一随机数),运算得到客户端信息,之后等待比较;服务器利用argon2("vvserver" 秘密信息 第一随机数,第二随机数),运算得到第一登录验证信息,之后将第一验证登录信息发送至客户端。
134.另外,密码散列算法库还可以包括:pbkdf2、bcrypt、scrpyt等其它加密算法,但使用pbkdf2、bcrypt、scrpyt等加密算法时的组合可能与argon2的不同,可根据实际需求来决定。
135.步骤103:接收客户端反馈的第二登录验证信息并验证,第二登录验证信息用于服务器对登录请求进行验证。
136.服务器运算得到客户端信息之后,若接收到客户端反馈的第二登录验证信息,则对第二登录验证信息进行验证。验证第二登录验证信息与客户端信息是否一致,一致则验证通过,不一致则验证不通过;
137.步骤104:在第二登录验证信息验证通过,且客户端对第一登录验证信息验证通过的情况下,与客户端建立会话,并根据客户端校验信息、服务器校验信息以及秘密信息生成会话密钥,使用会话密钥传输当前会话的数据。本发明实施例中,服务器和客户端各自进行验证后,仅在服务器确定第二登录验证信息验证通过,且客户端确定第一登录验证信息验证通过的情况下,才认为客户端登录成功,服务器与客户端建立会话,服务器根据客户端校验信息、服务器校验信息以及秘密信息生成会话密钥,使用会话密钥传输当前会话的数据,实现与客户端进行业务会话。
138.生成会话密钥具体的方法为:
139.服务器利用密码散列算法对第三组合信息和随机数组合信息,进行运算,得到第一业务会话信息;以第一业务会话信息作为会话密钥,使用会话密钥传输当前会话的数据;其中,第三组合信息包括:秘密字符串、服务器特征信息、客户端特征信息,随机数组合信息包括:第一随机数、第二随机数。
140.沿用前述例子,假设客户端特征信息为"vvclient",服务器特征信息为"vvserver",那么第三组合信息和随机数组合信息为:("vvclient" 秘密信息 "vvserver",第二随机数 第一随机数)。第一业务会话信息为:argon2("vvclient" 秘密信息 "vvserver",第二随机数 第一随机数),之后服务器与客户端之间,均以该第一业务会话信息作为会话密钥,进行业务会话。
141.除开服务器确定第二登录验证信息验证通过,且客户端确定第一登录验证信息验证通过的情况以外,假若服务器确定第二登录验证信息验证不通过,而客户端对第一登录验证信息验证通过,则客户端会向服务器发送业务会话,那么服务器对来自于客户端的业务会话反馈拒绝信息。之后服务器若再次接收到客户端发送的登录请求,执行上述步骤101
~步骤104。
142.假若服务器确定第二登录验证信息验证通过,但客户端对第一登录验证信息验证不通过,则服务器使用会话密钥传输当前会话的数据;但由于客户端的验证未通过,因此客户端不会向服务器发送业务会话,为了保证服务器的效率,设置第一预设时长,服务器在第一预设时长后未接收到来自于客户端的业务会话,则注销第一业务会话信息。之后服务器若再次接收到客户端发送的登录请求,执行上述步骤101~步骤104。
143.上述是针对服务器侧的登录方法,以下针对客户端侧的登录方法进行说明。参照图2,示出了本发明实施例另一种登录的方法的流程图,该方法应用于客户端,包括:
144.步骤201:向服务器发送登录请求。
145.客户端登录之前,需要接收登录信息,生成登录请求,之后将登录请求发送至服务器。可以理解的是,客户端登录之前,用户首先需要进行注册,注册的具体方法包括:
146.步骤s1:接收注册信息,注册信息包括:用户自定义信息;
147.步骤s2:利用密码散列算法对第四组合信息和随机信息,进行运算,得到秘密信息;
148.步骤s3将秘密信息发送至服务器进行存储;其中,第四组合信息包括:用户自定义信息、预设信息。
149.本发明实施例中,用户在客户端上输入用户自定义信息,客户端即可接收用户自定义信息,所谓用户自定义信息是指用户自己输入的信息,其可以按照自己的习惯、需求等自定义,例如用户自定义信息可以包括:用户名、用户密码。即,用户输入用户名、用户密码进行注册。当然,用户可以输入其他具有唯一代表性的特性作为用户信息。
150.客户端接收用户自定义信息后,利用密码散列算法对第四组合信息和随机信息,进行运算,得到秘密信息,第四组合信息包括:用户自定义信息、预设信息。
151.沿用上述例子:假设预设信息为"vvcloud"(表示云桌面等服务器),随机信息为"salt20210808",那么第一组合信息和随机信息为:(用户名 用户密码 vvcloud,salt20210808)。客户端利用argon2(用户名 用户密码 "vvcloud","salt20210808"),运算出秘密信息,之后发送给服务器保存。
152.需要说明的是,目前有些服务器自身的安全性就较差,容易被破解泄密,更有甚者,有部分服务器中用户名、用户密码是不加密明文保存或者仅经过简单加密保存,因此如果服务器已经被破解,那么用户将用户名、用户密码发送给服务器保存,或者是服务器进行加密运算得到字符串,相当于已经泄密,因此由客户端进行加密运算得到字符串发送至服务器存储,则即使服务器被破解泄密,依然可以保证秘密信息的安全,从而为后续的业务会话的安全提供了较好的基础。
153.步骤202:接收所服务器反馈的第一登录验证信息、秘密信息、服务器校验信息,并验证第一登录验证信息,第一登录验证信息用于客户端对登录请求进行验证,秘密信息用于识别用户登录信息对应的用户,服务器校验信息用于识别服务器。
154.客户端发送登录请求后,会接收到服务器反馈的第一登录验证信息、秘密信息、服务器校验信息。具体的内容可以参见前述步骤101~步骤102的内容。
155.本发明实施例中,和服务器的类似的步骤,客户端得到服务器信息、第二登录验证信息的步骤:
156.步骤t1:利用密码散列算法对第五组合信息和第一随机数,进行运算,得到第二登录验证信息;其中,第五组合信息包括:秘密字符串、第二随机数、预设的客户端特征信息。
157.步骤t2:利用密码散列算法对第六组合信息和第二随机数,进行运算,得到服务器信息;
158.在上述步骤t1~t2中,客户端也利用argon2分别进行运算:利用argon2对第五组合信息和第一随机数进行运算,得到第二登录验证信息;利用argon2对第六组合信息和第二随机数进行运算,得到服务器字符串。
159.沿用上述例子:假设客户端标识字符串为"vvclient",服务器标识字符串为"vvserver",那么第五组合信息和第一随机数为:("vvclient" 秘密字符串 第二随机数,第一随机数),第六组合信息和第二随机数为:("vvserver" 秘密字符串 第一随机数,第二随机数)。客户端利用argon2("vvclient" 秘密字符串 第二随机数,第一随机数),运算得到第二登录验证信息,之后将第二登录验证信息发送至服务器;客户端利用argon2("vvserver" 秘密字符串 第一随机数,第二随机数),运算得到服务器字符串,对第一登录验证信息进行验证。
160.步骤203:根据秘密信息、服务器校验信息以及客户端校验信息,生成第二登录验证信息,将第二登录验证信息传输至服务器,第二登录验证信息用于服务器对登录请求进行验证,客户端校验信息用于识别客户端。
161.客户端根据秘密信息、服务器校验信息以及客户端校验信息,,利用密码散列算法进行运算得到服务器信息、第二登录验证信息,并将第二登录验证信息发送至服务器。
162.第二登录验证信息的生成方法参见前述步骤202中说明。服务器对第二登录验证信息的验证参见前述步骤103说明。
163.步骤204:在第一登录验证信息验证通过,且服务器对第二登录验证信息验证通过的情况下,与服务器建立会话,并根据客户端校验信息、服务器校验信息以及秘密信息生成会话密钥,使用会话密钥传输当前会话的数据。
164.本发明实施例中,和服务器的方法相同,客户端进行验证后,仅在第一登录验证信息验证通过,且服务器对第二登录验证信息验证通过的情况下与服务器进行业务会话。
165.具体的
166.客户端利用密码散列算法对第七组合信息和随机数组合信息,进行运算,得到第二业务会话信息;以第二业务会话信息作为会话密钥,使用会话密钥传输当前会话的数据;其中,第七组合信息包括:秘密字符串、服务器特征信息、客户端特征信息,随机数组合信息包括:第一随机数、第二随机数。
167.除开客户端确定第一登录验证信息验证通过,且服务器确定第二登录验证信息验证通过的情况以外,假若客户端确定第一登录验证信息验证不通过,而服务器对第二登录验证信息验证通过,则服务器会向客户端发送业务会话,那么客户端拒收来自于服务器的业务会话,并显示第一错误信息。第一错误信息用于提示用户客户端验证不通过,客户端可以重新发起登录请求,执行上述步骤201~步骤204。
168.假若客户端确定第一登录验证信息验证通过,但服务器对第二登录验证信息验证不通过,则客户端使用会话密钥传输当前会话的数据;但由于服务器的验证未通过,因此服务器不会向客户端发送业务会话,为了保证客户端的效率,设置第二预设时长,客户端在第
二预设时长后未接收到来自于服务器的业务会话,则注销第二业务会话信息,显示第二错误信息。第二错误信息用于提示用户服务器验证不通过,之后客户端可以重新发送登录请求,执行上述步骤201~步骤204。
169.上述服务器与客户端之间3次交互数据的过程可以用图3所示的客户端和服务器之间进行注册并登录时的数据交互示意图来示例性概括说明。用户通过其使用的客户端输入用户名和密码(即用户登录用的密码)进行注册,客户端接收用户名和密码后利用argon2进行运算得到一个字符串,该字符串即为用户秘密(即秘密信息),用户秘密=argon2(用户名 密码 "vvcloud","salt20210309"),将该用户秘密发送给服务器,服务器将用户秘密保存。
170.完成注册后,用户仅需输入用户名即可,客户端在用户输入用户名时随机生成一个客户端随机数(例如可以是基于登录时间的随机数),客户端将用户名和客户端随机数(即登录请求)发送给服务器。此为客户端、服务器之间的第1次交互。
171.服务器与客户端各自的详细步骤参见前述说明。
172.服务器利用argon2("vvserver" 用户秘密 客户端随机数,服务器随机数),运算得到一个字符串并将该字符串、用户秘密、服务器随机数发送至客户端。此为客户端、服务器之间的第2次交互。同理,客户端利用argon2("vvclient" 用户秘密 服务器随机数,客户端随机数),运算得到一个字符串并将该字符串发送至服务器。此为客户端、服务器之间的第3次交互。
173.若是客户端、服务器验证均通过,则登录成功,上述仅3次交互数据就实现了用户登录成功,之后两者之间以会话密钥=argon2("vvclient" 用户秘密 "vvserver",客户端随机数 服务器随机数)进行业务会话。
174.基于上述登录的控制方法,本发明实施例还提供一种服务器,参照图4,示出了本发明实施例一种服务器的框图,所述服务器包括:
175.解析获取秘密信息模块410,用于解析来自于客户端的登录请求,从中获取用户登录信息和客户端校验信息,根据所述用户登录信息,确定与所述用户登录信息对应的秘密信息,所述客户端校验信息用于识别所述客户端,所述秘密信息用于识别所述用户登录信息对应的用户;
176.生成登录验证信息模块420,用于根据所述秘密信息、所述客户端校验信息以及服务器校验信息,生成第一登录验证信息,将所述第一登录验证信息、所述秘密信息以及所述服务器校验信息传输至所述客户端,所述服务器校验信息用于识别所述服务器,所述第一登录验证信息用于客户端对所述登录请求进行验证;
177.接收验证模块430,用于接收所述客户端反馈的第二登录验证信息并验证,所述第二登录验证信息用于服务器对所述登录请求进行验证;
178.建立会话模块440,用于在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证通过的情况下,与所述客户端建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据。
179.可选地,所述客户端校验信息包括第一随机数,所述服务器校验信息包括第二随机数,所述生成登录验证信息模块420具体用于:
180.利用密码散列算法对第一组合信息和所述第二随机数,进行运算,得到所述第一登录验证信息;
181.其中,所述第一组合信息包括:所述秘密信息、所述第一随机数以及预设的服务器特征信息。
182.可选地,所述接收验证模块430具体用于:
183.利用所述密码散列算法对第二组合信息和所述第一随机数,进行运算,得到客户端信息;
184.验证所述第二登录验证信息与所述客户端信息是否一致,一致则验证通过,不一致则验证不通过;
185.其中,所述第二组合信息包括:所述秘密信息、所述第二随机数、预设的客户端特征信息。
186.可选地,所述解析获取秘密信息模块410具体用于:
187.根据所述用户登录信息,查询预存信息,确定对应所述用户登录信息的秘密信息,所述预存信息包括所有用户的秘密信息与所有用户的用户登录信息之间对应关系。
188.可选地,所述建立会话模块440具体用于:
189.利用所述密码散列算法对第三组合信息和随机数组合信息,进行运算,得到第一业务会话信息;
190.以所述第一业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
191.其中,所述第三组合信息包括:所述秘密字符串、所述服务器特征信息、所述客户端特征信息,所述随机数组合信息包括:所述第一随机数、所述第二随机数。
192.可选地,所述服务器还包括:
193.反馈模块,用于在所述第二登录验证信息验证不通过的情况下,对来自于所述客户端的业务会话反馈拒绝信息;
194.传输会话模块,用于在所述第二登录验证信息验证通过,且所述客户端对所述第一登录验证信息验证不通过的情况下,以所述第一业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
195.注销模块,用于在第一预设时长后未接收到来自于所述客户端的业务会话,注销所述第一业务会话信息。
196.基于上述登录的控制方法,本发明实施例还提供一种客户端,参照图5,示出了本发明实施例一种客户端的框图,所述客户端包括:
197.发送请求模块510,用于向服务器发送登录请求;
198.接收验证模块520,用于接收所述服务器反馈的第一登录验证信息、秘密信息、服务器校验信息,并验证所述第一登录验证信息,所述第一登录验证信息用于所述客户端对所述登录请求进行验证,所述秘密信息用于识别所述用户登录信息对应的用户,所述服务器校验信息用于识别所述服务器;
199.生成登录验证信息模块530,用于根据所述秘密信息、所述服务器校验信息以及客户端校验信息,生成第二登录验证信息,将所述第二登录验证信息传输至所述服务器,所述第二登录验证信息用于所述服务器对所述登录请求进行验证,所述客户端校验信息用于识
别所述客户端;
200.建立会话模块540,用于在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证通过的情况下,与所述服务器建立会话,并根据所述客户端校验信息、所述服务器校验信息以及所述秘密信息生成会话密钥,使用所述会话密钥传输当前会话的数据。
201.可选地,所述客户端还包括:
202.接收注册模块,用于接收注册信息,所述注册信息包括:用户自定义信息;
203.秘密信息模块,用于利用密码散列算法对第四组合信息和随机信息,进行运算,得到所述秘密信息,
204.发送秘密信息模块,用于将所述秘密信息发送至所述服务器进行存储;
205.其中,所述第四组合信息包括:所述用户自定义信息、预设信息。
206.可选地,所述客户端校验信息包括:第一随机数,所述服务器校验信息包括:第二随机数,所述生成登录验证信息模块530具体用于:
207.利用密码散列算法对第五组合信息和所述第一随机数,进行运算,得到所述第二登录验证信息;
208.其中,所述第五组合信息包括:所述秘密字符串、所述第二随机数、预设的客户端特征信息。
209.可选地,所述接收验证模块520具体用于:
210.利用所述密码散列算法对第六组合信息和所述第二随机数,进行运算,得到服务器信息;
211.验证所述第一登录验证信息与所述服务器信息是否一致,一致则验证通过,不一致则验证不通过;
212.其中,所述第六组合信息包括:所述秘密字符串、所述第一随机数、预设的服务器特征信息。
213.可选地,所述建立会话模块540具体用于:
214.利用所述密码散列算法对第七组合信息和随机数组合信息,进行运算,得到第二业务会话信息;
215.以所述第二业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
216.其中,所述第七组合信息包括:所述秘密字符串、所述服务器特征信息、所述客户端特征信息,所述随机数组合信息包括:所述第一随机数、所述第二随机数。
217.可选地,所述客户端还包括:
218.拒收模块,用于在所述第一登录验证信息验证不通过的情况下,拒收来自于所述服务器的业务会话,并显示第一错误信息;
219.传输会话模块,用于在所述第一登录验证信息验证通过,且所述服务器对所述第二登录验证信息验证不通过的情况下,以所述第二业务会话信息作为会话密钥,使用所述会话密钥传输当前会话的数据;
220.第一注销模块,用于在第二预设时长内接收到来自于所述服务器的拒绝信息,注销所述第二业务会话信息,显示第二错误信息;
221.第二注销模块,用于在所述第二预设时长内未接收到来自于所述服务器的任何信息,则在所述第二预设时长后,注销所述第二业务会话信息,显示第三错误信息。
222.通过上述实施例,本发明的登录方法,在注册时基于用户注册信息以及密码散列算法得到秘密信息,并发送给服务器保存,基于密码散列算法高安全性,不易破解性,保证了用户隐私的安全。在登录过程中,服务器和客户端各自基于秘密信息、第一随机数以及第二随机数,利用密码散列算法分别进行运算得到客户端信息、第一登录验证信息、服务器信息、第二登录验证信息。最后客户端、服务器各自分别进行验证,若第二登录验证信息验证通过,且第一登录验证信息验证通过,则客户端登录成功并与服务器进行业务会话。
223.本发明的客户端与服务器之间,基于密码散列算法高安全性,不易破解性,双重保证了登录时的数据安全。并且仅需进行3次交互:客户端发送登录请求1次,服务器发送第一登录验证信息1次以及客户端发送第二登录验证信息1次,最后客户端和服务器各自进行验证,即可实现客户端的安全登录。较大的减少了客户端与服务器之间数据交互的次数,不但降低了登录耗时,并在降低数据泄露可能性的同时,一定程度上提高了客户端和服务器的工作效率。
224.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
225.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
226.以上对本发明实施例所提供的技术方案,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献