本发明涉及安全技术,具体的讲是一种移动终端登录认证方法及系统。
背景技术:
随着移动互联网的高速发展,移动办公成为企业未来重要发展趋势,企业内部移动端的APP应用也随之增多。由于缺乏统一的规划和管理,这些分散独立的APP应用未能给用户带来很好的体验,其登录安全性和管理规范性也给企业带来更高的挑战,具体主要体现在以下几点:
由于这些APP应用各自使用独立的身份认证机制,导致用户在登录的时候,均需要输入用户名和密码进行校验。对于用户来说,这些APP的认证都使用企业内部相应的用户名和密码,每次都需要重复输入较为繁琐,易用性不足。
由于这些APP应用均使用各自开发的身份认证管理模块,存在登录安全性要求不一的现象,同时也不利于企业内部安全性的统一规划和管理。
由于这些APP应用的身份认证模块分别由不同的团队维护,后续升级维护的成本高,升级的便捷性不足,不能有效的节约企业人力成本。
综上所述,诸多的应用软件不同的复杂身份认证处理,一方面让使用人倍感不便,也提高了软件开发商的开发难度,维护成本,不同应用重复雷同的认证模块也占用了移动端的存储资源。
技术实现要素:
为移动终端上的APP应用提供一种统一的身份认证登录方法,实现认证用户信息的共享,本发明实施例提供了一种移动终端登录认证方法,用于对移动终端上的APP进行登录认证,方法包括:
接收APP的登录请求;
根据所述登录请求获取移动终端存储的包括用户登录信息的交易令牌并发送至APP服务器;
接收所述APP服务器的动态密钥申请请求并对所述APP服务器进行安全验证向通过所述安全验证的APP服务器发送令牌动态密钥;
APP服务器根据所述令牌动态密钥解析所述交易令牌获取用户登录信息并将所述用户登录信息发送至APP完成登录认证。
本发明实施例中,所述登录请求包括:APP应用唯一标识,所述APP应用唯一标识为APP应用的密钥名称。
本发明实施例中,所述用户登录信息包括:登录成功时存储的用户名、密码、登录时间、移动设备序列号。
本发明实施例中,所述根据所述登录请求获取移动终端存储的包括用户登录信息的交易令牌并发送至APP服务器包括:
判断移动终端是否存储包括用户登录信息的交易令牌;
确定所述移动终端中存储有包括用户登录信息的交易令牌,将所述交易令牌发送至APP服务器。
本发明实施例中,所述根据所述登录请求获取移动终端存储的包括用户登录信息的交易令牌并发送至APP服务器还包括:
确定所述移动终端中没有存储交易令牌时,验证用户输入的用户名、密码;
验证用户输入的用户名、密码正确时生成对应本次登录对应的动态密钥对;
通过令牌生成算法根据动态密钥对和用户登录信息生成交易令牌;
将所述交易令牌存储至移动终端内存。
本发明实施例中,所述的接收所述APP服务器的动态密钥申请请求并对所述APP服务器进行安全验证向通过所述安全验证的APP服务器发送令牌动态密钥包括:
获取APP服务器的动态密钥申请请求中的APP应用唯一标识;
根据所述APP应用唯一标识确定APP的公钥;
利用确定的APP的公钥对动态密钥申请请求进行解密,解密通过后确定APP服务器通过安全验证;
向通过所述安全验证的APP服务器发送令牌动态密钥。
本发明实施例中,所述的方法还包括:
在对移动终端上的APP应用进行注册,生成并存储APP应用的密钥信息,所述密钥信息包括:公钥、私钥,并将密钥名称作为APP应用的唯一标识。
同时,本发明还提供一种移动终端登录认证系统,用于对移动终端设备上的APP的进行登录认证,包括:身份认证装置以及身份认证服务器;
身份认证装置包括:
登录请求接收模块,用于接收APP的登录请求;
令牌获取模块,用于根据登录请求获取包括用户登录信息的交易令牌并发送至APP服务器;
身份认证服务器包括:
APP服务器验证模块,用于接收所述APP服务器的动态密钥申请请求并对所述APP服务器进行安全验证;
令牌密钥发送模块,向通过所述安全验证的APP服务器发送令牌动态密钥;
APP服务器根据所述令牌动态密钥解析所述交易令牌获取用户登录信息并将所述用户登录信息发送至APP完成登录认证。
本发明实施例中,所述令牌获取模块包括:
判断单元,用于判断移动终端是否存储包括用户登录信息的交易令牌;
发送单元,确定所述移动终端中存储有包括用户登录信息的交易令牌,将所述交易令牌发送至APP服务器。
本发明实施例中,所述令牌获取模块还包括:
密码验证单元,确定所述移动终端中没有存储交易令牌时,用于对用户输入的用户名、密码进行验证;
密钥对生成单元,验证用户输入的用户名、密码正确时,用于生成对应本次登录对应的动态密钥对;
令牌生成单元,用于通过令牌生成算法根据动态密钥对和用户登录信息生成交易令牌,并将所述交易令牌存储至移动终端内存。
本发明实施例中,所述的APP服务器验证模块包括:
标识获取单元吗,用于获取APP服务器的动态密钥申请请求中的APP应用唯一标识;
公钥确定单元,用于根据所述APP应用唯一标识确定APP的公钥;
解密单元,利用确定的APP的公钥对动态密钥申请请求进行解密,解密通过后确定APP服务器通过安全验证。
本发明实施例中,所述的身份认证装置还包括:
注册模块,用于对移动终端上的APP应用进行注册,生成APP应用的密钥信息,所述密钥信息包括:公钥、私钥,并将密钥名称作为APP应用的唯一标识。
本发明实施例中,所述的述身份认证服务器还包括:
存储模块,用于存储注册的APP应用的密钥信息。
本发明提供一种移动终端身份登录认证系统及方法,本方案中多个APP应用使用统一的身份认证方式,实现认证用户信息的共享,一次登录多次有效。在认证环节,采用密钥加密和数字签名技术生成非固定长度的、唯一的、防篡改的令牌,并在加密过程中使用防伪造请求的动态密钥,进一步提升认证环节的安全性。同时,在身份认证服务器后台数据库,通过统一记录登录请求相关信息,实现了多台设备重复登录的控制。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的移动终端登录认证方法的流程图;
图2为本发明一种移动终端登录认证系统的结构框图;
图3为本发明实施例中一种移动端的身份认证系统架构框图;
图4为本发明实施例中身份认证模块结构图;
图5为本发明实施例中令牌管理模块结构图;
图6为本发明实施例中密钥管理模块结构;
图7为本发明一实施例中移动端的身份认证方法实施实例的流程图;
图8为本发明一实施例中移动端的身份认证方法实施实例的流程图;
图9本发明一实施例中移动端的身份认证方法实施实例的流程图;
图10本发明一实施例中移动端的身份认证方法实施实例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种移动终端登录认证方法,用于对移动终端上的APP进行登录认证,如图1所示,为本发明提供的移动终端登录认证方法的流程图,包括:
步骤S1001,接收APP的登录请求;
步骤S1002,根据所述登录请求获取移动终端存储的包括用户登录信息的交易令牌并发送至APP服务器;
步骤S1003,接收所述APP服务器的动态密钥申请请求并对所述APP服务器进行安全验证向通过所述安全验证的APP服务器发送令牌动态密钥;
步骤S1004,APP服务器根据所述令牌动态密钥解析所述交易令牌获取用户登录信息并将所述用户登录信息发送至APP完成登录认证。
同时,本发明还提供一种移动终端登录认证系统,其结构框图如图2所示,用于对移动终端设备203上的APP204的进行登录认证,包括:身份认证装置201以及身份认证服务器202;其中,
所述的身份认证装置201包括:
登录请求接收模块,用于接收APP的登录请求;
令牌获取模块,用于根据所述登录请求获取包括用户登录信息的交易令牌并发送至APP服务器;
所述身份认证服务器202包括:
APP服务器验证模块,用于接收所述APP服务器的动态密钥申请请求并对所述APP服务器进行安全验证;
令牌密钥发送模块,向通过所述安全验证的APP服务器发送令牌动态密钥;
APP服务器根据所述令牌动态密钥解析所述交易令牌获取用户登录信息并将所述用户登录信息发送至APP完成登录认证。
本发明克服了现有移动端多APP应用身份认证易用性、安全性和维护便捷性等方面的一些问题,提出了一种移动终端身份认证系统及方法,实现移动端的统一身份认证。另外,用密钥介质,通过密钥加密和数字签名技术,生成身份认证过程中的令牌信息,提升整个认证环节的安全性,并提高了移动终端使用的便捷性和体验效果。下面结合具体的实施例对本发明的技术方案做进一步详细描述。
图3为本发明一种移动端的身份认证系统架构图。如图3所示,本实施例的身份认证系统包括身份认证APP应用1、身份认证APP服务器2、身份认证APP数据库3、移动APP1应用4、移动APP1服务器5、移动APP1数据库6、移动APP2应用7、移动APP2服务器8、移动APP2数据库9及令牌(Token)10。
本实施例中,身份认证APP应用1包括身份认证模块11、令牌管理模块12以及密钥管理模块13。移动APP1应用4包括登录模块41、退出模块42、认证公共模块43以及自身的一些业务处理模块44。移动APP2应用7包括登录模块71、退出模块72、认证公共模块73以及自身的一些业务处理模块74。移动APP1应用4通过登录模块41或退出模块42调用身份认证APP应用1提供的标准登录、退出接口封装的认证公共模块43进行认证请求交互。移动APP1应用7应用通过登录模块71或退出模块72调用身份认证APP应用1提供的标准登录、退出接口封装的认证公共模块73进行认证请求交互。认证过程中的令牌(Token)10由身份认证APP应用1负责生成和维护。移动APP1服务器5、移动APP2服务器8通过与身份认证APP服务器2的交互来进行服务器合法身法校验,并在校验通过后获取动态密钥来解析认证处理结果。
图4为本发明实施例中图3中身份认证APP应用1的身份认证模块结构图。如图4所示,身份认证模块11包括:登录认证模块111、退出管理模块112、加密模块113和解密模块114。其中:登录认证模块111提供了移动APP应用统一的登录认证接口,其接收来自移动APP的登录请求,并通过调用解密模块114进行请求解析。同时,登录认证模块111判断内存中是否存在登录令牌(Token)10信息,对于无令牌的认证请求提供标准的登录界面,对用户输入的用户名和密码调用加密模块113进行动态加密并提交身份认证APP服务器2进行校验。对于已存在登录令牌信息的,则调用令牌解析模块124读取并解析令牌并生成请求令牌返回给请求的移动APP应用。
本发明实施例中,退出管理模块112提供了移动APP应用统一的退出接口,其接收来自移动APP应用的退出请求,并通过调用解密模块114进行请求解析。同时,退出管理模块112将退出请求提交给身份认证APP服务器2,由身份认证APP服务器2调用身份认证APP数据库3,使用退出请求处理逻辑进行原登录相关信息数据的清理。处理成功后,退出管理模块112先调用令牌解析模块124判断内存是否有令牌信息,如有则再调用令牌销毁模块123,完成令牌销毁后将退出处理结果返回给移动APP应用。如内存中无令牌信息,则直接返回退出处理结果给移动APP应用。
加密模块113提供了公共的加密和签名方法。加密方法使用非对称密钥加密技术,对输入的原文信息使用指定的公钥进行加密,如认证请求信息的加密、请求处理结果的加密等,并输出密文。签名方法使用数字签名技术,对原文信息使用HASH函数进行摘要,然后用指定的私钥进行加密,与原文信息一起输出为签名信息。同时在原文中追加签名生成时间和自定义的签名有效时间(如20秒),用于签名验签时通过验证签名信息的时效性,防止签名信息的重放。加密模块113可独立封装成组件形式,提供给移动APP在身份认证的交互环节使用。
解密模块114提供了公共的解密和验签方法。本发明实施例中解密方法使用非对称密钥加密技术,对输入的原文信息使用指定的私钥进行解密,如认证请求信息的解密、请求处理结果的解密等,并输出解密后的原文。验签方法使用数字签名技术,接收方使用指定的公钥解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,此时再对原文信息的签名时间进行有效性验证,如果当前时间减去签名生成时间大于签名有效时间,则签名信息超时失效,验签失败;否则验签成功。解密模块114可独立封装成组件形式,提供给移动APP在身份认证的交互环节使用。
图5为图3身份认证APP应用1的令牌管理模块结构框图。如图5所示,令牌管理模块12包括:令牌生成模块121、令牌更新模块122、令牌销毁模块123和令牌解析模块124。其中,令牌生成模块121通过调用令牌生成算法,生成登录令牌信息。令牌生成算法是令牌可以作为登录认证凭证的关键所在,它反映了登录认证的事实信息。参与令牌生成的数据由发起登录请求的关键要素组成,遵循如下原则:一、唯一性。登录要素组合能够将一次登录请求与其他登录有效区分。二、安全性。登录要素组合能够实现请求数据的防伪造、防篡改。因此,将参与令牌生成的请求要素分为基本要素和关键要素两部分,基本要素适用于所有登录场景,是必须要素;关键要素适用于校验登录场景,是动态要素。令牌信息表示为:
Token=S(f(M(b1,b2...bx,p),keyX.pub),key0.pri)
其中,Token是令牌信息,表现为非固定长度的字符组合;S为签名算法;f为加密算法;key0.pri为身份认证APP的签名私钥;keyX.pub为动态的加密公钥;M为由基本信息要素和关键信息要素组成的明文,bx为基本用户信息要素,p为移动设备唯一识别关键信息要素。令牌的生命周期依赖于身份认证APP应用的进程存在与否,当移动设备重启、进程被强制结束后,令牌则相应被销毁。
令牌更新模块122实现了令牌的更新处理,当移动APP应用的用户需要进行切换用户操作时,登录认证模块111接收切换用户请求并提交给令牌更新模块。令牌更新模块通过先后调用令牌销毁模块123和令牌生成模块121来完成内存令牌的更新。
令牌销毁模块123实现了令牌的销毁处理,当移动APP应用的用户进行主动退出当前帐号的操作时,退出管理模块112接收主动退出请求并提交给令牌销毁模块,实现内存令牌的销毁操作。
令牌解析模块124提供了令牌读取和解析的公共方法,登录认证模块111和退出管理模块112通过调用此模块,实现对认证过程中令牌信息的统一读取和处理。
图6为图3身份认证APP应用1的密钥管理模块结构框图。如图6所示,所述的密钥管理模块13包括:APP注册模块131、APP注销模块132、APP信息更新模块133、密钥生成模块134、密钥销毁模块135和密钥更新模块136。其中:APP注册模块131提供了需使用统一身份认证的移动APP应用的注册功能,通过记录APP的相关信息,如APP名称、APP开发部门、APP负责人等信息,并调用密钥生成模块134生成该APP的密钥信息,包括公钥和私钥文件,且密钥名称作为该APP的唯一标识。注册成功后,该APP将获取到自身的一对公私钥文件(如key1.pub、key1.pri)以及身份认证APP的公钥文件(如key0.pub),共三个密钥文件。
APP注销模块132提供解除移动APP应用使用统一身份认证的功能,通过调用此模块清除该APP在身份认证APP中注册的相关信息,同时调用密钥销毁模块135销毁该APP的密钥信息。
APP信息更新模块133提供了移动APP应用注册信息的更新,如更新APP名称、APP维护部门等,同时通过调用密钥更新模块136对该APP密钥信息进行更新,并重新生成新的公私钥文件。
密钥生成模块134实现了密钥的生成处理,通过RSA算法的密钥对生成器(如KeyPairGenerator),根据APP应用注册的唯一标识生成其对应的密钥对信息(如KeyPair),并将产生的公钥以Base64编码格式写成pub后缀的文件(如key1.pub),将产生的私钥用私钥保护密码通过SHA、3KeyTripleDES算法进行加密,并以Base64编码格式写成pri后缀的文件(如key1.pri)。
密钥销毁模块135实现了密钥的销毁处理,通过接收APP注销模块132的注销请求,删除身份认证APP数据库中该APP的公私钥文件,同时清除身份认证APP服务器内存中已加载的该APP的密钥信息。
密钥更新模块136实现了密钥的更新处理,通过接收APP信息更新模块133的更新请求,更新身份认证APP数据库中该APP的公私钥文件,同时更新身份认证APP服务器内存中已加载的该APP的密钥信息。
本发明还提供了一种移动端的身份认证方法,为了本方法更加清楚易懂,下面以流程图为例,对本发明实施例的流程进行详细说明。
如图7所示,为本发明一实施例中在移动设备上登录移动应用的具体流程。
步骤S101:用户在移动设备上访问某移动APP1应用4,该应用的登录模块41通过调用身份认证APP应用1提供的标准登录认证接口封装的认证公共模块43,将登录请求提交给身份认证APP应用1的登录认证模块111,请求信息同时包括该移动APP1应用的唯一标识。
步骤S102:身份认证APP应用1的登录认证模块111通过调用令牌解析模块124,检测到内存中没有登录认证成功的令牌(Token)10,则返回检测结果给登录认证模块111,并由其展现统一的登录界面。用户在此界面输入用户名和密码点击提交后,登录认证模块111调用加密模块113加密请求信息并提交给身份认证APP服务器2,请求信息包括加密后的用户名、密码、移动设备序列号和该移动APP1应用的唯一标识。
步骤S103:身份认证APP服务器2调用解密模块114解密请求信息,通过身份认证APP数据库3验证用户名、密码是否正确,验证通过后记录本次登录的相关信息,包括登录的用户名、时间、移动设备序列号、移动APP1应用的唯一标识等。同时,身份认证APP数据库3生成本次访问对应的动态密钥对,如keyX的公钥(keyX.pub)和私钥(keyX.pri)文件,记录本次登录与该动态密钥对的对应关系,并通过用户名查询用户的基本信息(如用户姓名、所属部门等),最后将动态密钥对、用户基本信息,连同本次认证成功的处理结果,通过身份认证APP服务器2返回给身份认证APP应用1。
步骤S104:身份认证APP应用1的登录模块111接收认证成功的处理结果,调用令牌生成模块121,对用户基本信息、移动设备序列号、当前系统时间、自定义的令牌超时时间以及动态密钥的公钥(keyX.pub)和身份认证APP应用1的私钥(如key0.pri),通过令牌生成算法生成本次认证令牌(Token)10。
步骤S105:身份认证APP应用1再将令牌(Token)10写入到其内存中,同时将该令牌信息封装成本次认证的处理结果(交易令牌Token1)返回给移动APP1应用4。
步骤S106:移动APP1应用4的登录模块41接收到身份认证APP应用1返回的交易令牌Token1后,将交易令牌Token1提交给后台的移动APP1服务器5进行解析。
步骤S107:移动APP1服务器5接收到交易令牌Token1的解析请求后,由于交易令牌Token1使用了动态密钥加密,故需要向身份认证APP服务器2申请动态密钥进行解密。同时,为了确保移动APP1服务器5的合法性,故需要使用其APP注册时生成的私钥文件(如key1.pri)对令牌请求进行加密,连同其APP标识一并提交给身份认证APP服务器2进行移动APP1服务器5的合法身份认证。
步骤S108:身份认证APP服务器2接收到移动APP1服务器5提交的合法身份认证请求后,获取请求中的移动APP1标识并调用解密模块114,通过其公钥key1.pub对加密后的交易令牌Token1进行解密。解密通过后,则认为移动APP1服务器5的身份合法,身份认证APP服务器2返回该交易令牌Token1的动态密钥keyX.pri给移动APP1服务器5。
步骤S109:移动APP1服务器5接收到身份认证APP服务器2返回的动态密钥keyX.pri后,对原令牌调用认证公共模块43的验签和解密方法,先使用身份认证APP的公钥key0.pub进行签名的验签,再使用动态密钥keyX.pri进行解密,从而获取到本次登录访问的用户基本信息。同时,通过移动APP1数据库6记录本次登录日志信息,并查询该登录用户的相关角色权限,通过移动APP1服务器5返回给移动APP1应用4。
步骤S110:移动APP1应用4的登录模块41接收到移动APP1服务器5返回的含有用户角色权限的认证成功信息后,则完成了本次登录认证,并根据请求中的用户基本信息展示对应登录后的主界面。
图8为本发明身份认证方法的另一实施实例流程图,以下对该实施例的流程详细说明。
步骤S201:用户在移动设备上访问某移动APP2应用7,该应用的登录模块通过调用身份认证APP应用1提供的标准登录认证接口封装的认证公共模块,将登录请求提交给身份认证APP应用1的登录认证模块111,请求信息同时包括该APP2应用的唯一标识。
步骤S202:身份认证APP应用1的登录认证模块111通过调用令牌解析模块124,检测到内存中已存在登录认证成功的令牌(Token)10,则将令牌信息封装成本次认证的处理结果(交易令牌Token2)返回给移动APP2应用7。
步骤S203:移动APP2应用7的登录模块接收到身份认证APP应用1返回的交易令牌Token2后,将交易令牌Token2提交给后台的移动APP2服务器8进行解析。
步骤S204:移动APP2服务器8接收到交易令牌Token2的解析请求后,由于交易令牌Token2使用了动态密钥加密,故需要向身份认证APP服务器2申请动态密钥进行解密。同时,为了确保移动APP2服务器8的合法性,故需要使用其APP注册时生成的私钥文件(如key2.pri)对令牌请求进行加密,连同其APP标识一并提交给身份认证APP服务器2进行移动APP2服务器8的合法身份认证。
步骤S205:身份认证APP服务器2接收到移动APP2服务器8提交的合法身份认证请求后,获取请求中的移动APP标识并调用解密模块114,通过其公钥key2.pub对加密后的交易令牌Token2进行解密。解密通过后,则认为移动APP2服务器8的身份合法。同时,身份认证APP服务器2调用令牌解析模块124对交易令牌Token2进行解析,获取该令牌的登录用户信息。
步骤S206:身份认证APP服务器2通过身份认证APP数据库3记录本次登录请求的相关信息,包括登录的用户名、时间、移动设备序列号和APP2的唯一标识等,同时通过身份认证APP服务器2返回给原令牌的动态密钥keyX.pri给移动APP2服务器8。
步骤S207:移动APP2服务器8接收到身份认证APP服务器2返回的动态密钥keyX.pri后,对原令牌调用认证公共模块的验签和解密方法,先使用身份认证APP的公钥key0.pub进行签名的验签,再使用动态密钥keyX.pri进行解密,从而获取到本次登录访问的用户基本信息。同时,通过移动APP2数据库9记录本次登录日志信息,并查询该登录用户的相关角色权限,通过移动APP2服务器8返回给移动APP2应用7。
步骤S208:移动APP2应用7的登录模块接收到移动APP2服务器8返回的含有用户角色权限的认证成功信息后,则完成了本次登录认证,并根据请求中的用户基本信息展示对应登录后的主界面。
图9为本发明身份认证方法的另一实施实例流程图,以下对该实施例的流程详细说明。
步骤S301:用户已登录了移动设备上某移动APP1应用4,点击切换用户功能,该应用的登录模块41通过调用身份认证APP应用1提供的标准登录认证接口封装的认证公共模块43,将切换用户请求提交给身份认证APP应用1的登录认证模块111,请求信息同时包括该移动APP1应用的唯一标识和切换用户操作标识。
步骤S302:身份认证APP应用1的登录认证模块111通过调用令牌解析模块124,检测到内存中已存在登录认证成功的令牌(Token)10,则返回检测结果给登录认证模块111,并由其根据移动APP1应用4上送的切换用户请求标识展现统一的登录界面。用户在此界面输入用户名和密码点击提交后,登录认证模块111调用加密模块113加密请求信息并提交给身份认证APP服务器2,请求信息包括加密后的用户名、密码、切换用户操作标识、移动设备序列号和该移动APP1应用的唯一标识。
步骤S303:身份认证APP服务器2调用解密模块114解密请求信息,通过身份认证APP数据库3验证用户名、密码是否正确,验证通过后根据切换用户操作标识,更新本次登录的相关信息,包括登录的用户名、时间、移动设备序列号和移动APP1应用的唯一标识等。同时,身份认证APP数据库3重新生成本次访问对应的动态密钥对,如keyY的公钥(keyY.pub)和私钥(keyY.pri)文件,记录本次登录与该动态密钥对的对应关系,并通过用户名查询用户的基本信息(如用户姓名、所属部门等),最后将动态密钥对、用户基本信息,连同本次切换用户登录认证成功的处理结果,通过身份认证APP服务器2返回给身份认证APP应用1。
步骤S304:身份认证APP应用1的登录模块111接收认证成功的处理结果,调用令牌生成模块121,对用户基本信息、移动设备序列号、当前系统时间、自定义的令牌超时时间以及动态密钥的公钥(keyY.pub)和身份认证APP应用1的私钥(如key0.pri),通过令牌生成算法生成本次认证令牌(Token)10。
步骤S305:身份认证APP应用1再将令牌(Token)10写入到其内存中,同时将该令牌信息封装成本次认证的处理结果(交易令牌Token1)返回给移动APP1应用4。
步骤S306:移动APP1应用4的登录模块41接收到身份认证APP应用1返回的交易令牌Token1后,将交易令牌Token1提交给后台的移动APP1服务器5进行解析。步骤S307:移动APP1服务器5接收到交易令牌Token1的解析请求后,由于交易令牌Token1使用了动态密钥加密,故需要向身份认证APP服务器2申请动态密钥进行解密。同时,为了确保移动APP1服务器5的合法性,故需要使用其APP注册时生成的私钥文件(如key1.pri)对令牌请求进行加密,连同其APP标识一并提交给身份认证APP服务器2进行移动APP1服务器5的合法身份认证。
步骤S308:身份认证APP服务器2接收到移动APP1服务器5提交的合法身份认证请求后,获取请求中的移动APP标识并调用解密模块114,通过其公钥key1.pub对加密后的交易令牌Token1进行解密。解密通过后,则认为移动APP1服务器5的身份合法,身份认证APP服务器2返回该交易令牌Token1的动态密钥keyY.pri给移动APP1服务器5。
步骤S309:移动APP1服务器5接收到身份认证APP服务器2返回的动态密钥keyY.pri后,对原令牌调用认证公共模块43的验签方法,先使用身份认证APP的公钥key0.pub进行签名的验签,再使用动态密钥keyY.pri进行解密,从而获取到本次登录访问的用户基本信息。同时,通过移动APP1数据库6记录本次登录日志信息,并查询该登录用户的相关角色权限,通过移动APP1服务器5返回给移动APP1应用4。
步骤S310:移动APP1应用4的登录模块41接收到移动APP1服务器5返回的含有用户角色权限的认证成功信息后,则完成了本次切换用户的登录认证,并根据请求中的用户基本信息展示对应登录后的主界面。
图10为本发明身份认证方法的另一实施实例流程图,以下对该实施例的流程详细说明。
步骤S401:用户已登录了移动设备上某移动APP2应用7,点击主动退出当前帐号的功能,该应用的退出模块通过调用身份认证APP应用1提供的标准退出管理接口封装的认证公共模块,将主动退出请求提交给身份认证APP应用1的退出管理模块112,请求信息同时包括该移动APP2应用的唯一标识。对于普通的关闭APP操作,无需调用身份认证APP应用1的退出管理接口。
步骤S402:身份认证APP应用1的退出管理模块112通过调用令牌解析模块124,检测到内存中已存在登录认证成功的令牌(Token)10,则返回检测结果给退出管理模块112,并将退出请求提交给身份认证APP服务器2,请求信息包括移动设备序列号和该APP2的唯一标识。
步骤S403:身份认证APP服务器2接收到提交的退出请求后,通过身份认证APP数据库3将该移动设备原记录的相关登录信息清空,包括动态密钥信息以及与登录用户的对应关系信息,并记录用户退出操作日志,返回处理结果。
步骤S404:身份认证APP应用1的退出管理模块112接收到身份认证APP服务器2返回的退出请求处理结果后,通过调用令牌销毁模块123将内存中的令牌信息进行销毁,并返回退出请求的处理结果给移动APP2应用7。
步骤S405:移动APP2应用7的退出模块接收到身份认证APP应用1退出请求处理成功的结果后,将处理结果转发给移动APP2服务器8。
步骤S406:移动APP2服务器8接收到退出成功结果信息,通过移动APP2数据库9记录本次退出日志信息,并返回本次退出的处理结果给移动APP2应用7。
步骤S407:移动APP2应用7接收到移动APP2服务器8返回的退出处理结果后,关闭移动APP2应用,完成了本次退出操作。
本发明提供一种移动终端身份认证系统及方法,多个APP应用使用统一的身份认证方式,实现认证用户信息的共享,一次登录多次有效。在认证环节,采用密钥加密和数字签名技术生成非固定长度的、唯一的、防篡改的令牌,并在加密过程中使用防伪造请求的动态密钥,进一步提升认证环节的安全性。同时,在身份认证服务器后台数据库,通过统一记录登录请求相关信息,实现了多台设备重复登录的控制。
发明克服了现有移动端多APP应用身份认证在易用性、安全性和维护便捷性等方面的一些问题,提出了一种移动终端身份认证系统及方法,实现移动端的统一身份认证。另外,用密钥介质,通过密钥加密和数字签名技术,生成身份认证过程中的令牌信息,提升整个认证环节的安全性,并提高了移动终端使用的便捷性和体验效果。
本发明提供了一种移动端的身份认证方法,改进了现有应用于移动网络的身份认证方式,结合数字加密技术生成令牌,克服了认证过程中存在的不安全的问题,主要有如下几方面效果与优点:
1、通过本发明设计的身份认证系统,将登录过程中的用户信息和设备环境以令牌的形式存储起来,即时的在认证过程中读取验证,减少用户重复输入用户名和密码的环节,提升用户登录操作的易用性。
2、通过本发明设计的身份认证系统,实现了企业内部标准的登录认证和退出接口,提升后续升级维护的规范性和便捷性,节约人力成本的投入。
3、通过本发明设计的身份认证系统,有效避免了认证信息被窃取和认证服务器被仿造的问题。可根据每一次认证请求信息,采用一定的密钥加解密算法和数字签名技术,保证认证请求信息传输的完整性、请求方的身份认证、防止交易中的抵赖发生。
通过本发明设计的身份认证系统,利用后台数据库对认证信息记录的特点,实现认证环节不同移动设备防重复登录的问题,并可以对用户和设备认证情况进行实时的统计和分析。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。