一种基于totp的web应用的身份认证方法及系统
技术领域
1.本发明属于web认证技术领域,尤其涉及一种基于totp的web应用的身份认证方法及系统。
背景技术:2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.如今web开发因为开发效率高、能够热部署等特点,已经集成到各种原生应用中,在集成到原生应用的时候就会涉及登录认证信息同步的问题。在传统的集成方式中存在很多问题,如中间人截取认证信息,认证信息暴力破解等问题,认证请求伪造等问题。如何能够更安全的进行web认证成为一个值得研究的话题。
4.在传统web认证过程中,一般通过认证信息进行二次自动登录,这种方式在认证过程中容易将认证信息在网络中报漏,造成各种安全问题,所以在web认证中验证信息的安全性成为web认证过程中的重要课题。
技术实现要素:5.为了解决上述背景技术中存在的技术问题,本发明提供一种基于totp的web应用的身份认证方法及系统,不仅秘钥信息没有报漏在互联网的请求中,解决了中间人截取网络信息的安全问题,而且通过totp生成动态验证码做成请求的验证因子进行认证,防止了请求的伪造和暴力攻击问题。
6.为了实现上述目的,本发明采用如下技术方案:
7.本发明的第一个方面提供一种基于totp的web应用的身份认证方法,其包括:
8.web应用从主应用后台管理中获取应用编号和密钥信息,基于密钥信息通过totp生成第一随机码,并将应用编号和第一随机码发送给主应用;
9.主应用基于应用编号从主应用后台管理中获取密钥信息,将密钥信息通过totp生成第二随机码,将第二随机码和第一随机码进行比对,如果比对结果一致,则给web应用发送令牌;
10.web应用拿到令牌后,与web应用服务器进行网络通讯,以使web应用服务器响应于web应用的请求。
11.进一步地,所述主应用后台管理在接收到web应用的注册请求后,生成应用编号和密钥信息。
12.进一步地,如果第二随机码和第一随机码的对比结果不一致,主应用返回错误信息。
13.进一步地,web应用拿到令牌后,使用应用编号、第一随机码和令牌与web应用服务器进行网络通讯。
14.进一步地,所述web应用服务器根据密钥信息通过totp生成第三随机码,将第三随
机码和第一随机码进行验证,验证通过后响应web应用的请求。
15.本发明的第二个方面提供一种基于totp的web应用的身份认证系统,其包括web应用和主应用;
16.所述web应用,用于从主应用后台管理中获取应用编号和密钥信息,基于密钥信息通过totp生成第一随机码,并将应用编号和第一随机码发送给主应用;
17.所述主应用,用于基于应用编号从主应用后台管理中获取密钥信息,将密钥信息通过totp生成第二随机码,将第二随机码和第一随机码进行比对,如果比对结果一致,则给web应用发送令牌;
18.所述web应用,还用于拿到令牌后,与web应用服务器进行网络通讯,以使web应用服务器响应于web应用的请求。
19.进一步地,所述主应用后台管理在接收到web应用的注册请求后,生成应用编号和密钥信息。
20.进一步地,所述主应用,还用于在第二随机码和第一随机码的对比结果不一致时,返回错误信息。
21.本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的一种基于totp的web应用的身份认证方法中的步骤。
22.本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的一种基于totp的web应用的身份认证方法中的步骤。
23.与现有技术相比,本发明的有益效果是:
24.本发明提供了一种基于totp的web应用的身份认证方法,其在整个过程中,key没有报漏在互联网的请求中,解决了中间人截取网络信息的安全问题。
25.本发明提供了一种基于totp的web应用的身份认证方法,其在传输过程中通过totp生成动态验证码做成请求的验证因子进行认证,由于验证码的本地计算、动态性和随机性。比较现在根据共享认证信息进行身份认证的方式,大大提高了认证请求过程中的安全性,防止了认证请求的抓包窃取认证信息和请求伪造等攻击。
附图说明
26.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
27.图1是本发明实施例一的一种基于totp的web应用的身份认证方法流程图。
具体实施方式
28.下面结合附图与实施例对本发明作进一步说明。
29.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
30.术语解释:
31.totp(全称time-based one-time password algorithm),是一种根据预设共享的密钥与当前时间计算一次性密码的算法,该算法计算出来的密码会在一定时间内改变,它已被互联网工程任务组接纳为rfc 6238标准,成为主动开放认证的基石,并被用于众多多因子认证系统当中,totp通过共享密钥在本地即可生成动态密钥,脱离网络交互,大大防止了密钥泄漏和请求伪造。
32.实施例一
33.本实施例提供了一种基于totp的web应用的身份认证方法,通过totp共享密钥生成动态验证码,根据验证码即可判断web认证请求的合法性来实现更安全的身份认证。如图1所示,具体包括如下步骤:
34.步骤1、第三方web应用在主应用后台管理中注册,第三方web应用从主应用后台管理中得到应用编号(appid)和密钥(key)信息。
35.步骤2、第三方web应用基于步骤1拿到的key信息,通过totp技术生成第一随机码,将此appid和第一随机码发送给主应用。
36.步骤3、主应用拿到appid和第一随机码,先基于应用编号从主应用后台管理拿到key(主应用将appid发送给主应用后台,主后台通过appid比对拿到key返回给主应用),然后将key通过totp生成第二随机码,将第二随机码和第三方web应用发送来的第一随机码进行比对,如果比对结果一致,则发送给第三方web应用令牌(token)信息;如果比对不一致,则返回错误信息。
37.步骤4、第三方web应用拿到token信息后,使用appid、第一随机码、token和第三方web应用服务器进行网络通讯。
38.具体的,appid发送给第三方web服务器,是让第三方web服务器匹配得到应用的key。通过appid得到的key生成第三随机码,和第一随机码进行对比,这是第一随机码发送过来的目的。token是从主应用得到的,这是主应用的认证信息,发送过来的token作为参数携带到需要认证的接口中。
39.步骤5、第三方web应用服务器根据key通过totp生成第三随机码和第三方应用发送的第一随机码进行验证,验证通过后响应第三方web应用的请求。
40.通过将第三随机码和第一随机码进行比对,如果相等,则验证通过。可直接使用token进行其他操作,免去了认证过程。使用token请求需要认证的接口,直接就可以请求成功,是因为token是认证后产生的认证参数,所以得到合法token就已经可以进行认证后的请求了。这里的其他操作是指的可以进行认证之后的请求了。没获取token之前不能进行这些请求操作。
41.第三方web应用服务器获取key的方法有两种:第一种是使用appid从主应用后台请求获取;另一种是在应用注册之后,将appid、key的值存储到第三方web服务中,当第三方web发送来请求后,通过appid匹配得到存储的key就可以得到。
42.本实施例提供的一种基于totp的web应用的身份认证方法,解决第三方web应用和主应用之间的身份和接口认证,对于totp的密钥在第三方web应用注册到管理后台时生成,第三方web应用使用这个密钥产生的动态验证码发送给主应用,主应用也根据这个应用的密钥进行生成动态验证码进行验证,验证通过即信任此应用,将token发送给第三方web应用,让第三方web应用使用token请求,在接下来的请求中也会携带该动态验证码,并在服务
器端根据该密钥生成的动态验证码进行验证。整个过程totp生成的动态验证码都是作为应用合法性的一个认证因子作用,由于本地计算、动态变化,使得整个过程更加安全可信。
43.本实施例提供的一种基于totp的web应用的身份认证方法,用于将第三方应用集成到主应用中的认证,用户将第三方应用注册到主应用的后台中获取对应的key信息,然后根据key通过totp生成随机码和主应用根据totp生成随机码进行验证,通过即可完成身份验证,拿到token信息,和后台服务进行通信交互。在这个过程中,key没有报漏在互联网的请求中,解决了中间人截取网络信息的安全问题。使用totp技术,采用动态随机码验证,防止了请求的伪造和暴力攻击问题;在传输过程中通过totp生成动态验证码做成请求的验证因子进行认证,由于验证码的本地计算、动态性和随机性;比较现在根据共享认证信息进行身份认证的方式,大大提高了认证请求过程中的安全性,防止了认证请求的抓包窃取认证信息和请求伪造等攻击。
44.实施例二
45.本实施例提供了一种基于totp的web应用的身份认证系统,其具体包括web应用和主应用;
46.所述web应用,用于从主应用后台管理中获取应用编号和密钥信息,基于密钥信息通过totp生成第一随机码,并将应用编号和第一随机码发送给主应用;
47.所述主应用,用于基于应用编号从主应用后台管理中获取密钥信息,将密钥信息通过totp生成第二随机码,将第二随机码和第一随机码进行比对,如果比对结果一致,则给web应用发送令牌;在第二随机码和第一随机码的对比结果不一致时,返回错误信息;
48.所述web应用,还用于拿到令牌后,使用应用编号、第一随机码和令与web应用服务器进行网络通讯,以使web应用服务器响应于web应用的请求。
49.主应用后台管理在接收到web应用的注册请求后,生成应用编号和密钥信息。
50.web应用服务器根据密钥信息通过totp生成第三随机码,将第三随机码和第一随机码进行验证,验证通过后响应web应用的请求。
51.本实施例提供的一种基于totp的web应用的身份认证系统,解决第三方web应用和主应用之间的身份和接口认证,对于totp的密钥在第三方web应用注册到管理后台时生成,第三方web应用使用这个密钥产生的动态验证码发送给主应用,主应用也根据这个应用的密钥进行生成动态验证码进行验证,验证通过即信任此应用,将token发送给第三方web应用,让第三方web应用使用token请求,在接下来的请求中也会携带该动态验证码,并在服务器端根据该密钥生成的动态验证码进行验证。整个过程totp生成的动态验证码都是作为应用合法性的一个认证因子作用,由于本地计算、动态变化,使得整个过程更加安全可信。
52.此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
53.实施例三
54.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一所述的一种基于totp的web应用的身份认证方法中的步骤。
55.实施例四
56.本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在
处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述实施例一所述的一种基于totp的web应用的身份认证方法中的步骤。
57.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
58.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
59.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
60.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
61.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random accessmemory,ram)等。
62.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。