首页> 中国专利> 一种终端应用正版的认证方法及系统

一种终端应用正版的认证方法及系统

摘要

本发明公开了一种终端应用正版的认证方法,包括步骤:终端应用发送访问请求至业务服务器;业务服务器接收访问请求,并通过认证服务器对终端应用进行认证,若认证通过,则判断终端应用为正版,响应终端应用的访问请求;否则,判断终端应用为盗版,拒绝终端应用的访问请求;另一方面,还公开了一种终端应用正版的认证系统,包括终端,终端应用、业务服务器及认证服务器,终端应用位于终端上,业务服务器分别与终端应用和认证服务器通信连接;其中:终端应用包括第一信息收发模块,业务服务器包括第二信息收发模块,及与第二信息收发模块相连的信息验证模块。通过本发明,大大增强了终端应用正版认证的安全性,有效维护了广大正版终端应用的权益。

著录项

  • 公开/公告号CN106549957A

    专利类型发明专利

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

    原文格式PDF

  • 申请/专利权人 上海众人网络安全技术有限公司;

    申请/专利号CN201610946981.8

  • 申请日2016-10-26

  • 分类号H04L29/06(20060101);

  • 代理机构上海硕力知识产权代理事务所;

  • 代理人郭桂峰

  • 地址 201821 上海市嘉定区叶城路1411号4幢211室

  • 入库时间 2023-06-19 01:52:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-31

    授权

    授权

  • 2019-11-22

    著录事项变更 IPC(主分类):H04L29/06 变更前: 变更后: 申请日:20161026

    著录事项变更

  • 2017-04-26

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

    实质审查的生效

  • 2017-03-29

    公开

    公开

说明书

技术领域

本发明属于通信技术领域,尤其涉及一种终端应用正版的认证方法及系统。

背景技术

随着手机应用的发展,企业中开发官方手机应用的开发者的数量也越来也多。有些“居心不良”的开发者在开发企业应用的过程中,会特别记录企业业务服务器的通讯协议,访问方法等。在掌握这些信息后,这些“居心不良”的开发者会在私下里进行“盗版手机应用”的开发。

因盗版手机应用的访问方法和通讯协议与官方企业应用完全一致,所以服务器无法分辨盗版应用的访问,同样会给予盗版应用提供业务服务。如此以来盗版手机应用不用花费服务成本,就具有了与官方手机应用相同的功能。

盗版手机应用上市后通过提供与官方企业应用相同的服务而获利。然而盗版手机应用消耗的是官方企业服务器的资源,分流的是企业原本应有的用户。最终盗版手机应用会对企业造成非常大的经济损失。

有些企业,要求在业务请求中必须加入发送请求的手机应用的特征信息。服务器每次比对请求中的特征信息来判断当前发送请求的应用是否是盗版应用。然而请求报文是手机应用主动发送的,盗版应用的开发者可以截取官方应用发送的请求报文,解析出其中代表合法手机应用的特征信息的数据段,再将合法特征信息数据“粘贴”到盗版应用的请求报文中。从而使盗版应用伪装成官方应用,依然可以正常访问企业业务服务。其它的终端应用中也同样存在这些问题。

发明内容

本发明提供一种终端应用正版的认证方法,用以解决现有技术中存在的在企业业务服务访问方法完全暴露的情况下,如何验证发送业务请求的终端应用的合法性问题。

本发明一种终端应用正版的认证方法,包括以下步骤:

S100所述终端应用发送访问请求至业务服务器;

S200所述业务服务器接收所述访问请求,并通过认证服务器对所述终端应用进行认证,若认证通过,则执行步骤S300;否则,执行步骤S400;

S300判断所述终端应用为正版,响应所述终端应用的访问请求;

S400判断所述终端应用为盗版,拒绝所述终端应用的访问请求。

通过采用认证机制,对终端应用进行认证,拒绝盗版终端应用的访问,保护了正版终端应用的合法权益。

进一步的,在所述终端和认证服务器中分别存储有与终端应用关联的安全插件,用以实现认证服务器对所述终端应用的正版认证,所述安全插件中包含与所述终端应用关联的运算算法。

进一步的,在步骤S200中,所述业务服务器通过认证服务器对终端应用进行认证的步骤具体包括:

S210所述终端中的安全插件获取所述终端应用的特征信息;

S220所述终端中的安全插件将所述认证服务器下发的挑战码及获取的所述终端应用的特征信息作为计算因子,使用运算算法进行运算生成动态认证码,并返回给所述终端应用;

S230所述终端应用将含有所述动态认证码的认证请求发送至业务服务器;

S240所述业务服务器提取所述认证请求中的动态认证码,并向所认证服务器发起动态校验码生成请求;

S250所述认证服务器中的安全插件将所述挑战码及预存的合法终端应用的特征信息作为计算因子,使用运算算法进行运算生成动态校验码,并返回给所述业务服务器;

S260所述业务服务器比较所述动态校验码与所述动态认证码是否一致,若是则执行步骤S300;否则,执行步骤S400。

通过安全插件实现动态认证,终端和认证服务器端均安装安全插件,双方通过采用终端应用的特征信息和挑战码获得动态口令,由于终端的安全插件是通过主动获取终端应用的特征信息,从而盗版者很难伪造,另外,认证服务器端的安全插件则是取预存的合法终端应用特征信息;因此,业务服务器只需比较二者口令是否一致,即可判断出所述终端应用的特征信息是否一致,从而判断出该终端应用是否是正版。

进一步的,所述安全插件中包含的运算算法与所述终端应用的特征信息相关,当所述合法终端应用的版本进行更新后,所述认证服务器中的安全插件根据存储的终端应用的新特征信息得到运算算法的步骤包括:

S010根据获得的新的终端应用特征信息生成随机数,并将所述随机数设定为密钥参数;

S020根据所述密钥参数,通过一预设重构机制重构运算算法。

安全插件中的算法并不是一成不变的,终端应用的版本变更,通过算法重构机制也可以使得算法相应发生变更,从而更加增强了安全性。

进一步的,在所述步骤S100中,所述终端应用发送的所述访问请求中包括所述终端应用所在的终端MAC地址信息;

在步骤S200中,所述业务服务器通过所述认证服务器对所述终端应用进行认证之前,还包括所述认证服务器根据所述业务服务器提交的所述终端应用所在的MAC地址信息得到运算算法并编译成安全插件的步骤,具体包括:

S030根据接收的所述终端应用所在的MAC地址信息生成随机数,并将所述随机数设定为密钥参数;

S040根据所述密钥参数,通过一预设重构机制将预设的算法进行重构;

S050将接收到的应用信息和重构后的运算算法一并编译得到安全插件并将其下发至所述终端应用。

终端应用所在的终端不同,从而算法也不一样,该终端在第一次访问业务服务器的时候,可通过认证服务器获得安全插件,该安全插件包含有该终端MAC地址相关的唯一的算法。

进一步的,在所述步骤S030中,通过对一预设重构机制重构运算算法至少包括以下一个步骤:

031根据所述密钥参数,确定重构后的运算算法的运算顺序;

032根据所述密钥参数,确定重构后的运算算法的分组数据块的结构以及所述分组数据块的运算顺序;

033根据所述密钥参数,确定重构后的运算算法中的固定参数。

进一步的,当所述合法终端应用的版本进行更新后,所述终端中的安全插件通过上述步骤S010、S020同样的方法获得重构后的运算算法。

进一步的,在所述步骤S260包括步骤:

S261所述业务服务器比较所述动态校验码与所述动态认证码是否一致,若是,则执行步骤S300;否则执行步骤S262;

S262所述业务服务器向所述认证服务器发起旧版动态校验码的生成请求;

S263所述认证服务器的安全插件将所述挑战码及预存的旧版合法终端应用的特征信息作为计算因子,使用重构前的旧算法进行运算得到旧版动态校验码,并返回给所述业务服务器;

S264所述业务服务器比较得到的所述旧版动态校验码与所述动态认证码是否一致,若是,则执行步骤S265;否则执行步骤S400;

S265判断所述终端应用为旧版正版。

终端应用更新后,认证服务器端也会相应存储更新后的终端应用的特征信息,从而认证服务器端的安全插件也会相应更新,而如果位于终端的终端应用未能及时更新的话,则很可能被误判为盗版。因此,

进一步的,所述终端应用的特征信息包括:所述终端应用的程序文件摘要、所述终端应用的资源文件摘要、所述终端应用的包名、或所述终端应用的签名。

另一方面,本发明还提供了一种终端应用正版的认证系统,包括终端、业务服务器及认证服务器,所述终端上有终端应用,所述业务服务器分别与所述终端和所述认证服务器通信连接;其中:所述终端应用包括第一信息收发模块,所述业务服务器包括第二信息收发模块,及与所述第二信息收发模块相连的信息验证模块;其中:

所述终端应用的第一信息收发模块发送访问请求至所述业务服务器;

所述业务服务器的第二信息收发模块接收到所述访问请求后,所述信息验证模块通过所述认证服务器对所述终端应用进行认证;若认证通过,则判断所述终端应用为正版,响应所述终端应用的访问请求;否则,判断所述终端应用为盗版,拒绝所述终端应用的访问请求。

在终端应用访问服务器中,增加认证机制,根据认证结果判断终端应用是否是正版,维护了正版终端应用的利益。

进一步的,所述终端和所述认证服务器中均存储有与终端应用关联的安全插件,所述终端安全插件和所述认证服务器中的安全插件中均包含与所述终端应用关联的运算算法;

所述终端中的安全插件与所述终端应用相连,所述安全插件包括:获取模块、及与所述获取模块相连的动态认证码生成模块;

所述业务服务器还包括提取模块,所述提取模块分别与所述信息验证模块和第二信息收发模块相连;

所述认证服务器包括:第三信息收发模块、存储模块、安全插件,所述安全插件分别与所述第三信息收发模块、存储模块相连;且所述安全插件包括获取模块、及与所述获取模块相连的动态校验码生成模块;

其中:所述业务服务器通过所述认证服务器对所述终端应用进行认证包括:

所述终端中的安全插件的获取模块获取所述终端应用的特征信息;

所述终端中的安全插件的动态认证码生成模块将所述认证服务器下发的挑战码及所述获取模块获取的所述终端应用的特征信息作为计算因子,使用运算算法进行运算生成动态认证码,并返回给所述终端应用;

所述终端应用的第一信息收发模块将含有所述动态认证码的认证请求发送至业务服务器;

所述业务服务器提取模块从所述认证请求中提取所述动态认证码,所述第二信息收发模块发送动态校验码生成请求至所述认证服务器的第三信息收发模块;

所述认证服务器中的安全插件的获取模块从所述认证服务器的存储模块中获取所述合法终端应用的特征信息,所述认证服务器中的安全插件的动态校验码生成模块将所述合法终端应用的特征信息及所述挑战码作为计算因子,使用运算算法进行运算生成动态校验码,并返回给所述业务服务器;

所述业务服务器的信息验证模块比较所述动态校验码与所述动态认证码是否一致,若是则判断所述终端应用为正版,响应所述终端应用的访问请求;否则,判断所述终端应用为盗版,拒绝所述终端应用的访问请求。

终端应用的特征信息是由终端的安全插件主动静默获取的,所以盗版终端应用无法伪造特征数据。在“动态认证码”的计算过程中代入了终端应用特征数据,所以只有发送请求的手机应用的特征数据与服务器配置的“合法手机应用特征数据”完全相同才能通过认证。且“动态认证码”具有认证一次就失效的特点,所以合法终端应用的认证请求报文无法被重放。

进一步的,所述认证服务器中的安全插件还包括随机数生成模块、算法重构模块,所述随机数生成模块分别与所述算法重构模块、获取模块相连,其中:

当所述合法终端应用的版本进行更新后,所述认证服务器中的安全插件根据所述存储模块存储的终端应用的新特征信息得到运算算法包括:

所述随机数生成模块根据所述获取模块从所述存储模块中获取的终端应用新特征信息生成随机数,并将所述随机数设定为密钥参数;

所述算法重构模块根据所述密钥参数,通过一预设重构机制重构运算算法;

所述通过一预设重构机制重构运算算法包括:根据密钥参数改变预设算法的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的分组数据块的结构及对应分组数据块的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的固定参数得到运算算法。

进一步的,所述终端中的安全插件同样包括随机数生成模块、算法重构模块,所述随机数生成模块分别与所述算法重构模块、获取模块相连,其中:

当所述合法终端应用的版本进行更新后,所述终端中的安全插件根据所述终端应用的新特征信息得到运算算法包括:

所述随机数生成模块根据所述获取模块获取的所述终端应用新特征信息生成随机数,并将所述随机数设定为密钥参数;

所述算法重构模块根据所述密钥参数,通过一预设重构机制重构运算算法;

所述通过一预设重构机制重构运算算法包括:根据密钥参数改变预设算法的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的分组数据块的结构及对应分组数据块的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的固定参数得到运算算法。

进一步的,所述认证服务器还包括插件更新模块,所述插件更新模块分别与所述安全插件、存储模块、及第三信息收发模块相连,其中:

所述插件更新模块将所述存储模块存储的终端应用的新特征信息及所述安全插件中所述算法重构模块重构后的运算算法对所述安全插件进行更新,并将所述更新后的安全插件通过所述第三信息收发模块发送给所述终端。

进一步的,所述终端应用的特征信息包括:所述终端应用的程序文件摘要、所述终端应用的资源文件摘要、所述终端应用的包名、或所述终端应用的签名。

本发明有益效果如下:

首先,在本发明提供的终端应用正版方法及其系统中,终端应用申请访问业务服务器时,业务服务器通过认证服务器对终端应用进行认证,只有认证通过才可访问,从而保护正版应用的合法权益。在认证的过程中,认证服务器生成一个随机数作为挑战码下发给终端应用,终端应用通过挑战应答模式,将挑战码和主动获取的终端应用特征信息作为计算因子,生成动态认证码,由于动态认证码具有使用一次就一次就失效的特点,所以合法手机应用的业务请求报文无法被重放。此外,由于终端应用的特征信息是由安全插件主动静默获取的,所以盗版终端应用无法伪造特征数据。动态认证码的计算过程中代入了终端应用特征数据,所以只有发送请求的终端应用的特征数据与服务器配置的“合法终端应用特征数据”完全相同才能通过认证。

其次,可根据更新后的终端应用的新的特性信息重构安全插件中的算法,使得算法并不是一成不变的,可根据终端应用版本的更新而发生变化,从而大大提高了安全性能,不容易被破解。或者,可根据终端应用所在的终端的MAC地址来重构安全插件中的算法,从而使每个终端的安全插件都有一个唯一的算法,即使某一终端中安装的安全插件中的运算算法被破解了,也不会影响其他终端的安全性能。

附图说明

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

图1为本发明一种终端应用正版的认证方法实施例一流程图;

图2为本发明认证方法另一实施例中业务服务器通过认证服务器对终端应用进行认证的方法流程图;

图3本发明认证方法另一实施例中业务服务器对认证码校验的方法流程图;

图4为本发明一种终端应用正版的认证方法的另一种实施方式示意图;

图5为本发明一种终端应用正版的认证系统一种实施例示意图;

图6为本发明一种终端应用正版的认证系统另一种实施例示意图。

附图标号说明:

100-终端,110-终端应用,120-安全插件,111-第一信息收发模块,121-获取模块,122-动态认证码生成模块,200-业务服务器,210-第二信息收发模块,220-信息验证模块,230-提取模块,300-认证服务器,310-第三信息收发模块,320-安全插件,330-存储模块,321-获取模块,322-动态校验码生成模块。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

一方面,本发明提供了一种终端应用正版的认证方法,如图1所示,包括以下步骤:

S100所述终端应用发送访问请求至业务服务器;

S200所述业务服务器接收所述访问请求,并通过认证服务器对所述终端应用进行认证,若认证通过,则执行步骤S300;否则,执行步骤S400;

S300判断所述终端应用为正版,响应所述终端应用的访问请求;

S400判断所述终端应用为盗版,拒绝所述终端应用的访问请求。

在具体的实施例中,上述终端应用为手机或电脑的应用程序,现有技术中,知晓手机应用的访问方法和通讯协议后,盗版应用很容易伪装成正版应用,而获得服务器的服务。而本实施例增加了安全认证这一步骤,业务服务器结合认证服务器对访问的手机应用进行认证,从而区分出正版、盗版,维护官方应用的合法权益。

较佳的,在上述实施例一的基础上,在所述终端和认证服务器中分别存储有与终端应用关联的安全插件,用以实现认证服务器对所述终端应用的正版认证,所述安全插件中包含与所述终端应用关联的运算算法。更具体来说,如图2所示,在步骤S200中,所述业务服务器通过认证服务器对终端应用进行认证的步骤具体包括:

S210所述终端中的安全插件获取所述终端应用的特征信息;

S220所述终端中的安全插件将所述认证服务器下发的挑战码及获取的所述终端应用的特征信息作为计算因子,使用运算算法进行运算生成动态认证码,并返回给所述终端应用;

S230所述终端应用将含有所述动态认证码的认证请求发送至业务服务器;

S240所述业务服务器提取所述认证请求中的动态认证码,并向所认证服务器发起动态校验码生成请求;

S250所述认证服务器中的安全插件将所述挑战码及预存的合法终端应用的特征信息作为计算因子,使用运算算法进行运算生成动态校验码,并返回给所述业务服务器;

S260所述业务服务器比较所述动态校验码与所述动态认证码是否一致,若是则执行步骤S300;否则,执行步骤S400。

S300判断所述终端应用为正版,响应所述终端应用的访问请求;

S400判断所述终端应用为盗版,拒绝所述终端应用的访问请求。

在这一过程中,终端的安全插件根据挑战码生成动态认证码具体包括:业务服务器在接收到终端应用的访问请求后,告知认证服务器,认证服务器生成一个随机数,作为挑战码下发给终端应用,终端应用调用安全插件,该安全插件主动获取终端应用的特征信息,结合认证服务器下发的终端应用,使用内置的运算算法生成动态认证码,返回给终端应用;终端应用向业务服务器发起认证请求,该认证请求中包含了安全插件生成的动态认证码;业务服务器在收到认证请求后,把动态认证码提取出来,并向认证服务器申请生成动态校验码;认证服务器的安全插件根据挑战码及认证服务器上预存的合法终端应用的特征信息,使用同样的算法生成动态校验码,然后返回给业务服务器,业务服务器收到动态校验码后,比较提取的动态认证码与接收的动态校验码是否一致,如果一致的话,则认为请求访问的终端应用是正版,合法的。不一致的话,则说明请求访问的终端应用的特征信息肯定不一致,那么该终端应用是盗版,不合法。由于终端中安装了安全插件,而安全插件是主动静默去获取终端应用的特征信息,所以,盗版的手机应用无法伪造特征数据。且动态认证码具有认证一次就失效的特点,所以合法手机应用的业务请求报文无法被重放,安全性更高。

在具体实施例中,上述安全插件为提供终端密码体制服务的软件包,内置与终端应用关联的运算算法和应用信息,具体,若终端为android系统,则以so库的形式存在;若终端为ios系统,则以zip压缩包的形式存在。根据此,在安全插件生成动态认证码之前,首先对终端的运行环境进行检测,包括检测安全插件是否ROOT、检测应用APP的完整性、检测安全插件的完整性、检测设备的硬件信息等,只有运行环境满足条件,才进入后续的步骤,否则提示用户对运行环境进行检查。

为了使安全系数更高,安全插件里的算法可以进行重构,具体的,如果我们的终端应用的版本更新了,那么终端应用的特征信息也会相应的进行更新,那么所述认证服务器中的安全插件根据存储的终端应用的新特征信息得到一新的运算算法,首先,根据获得的新的终端应用特征信息生成随机数,并将所述随机数设定为密钥参数;随后根据所述密钥参数,通过一预设重构机制重构运算算法,从而获得了一新算法。

而终端上安全插件的更新,同样可以通过主动获取终端应用的新特征信息,同样根据获得的新的终端应用新特征信息生成随机数,并将所述随机数设定为密钥参数,随后根据所述密钥参数,通过同样的预设重构机制重构出运算算法,获得新算法。

当然,终端的安全插件还有一种更新方式,就是当认证服务器的插件更新重构后,认证服务器再将更新后的安全插件发送给终端,从而使终端获得更新后的安全插件。

如此,终端应用每更新一次版本,安全插件的算法也都不一样,大大增强了安全性,盗版者更加难以破解。

较佳的,我们也可以根据不同的终端,使用不同的算法,具体的,所述终端应用发送的所述访问请求中包括所述终端应用所在的终端MAC地址信息;所述业务服务器会查找该MAC地址是否之前认证过,若否,则告知认证服务器,认证服务器根据提交的该MAC地址重构预设的算法,并编译成安全插件,具体的,首先根据接收的所述终端应用所在的MAC地址信息生成随机数,并将所述随机数设定为密钥参数;随后,根据所述密钥参数,通过一预设重构机制重构预设的算法,最后将接收到的应用信息和重构后的运算算法一并编译得到安全插件并将其下发至所述终端应用。如此,每个终端应用的安全插件里面的算法都不一样。

上述安全插件的更新或生成,都需要通过一预设的重构机制,具体的,通过一预设重构机制获得重构后的运算算法至少包括根据所述密钥参数,确定重构后的运算算法的运算顺序;和/或,根据所述密钥参数,确定重构后的运算算法的分组数据块的结构以及所述分组数据块的运算顺序;和/或,根据所述密钥参数,确定重构后的运算算法中的固定参数。

以下结合具体实施例对认证服务器生成运算算法的过程作出详细描述:终端应用版本发生更新后,终端应用的特征信息也发生了更新,通过改变预设算法的运算优先级生成新运算算法的一个具体实施例为:根据终端应用APP的新程序文件摘要,随机生成一8位随机密钥,则根据生成的随机密钥对预算算法各步骤的运算优先级重新排列。此时,若预设算法中包括了8个步骤,且生成的随机密钥为81265734,则生成的运算算法中,原本旧算法中的第3个步骤优先运算,接着依次是第1个步骤、第2个步骤、第4个步骤、第5个步骤、第7个步骤、第6个步骤以及第8个步骤进行运算,以此改变了原有的预设算法的运算先后顺序,生成全新的运算算法。当然,根据该随机密钥,改变预设算法的规则可以根据实际情况进行相应的变化,如该随机密钥中的第1位3代表将原本预设算法中8个步骤中的第1个步骤作为运算算法中的第3个步骤进行运算;随机密钥中第2位中的1代表将原本预设算法中8个步骤中的第2个步骤作为运算算法中的第1个步骤进行运算,以此类推,得到根据该运算算法的全新运算算法。当然,以上我们只是简单的介绍两个改变运算优先级的规则,可以根据实际情况重新进行设定,若预设算法中只包括了6个步骤,则可以通过改变生成的随机密钥的位数来调整,也可以通过忽略生成的8位随机密钥中的两位来适应性的调整。

终端应用版本更新后,通过改变预设算法的分组结构和分组结构的运算优先级来得到新的运算算法的一个具体实施例为:假若按照预设算法的分组结构规则,将进行运算信息分成n个数据块,且每个数据块中包括8个小的分块(a1、a2、a3、a4、a5、a6、a7以及a8),此时假若根据终端应用APP的程序文件摘要随机生成的随机密钥为81265734,且该8位随机密钥中的第1位代表运算顺序,第2为代表相应的分块。则在运算过程中,位于第2位的3表示分块a3与分块a1交换以此改变该分组结构,位于第1位的7表示分块a7优先运算,以此实现目的。以上我们只是示例性的给出了一种具体实施方式,在其他实施例中,对上述分组规则(每个数据的长度)、随机秘钥中每位数字对应的意义(如分块交换)等都可以根据实际情况进行设定。

根据不同终端MAC地址,通过改变预设算法的运算参数来得到新的运算算法的一个具体实施例为:假若预设算法中包括先后两个常数,分别为1和2,还包括一个未知数项X。且根据终端MAC地址信息随机得到的随机密钥为73124568,具体该随机密钥中的第3位表示该固定参数,则该预设算法中的X即为1,以此形成新的运算算法。当然,在另一具体实施例中,也可以根据第3位中的1改变预设算法中已有常数项,如将已有的第二个常数2改为该第3位中的1,即生成的运算算法中两个常数都是1。

作为一个完整实施例,假若生成的随机密钥中第一位代表运算优先级,第二位代表分组结构,第三位代表常数项。此时,如若生成的随机密钥为35781246,则分组块中的a5与a1进行调整改变分组结构,且a3优先运算,同时将运算算法中某一常数变为7,以此生成与终端MAC地址关联的运算算法。

作为另一个实施例,终端应用为手机APP,当所述手机APP第一次申请访问业务服务器时,所述访问申请中携带了手机APP所在的手机MAC序列号,业务服务器告知认证服务器,在认证服务器中生成安全插件,并将安全插件返回终端中进行存储。

本方法的另一个实施例,在上述实施例的基础上,当认证服务器生成的动态校验码与终端中的安全插件生成的动态认证码不一致时,需要考虑到终端应用是否未升级或者更新,因而需要进一步来判断,具体的,如图3所示,包括步骤:

S261所述业务服务器比较所述动态校验码与所述动态认证码是否一致,若是,则执行步骤S300;否则执行步骤S262;

S262所述业务服务器向所述认证服务器发起旧版动态校验码的生成请求;

S263所述认证服务器的安全插件将所述挑战码及预存的旧版合法终端应用的特征信息作为计算因子,使用重构前的旧算法进行运算得到旧版动态校验码,并返回给所述业务服务器;

S264所述业务服务器比较得到的所述旧版动态校验码与所述动态认证码是否一致,若是,则执行步骤S265;否则执行步骤S400;

S265判断所述终端应用为旧版正版。

业务服务器判断该终端应用为旧版正版的话,可以继续为该旧版终端应用提供服务,同时提醒用户该终端应用需进行升级了,或者给定一个日期,在此日期之后旧版无法访问。也可以不再继续提供服务,返回给终端应用一个升级地址,告知需进行升级后方可访问。认证服务器里可以预存最近的预设数量的算法和特征信息,即保留最近几个版本的算法。

较佳的,上述所有实施例中的所述终端应用的特征信息包括:所述终端应用的程序文件摘要、所述终端应用的资源文件摘要、所述终端应用的包名、或所述终端应用的签名。

本方法的最后一个实施例,在终端应用进行业务协议访问的过程中加入SOTP挑战型口令码认证机制。客户端在对服务器进行认证请求的时候必须加上实时生成的SOTP口令码。客户端SOTP口令码由插件化的SOTP功能模块生成。

SOTP插件在生成口令码时会“主动”取当前APP的特征信息。这些特征信息包括:“APP的程序文件摘要”,“APP的资源文件摘要”,“APP的包名”,“APP的签名”。将这些特征信息及认证服务器下发的挑战带入到口令码的计算过程中,生成口令码。

服务器收到客户端的认证请求后,取“后台配置的合法APP的特征信息”及挑战码,同样生成口令码,与客户端口令码做对比,只有对比通过,服务器才给予业务应答,否则拒绝服务。

SOTP:Super One Time Password,增强性一次性口令码技术的总称。

SOTP插件:在手机端(Android/IOS)实现的SOTP功能模块,具有“主动”收集手机环境信息(系统环境/APP),并计算SOTP口令码,实现加解密的功能。

APP的程序文件摘要:一个手机APP由程序文件和资源文件打包而成,程序文件摘要即手机APP中所有控制逻辑的程序文件打包的摘要。

APP的资源文件摘要:一个手机APP由程序文件和资源文件打包而成,资源文件摘要即手机APP中所有资源文件大包的摘要。

具体认证过程,如图4所示。

首先在企业原有的业务协议中加入“一次性口令码”这一数据项,即要求所有的手机应用在发送认证请求的时候必须包含“一次性口令码”。

客户端在发送认证请求前先调用SOTP插件,生成“一次性口令码”。SOTP插件被调用时,主动获取调用者APP的特征信息,结合认证服务器下发的挑战码代入到“一次性口令码”的计算中,将“一次性口令码”返回给APP。

APP将“一次性口令码”加入到认证请求报文中,将认证请求发送给业务服务器。

业务服务器收到认证请求后,首先取出其中由客户端生成的的“一次性口令码”,同时向认证服务器请求服务端“一次性口令码”。认证服务器在生成口令码时,获取配置好的保存在数据库中的“合法APP特征信息”,结合挑战码,代入到“一次性口令码”的计算中,最终将“一次性口令码”返回给业务服务器。

业务服务器比对来自客户端的“一次性口令码”和服务端的“一次性口令码”是否一致。因为“一次性口令码”的计算中代入了APP的特征信息,所以只有客户端的特征信息与服务器的“合法APP特征信息”完全相同,“一次性口令码”才能对比一致。

如果“一次性口令码”对比一致则说明客户端是合法的,业务服务器给予其后续的业务响应;如果对比不一致则说明客户端是不合法的盗版,业务服务器拒绝给予业务响应。

另一方面,基于相同的技术构思,本发明实施例还提供一种终端应用正版认证系统,该认证系统可执行上述方法实施例。本发明实施例提供的认证系统,如图5所示,包括:终端100、业务服务器200、认证服务器330,及位于终端上的终端应用110,业务服务器200分别与终端100和认证服务器330通信连接;其中:终端应用110包括第一信息收发模块111,业务服务器200包括第二信息收发模块210,及与第二信息收发模块210相连的信息验证模块220;该认证系统的工作过程,具体的,首先终端应用110的第一信息收发模块111发送访问请求至业务服务器200;然后业务服务器200的第二信息收发模块210接收到访问请求后,信息验证模块220通过认证服务器330对终端应用110进行认证;若认证通过,则判断终端应用110为正版,响应终端应用110的访问请求;否则,判断终端应用110为盗版,拒绝终端应用110的访问请求。

通过加入动态认证机制,使得盗版终端应用无法访问,保护了正版终端应用的合法权益。

本发明认证系统的另一实施例,如图6所示,在上述实施例的基础上,终端和认证服务器300中均存储有与终端应用110关联的安全插件,终端安全插件120和认证服务器300中的安全插件320中均包含与终端应用110关联的运算算法;

终端中的安全插件120与终端应用110相连,安全插件120包括:获取模块121、及与获取模块121相连的动态认证码生成模块122;

业务服务器200还包括提取模块230,提取模块230分别与信息验证模块220和第二信息收发模块210相连;

认证服务器300包括:第三信息收发模块310、存储模块330、安全插件320,安全插件320分别与第三信息收发模块310、存储模块330相连;且安全插件320包括获取模块321、及与获取模块321相连的动态校验码生成模块322;

其中:业务服务器200通过认证服务器300对终端应用110进行认证包括:

终端100中的安全插件120的获取模块121获取终端应用110的特征信息;

终端中100的安全插件120的动态认证码生成模块122将认证服务器300下发的挑战码及获取模块121获取的终端应用110的特征信息作为计算因子,使用运算算法进行运算生成动态认证码,并返回给终端应用110;

终端应用110的第一信息收发模块111将含有动态认证码的认证请求发送至业务服务器200;

业务服务器200的提取模块230从认证请求中提取动态认证码,第二信息收发模块210发送动态校验码生成请求至认证服务器300的第三信息收发模块310;

认证服务器300中的安全插件320的获取模块321从认证服务器300的存储模块330中获取合法终端应用的特征信息,认证服务器300中的安全插件320的动态校验码生成模块322将合法终端应用的特征信息及挑战码作为计算因子,使用运算算法进行运算生成动态校验码,并返回给业务服务器200;

业务服务器200的信息验证模块220比较动态校验码与动态认证码是否一致,若是则判断终端应用110为正版,响应终端应用110的访问请求;否则,判断终端应用110为盗版,拒绝终端应用110的访问请求。

终端的安全插件可以主动静默获取终端应用的特征信息,并将该终端应用特征信息及接收的挑战码作为计算因子,使用运算算法进行运算获得动态认证码,将该动态认证码加入认证请求的报文中,如此使得盗版终端应用无法伪造终端应用的特征数据。而认证服务器生成动态校验码时,取预存的合法终端的特征信息、结合挑战码进行运算,通过相同的算法获得动态校验码,业务服务器通过比较动态认证码和动态校验码是否一致来判断终端应用是否是正版应用。

本发明认证系统的算法可通过重构机制进行重构,具体的,在上述认证系统实施例的基础上,认证服务器中的安全插件还包括随机数生成模块、算法重构模块,随机数生成模块分别与算法重构模块、获取模块相连,其中:

当合法终端应用的版本进行更新后,认证服务器中的安全插件根据存储模块存储的终端应用的新特征信息得到运算算法包括:

随机数生成模块根据获取模块从存储模块中获取的终端应用新特征信息生成随机数,并将随机数设定为密钥参数;

算法重构模块根据密钥参数,通过一预设重构机制重构运算算法;

通过一预设重构机制重构运算算法包括:根据密钥参数改变预设算法的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的分组数据块的结构及对应分组数据块的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的固定参数得到运算算法。

本系统中预设重构机制根据密钥参数对预存的算法进行重构,预存算法可设为安全插件最开始存储的一个算法,后续版本变更后,均在此最初预存的算法基础上进行重构。当然,也可以通过预设重构机制根据密钥参数对更新前的旧算法进行重构,如此获得新算法,但此方法要求更新一定要及时,如果服务器更新的版本从V1、V2到最新版的V3;而终端应用如果一致未更新,直到V3版本出来后,才选择一次性从V1直接变更为V3版的话,如果算法重构机制是基于前一版本的算法进行重构的话,很明显,终端的算法和服务器端的算法肯定不一样了,如此,即使是正版应用的话,也可能判错。因此,优选的还是选择在最初预存的算法机制上进行重构。

较佳的,终端中的安全插件同样包括随机数生成模块、算法重构模块,随机数生成模块分别与算法重构模块、获取模块相连,其中:

当合法终端应用的版本进行更新后,终端中的安全插件根据终端应用的新特征信息得到运算算法包括:

随机数生成模块根据获取模块获取的终端应用新特征信息生成随机数,并将随机数设定为密钥参数;

算法重构模块根据密钥参数,通过一预设重构机制重构运算算法;

通过一预设重构机制重构运算算法包括:根据密钥参数改变预设算法的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的分组数据块的结构及对应分组数据块的运算顺序得到运算算法,和/或根据密钥参数改变预设算法的固定参数得到运算算法。

终端上的终端应用更新后,终端的安全插件可通过与服务器一样的方法对算法进行重构更新。

或者,也可以通过认证服务器下发更新后的安全插件给终端,具体的,认证服务器还包括插件更新模块,插件更新模块分别与安全插件、存储模块、及第三信息收发模块相连,其中:

插件更新模块将存储模块存储的终端应用的新特征信息及安全插件中算法重构模块重构后的运算算法对安全插件进行更新,并将更新后的安全插件通过第三信息收发模块发送给终端。

较佳的,上述所有实施例中的终端应用的特征信息包括:终端应用的程序文件摘要、终端应用的资源文件摘要、终端应用的包名、或终端应用的签名。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号