身份验证方法、系统、电子设备和计算机可读存储介质与流程

文档序号:29809064发布日期:2022-04-27 02:13阅读:85来源:国知局
身份验证方法、系统、电子设备和计算机可读存储介质与流程

1.本发明涉及计算机网络安全技术领域,特别涉及一种身份验证方法、系统、电子设备和计算机可读存储介质。


背景技术:

2.当前,随着移动互联网的发展,越来越多的服务性企业放弃了原来纯线下的服务模式,而是采取线上和线下混合服务模式。例如,企业可以通过线上接收顾客订单并且在线下对顾客进行服务。以汽车租赁行业为例,对于全国连锁的汽车租赁公司来说,其门店可能遍布全国的省级、市级、区级行政区域,并且在同一行政区域中还可能具有多个门店。因此,服务性企业通常采用分布式门店系统对所有门店进行管理。
3.现有的分布式门店系统身份验证一般采用用户名+密码的验证方式,此外,出于安全考虑,有些身份验证方式也会加入手机验证码,即通过用户名+密码+手机验证码的方式实现二要素验证。
4.然而,用户通过用户名/密码/手机验证码认证后,可以随意在任何一台终端设备登陆系统,对于企业来说,存在信息泄露风险。


技术实现要素:

5.本发明的目的是提供一种身份验证方法、系统、电子设备和计算机可读存储介质,提高身份认证的安全性。
6.为了实现以上目的,本发明通过以下技术方案实现:
7.一种身份验证方法,其特征在于,应用于服务器,包括:
8.接收一客户端发送的登录请求,其中,所述登录请求中包含请求登录的用户的目标用户名、目标密码以及所述客户端中待登录程序的目标终端授权key,不同客户端中待登录程序的终端授权key不同;
9.判断所述目标用户名与所述目标终端授权key之间是否存在绑定关系;
10.如果不存在,则不允许所述用户通过身份验证;
11.如果存在,则在所述目标密码正确的情况下,允许所述用户通过身份验证。
12.进一步的,所述身份验证方法还包括:
13.如果所述目标用户名与所述目标终端授权key之间不存在绑定关系,则判断所述用户是否为初次登陆;
14.如果是初次登陆,则建立所述目标用户名与所述目标终端授权key之间的绑定关系,并允许所述用户通过身份验证;
15.如果不是初次登陆,则不允许所述用户通过身份验证。
16.进一步的,所述服务器中预先存储有用户名与终端授权key之间的绑定关系;
17.所述判断所述目标用户名与所述目标终端授权key之间是否存在绑定关系,包括:
18.根据预先存储的用户名与终端授权key之间的绑定关系,判断所述目标用户名与
所述目标终端授权key之间是否存在绑定关系。
19.进一步的,所述目标终端授权key采用以下方式计算:
20.获取所述客户端的cpu的id数据、操作系统的id数据、bios的id数据、所有mac地址与所述待登录程序的id数据,采用加密算法生成所述目标终端授权key。
21.一种身份验证方法,应用于客户端,包括:
22.响应于请求登录的用户的登陆操作,向服务器发送登陆请求,其中,所述登录请求中包含所述用户的目标用户名、目标密码以及所述客户端中待登录程序的目标终端授权key,不同客户端中待登录程序的终端授权key不同;
23.接收所述服务器返回的身份验证结果。
24.进一步的,所述目标终端授权key采用以下方式计算:
25.获取所述客户端的cpu的id数据、操作系统的id数据、bios的id数据、所有mac地址与所述待登录程序的id数据,采用加密算法生成所述目标终端授权key。
26.一种身份验证系统,包括客户端和服务器,其中,
27.所述客户端,用于响应于请求登录的用户的登陆操作,向服务器发送登陆请求,其中,所述登录请求中包含所述用户的目标用户名、目标密码以及所述客户端中待登录程序的目标终端授权key,不同客户端中待登录程序的终端授权key不同;接收所述服务器返回的身份验证结果;
28.所述服务器,用于接收所述客户端发送的登录请求,判断所述目标用户名与所述目标终端授权key之间是否存在绑定关系;如果不存在,则不允许所述用户通过身份验证;如果存在,则在所述目标密码正确的情况下,允许所述用户通过身份验证;并将身份验证结果返回给所述客户端。
29.进一步的,所述客户端采用以下方式计算所述目标终端授权key:
30.获取所述客户端的cpu的id数据、操作系统的id数据、bios的id数据、所有mac地址与所述待登录程序的id数据,采用加密算法生成所述目标终端授权key。
31.一种电子设备,包括:
32.至少一个处理单元;以及
33.至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述电子设备执行根据上文所述的身份验证方法的步骤。
34.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序代码,所述计算机程序代码被运行时执行根据上文所述的身份验证方法的步骤。
35.现有技术相比,本发明具有如下优点:
36.通过本发明可以帮助分布式部署的门店系统在登录过程中实现用户身份和设备身份的双重认证,弥补了仅身份认证的缺陷,同时也不需要投入复杂的vpn等网络设备,极大降低了分布式门店身份验证的成本,简化身份验证操作过程。
附图说明
37.为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员
来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:
38.图1为本发明一实施例提供的身份验证系统的示意图;
39.图2为本发明一实施例提供的身份验证方法的流程图;
40.图3为本发明另一实施例提供的身份验证方法的流程图;
41.图4为本发明一实施例提供的电子设备的结构图。
具体实施方式
42.以下结合附图和具体实施方式对本发明提出的方案作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
43.如背景技术所述,现有身份验证方式无论是用户名+密码还是用户名+密码+手机验证码都关注于对用户的身份识别,通过密码、手机验证码等方式,确认登录者是用户本人。而这种方式忽略了对设备的认证,无法识别登录设备是否属于可访问的设备,存在非授权设备访问系统的安全风险。基于此,本发明提供一种身份验证方法、系统、电子设备和计算机可读存储介质。
44.图1示出了本发明一实施例提供的一种身份验证系统的示意图,该身份验证系统包括多个客户端10和与多个客户端10通信的服务器20,二者共同完成对用户及设备的身份认证。这里,每个客户端可以是诸如汽车租赁公司或二手车交易公司之类的企业的门店或验车点配备的移动或固定终端,如平板电脑、笔记本电脑、台式电脑等。客户端10可以与企业的服务器20通信,以向服务器20发送信息和/或从服务器20接收信息。客户端10和服务器20之间可以通过各种通信方式进行通信,如光纤网络、移动互联网等。客户端10和服务器20的具体结构例如可以如下结合图4所述。
45.多个客户端10和与服务器20也构成了分布式门店系统,在部署门店时,通常会在门店的客户端10内安装终端管理软件(即待登录程序),终端管理软件是指企业安装在公司电脑上的管理软件,用来实现软件安装管理、操作审计等功能,该企业采购所有的电脑都会预装该软件,同时该软件预装在电脑中时会生成其id,用以对不同电脑中的该软件进行区分。
46.以下首先从服务器的角度,对本发明提供的身份验证方法进行详细介绍。
47.如图2所示,本发明一实施例提供的身份验证方法应用于服务器,包括如下步骤:
48.s110,接收一客户端发送的登录请求,其中,所述登录请求中包含请求登录的用户的目标用户名、目标密码以及所述客户端中待登录程序的目标终端授权key,不同客户端中待登录程序的终端授权key不同;
49.s120,判断所述目标用户名与所述目标终端授权key之间是否存在绑定关系;如果不存在,则执行步骤s130,如果存在,则执行步骤s140;
50.s130,不允许所述用户通过身份验证;
51.s140,在所述目标密码正确的情况下,允许所述用户通过身份验证。
52.在步骤s110中,当用户通过一客户端试图登录系统时,客户端会将该用户输入的用户名、密码作为目标用户名和目标密码,连同该客户端中待登录程序的目标终端授权key一起发送给服务器。
53.不同客户端中待登录程序的终端授权key不同。在一种实现方式中,可以预先为不同客户端中待登录程序赋予其特定的终端授权key,例如,对各客户端按照特定规则进行编号,将其编号作为其终端授权key,或者对其编号进行特定处理后作为其终端授权key,并且在各客户端记录其的待登录程序的终端授权key以及在服务器记录各客户端中待登录程序的终端授权key。
54.在另一种实现方式中,对各客户端而言,可以获取该客户端的cpu的id数据、操作系统的id数据、bios的id数据、所有mac地址与该客户端中待登录程序的id数据,采用加密算法生成该客户端中待登录程序的终端授权key。实际应用中,可以在用户每次启动客户端时,该客户端自动收集上述信息并加密生成终端授权key,也可以是该客户端预先收集上述信息并加密生成终端授权key后存储在本地,然后用户每次登录时自动查询得到该终端授权key。本发明优选采用加密算法生成终端授权key,其目的在于:1、抓取的是多个信息id的数据,如果不加密,本地数据容易被截取,并通过id的格式推断出使用了哪些信息作为判断条件,加密可以有助于多id的信息混淆,即使被截取也无法推断出实现算法验证的数据对象;2、门店的终端设备于公网内使用,传输过程并不安全,所以需要加密传输保证信息传递安全。
55.在步骤s120中,当服务器接收到登录请求后,需要判断目标用户名与目标终端授权key之间是否存在绑定关系,若不存在绑定关系,表示用户是采用非授权设备登录的,如果存在绑定关系,表示该用户是合法登录。
56.具体的,在一种实现方式中,可以预先在服务器中存储各用户名与各终端授权key之间的绑定关系,由此,可以根据预先存储的用户名与终端授权key之间的绑定关系,来判断所述目标用户名与所述目标终端授权key之间是否存在绑定关系。即,从预先存储的用户名与终端授权key之间的绑定关系中,按照用户名进行查找,是否存在该目标用户名对应的终端授权key,且该终端授权key是否与目标终端授权key一致。若一致,则判定所述目标用户名与所述目标终端授权key之间存在绑定关系,若未查找到或者不一致,则判定所述目标用户名与所述目标终端授权key之间不存在绑定关系。
57.在另一种实现方式中,若判断出所述目标用户名与所述目标终端授权key之间不存在绑定关系,则进一步判断所述用户是否为初次登陆,判断是否为初次登陆的方式可参考现有技术,在此不做赘述。如果是初次登陆,则建立所述目标用户名与所述目标终端授权key之间的绑定关系,并允许所述用户通过身份验证,如果不是初次登陆,则不允许所述用户通过身份验证。通过此种方式,可以在服务器没有预先存储各用户名与各终端授权key之间的绑定关系的情况下,将用户与其首次登陆的客户端的终端授权key进行绑定,从而逐渐建立起各用户名与各终端授权key之间的绑定关系。
58.在步骤s130中,由于不存在绑定关系,即用户是采用非授权设备登录的,因此不允许所述用户通过身份验证,此时可向所述客户端返回未通过身份验证的结果。
59.在步骤s140中,由于存在绑定关系,即用户是采用授权设备登录的,因此进一步验证其输入的目标密码是否正确,若也正确,则允许所述用户通过身份验证,若不正确,则也不允许所述用户通过身份验证。同时向所述客户端返回未通过身份验证的结果。
60.综上所述,本发明在用户登陆过程中,服务器同时验证终端授权key、用户名和密码等信息,只有在用户名、密码正确,且用户名与终端授权key绑定关系也正确的情况下,才允许用户通过身份验证,提高了身份认证的安全性,避免了信息泄露的风险。
61.以下再从客户端的角度,对本发明提供的身份验证方法进行详细介绍。
62.如图3所示,本发明一实施例提供的身份验证方法应用于客户端,包括如下步骤:
63.s210,响应于请求登录的用户的登陆操作,向服务器发送登陆请求,其中,所述登录请求中包含所述用户的目标用户名、目标密码以及所述客户端中待登录程序的目标终端授权key,不同客户端中待登录程序的终端授权key不同;
64.s220,接收所述服务器返回的身份验证结果。
65.在步骤s210中,当一用户通过该客户端试图登录系统时,该客户端会将该用户输入的用户名、密码作为目标用户名和目标密码,连同该客户端中待登录程序的目标终端授权key一起发送给服务器。
66.不同客户端中待登录程序的终端授权key不同。在一种实现方式中,可以预先为不同客户端中待登录程序赋予其特定的终端授权key,例如,对各客户端按照特定规则进行编号,将其编号作为其终端授权key,或者对其编号进行特定处理后作为其终端授权key,并且在各客户端记录其的待登录程序的终端授权key以及在服务器记录各客户端中待登录程序的终端授权key。
67.在另一种实现方式中,对各客户端而言,可以获取该客户端的cpu的id数据、操作系统的id数据、bios的id数据、所有mac地址与该客户端中待登录程序的id数据,采用加密算法生成该客户端中待登录程序的终端授权key。实际应用中,可以在用户每次启动客户端时,该客户端自动收集上述信息并加密生成终端授权key,也可以是该客户端预先收集上述信息并加密生成终端授权key后存储在本地,然后用户每次登录时自动查询得到该终端授权key。本发明优选采用加密算法生成终端授权key,其目的在于:1、抓取的是多个信息id的数据,如果不加密,本地数据容易被截取,并通过id的格式推断出使用了哪些信息作为判断条件,加密可以有助于多id的信息混淆,即使被截取也无法推断出实现算法验证的数据对象;2、门店的终端设备于公网内使用,传输过程并不安全,所以需要加密传输保证信息传递安全。
68.服务器接收到所述登录请求后,基于所述登录请求中的目标用户名、目标密码以及目标终端授权key,按照前文所述的方式进行身份验证,最终将身份验证结果返回给该客户端。
69.在步骤s220中,该客户端接收所述服务器返回的身份验证结果。该身份验证结果包括如下三种情况:
70.若目标用户名与目标终端授权key之间不存在绑定关系,则身份验证结果为不允许所述用户通过身份验证;
71.若目标用户名与目标终端授权key之间存在绑定关系,但目标密码不正确,则身份验证结果为不允许所述用户通过身份验证;
72.若目标用户名与目标终端授权key之间存在绑定关系,且目标密码正确,则身份验证结果为不允许所述用户通过身份验证。
73.综上所述,本发明在用户登陆过程中,服务器同时验证终端授权key、用户名和密码等信息,只有在用户名、密码正确,且用户名与终端授权key绑定关系也正确的情况下,才允许用户通过身份验证,提高了身份认证的安全性,避免了信息泄露的风险。
74.图4示出了适合实现本发明的实施例的电子设备1000的结构方框图。电子设备1000例如可以是如上所述的客户端10或服务器20。
75.如图4中所示,电子设备1000可以包括一个或多个中央处理单元(cpu)1010(图中仅示意性地示出了一个),其可以根据存储在只读存储器(rom)1020中的计算机程序指令或者从存储单元1080加载到随机访问存储器(ram)1030中的计算机程序指令,来执行各种适当的动作和处理。在ram 1030中,还可存储电子设备1000操作所需的各种程序和数据。cpu1010、rom 1020以及ram 1030通过总线1040彼此相连。输入/输出(i/o)接口1050也连接至总线1040。
76.电子设备1000中的多个部件连接至i/o接口1050,包括:输入单元1060,例如键盘、鼠标等;输出单元1070,例如各种类型的显示器、扬声器等;存储单元1080,例如磁盘、光盘等;以及通信单元1090,例如网卡、调制解调器、无线通信收发机等。通信单元1090允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
77.上文所描述的方法例如可由电子设备1000(如客户端10或服务器20)的cpu 1010执行。例如,在一些实施例中,方法可被实现为计算机软件程序,其被有形地包括于机器可读介质,例如存储单元1080。在一些实施例中,计算机程序的部分或者全部可以经由rom 1020和/或通信单元1090而被载入和/或安装到电子设备1000上。当计算机程序被加载到ram 1030并由cpu 1010执行时,可以执行上文描述的方法的一个或多个操作。此外,通信单元1090可以支持有线或无线通信功能。
78.本领域技术人员可以理解,图4所示的电子设备1000仅是示意性的。在一些实施例中,客户端10或服务器20可以包含比电子设备1000更多或更少的部件。
79.以上结合附图对根据本发明的身份验证方法、系统以及可用作客户端10和服务器20的电子设备1000进行了描述。然而本领域技术人员可以理解,方法的步骤的执行并不局限于图中所示和以上所述的顺序,而是可以以任何其他合理的顺序来执行。此外,电子设备1000也不必须包括图4中所示的所有组件,其可以仅仅包括执行本发明中所述的功能所必须的其中一些组件,并且这些组件的连接方式也不局限于图中所示的形式。
80.本发明可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。
81.在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
82.本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种
示例性的逻辑块、模块和电路。
83.本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
84.尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1