首页> 中国专利> 一种服务器数据存储空间共享的方法及装置

一种服务器数据存储空间共享的方法及装置

摘要

本发明公开一种服务器数据存储空间共享的方法及装置,属于信息安全领域。所述方法包括:当接收到应用服务器发送的认证请求时,认证服务器生成挑战值,获取认证请求中的用户信息,查找与用户信息对应的令牌序列号;根据挑战值、用户信息及令牌序列号生成推送认证请求,并发送至移动终端令牌,将挑战值与令牌序列号对应保存至缓存服务器。采用本发明的技术方案,将没有必要持久化且需要频繁访问的数据保存至缓存服务器中,供多台认证服务器并发访问,降低数据处理难度,节省了认证服务器存储区的空间,缩短了数据读取的时间。

著录项

  • 公开/公告号CN107222460A

    专利类型发明专利

  • 公开/公告日2017-09-29

    原文格式PDF

  • 申请/专利权人 飞天诚信科技股份有限公司;

    申请/专利号CN201710304801.0

  • 发明设计人 陆舟;于华章;

    申请日2017-05-03

  • 分类号H04L29/06(20060101);H04L29/08(20060101);

  • 代理机构

  • 代理人

  • 地址 100085 北京市海淀区学清路9号汇智大厦B楼17层

  • 入库时间 2023-06-19 03:30:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-08

    授权

    授权

  • 2017-10-31

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20170503

    实质审查的生效

  • 2017-09-29

    公开

    公开

说明书

技术领域

本发明涉及信息安全领域,尤其涉及一种服务器数据存储空间共享的方法及装置。

背景技术

随着网络的覆盖与传播,云服务在现实生活中越来越普及,现如今,为满足更多用户使用云服务,故云服务在互联网上是以集群的形式存在的。

而现有技术中,服务器的单机处理能力和存储空间是有限的,如果无限制的将请求发向单台服务器,则有可能大大超过服务器的处理能力导致服务器崩溃,无法稳定可持续的为用户提供可靠的服务,既浪费了空间,又在数据读取时耗费时间。

发明内容

本发明的目的是为了解决现有技术中存在的问题,提供了一种服务器数据存储空间共享的方法及装置。

本发明采用的技术方案是:

一方面,一种服务器数据存储空间共享的方法,方法包括:

当接收到应用服务器发送的认证请求时,认证服务器生成挑战值,获取认证请求中的用户信息,查找与用户信息对应的令牌序列号;根据生成的挑战值、获取到的用户信息以及查找到的令牌序列号生成推送认证请求,发送推送认证请求至移动终端令牌,并将生成的挑战值与查找到的令牌序列号对应保存至缓存服务器;

当接收到移动终端令牌发送的推送认证响应时,认证服务器查找移动终端令牌对应的服务器种子密钥,根据令牌序列号从缓存服务器获取挑战值,根据查找到的服务器种子密钥以及获取到的挑战值生成应答值;判断生成的应答值与推送认证响应中的应答值是否匹配,是则向应用服务器发送认证成功响应,否则向应用服务器发送认证失败响应。

具体地,当接收到应用服务器发送的认证请求时,还包括:获取认证请求中的应用标识,并根据应用标识获取应用信息;

其中,根据生成的挑战值、获取到的用户信息以及查找到的令牌序列号生成推送认证请求,具体为:根据生成的挑战值、获取到的用户信息、查找到的令牌序列号以及应用信息生成推送认证请求。

进一步地,发送推送认证请求至移动终端令牌之前,还包括:认证服务器根据令牌序列号从缓存服务器中获取对应的认证服务器IP,并判断自身IP与获取到的认证服务器IP是否相同,是则将推送认证请求发送至移动终端令牌,否则将推送认证请求发送至获取到的认证服务器IP对应的认证服务器;

具体地,方法还包括:当接收到另一认证服务器发送的推送认证请求时,认证服务器将接收到的推送认证请求发送至移动终端令牌。

进一步地,还包括:当接收到移动终端令牌发送的令牌序列号时,认证服务器将自身IP和令牌序列号建立关联保存至缓存服务器。

更进一步地,认证服务器将自身IP和令牌序列号建立关联保存至缓存服务器后,还包括:认证服务器根据令牌序列号获取认证服务器IP,并与根据令牌序列号从缓存服务器中获取对应的的认证服务器IP进行对比,如果相同,则无需更新,结束;否则,认证服务器将更新与令牌序列号建立关联的认证服务器IP,结束。

可选地,发送推送认证请求至移动终端令牌之前,还包括:认证服务器发送推送认证请求至缓存服务器并生成认证通知数据,将认证通知数据发送至移动终端令牌;

具体地,方法还包括:当接收到移动终端令牌返回的获取推送认证请求的信息后,认证服务器从获取推送认证请求的信息中获取令牌序列号,根据令牌序列号从缓存服务器中获取推送认证请求,并将推送请求认证发送至移动终端令牌。

更具体地,将认证通知数据发送至移动终端令牌,具体包括:认证服务器根据令牌序列号从缓存服务器获取移动终端标识,并将认证通知数据和移动终端标识发送至iCloud,iCloud根据移动终端标识将认证通知数据发送至移动终端标识对应的移动终端令牌。

其中,当接收到移动终端令牌发送的令牌序列号和移动终端标识时,认证服务器将令牌序列号和移动终端标识建立关联保存至缓存服务器。

其中,将令牌序列号和移动终端标识建立关联保存至缓存服务器后,还包括:认证服务器根据令牌序列号获取移动终端标识,并与根据令牌序列号从缓存服务器中获取对应的移动终端标识进行对比,如果相同,则无需更新,结束;否则,认证服务器将更新与令牌序列号建立关联的移动终端标识,结束。

可选地,当接收到移动终端令牌发送的令牌序列号时,还包括:认证服务器和移动终端令牌建立网络数据链路。

进一步地,认证服务器和移动终端令牌建立网络数据链路后,还包括:认证服务器获取移动终端令牌对应的网络数据链路标识,并将网络数据链路标识和令牌序列号建立关联保存至认证服务器的存储区。

更进一步地,发送推送认证请求至移动终端令牌之前,还包括:认证服务器根据令牌序列号从认证服务器的存储区中获取对应的网络数据链路标识,并根据网络数据链路标识获取对应的网络数据链路;

其中,发送推送认证请求至移动终端令牌,具体为:认证服务器根据网络数据链路标识获取对应的网络数据链路,通过网络数据链路发送推送认证请求至移动终端令牌。

具体地,将生成的挑战值与查找到的令牌序列号对应保存至缓存服务器,具体为:认证服务器发送存储挑战值的请求至缓存服务,缓存服务按照预设的存储规则将挑战值和令牌序列号存储至缓存服务器的列表中;

具体地,根据令牌序列号从缓存服务器获取挑战值,具体为:认证服务器发送获取挑战值的请求至缓存服务,缓存服务根据令牌序列号从缓存服务器的列表中查询令牌序列号对应的挑战值,并返回给认证服务器。

可选地,将生成的挑战值与查找到的令牌序列号对应保存至缓存服务器后,还包括:认证服务器设置挑战值保存在缓存服务器的有效时间,超过有效时间,缓存服务器将挑战值删除。

具体地,判断生成的应答值与推送认证响应中的应答值是否匹配之后,还包括:认证服务器将缓存服务器中保存的与令牌序列号对应的挑战值删除。

另一方面,本发明提供了一种服务器数据存储空间共享的装置,包括:

第一接收模块,用于接收应用服务器发送的认证请求;

第一生成模块,用于当第一接收模块接收到应用服务器发送的认证请求时,生成挑战值;

第一获取模块,用于获取认证请求中的用户信息;

第一查找模块,用于查找与用户信息对应的令牌序列号;

第二生成模块,用于根据第一生成模块生成的挑战值、第一获取模块获取到的用户信息以及第一查找模块查找到的令牌序列号生成推送认证请求;

第一发送模块,用于发送推送认证请求至移动终端令牌;

第一保存模块,用于将第一生成模块生成的挑战值与第一查找模块查找到的令牌序列号对应保存至缓存服务器;

第二接收模块,用于接收移动终端令牌发送的推送认证响应;

第二查找模块,用于查找移动终端令牌对应的服务器种子密钥;

第二获取模块,用于根据第一查找模块得到的令牌序列号从缓存服务器获取挑战值;

第三生成模块,用于根据第二查找模块查找到的服务器种子密钥以及第二获取模块获取到的挑战值生成应答值;

第一判断模块,用于判断第三生成模块生成的应答值与第二接收模块接收到的推送认证响应中的应答值是否匹配;

第二发送模块,用于当第一判断模块判断第三生成模块生成的应答值与第二接收模块接收到的推送认证响应中的应答值匹配成功时,向应用服务器发送认证成功响应;

第三发送模块,用于当第一判断模块判断第三生成模块生成的应答值与第二接收模块接收到的推送认证响应中的应答值匹配失败时,向应用服务器发送认证失败响应。

具体地,装置还包括:第三获取模块,用于获取认证请求中的应用标识;

第四获取模块,用于根据第三获取模块获取到的应用标识获取应用信息;

进一步地,第二生成模块,具体用于:根据第一生成模块生成的挑战值、第一获取模块获取到的用户信息、第一查找模块查找到的令牌序列号以及第四获取模块获取到的应用信息成推送认证请求。

其中,装置还包括:第五获取模块、第二判断模块第四发送模块和第五发送模块;

第五获取模块,用于装置根据令牌序列号从缓存服务器中获取对应的认证服务器IP;

第二判断模块,用于判断装置IP与第五获取模块获取到的IP是否相同;

第四发送模块,用于第二判断模块判断装置IP与第五获取模块获取到的认证服务器IP相同时,将推送认证请求发送至移动终端令牌;

第五发送模块,用于第二判断模块判断装置IP与第五获取模块获取到的认证服务器IP不相同时,将推送认证请求发送至第五获取模块获取到的认证服务器IP对应的装置;

第六接收模块,用于接收另一装置发送的推送认证请求;

第六发送模块,用于当第六接收模块接收另一装置发送的推送认证请求时,将推送认证请求发送至移动终端令牌。

具体地,装置还包括:第七接收模块和第二保存模块;

第七接收模块,用于接收移动终端令牌发送的令牌序列号;

第二保存模块,用于当接收到移动终端令牌发送的令牌序列号时,装置将自身IP和令牌序列号建立关联保存至缓存服务器。

进一步地,装置还包括:第七获取模块、第八获取模块、第一对比模块和第一更新模块;

第七获取模块,用于根据令牌序列号获取装置IP;

第八获取模块,用于根据令牌序列号从缓存服务器中获取装置IP;

第一对比模块,用于对比第七获取模块获取的装置IP与第八获取模块获取的装置IP是否相同;

第一更新模块,用于当第一对比模块对比第七获取模块获取的装置IP与第八获取模块获取的装置IP不同时,更新与令牌序列号建立关联的装置IP,结束。

具体地,装置还包括:第四生成模块、第七发送模块、第九获取模块、第十获取模块和第八发送模块;

第四生成模块,用于发送推送认证请求至缓存服务器并生成认证通知数据;

第七发送模块,用于将第四生成模块生成的认证通知数据发送至移动终端令牌;

第九获取模块,用于当接收到移动终端令牌返回的获取推送认证请求的信息后,从获取推送认证请求的信息中获取令牌序列号;

第十获取模块,用于根据第九获取模块中获取的令牌序列号,从缓存服务器中获取推送认证请求;

第八发送模块,用于将第十获取模块获取的推送请求认证发送至移动终端令牌。

更进一步地,第七发送模块,具体包括:第一获取单元和第一发送单元;

第一获取单元,用于根据令牌序列号从缓存服务器获取移动终端标识;

第一发送单元,用于将认证通知数据和移动终端标识发送至iCloud,iCloud根据移动终端标识将认证通知数据发送至移动终端标识对应的移动终端令牌。

具体地,在还包括:第三保存模块;

第三保存模块,用于当接收到移动终端令牌发送的令牌序列号和移动终端标识时,将令牌序列号和移动终端标识建立关联保存至缓存服务器。

对应地,装置还包括:第十一获取模块、第十二获取模块、第二对比模块和第二更新模块

第十一获取模块,用于当第三保存模块将令牌序列号和移动终端标识建立关联保存至缓存服务器后,根据令牌序列号获取移动终端标识;

第十二获取模块,用于根据令牌序列号从缓存服务器中获取对应的移动终端标识;

第二对比模块,用于对比第十一获取模块和第十二获取模块获取的移动终端标识是否相同;

第二更新模块,用于当第二对比模块对比第十一获取模块和第十二获取模块获取的移动终端标识不同时,更新与令牌序列号建立关联的移动终端标识,结束。

其中,装置还包括:建立模块,用于当接收到移动终端令牌发送的令牌序列号时,装置和移动终端令牌建立网络数据链路。

具体地,装置还包括:第十三获取模块和第四保存模块;

第十三获取模块,用于建立模块建立网络数据链路后,获取移动终端令牌对应的网络数据链路标识;

第四保存模块,用于将网络数据链路标识和令牌序列号建立关联保存至装置的存储区。

具体地,装置还包括:第十四获取模块;

第十四获取模块,用于根据令牌序列号从装置的存储区中获取对应的网络数据链路标识,并根据网络数据链路标识获取对应的网络数据链路;

进一步地,第一发送模块,具体用于:根据第十四获取模块获取的网络数据链路标识获取对应的网络数据链路,通过网络数据链路发送推送认证请求至移动终端令牌。

更进一步地,在第一保存模块,具体用于:发送存储挑战值的请求至缓存服务,缓存服务按照预设的存储规则将挑战值和令牌序列号存储至缓存服务器的列表中;

更进一步地,第二获取模块,具体用于:发送获取挑战值的请求至缓存服务,缓存服务根据令牌序列号从缓存服务器的列表中查询令牌序列号对应的挑战值,并返回给认证服务器。

可选地,装置还包括:设置模块;

设置模块,用于设置挑战值保存在缓存服务器的有效时间,当挑战值超过在缓存服务器的有效时间时,缓存服务器将挑战值删除。

可选地,装置还可以包括:删除模块;

删除模块,用于第一判断模块判断生成的应答值与推送认证响应中的应答值是否匹配之后,将缓存服务器中保存的与令牌序列号对应的挑战值删除。

本发明取得的有益效果是:采用本发明的技术方法,采用集群的方式均衡处理用户的请求,将没有必要持久化且需要频繁访问的数据保存至缓存服务器中,可供多台认证服务器并发访问,极大的缓解了后端存储的压力,简化数据处理流程,降低数据处理难度,保证每台服务器存储的数据能被互通,节省了认证服务器存储区的空间,缩短了数据读取的时间。

附图说明

为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例2提供的一种激活过程中服务器数据存储空间共享的方法流程图;

图2是本发明实施例3提供的一种推送认证过程中服务器数据存储空间共享的方法中移动终端令牌启动时的操作流程图;

图3和图4是本发明实施例3提供的一种推送认证过程中服务器数据存储空间共享的方法流程图;

图5是本发明实施例4提供的一种推送认证过程中服务器数据存储空间共享的方法中移动终端令牌启动时的操作流程图;

图6是本发明实施例4提供的一种推送认证过程中服务器数据存储空间共享的方法流程图;

图7是本发明实施例5提供的一种简单挑战过程中服务器数据存储空间共享的方法流程图;

图8是本发明实施例6提供的一种服务器数据存储空间共享的装置的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明中认证服务器的数据可以根据需求设定足够多的数量,以认证服务器为4台为例来说明,在此说明,4台认证服务器分别命名为一号认证服务器、二号认证服务器、三号认证服务器和四号认证服务器,其中,一号认证服务器IP为192.168.3.28、二号认证服务器IP为192.168.5.21、三号认证服务器IP为192.168.45.48、四号认证服务器IP为192.168.52.15,其中,4台认证服务器可以单独对缓存服务器进行增删改查的操作;

本发明实施例1描述的是一种服务器数据存储空间共享的方法,实施例2描述的是一种激活过程中服务器数据存储空间共享的方法,实施例3描述的是一种推送认证过程中服务器数据存储空间共享的方法,实施例4描述的是一种推送认证过程中服务器数据存储空间共享的方法,实施例5描述的是一种简单挑战过程中服务器数据存储空间共享的方法,实施例6描述的是一种服务器数据存储空间共享的装置。

实施例1

本发明实施例1提供了一种服务器数据存储空间共享的方法,包括:

当接收到应用服务器发送的认证请求时,认证服务器生成挑战值,获取认证请求中的用户信息,查找与用户信息对应的令牌序列号;根据生成的挑战值、获取到的用户信息以及查找到的令牌序列号生成推送认证请求,发送推送认证请求至移动终端令牌,并将生成的挑战值与查找到的令牌序列号对应保存至缓存服务器;

当接收到移动终端令牌发送的推送认证响应时,认证服务器查找移动终端令牌对应的服务器种子密钥,根据令牌序列号从缓存服务器获取挑战值,根据查找到的服务器种子密钥以及获取到的挑战值生成应答值;判断生成的应答值与推送认证响应中的应答值是否匹配,是则向应用服务器发送认证成功响应,否则向应用服务器发送认证失败响应。

具体地,当接收到应用服务器发送的认证请求时,还包括:获取认证请求中的应用标识,并根据应用标识获取应用信息;

其中,根据生成的挑战值、获取到的用户信息以及查找到的令牌序列号生成推送认证请求,具体为:根据生成的挑战值、获取到的用户信息、查找到的令牌序列号以及应用信息生成推送认证请求。

进一步地,发送推送认证请求至移动终端令牌之前,还包括:认证服务器根据令牌序列号从缓存服务器中获取对应的认证服务器IP,并判断自身IP与获取到的认证服务器IP是否相同,是则将推送认证请求发送至移动终端令牌,否则将推送认证请求发送至获取到的认证服务器IP对应的认证服务器;

具体地,方法还包括:当接收到另一认证服务器发送的推送认证请求时,认证服务器将接收到的推送认证请求发送至移动终端令牌。

进一步地,还包括:当接收到移动终端令牌发送的令牌序列号时,认证服务器将自身IP和令牌序列号建立关联保存至缓存服务器。

更进一步地,认证服务器将自身IP和令牌序列号建立关联保存至缓存服务器后,还包括:认证服务器根据令牌序列号获取认证服务器IP,并与根据令牌序列号从缓存服务器中获取对应的认证服务器IP进行对比,如果相同,则无需更新,结束;否则,认证服务器将更新与令牌序列号建立关联的认证服务器IP,结束。

可选地,发送推送认证请求至移动终端令牌之前,还包括:认证服务器发送推送认证请求至缓存服务器并生成认证通知数据,将认证通知数据发送至移动终端令牌;

具体地,方法还包括:当接收到移动终端令牌返回的获取推送认证请求的信息后,认证服务器从获取推送认证请求的信息中获取令牌序列号,根据令牌序列号从缓存服务器中获取推送认证请求,并将推送请求认证发送至移动终端令牌。

更具体地,将认证通知数据发送至移动终端令牌,具体包括:认证服务器根据令牌序列号从缓存服务器获取移动终端标识,并将认证通知数据和移动终端标识发送至iCloud,iCloud根据移动终端标识将认证通知数据发送至移动终端标识对应的移动终端令牌。

其中,当接收到移动终端令牌发送的令牌序列号和移动终端标识时,认证服务器将令牌序列号和移动终端标识建立关联保存至缓存服务器。

其中,将令牌序列号和移动终端标识建立关联保存至缓存服务器后,还包括:认证服务器根据令牌序列号获取移动终端标识,并与根据令牌序列号从缓存服务器中获取对应的移动终端标识进行对比,如果相同,则无需更新,结束;否则,认证服务器将更新与令牌序列号建立关联的移动终端标识,结束。

可选地,当接收到移动终端令牌发送的令牌序列号时,还包括:认证服务器和移动终端令牌建立网络数据链路。

进一步地,认证服务器和移动终端令牌建立网络数据链路后,还包括:认证服务器获取移动终端令牌对应的网络数据链路标识,并将网络数据链路标识和令牌序列号建立关联保存至认证服务器的存储区。

更进一步地,发送推送认证请求至移动终端令牌之前,还包括:认证服务器根据令牌序列号从认证服务器的存储区中获取对应的网络数据链路标识,并根据网络数据链路标识获取对应的网络数据链路;

其中,发送推送认证请求至移动终端令牌,具体为:认证服务器根据网络数据链路标识获取对应的网络数据链路,通过网络数据链路发送推送认证请求至移动终端令牌。

具体地,将生成的挑战值与查找到的令牌序列号对应保存至缓存服务器,具体为:认证服务器发送存储挑战值的请求至缓存服务,缓存服务按照预设的存储规则将挑战值和令牌序列号存储至缓存服务器的列表中;

具体地,根据令牌序列号从缓存服务器获取挑战值,具体为:认证服务器发送获取挑战值的请求至缓存服务,缓存服务根据令牌序列号从缓存服务器的列表中查询令牌序列号对应的挑战值,并返回给认证服务器。

可选地,将生成的挑战值与查找到的令牌序列号对应保存至缓存服务器后,还包括:认证服务器设置挑战值保存在缓存服务器的有效时间,超过有效时间,缓存服务器将挑战值删除。

具体地,判断生成的应答值与推送认证响应中的应答值是否匹配之后,还包括:认证服务器将缓存服务器中保存的与令牌序列号对应的挑战值删除。

实施例2

本实施例提供一种激活过程中服务器数据存储空间共享的方法,参见图1,应用于包括认证管理平台、认证服务器和移动终端令牌的系统中,具体包括:

步骤101:认证管理平台根据用户记录中的用户信息,生成第一激活请求;

本步骤之前还包括:认证管理平台接收管理员选择的需要激活的用户记录,根据用户记录,判断是否能够获取对应的用户信息,如果是,则执行步骤101,否则提示信息不完整,结束;

本实施例中,执行步骤101后还包括:判断是否能够获取到对应的令牌标识码、移动终端系统版本,如果是,则执行步骤102,否则提示信息不完整,结束;

其中,认证管理平台在用户注册时,要求用户输入令牌标识码和移动终端系统版本;

例如,认证管理平台接收到管理员选择的用户记录为:

用户信息包括:用户名:abc@test.com,密码:168408afag

用户手机号:01234567890

用户名:abc

用户邮箱:123456789@163.com

移动终端号:18912345678

令牌标识码:57987117827971672588

移动终端系统版本:1

进一步的,本实施例中,步骤101之前还包括:

步骤100-1:认证管理平台接收管理员点击的激活按钮;

步骤100-2:认证管理平台判断是否能够获取到上次激活时间,如果是,则执行步骤101-3,否则执行步骤101;

步骤100-3:认证管理平台获取当前系统时间,判断当前系统时间和上次激活时间之差是否大于预设时长,如果是,则执行步骤101,否则返回不可重复激活响应,结束;

步骤102:认证管理平台将第一激活请求发送给认证服务器;

步骤103:认证服务器从第一激活请求中获取用户信息,调用随机数生成函数,生成第一随机数,将第一随机数作为激活请求ID;

本实施例中,优选的,为了保证安全,要求二维码图片只能在预定时间内有效,因此,认证服务器生成激活请求ID后,将激活请求ID保存至服务器存储区中,并记录服务器系统时间。

例如,生成的激活请求ID为fasdcvxvdsafdsfzcxcsdfsdafcxz,记录服务器系统时间为1417502570。

步骤104:认证服务器将激活请求ID与用户信息建立关联后,将激活请求ID与用户信息发送至缓存服务器;

步骤105:认证服务器生成第一激活响应并返回给认证管理平台;

具体地,本实施例中,认证服务器接收来自认证管理平台的第一激活请求,预设前缀标识为yunxin://,预设域名为:api-6位企业标识.cloudentify.com;

生成的第一激活响应为:

yunxin://api-6位企业标识.cloudentify.com?reqid=激活请求ID;

例如,认证服务器根据预设前缀标识yunxin://、获取到的企业标识dfserv,预设域名api-6位企业标识.cloudentify.com和激活请求IDfasdcvxvdsafdsfzcxcsdfsdafcxz;

生成的第一激活响应为:

yunxin://api-dfserv.cloudentify.com?reqid=fasdcvxvdsafdsfzcxcsdfsdafcxz。

步骤106:认证管理平台根据接收到的第一激活响应生成二维码图片;

具体地,在本实施例中,认证管理平台采用邮件激活方式根据接收到的第一激活响应生成二维码图片。

步骤107:移动终端令牌扫描二维码,获取终端端口号,根据预设域名、企业标识和终端端口号得到激活URL,通过激活URL访问认证服务器,与认证服务器建立网络数据链路,并根据激活请求ID生成第二激活请求;

在本实施例中,移动终端令牌扫描二维码,根据二维码图片得到第一激活响应,从第一激活响应中获取预设域名、企业标识和激活请求ID。例如,移动终端令牌从第一激活响应中获取到的激活请求ID为fasdcvxvdsafdsfzcxcsdfsdafcxz;

终端具体为pc机、iPad、手机(非装载所述移动终端令牌的终端设备)等能够接收邮件的终端设备。例如,移动终端令牌获取到的终端端口号为1843,预设域名和企业标识api-dfserv.cloudentify.com;

得到的激活URL为:

api-dfserv.cloudentify.com:1843/fasdcvxvdsafdsfzcxcsdfsdafcxz;通过该激活URL访问认证服务器,与认证服务器建立网络数据链路,具体为TCP连接,传输数据优选采用JSON数据格式;

本实施例中,本步骤还包括:移动终端令牌获取预设在线激活请求类型,获取保存的令牌标识码和令牌版本号、调用获取系统类型函数,获取移动终端系统类型,然后对预设在线激活请求类型、激活请求ID、令牌标识码、移动终端系统类型和令牌版本号进行mac校验,得到mac校验码;

例如,获取的终端端口号为1843,获取到的预设在线激活请求类型为6,即"reqtype":"6";获取到的令牌标识码为57987117827971 672588,即"udid":"57987117827971672588";获取到的令牌版本号为2.5,即app_version":"2.5";调用获取系统类型函数,获取到的移动终端系统类型为安卓系统,则将移动终端系统类型置为1(如果为IOS系统,则将移动终端系统类型置为2),即"os":"1";计算得到的mac校验码为e5326079df79129b8bd599301a1b9efb360b0cc6;则根据预设域名、企业标识、激活请求ID和终端端口号生成的第二激活请求为:

{"os":"1","reqid":"fasdcvxvdsafdsfzcxcsdfsdafcxz","reqtype":"6","udid":"57987117827971672588",app_version":"2.5","mac":"e5326079df79129b8bd599301a1b9efb360b0cc6"};

步骤108:移动终端令牌通过网络数据链路将第二激活请求发送给认证服务器;

步骤109:认证服务器接收到第二激活请求数据后,从第二激活请求中获取激活请求ID,判断激活请求ID是否正确且有效,如果是则执行步骤110,否则报错,结束。

本实施例中,判断激活请求ID是否正确且有效,具体为:判断激活请求ID与服务器存储区中保存的激活请求ID是否相同,如果是,则激活请求ID正确,否则激活请求ID不正确;且判断服务器系统时间与服务器存储区中保存的系统时间的差值是否在预设范围(优选为120s)内,如果是,则激活请求ID有效,否则接收到的激活请求ID无效,删除服务器存储区中的激活请求ID;

本实施例中,步骤109还包括:认证服务器从第二激活请求数据中获取令牌标识码和移动终端系统类型,并根据激活请求ID从认证服务器存储区中获取保存的终端设备标识码和移动终端系统类型,判断是否匹配,如果是,则执行步骤110,否则报错,结束;

步骤110:认证服务器根据激活请求ID从缓存服务器中获取用户信息;

步骤111:认证服务器根据令牌序列号生成方法,产生一个令牌序列号;

本实施例中,优选的,OTP认证中心根据令牌序列号的生成顺序,生成一个长度为10位的令牌序列号,除此之外,还可以为:对用户名进行预设运算,生成令牌序列号;

其中,优选的,令牌序列号生成方法,具体为:根据令牌序列号的生成顺序,按照从0000000001开始每次增加1的顺序产生一个令牌序列号;

例如,已激活的令牌序列号为1000000009,则本次生成的令牌序列号为1000000010;

步骤112:认证服务器将令牌序列号、激活请求ID与用户信息建立关联,将建立关联的信息保存至缓存服务器;

步骤113:认证服务器调用随机数生成函数,生成第二随机数,将该第二随机数作为种子生成因子,根据种子生成因子生成服务器种子密钥;

本实施例中,优选的,OTP认证中心调用随机数生成函数,Random.nextInt(10),生成长度为10位十进制的第二随机数,作为种子生成因子;

例如,认证服务器生成的第二随机数,即种子生成因子为30750849669824758444;

本实施例中,认证服务器应用预设推导算法,对种子生成因子进行推导,得到服务器种子密钥,优选的,认证服务器应用PBKDF2推导算法,得到20个字节的服务器种子密钥,除此之外,还可以为BF推导算法等;

例如,认证服务器生成的第二随机数,即种子生成因子为6595781253;

对种子生成因子进行推导,得到的服务器种子密钥为:

FB80ECDA5EDF464CF7715EE66A25ED079122D429。

步骤114:认证服务器根据用户名获取对应的企业密钥,应用企业密钥对服务器种子密钥进行加密,得到加密服务器种子密钥,将加密服务器种子密钥与用户名建立关联并保存至认证服务器存储区中;

具体为:认证服务器根据令牌序列号,使用预设加密算法对服务器种子密钥进行加密,得到二进制的加密服务器种子密钥,然后对二进制的加密服务器种子密钥进行Base64转换,得到字符串,优选的,预设加密算法为3DES算法,除此之外,还可以为SM3、RSA算法等;

例如,认证服务器获取到的企业密钥为:

1F3D4E3A12459372B837193177913782;

应用企业密钥对服务器种子密钥加密且转换后得到的加密服务器种子密钥为:

PL96EUSWSdPP2gj8fr6m-YXBpLWE0OTJjN2Q3LmR1b3NlY3VyaXR5LmNvbQ;

本实施例中,认证服务器中保存的企业密钥的生成过程如下:

步骤1:密钥运维平台接收密钥持有者的管理员密钥;

其中,为保证管理员密钥的安全性,密钥持有者的管理员密钥需要定期更换;

步骤2:密钥运维平台对管理员密钥进行预设运算,得到主密钥,将主密钥保存至存储区中;

步骤3:认证服务器定时向密钥运维平台获取主密钥,判断获取到的主密钥与服务器存储区中保存的主密钥是否相同,如果是,则执行步骤4,否则更新服务器存储区中的主密钥,执行步骤4;

本实施例中,由于管理员密钥需要定期更换,因此优选的,认证服务器每隔2分钟向密钥运维平台发送获取主密钥的请求,接收密钥运维平台返回的当前主密钥;

步骤4:认证服务器根据用户名获取对应的企业ID,对主密钥和企业ID进行散列运算,得到企业密钥,将企业密钥保存至缓存服务器中;

其中,企业ID是在管理员注册时,认证管理平台为该企业随机分配的企业ID,并与多个用户名建立关联并保存至缓存服务器中;

本实施例中,由于服务器种子密钥是使用企业ID进行加密的,因此当某个服务器种子密钥被破解时,其他企业的服务器种子密钥也不能够被同时破解,安全性更佳;

步骤115:认证服务器根据令牌序列号和种子生成因子,应用预设组成方式,生成第二激活响应;

本实施例中,优选的,认证服务器根据令牌标识码对种子生成因子进行加密,得到加密种子生成因子;

本步骤还包括:认证服务器获取口令生成算法,根据获取到的口令生成算法,设置算法ID,获取当前系统时间;

例如,认证服务器得到的加密种子生成因子为30750849669824758444;获取到的口令生成算法为SM3口令生成算法,则将算法ID设置为00(如果获取到的口令生成算法为AUTH口令生成算法,则将算法ID设置为01);对在线激活请求类型、激活请求ID、算法ID、令牌序列号、加密种子生成因子、用户名、企业标识和服务器系统时间进行mac校验,得到mac校验码;

进一步的,认证服务器根据在线激活请求类型、激活请求ID、算法ID、令牌序列号、加密种子生成因子、用户名、企业标识、服务器系统时间和mac校验码组成响应数据,应用预设协商密钥对响应数据进行加密,得到第二激活响应;

例如,生成的响应数据为

{"data":"pushtype":"6","reqid":"fasdcvxvdsafdsfzcxcsdfsdafcxz","algid":"00","token":"1000000010","factor":"30750849669824758444","userid":"abc","compname":"dfserv","time":"1417502589"};

应用预设协商密钥对响应数据加密后得到的第二激活响应为:

{"data":"591f86917938bb30066991c78f1e2b4c63a125ea90d8800418fa3e07dc2d1187f7c64bac023a34d7dc58dcf7c79e99fccc874de6fba79a0eb50614fe73624d69b95fd92d3cf83c1d2894355e790b2ff6dcce8892ed153681eb478521843eaf6f3a5623236754a7bb0b7d709be74d79cd57a20d4a9af495e9c84918920dc0d1f94d032fd8f2baa4e6d8c230b2802e7777a07e47fef374444b77412890c204fb729e6e10fd7fa658db115c32f713b53e1bbbba92d366c0b69e7b70a87eeb564c51","mac":"f09749aa775b9eb84c0931e7250c95ea84ec901a"};

步骤116:认证服务器通过网络数据链路将第二激活响应发送给移动终端令牌;

步骤117:移动终端令牌从第二激活响应中获取种子生成因子和令牌序列号,根据种子生成因子生成令牌种子密钥,令牌种子密钥和内置的动态因子进行计算,生成动态口令并应用令牌序列号对令牌种子密钥进行加密,得到加密令牌种子密钥,将加密令牌种子密钥和令牌序列号保存至令牌存储区中;

本步骤具体包括:移动终端令牌应用预设协商密钥对第二激活响应数据进行解密,得到响应数据,从响应数据中获取种子生成因子和令牌序列号;

本步骤,还包括:移动终端令牌从第二激活响应中获取算法ID,根据算法ID获取对应的口令生成算法,从第二激活响应中获取服务器系统时间,根据服务器系统时间计算与移动终端时间的漂移值,根据该漂移值应用选择的口令生成算法对令牌种子密钥和内置的动态因子进行计算,生成动态口令;

本步骤之前还包括:移动终端令牌从第二激活响应中获取激活请求ID,判断激活请求ID与令牌中保存的激活请求ID是否相同,如果是,则执行步骤116,否则报错,结束;

例如,手机移动终端令牌对种子生成因子进行推导,得到的令牌种子密钥为FB80ECDA5EDF464CF7715EE66A25ED079122D429;

根据算法ID获取到对应的口令生成算法为OATH时间型算法,除此之外还可以为国密时间型算法SM3算法等,生成的动态口令为179059;

步骤118:移动终端令牌根据动态口令、令牌序列号和激活请求ID生成第三激活请求;

本实施例中,优选的,移动终端令牌根据预设在线激活请求类型、激活请求ID、激活成功或失败结果、令牌版本号、令牌序列号和动态口令,生成第三激活请求;

例如,生成的第三激活请求为:

{"result":"1","reqtype":"7","otp":"179059","token":"1000000010","reqid":"fasdcvx vdsafdsfzcxcsdfsdafcxz"};

本实施例中,由于一个手机可以安装有多个令牌程序,每个令牌程序对应一个令牌序列号,移动终端令牌将令牌序列号发送至认证服务器后,认证服务器获取与该令牌序列号对应的所有信息,除此之外,也可以不上送令牌序列号,则认证服务器根据激活请求ID获取对应的所有信息;

步骤119:移动终端令牌通过网络数据链路将第三激活请求发送给认证服务器;

步骤120:认证服务器接收到第三激活请求后,从第三激活请求中获取激活请求ID,判断激活请求ID是否正确且有效,如果是则执行步骤121,否则报错,结束;

具体为:认证服务器ID与认证服务器存储区中保存的激活请求ID是否相同,如果是,则激活请求ID正确,否则激活请求ID不正确;

步骤121:认证服务器从接收到的第三激活请求中获取动态口令;

步骤122:认证服务器对服务器种子密钥和内置的动态因子进行计算,生成动态口令;

在本实施例中,具体地,认证服务器获取加密服务器种子密钥和企业密钥,应用企业密钥对加密服务器种子密钥进行解密,得到服务器种子密钥,根据服务器种子密钥生成动态口令;

例如,认证服务器根据用户名ft获取到对应的加密种子服务器密钥为:

PL96EUSWSdPP2gj8fr6m-YXBpLWE0OTJjN2Q3LmR1b3NlY3VyaXR5LmNvbQ;

获取到的企业密钥为:

1F3D4E3A12459372B837193177913782;

解密得到服务器种子密钥为:

FB80ECDA5EDF464CF7715EE66A25ED079122D429;

生成的动态口令为179059;

在本步骤之前还包括:认证服务器接收到第三激活请求后,从第三激活请求中获取激活请求ID,判断激活请求ID是否正确,如果是,则执行步骤122,否则报错,结束;

具体为:认证服务器判断激活请求ID与服务器存储区中保存的激活请求ID是否相同,如果是,则激活请求ID正确,否则激活请求ID不正确;

步骤123:认证服务器判断生成的动态口令与从第三激活请求中获取到的动态口令是否匹配,如果是,则执行步骤125,否则向移动终端令牌返回激活失败的第三激活响应,结束;

在本实施例中,步骤123之后还包括:清空缓存服务器中的数据;

具体地,认证服务器通知缓存服务器清除数据;

步骤124:认证服务器生成激活成功的第三激活响应;

具体的,认证服务器获取预设在线激活结果类型、激活时间,根据预设在线激活类型、激活请求ID、激活成功结果和激活时间生成第三激活响应;

例如,认证服务器生成激活成功的第三激活响应为:

{"pushtype":"7","reqid":"fasdcvxvdsafdsfzcxcsdfsdafcxz","result":"1","time":"1417502590"};

进一步的,本步骤还包括:认证服务器获取当前系统时间,将当前系统时间作为上次激活时间保存;

步骤125:认证服务器将第三激活响应发送至移动终端令牌;

本实施例中,认证服务器通过网络数据链路将第三激活响应发送至移动终端令牌;

步骤126:移动终端令牌接收到第三激活响应后,判断第三激活响应是否激活成功,如果是激活成功,则激活完成,结束,如果是失败响应,则激活失败,结束;

本步骤中,激活失败时还包括:显示激活失败信息;激活完成时还包括:移动终端令牌显示激活成功信息。

实施例3

本发明实施例3提供了一种推送认证过程中服务器缓存共享的方法,应用于包括应用服务器、认证服务器和移动终端令牌的系统中,包括:

参见图2,当移动终端令牌启动时,执行以下操作:

步骤a1:移动终端令牌获取内部保存的访问地址,根据访问地址与认证服务器建立网络数据链路;

具体地,在本实施例中,移动终端令牌获取内部保存的访问地址,即为内部保存的域名,例如:www.ftsafe.com.cn。移动终端令牌获取内部保存的访问地址后,请求访问访问地址,自动与认证服务器建立网络数据链路。

步骤a2:移动终端令牌将内部保存的令牌序列号发送至负载均衡器;

步骤a3:负载均衡器根据预设分配方式,将令牌序列号发送至对应的认证服务器;

本实施例中,负载均衡器根据预设负载均衡方式将令牌序列号发送至空闲的认证服务器,当负载均衡器接收到移动终端令牌发送的令牌序列号后,按照预先约定的顺序将令牌序列号发送至认证服务器,例如,按照从一到四的顺序,先将令牌序列号发送至一号认证服务器,如果一号认证服务器空闲,则一号服务器对令牌序列号进行处理,如果一号认证服务器处于工作状态,则将令牌序列号依次发送至二号认证服务器,以此类推。

步骤a4:认证服务器接收到令牌序列号后,并将令牌序列号和认证服务器IP上传至缓存服务器,将令牌序列号与网络数据链路标识建立关联,保存至认证服务器存储区;

在本实施例中,网络数据链路标识是一串编号,通过网络数据链路标识就能找到编号对应的网络数据链路。

步骤a5:缓存服务器根据接收到的令牌序列号,判断是否能够获取到与令牌序列号对应的认证服务器IP,如果是,则执行步骤a6,否则将令牌序列号和认证服务器IP对应保存,结束;

步骤a6:认证服务器根据令牌序列号从缓存服务器获取认证服务器IP,判断获取的认证服务器IP与上传至缓存服务器的认证服务器IP是否相同,如果是,则无需更新,结束,否则执行步骤a7;

步骤a7:缓存服务器根据接收到的令牌序列号和认证服务器IP,更新与令牌序列号对应的认证服务器IP,结束。

如图3和图4所示,当应用界面接收到用户输入的用户信息,并接收到用户点击确认按钮后,执行以下操作:

步骤201:应用服务器接收来自应用界面的用户信息;

本实施例中,用户信息可以为用户名,也可以为用户名和密码,本实施例以用户信息为用户名和密码为例来说明;

例如,用户信息包括:用户名:abc@test.com,密码:168408afag,用户手机号:01234567890。

本实施例中,还包括:应用服务器接收到用户信息后,判断用户名和密码是否正确,如果是,则执行步骤202,否则向应用界面返回错误信息,应用界面接收到错误信息后,输出用户信息不正确的提示信息,结束;

其中,当用户名和密码不正确时,还包括:更新验证次数,判断更新后的验证次数是否达到预设次数,如果是,则报错,否则返回步骤201;

进一步的,应用界面输出用户信息不正确的提示信息后,还包括输出提示重新输入用户信息的提示信息。

步骤202:应用服务器根据用户信息和内部保存的应用标识生成认证请求;

例如,应用界面为WEBSDK登录界面,对应的应用标识为yiwnzh-ajg。

步骤203:应用服务器采用负载均衡方式将认证请求发送至一号认证服务器;

本实施例中,以存在4台认证服务器为例来说明,再次说明,服务器可以根据需要设定足够多台的数量;

4台认证服务器分别命名为一号服务器、二号服务器、三号服务器和四号服务器,其中,4台认证服务器可以单独对缓存服务器进行增删改查的操作,当应用服务器向认证服务器发送认证请求后,按照预先约定的顺序将认证请求发送至认证服务器,例如,按照从一到四的顺序,先将认证请求发送至一号认证服务器,如果一号认证服务器空闲,则一号服务器执行认证操作,如果一号认证服务器处于工作状态,则将认证请求依次发送至二号认证服务器,以此类推;

步骤204:一号认证服务器接收到认证请求后,生成挑战值,从认证请求中获取认证请求中的用户信息和应用标识,根据用户信息从认证服务器存储区中获取对应的令牌序列号,并根据应用标识获取对应的应用信息;

本实施例中,认证服务器存储区中保存有用户信息、服务器种子密钥、应用信息和令牌序列号;

本步骤还包括:判断从认证服务器存储区中是否能够找到与应用标识对应的应用信息,如果是,则继续,否则向应用服务器返回应用未注册信息;

本实施例中,优选的,生成预设长度的挑战值,预设长度为6位十进制数据;其中,生成挑战值可以为调用随机数生成函数生成随机数,将随机数作为挑战值,也可以为:根据用户名从服务器存储区中获取对应的服务器种子密钥,对服务器种子密钥进行计算,生成挑战值;

其中,对服务器种子密钥进行计算,生成挑战值,具体为:应用预设算法对服务器种子密钥进行计算,生成长度为6位的十进制的挑战值,优选的,预设算法为SM3算法,还可以为OATH算法等;

例如,生成的挑战值为308962。

步骤205:一号认证服务器将挑战值与令牌序列号建立关联并保存至缓存服务器;

具体地,一号认证服务器将挑战值和令牌序列号发送至缓存服务。

步骤206:一号认证服务器根据接收到的令牌序列号从缓存服务器中获取对应保存的移动终端令牌的信息、认证服务器IP;

本步骤之前还包括:认证服务器调用随机数生成函数,生成随机数,将该随机数作为认证请求标识,与用户信息建立关联并保存至缓存服务器中;

进一步的,还包括:认证服务器获取当前服务器时间,将当前服务器时间作为认证请求标识的生成时间保存至服务器存储区中;

例如,认证服务器生成的认证请求标识为:

02c0e8b4-be19-49f6-aab6-273b38522cea;

认证请求标识的生成时间为1419325026;

则,根据挑战值、用户信息、令牌序列号和应用信息生成推送认证请求,具体为:获取当前服务器时间,根据挑战值、令牌序列号、用户信息、当前服务器时间、应用信息和认证请求标识生成推送认证请求;

例如,生成的推送认证请求为:

{"appname":"WEBSDK","challenge":"308962","pushtype":"1","reqid":"02c0e8b4-be19-49f6-aab6-273b38522cea","time":"1419325027","token":"1000000003","userid":"abc@test.com"}。

步骤207:一号认证服务器根据挑战值、用户信息、令牌序列号和应用信息生成推送认证请求;

步骤208:一号认证服务器判断缓存服务器中保存的认证服务器IP与一号认证服务器IP是否相同,如果是,则执行步骤209,否则执行步骤211;

本实施例中,如果一号认证服务器IP为192.168.3.28,而从缓存服务器中获取到的认证服务器IP为192.168.5.21,对应的是二号认证服务器IP,表示一号认证服务器不是与移动终端令牌建立网络数据链路的认证服务器,则执行步骤211。

步骤209:一号认证服务器根据令牌序列号从该服务器缓存中获取对应的网络数据链路标识;

步骤210:一号认证服务器将推送认证请求通过获取到的网络数据链路发送至对应的移动终端令牌,移动终端令牌执行步骤214;

步骤211:一号认证服务器将推送认证请求发送至缓存服务器中的认证服务器IP对应的二号认证服务器;

步骤212:二号认证服务器根据令牌序列号从该服务器缓存中获取对应的网络数据链路标识;

步骤213:二号认证服务器将推送认证请求通过获取到的网络数据链路发送至对应的移动终端令牌,移动终端令牌执行步骤214;

步骤214:移动终端令牌从推送认证请求中获取挑战值、用户信息和应用信息并显示,等待接收用户对显示信息的选择,如果用户选择确认登录,则执行步骤215,否则结束;

本实施例中,移动终端令牌根据挑战值、用户信息、应用信息和获取到的令牌当前时间对预设格式进行填充,得到显示信息。

步骤215:移动终端令牌对挑战值和内部保存的令牌种子密钥进行计算,生成第一应答值,根据第一应答值生成推送认证响应数据;

其中,移动终端令牌根据登录结果、令牌当前时间、认证类型、第一应答值、令牌序列号和认证请求标识生成推送认证响应数据;

例如,移动终端令牌生成的第一应答值为677165,则生成的推送认证响应数据为:

{"result":"1","time":"1419325027","reqtype":"2","otp":"677165","token":"1000000003","reqid":"02c0e8b4-be19-49f6-aab6-273b38522cea"};

其中,登录结果为1,表示为允许登录,令牌当前时间为1419325027,认证类型为2,即为推送认证类型,第一应答值为677165,令牌序列号为1000000003,认证请求标识为02c0e8b4-be19-49f6-aab6-273b38522cea。

步骤216:移动终端令牌通过网络数据链路将推送认证响应数据上送至一号认证服务器;

同样的,移动终端令牌将推送认证响应数据发送至认证服务器也是采用负载均衡的方式进行的。

步骤217:一号认证服务器从缓存服务器中获取保存的挑战值;

步骤218:一号认证服务器从推送认证响应数据中获取第一应答值,根据推送认证响应数据中的令牌序列号从服务器数据库中获取对应的服务器种子密钥;

步骤219:一号认证服务器根据挑战值和服务器种子密钥生成第二应答值,判断第一应答值和第二应答值是否匹配,如果是,则执行步骤220,否则生成认证失败响应,并将该认证失败响应返回至应用服务器,结束;

本步骤还包括:一号认证服务器将缓存服务器中保存的该次认证的数据删除,具体包括:删除挑战值、认证请求标识等;

本实施例中,当判定第一应答值和第二应答值不匹配时,还包括:一号认证服务器向应用服务器返回认证失败响应,应用服务器再将认证失败响应返回至应用界面,应用界面接收到认证失败响应后,输出认证失败信息,结束;

进一步的,当应用界面输出认证失败信息后,还可以包括:显示登录界面,继续等待接收用户输入用户信息。

步骤220:一号认证服务器生成认证成功响应,并将该认证成功响应返回至应用服务器,认证结束;

本实施例中,应用服务器接收到认证成功响应后,将认证成功响应返回至应用界面,应用界面允许用户访问应用,并显示应用登录成功后的界面,应用登录认证流程结束。

实施例4

本发明实施例4提供了一种服务器缓存共享的方法,应用于包括应用服务器、认证服务器、iCloud和移动终端令牌的系统中,包括:

参见图5,当移动终端令牌启动时,执行以下操作:

步骤b1:移动终端令牌获取内部保存的访问地址,根据访问地址与认证服务器建立网络数据链路;

步骤b2:移动终端令牌将内部保存的令牌序列号和移动终端标识发送至负载均衡器;

例如,移动终端标识为:154654541fhah;

步骤b3:负载均衡器根据预设分配方式,将令牌序列号和移动终端标识发送至对应的认证服务器;

其中,预设分配方法与实施例3中步骤a3的操作相同,在此不在赘述;

步骤b4:认证服务器接收到令牌序列号和移动终端标识后,将令牌序列号和移动终端标识发送至缓存服务器;

步骤b5:缓存服务器根据接收到的令牌序列号,判断是否能够获取到与令牌序列号对应的移动终端标识,如果是,则执行步骤b6,否则将令牌序列号和移动终端标识对应保存,结束;

步骤b6:认证服务器根据令牌号从缓存服务器获取移动终端标识,判断获取的移动终端标识与上传至缓存服务器的移动终端标识是否相同,如果是,则无需更新,结束,否则执行步骤b7;

步骤b7:缓存服务器根据接收到的令牌序列号和移动终端标识,更新与令牌序列号对应的移动终端标识,结束。

如图6所示,当应用界面接收到用户输入的用户信息,并接收到用户点击确认按钮后,执行以下操作:

步骤301:应用服务器接收来自应用界面的用户信息;

本实施例中,用户信息可以为用户名,也可以为用户名和密码,本实施例以用户信息为用户名为例来说明;

例如,用户信息包括:用户名:abc@test.com;

本实施例中,还包括:应用服务器接收到用户名后,判断从应用服务器存储区中是否能够查找到该用户名,如果是,则执行步骤302,否则向应用界面返回错误信息,应用界面接收到错误信息后,输出用户信息不正确的提示信息,结束;

进一步的,应用界面输出用户信息不正确的提示信息后,还包括输出提示重新输入有效用户信息的提示信息。

步骤302:应用服务器根据用户信息和内部保存的应用标识生成认证请求;

例如,应用界面为WEBSDK登录界面,对应的应用标识为yiwnzh-ajg。

步骤303:应用服务器采用负载均衡方式将认证请求发送至认证服务器;

本步骤与实施例3中步骤203相同,在此不再赘述。

步骤304:认证服务器接收到认证请求后生成挑战值,并将挑战值保存至缓存服务器;

本实施例中,优选的,生成预设长度的挑战值,预设长度为6位十进制数据;其中,生成挑战值可以为调用随机数生成函数生成随机数,将随机数作为挑战值,也可以为:根据用户名从服务器存储区中获取对应的服务器种子密钥,对服务器种子密钥进行计算,生成挑战值;

其中,对服务器种子密钥进行计算,生成挑战值,具体为:应用预设算法对服务器种子密钥进行计算,生成长度为6位的十进制的挑战值,优选的,预设算法为SM3算法,还可以为OATH算法等;

例如,生成的挑战值为308962。

步骤305:认证服务器从认证请求中获取认证请求中的用户信息和应用标识,根据应用标识获取对应的应用信息;

本步骤还包括:判断从服务器存储区中是否能够找到与应用标识对应的应用信息,如果是,则继续,否则向应用服务器返回应用未注册信息;

步骤306:认证服务器根据用户信息从服务器数据库中获取对应的令牌序列号;

本实施例中,服务器数据库中保存有用户信息、服务器种子密钥、应用信息和令牌序列号。

步骤307:认证服务器根据挑战值、用户信息、令牌序列号和应用信息生成推送认证请求;

本步骤之前还包括:认证服务器调用随机数生成函数,生成随机数,将该随机数作为认证请求标识,与用户信息建立关联并保存至缓存服务器中;

进一步的,还包括:认证服务器获取当前服务器时间,将当前服务器时间作为认证请求标识的生成时间保存至服务器存储区中;

例如,认证服务器生成的认证请求标识为:

02c0e8b4-be19-49f6-aab6-273b38522cea;

认证请求标识的生成时间为1419325026;

在本实施例中,根据挑战值、用户信息、令牌序列号和应用信息生成推送认证请求,具体为:获取当前服务器时间,根据挑战值、令牌序列号、用户信息、当前服务器时间、应用信息、移动终端标识和认证请求标识生成推送认证请求;

例如,生成的推送认证请求为:

{"appname":"WEBSDK","challenge":"308962","pushtype":"1","reqid":"02c0e8b4-be19-49f6-aab6-273b38522cea","time":"1419325027","token":"1000000003","userid":"abc@test.com","phoneid":"154654541fhah"}。

步骤308:认证服务器根据令牌序列号从缓存服务器中获取移动终端标识;

步骤309:认证服务器将推送认证请求存入缓存服务器;

其中,认证通知数据用于指示推送认证请求在缓存服务器中的位置。

步骤310:认证服务器根据推送认证请求生成认证通知数据;

步骤311:认证服务器将认证通知数据和移动终端标识发送至iCloud;

步骤312:iCloud根据移动终端标识,将认证通知数据发送至该移动终端标识对应的移动终端令牌中;

步骤313:移动终端令牌生成包含认证通知数据的获取推送认证请求的信息,并通过网络数据链路发送至认证服务器;

步骤314:认证服务器接收到包含认证通知数据的获取推送认证请求的信息后,从缓存服务器中获取推送请求认证;

步骤315:认证服务器将推送认证请求发送至移动终端令牌;

步骤316:移动终端令牌从推送认证请求中获取挑战值、用户信息和应用信息并显示,等待接收用户对显示信息的选择,如果用户选择确认登录,则执行步骤317,否则结束;

本实施例中,移动终端令牌根据挑战值、用户信息、应用信息和获取到的令牌当前时间对预设格式进行填充,得到显示信息。

步骤317:移动终端令牌对挑战值和内部保存的令牌种子密钥进行计算,生成第一应答值,根据第一应答值生成推送认证响应数据;

其中,移动终端令牌根据登录结果、令牌当前时间、认证类型、第一应答值、令牌序列号和认证请求标识生成推送认证响应数据;

例如,移动终端令牌生成的第一应答值为677165,则生成的推送认证响应数据为:

{"result":"1","time":"1419325027","reqtype":"2","otp":"677165","token":"1000000003","reqid":"02c0e8b4-be19-49f6-aab6-273b38522cea"};

其中,登录结果为1,表示为允许登录,令牌当前时间为1419325027,认证类型为2,即为推送认证类型,第一应答值为677165,令牌序列号为1000000003,认证请求标识为02c0e8b4-be19-49f6-aab6-273b38522cea。

步骤318:移动终端令牌通过网络数据链路将推送认证响应数据上送至认证服务器;

步骤319:认证服务器从缓存服务器中获取保存的挑战值;

步骤320:认证服务器从推送认证响应数据中获取第一应答值,并根据认证响应数据中的令牌序列号从服务器数据库中获取对应的服务器种子密钥;

步骤321:认证服务器根据挑战值和服务器种子密钥生成第二应答值,判断第一应答值和第二应答值是否匹配,如果是,则执行步骤322,否则结束;

本步骤还包括:一号认证服务器将缓存服务器中保存的该次认证的数据删除,具体包括:删除挑战值、认证请求标识等;

本实施例中,当判定第一应答值和第二应答值不匹配时,还包括:一号认证服务器向应用服务器返回认证失败响应,应用服务器再将认证失败响应返回至应用界面,应用界面接收到认证失败响应后,输出认证失败信息,结束;

进一步的,当应用界面输出认证失败信息后,还可以包括:显示登录界面,继续等待接收用户输入用户信息。

步骤322:认证服务器生成认证成功响应,并将该认证成功响应返回至应用服务器,认证结束。

本实施例中,应用服务器接收到认证成功响应后,将认证成功响应返回至应用界面,应用界面允许用户访问应用,并显示应用登录成功后的界面,应用登录认证流程结束。

实施例5

本发明实施例5提供了一种简单挑战过程中服务器数据存储空间共享的方法,应用于包括应用服务器、认证服务器和移动设备令牌的系统中,如图7所示,包括:

步骤401:应用服务器接收来自应用界面的用户信息;

本实施例中,用户信息可以为用户名,也可以为用户名和密码,本实施例以用户信息为用户名为例来说明;

例如,用户信息包括:用户名:abc@test.com;

本实施例中,还包括:应用服务器接收到用户名后,判断从应用服务器存储区中是否能够查找到该用户名,如果是,则执行步骤302,否则向应用界面返回错误信息,应用界面接收到错误信息后,输出用户信息不正确的提示信息,结束;

进一步的,应用界面输出用户信息不正确的提示信息后,还包括输出提示重新输入有效用户信息的提示信息。

步骤402:应用服务器根据用户信息和内部保存的应用标识生成认证请求;

例如,应用界面为WEBSDK登录界面,对应的应用标识为yiwnzh-ajg。

步骤403:应用服务器采用负载均衡方式将认证请求发送至认证服务器;

步骤404:认证服务器接收到认证请求后,从认证请求中获取认证请求中的用户信息和应用标识,根据用户信息从认证服务器存储区中获取对应的令牌序列号,并根据应用标识获取对应的应用信息;

本步骤还包括:判断从服务器存储区中是否能够找到与应用标识对应的应用信息,如果是,则继续,否则向应用服务器返回应用未注册信息;

本实施例中,优选的,生成预设长度的挑战值,预设长度为6位十进制数据;其中,生成挑战值可以为调用随机数生成函数生成随机数,将随机数作为挑战值,也可以为:根据用户名从服务器存储区中获取对应的服务器种子密钥,对服务器种子密钥进行计算,生成挑战值;

其中,对服务器种子密钥进行计算,生成挑战值,具体为:应用预设算法对服务器种子密钥进行计算,生成长度为6位的十进制的挑战值,优选的,预设算法为SM3算法,还可以为OATH算法等;

例如,生成的挑战值为308962。

步骤405:认证服务器生成挑战值,并将令牌序列号、挑战值发送到缓存服务器;

具体地,在本实施例中,令牌序列号和挑战值以“令牌序列号:挑战值”列表的形式发送到缓存服务器。

步骤406:认证服务器根据挑战值、令牌序列号、用户信息和应用名称生成推送认证请求;

本步骤之前还包括:认证服务器调用随机数生成函数,生成随机数,将该随机数作为认证请求标识,与用户信息建立关联并保存至缓存服务器中;

进一步的,还包括:认证服务器获取当前服务器时间,将当前服务器时间作为认证请求标识的生成时间保存至服务器存储区中;

例如,认证服务器生成的认证请求标识为:

02c0e8b4-be19-49f6-aab6-273b38522cea;

认证请求标识的生成时间为1419325026;

则,根据挑战值、用户信息、令牌序列号和应用信息生成推送认证请求,具体为:获取当前服务器时间,根据挑战值、令牌序列号、用户信息、当前服务器时间、应用信息、移动终端标识和认证请求标识生成推送认证请求;

例如,生成的推送认证请求为:

{"appname":"WEBSDK","challenge":"308962","pushtype":"1","reqid":"02c0e8b4-be19-49f6-aab6-273b38522cea","time":"1419325027","token":"1000000003","userid":"abc@test.com","phoneid":"154654541fhah"}。

步骤407:认证服务器根据令牌序列号从该服务器缓存中获取对应的网络数据链路标识;

步骤408:认证服务器将推送认证请求通过获取到的网络数据链路发送至对应的移动终端令牌;

步骤409:移动终端令牌从推送认证请求中获取挑战值、用户信息和应用信息并显示,等待接收用户对显示信息的选择,如果用户选择确认登录,则执行步骤410,否则结束;

本实施例中,移动终端令牌根据挑战值、用户信息、应用信息和获取到的令牌当前时间对预设格式进行填充,得到显示信息。

步骤410:移动终端令牌对挑战值和内部保存的令牌种子密钥进行计算,生成第一应答值,根据第一应答值生成推送认证响应数据;

其中,移动终端令牌根据登录结果、令牌当前时间、认证类型、第一应答值、令牌序列号和认证请求标识生成推送认证响应数据;

例如,移动终端令牌生成的第一应答值为677165,则生成的推送认证响应数据为:

{"result":"1","time":"1419325027","reqtype":"2","otp":"677165","token":"1000000003","reqid":"02c0e8b4-be19-49f6-aab6-273b38522cea"};

其中,登录结果为1,表示为允许登录,令牌当前时间为1419325027,认证类型为2,即为推送认证类型,第一应答值为677165,令牌序列号为1000000003,认证请求标识为02c0e8b4-be19-49f6-aab6-273b38522cea。

步骤411:移动终端令牌通过网络数据链路将推送认证响应数据上送至认证服务器;

步骤412:认证服务器获取到客户端推送认证响应数据,从推送认证响应数据中获取第一应答值,根据认证响应数据中的令牌号,从缓存服务器中获取保存的挑战值;

在本实施例中,推送认证响应数据中有认证标识,从中取得缓存服务器中的“令牌序列号:挑战值”列表,根据认证响应数据中的令牌号,从“令牌序列号:挑战值”列表中取得挑战值。

步骤413:认证服务器用认证响应数据中的令牌序列号取得认证服务器中的种子密钥;

步骤414:认证服务器根据挑战值和服务器种子密钥生成第二应答值,判断第一应答值和第二应答值是否匹配,如果是,则执行步骤415,否则结束;

本步骤还包括:一号认证服务器将缓存服务器中保存的该次认证的数据删除,具体包括:删除推送认证响应数据、挑战值、“令牌序列号:挑战值”列表、认证请求标识等;

本实施例中,当判定第一应答值和第二应答值不匹配时,还包括:一号认证服务器向应用服务器返回认证失败响应,应用服务器再将认证失败响应返回至应用界面,应用界面接收到认证失败响应后,输出认证失败信息,结束;

进一步的,当应用界面输出认证失败信息后,还可以包括:显示登录界面,继续等待接收用户输入用户信息。

步骤415:认证服务器生成认证成功响应,并将该认证成功响应返回至应用服务器,认证结束。

本实施例中,应用服务器接收到认证成功响应后,将认证成功响应返回至应用界面,应用界面允许用户访问应用,并显示应用登录成功后的界面,应用登录认证流程结束。

本发明中,除实施例中的传输方式外,应用界面与应用服务器、应用服务器与认证服务器、认证服务器与终端令牌之间的通信数据是经过双方预先协商的算法和密钥处理过的;进一步的,它们之间的通信数据还可以包含长度和校验位,接收方通过通信数据中的长度和校验位判断接收到的通信数据是否正确,若正确则进行正常操作流程,若不正确则通知发送方数据错误,发送方重新发送通信数据;更进一步地,它们之间的通信数据还可以进行网络加密或者采用私密软件传输等,以保证应用服务器和应用界面之间的通信数据的安全性。

实施例6

本发明实施例6提供了一种服务器数据存储空间共享的装置,如图8所示,包括:

第一接收模块101,用于接收应用服务器发送的认证请求;

第一生成模块102,用于当第一接收模块101接收到应用服务器发送的认证请求时,生成挑战值;

第一获取模块103,用于获取认证请求中的用户信息;

第一查找模块104,用于查找与用户信息对应的令牌序列号;

第二生成模块105,用于根据第一生成模块102生成的挑战值、第一获取模块103获取到的用户信息以及第一查找模块104查找到的令牌序列号生成推送认证请求;

第一发送模块106,用于发送推送认证请求至移动终端令牌;

第一保存模块107,用于将第一生成模块102生成的挑战值与第一查找模块104查找到的令牌序列号对应保存至缓存服务器;

第二接收模块108,用于接收移动终端令牌发送的推送认证响应;

第二查找模块109,用于查找移动终端令牌对应的服务器种子密钥;

第二获取模块110,用于根据第一查找模块104得到的令牌序列号从缓存服务器获取挑战值;

第三生成模块111,用于根据第二查找模块109查找到的服务器种子密钥以及第二获取模块110获取到的挑战值生成应答值;

第一判断模块112,用于判断第三生成模块111生成的应答值与第二接收模块108接收到的推送认证响应中的应答值是否匹配;

第二发送模块113,用于当第一判断模块112判断第三生成模块111生成的应答值与第二接收模块108接收到的推送认证响应中的应答值匹配成功时,向应用服务器发送认证成功响应;

第三发送模块114,用于当第一判断模块112判断第三生成模块111生成的应答值与第二接收模块108接收到的推送认证响应中的应答值匹配失败时,向应用服务器发送认证失败响应。

具体地,本实施例中的装置还包括:第三获取模块,用于获取认证请求中的应用标识;

第四获取模块,用于根据第三获取模块获取到的应用标识获取应用信息;

进一步地,在本实施例中,第二生成模块105,具体用于:根据第一生成模块102生成的挑战值、第一获取模块103获取到的用户信息、第一查找模块104查找到的令牌序列号以及第四获取模块获取到的应用信息成推送认证请求。

在本实施例中,装置还包括:第五获取模块、第二判断模块第四发送模块和第五发送模块;

第五获取模块,用于装置根据令牌序列号从缓存服务器中获取对应的认证服务器IP;

第二判断模块,用于判断装置IP与第五获取模块获取到的IP是否相同;

第四发送模块,用于第二判断模块判断装置IP与第五获取模块获取到的认证服务器IP相同时,将推送认证请求发送至移动终端令牌;

第五发送模块,用于第二判断模块判断装置IP与第五获取模块获取到的认证服务器IP不相同时,将推送认证请求发送至第五获取模块获取到的认证服务器IP对应的装置;

第六接收模块,用于接收另一装置发送的推送认证请求;

第六发送模块,用于当第六接收模块接收另一装置发送的推送认证请求时,将推送认证请求发送至移动终端令牌。

具体地,在本实施例中,装置还包括::第七接收模块和第二保存模块;

第七接收模块,用于接收移动终端令牌发送的令牌序列号;

第二保存模块,用于当接收到移动终端令牌发送的令牌序列号时,装置将自身IP和令牌序列号建立关联保存至缓存服务器。

进一步地,在本实施例中,装置还包括:第七获取模块、第八获取模块、第一对比模块和第一更新模块;

第七获取模块,用于根据令牌序列号获取装置IP;

第八获取模块,用于根据令牌序列号从缓存服务器中获取装置IP;

第一对比模块,用于对比第七获取模块获取的装置IP与第八获取模块获取的装置IP是否相同;

第一更新模块,用于当第一对比模块对比第七获取模块获取的装置IP与第八获取模块获取的装置IP不同时,更新与令牌序列号建立关联的装置IP,结束。

具体地,在本实施例中,装置还包括:第四生成模块、第七发送模块、第九获取模块、第十获取模块和第八发送模块;

第四生成模块,用于发送推送认证请求至缓存服务器并生成认证通知数据;

第七发送模块,用于将第四生成模块生成的认证通知数据发送至移动终端令牌;

第九获取模块,用于当接收到移动终端令牌返回的获取推送认证请求的信息后,从获取推送认证请求的信息中获取令牌序列号;

第十获取模块,用于根据第九获取模块中获取的令牌序列号,从缓存服务器中获取推送认证请求;

第八发送模块,用于将第十获取模块获取的推送请求认证发送至移动终端令牌。

更进一步地,在本实施例中,第七发送模块,具体包括:第一获取单元和第一发送单元;

第一获取单元,用于根据令牌序列号从缓存服务器获取移动终端标识;

第一发送单元,用于将认证通知数据和移动终端标识发送至iCloud,iCloud根据移动终端标识将认证通知数据发送至移动终端标识对应的移动终端令牌。

具体地,在本实施例中还包括:第三保存模块;

第三保存模块,用于当接收到移动终端令牌发送的令牌序列号和移动终端标识时,将令牌序列号和移动终端标识建立关联保存至缓存服务器。

对应地,在本实施例中,装置还包括:第十一获取模块、第十二获取模块、第二对比模块和第二更新模块

第十一获取模块,用于当第三保存模块将令牌序列号和移动终端标识建立关联保存至缓存服务器后,根据令牌序列号获取移动终端标识;

第十二获取模块,用于根据令牌序列号从缓存服务器中获取对应的移动终端标识;

第二对比模块,用于对比第十一获取模块和第十二获取模块获取的移动终端标识是否相同;

第二更新模块,用于当第二对比模块对比第十一获取模块和第十二获取模块获取的移动终端标识不同时,更新与令牌序列号建立关联的移动终端标识,结束。

在本实施例中,装置还包括:建立模块,用于当接收到移动终端令牌发送的令牌序列号时,装置和移动终端令牌建立网络数据链路。

在本实施例中,装置还包括:第十三获取模块和第四保存模块;

第十三获取模块,用于建立模块建立网络数据链路后,获取移动终端令牌对应的网络数据链路标识;

第四保存模块,用于将网络数据链路标识和令牌序列号建立关联保存至装置的存储区。

具体地,在本实施例中,装置还包括:第十四获取模块;

第十四获取模块,用于根据令牌序列号从装置的存储区中获取对应的网络数据链路标识,并根据网络数据链路标识获取对应的网络数据链路;

进一步地,第一发送模块106,具体用于:根据第十四获取模块获取的网络数据链路标识获取对应的网络数据链路,通过网络数据链路发送推送认证请求至移动终端令牌。

更进一步地,在本实施例中,在第一保存模块107,具体用于:发送存储挑战值的请求至缓存服务,缓存服务按照预设的存储规则将挑战值和令牌序列号存储至缓存服务器的列表中;

更进一步地,在本实施例中,第二获取模块110,具体用于:发送获取挑战值的请求至缓存服务,缓存服务根据令牌序列号从缓存服务器的列表中查询令牌序列号对应的挑战值,并返回给认证服务器。

可选地,在本实施例中,装置还包括:设置模块;

设置模块,用于设置挑战值保存在缓存服务器的有效时间,当挑战值超过在缓存服务器的有效时间时,缓存服务器将挑战值删除。

可选地,在本实施例中,装置还可以包括:删除模块;

删除模块,用于第一判断模块判断生成的应答值与推送认证响应中的应答值是否匹配之后,将缓存服务器中保存的与令牌序列号对应的挑战值删除。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号