掌桥专利:专业的专利平台
掌桥专利
首页

一种基于iOS平台的手机令牌管理方法

文献发布时间:2024-04-18 20:02:18


一种基于iOS平台的手机令牌管理方法

技术领域

本发明属于信息安全认证技术领域,具体的说是一种基于iOS平台的手机令牌管理方法。

背景技术

随着互联网密码泄露事件频发,单靠密码不能保障真正的安全。事实上,凭证泄露已经成为企业最大的安全威胁,越来越多的产品开始支持双因子认证,双因子认证也称双因素认证,要求用户除提供用户名密码外,还需要附加因素,来增强身份认证过程的安全性,常见的包括手机短信验证码、生物识别。手机短信验证一是存在被攻击或被监听的隐患,二是大量发送手机短信会增加企业成本。生物识别技术在个人信息收集方面又与网信安要求存在冲突。面对这些问题,可以引入硬件动态码技术来进行双因素安全认证。

如授权公告号为CN103259666B的中国专利公开了一种手机令牌的多令牌管理系统和方法,所述系统包括手机终端、门户网站管理装置和验证平台,所述门户网站管理装置分别与所述手机终端、所述验证平台相连,所述手机终端包括输入模块、令牌管理模块和显示模块,在所述显示模块上显示多个激活令牌的动态口令和每一个激活令牌对应的商户信息。该发明手机令牌的多令牌管理系统和方法改变了手机令牌管理设备中的单令牌模式,能够在一个手机令牌管理设备上运行多个商户的令牌,减少了系统冗余,拓宽了手机令牌的应用范围。

如授权公告号为CN104539785B的中国专利公开了一种在IOS和Android手机操作系统上的安装应用程序。使用和服务器时间同步的机制产生一次性动态口令,在一个有效的时间段内(30s/60s)有效,以满足短时间内多因素验证的需求。手机动态口令生成过程具有使用简单、安全性高、低成本、无需携带额外设备等优势。该发明是在手机令牌上增加一键放行按键,第三方应用系统在密码验证环节弹出二次验证码的弹窗后,每3秒刷新一次一键放行检查接口,检查用户是否用手机令牌发起一键放行,如果用户按一下手机令牌上的一键放行按键,即用户通过手机令牌客户端发起向手机令牌服务端发起一键放行请求,手机令牌服务端接收到请求后快速校验通过。

发明内容

针对现有技术的不足,本发明提出了一种基于iOS平台的手机令牌管理方法,用户在官网登录成功之后开启手机令牌验证,服务器根据账户信息下发加密串,用户用iOS手机令牌管理器扫码识别加密串并解码,解码得到secret,手机令牌管理器发送校验时间信令,将本机时间和服务端进行对比,根据当前时间和步长,利用SHA1加密算法得到动态码,同时将secret保存到iOS端系统CTKeyChain,然后用户用此动态码跟server端动态码对比,比对成功即绑定成功,用户下次登录,进行关键操作时,需要手机令牌进行二次验证,验证成功方可进入系统。

为实现上述目的,本发明提供如下技术方案:

一种基于iOS平台的手机令牌管理方法,包括以下具体步骤:

步骤S1:用户在官网登录成功之后开启手机令牌验证,服务器根据账户信息下发加密串;

步骤S2:用户用iOS手机令牌管理器扫码识别加密串并解码,解码得到secret;

步骤S3:手机令牌管理器发送校验时间信令,将本机时间和服务端进行对比;

步骤S4:根据当前时间和步长,利用SHA1加密算法得到动态码,同时将secret保存到iOS端系统CTKeyChain,然后用户用此动态码跟server端动态码对比,比对成功即绑定成功;

步骤S5:用户下次登录,进行关键操作时,需要手机令牌进行二次验证,验证成功方可进入系统。

具体的,所述步骤S4中的步长为30s。

具体的,所述步骤S4中利用SHA1加密算法得到动态码的具体方法为:

步骤S401:将secret数据进行分块处理,分块长度为512bit;

步骤S402:设定2个buffer,为buffer1和buffer2,其中,buffer1标记为A、B、C、D和E,buffer2标记为H0、H1、H2、H3和H4;

步骤S403:对标记为H的bbuffer进行填充;

步骤S404:对secret数据分块后长度和内容不满足的分块,利用padding方法进行数据补充;

步骤S405:设定A=H0,B=H1,C=H2,D=H3,E=H4,更新buffer2中的值,输出H0',H1',H2',H3',H4',其中,H0'=A+H0,H1'=B+H1,H2'=C+H2,H3'=D+H3,H4'=E+H4。

具体的,所述步骤S404中padding方法包括:先填充一个bit的1,然后填充N个bit的0,最后填充64bit的分块长度M的长度信息,满足约束条件:(L

具体的,所述步骤S4中的CTKeyChain具体实现步骤为:

步骤S411:创建基类NSObject的分类Category文件NSObject+CTKeyChain;

步骤S412:通过所述分类文件NSObject+CTKeyChain,对数据存储与提取相关方法进行声明,对数据存储方法+setDataWithKey:NSString*key和数据提取方法+NSString*dataWithKey:NSString*key在实现区间进行定义;

步骤S413:所述分类文件NSObject+CTKeyChain,通过runtime反射机制获取系统钥匙串keyChain结构体的Ivars值,将此值定义为key,然后给key赋value值,然后遍历结构体所有的属性和方法,获取每一个值,然后kvc调用keyChain私有方法存储数据;

步骤S414:通过所述存储数据方法+setDataWithKey:NSString*key的声明和定义,进行数据存储。

具体的,所述步骤S5中的关键操作包括登录和支付。

一种基于iOS平台的手机令牌管理系统,包括:首次登录模块,识别解码模块,时间校验模块,动态码生成和对比模块,二次验证模块;

所述首次登录模块,用于用户在官网登录成功之后开启手机令牌验证,服务器根据账户信息下发加密串;

所述识别解码模块,用于用户用iOS手机令牌管理器扫码识别加密串并解码,解码得到secret;

所述时间校验模块,用于手机令牌管理器发送校验时间信令,将本机时间和服务端进行对比;

所述动态码生成和对比模块,用于根据当前时间和步长,利用SHA1加密算法得到动态码,同时将secret保存到iOS端系统CTKeyChain,然后用户用此动态码跟server端动态码对比,比对成功即绑定成功;

所述二次验证模块,用于用户下次登录,进行关键操作时,需要手机令牌进行二次验证,验证成功方可进入系统。

具体的,所述动态码生成和对比模块包括动态码生成单元和动态码对比单元,

所述动态码生成单元,用于根据当前时间和步长,利用SHA1加密算法得到动态码;

所述动态码对比单元,用于将secret保存到iOS端系统CTKeyChain,用户用此动态码跟server端动态码对比,比对成功即绑定成功。

一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现一种基于iOS平台的手机令牌管理方法的步骤。

一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行一种基于iOS平台的手机令牌管理方法的步骤。

与现有技术相比,本发明的有益效果是:

1.本发明提出一种基于iOS平台的手机令牌管理系统,并进行了架构、运行步骤和流程上的优化改进,系统具备流程简单,投资运行费用低廉,生产工作成本低的优点。

2.本发明提出一种基于iOS平台的手机令牌管理方法,手机令牌认证是防止攻击很有效的方法,相对短信验证码,手机令牌可以节约企业成本,绑定一次,可永久使用,稳定性极强,手机令牌基于时间的一次性密码算法,无需请求数据,不受当时网络影响,可扫描本设备动态令牌管理器里的所有令牌,跟账户自动匹配,自动填充令牌,操作另加便捷。

3.本发明提出一种基于iOS平台的手机令牌管理方法,极大的降低了API开发的人工成本,缩短开发时间,从而提高软件开发效率。

附图说明

图1为本发明一种基于iOS平台的手机令牌管理方法流程图;

图2为本发明一种基于iOS平台的手机令牌管理方法短信二次验证方案流程图;

图3为本发明一种基于iOS平台的手机令牌管理方法手机动态令牌方案流程图;

图4为本发明一种基于iOS平台的手机令牌管理系统架构图;

图5为本发明一种基于iOS平台的手机令牌管理方法的电子设备图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一号”、“二号”、“三号”仅用于描述目的,而不能理解为指示或暗示相对重要性。下面结合具体实施方式,进一步阐述本发明。

实施例1

请参阅图1-3,本发明提供的一种实施例:一种基于iOS平台的手机令牌管理方法,包括以下具体步骤:

步骤S1:用户在官网登录成功之后开启手机令牌验证,服务器根据账户信息下发加密串;

步骤S2:用户用iOS手机令牌管理器扫码识别加密串并解码,解码得到secret;

步骤S3:手机令牌管理器发送校验时间信令,将本机时间和服务端进行对比;

步骤S4:根据当前时间和步长,利用SHA1加密算法得到动态码,同时将secret保存到iOS端系统CTKeyChain,然后用户用此动态码跟server端动态码对比,比对成功即绑定成功;

步骤S5:用户下次登录,进行关键操作时,需要手机令牌进行二次验证,验证成功方可进入系统。

传统通过手机短信验证码进行二次验证的方案存在几个弊端:1)手机短信验证码存在被恶意刷取的风险;2)手机短信验证码的到达率问题。目前来说,没有任何一家短信验证码平台可以保证百分百的到达率;3)由于安全漏洞,短信可能被网络提供商拦截4)随着业务的增加,短信发送量会大大增加,增加了企业短信成本。

所述步骤S4中的步长为30s。

所述步骤S4中利用SHA1加密算法得到动态码的具体方法为:

步骤S401:将secret数据进行分块处理,分块长度为512bit;

步骤S402:设定2个buffer,为buffer1和buffer2,其中,buffer1标记为A、B、C、D和E,buffer2标记为H0、H1、H2、H3和H4;

2个buffer的单位为word,word为32bit的String,可以表示为8个16进制的序列,例如:A103FE23;

步骤S403:对标记为H的bbuffer进行填充;

将标记为H的bbuffer填充以下值:H0:0x67452301;H1:0xEFCDAB89;H2:0x98BADCFE;H3:0x10325476;H4:0xC3D2E1F0。

步骤S404:对secret数据分块后长度和内容不满足的分块,利用padding方法进行数据补充;

步骤S405:设定A=H0,B=H1,C=H2,D=H3,E=H4,更新buffer2中的值,输出H0',H1',H2',H3',H4',其中,H0'=A+H0,H1'=B+H1,H2'=C+H2,H3'=D+H3,H4'=E+H4。

所述步骤S404中padding方法包括:先填充一个bit的1,然后填充N个bit的0,最后填充64bit的分块长度M的长度信息,满足约束条件:(L

所述步骤S4中的CTKeyChain具体实现步骤为:

步骤S411:创建基类NSObject的分类Category文件NSObject+CTKeyChain;

步骤S412:通过所述分类文件NSObject+CTKeyChain,对数据存储与提取相关方法进行声明,对数据存储方法+setDataWithKey:NSString*key和数据提取方法+NSString*dataWithKey:NSString*key在实现区间进行定义;

步骤S413:所述分类文件NSObject+CTKeyChain,通过runtime反射机制获取系统钥匙串keyChain结构体的Ivars值,将此值定义为key,然后给key赋value值,然后遍历结构体所有的属性和方法,获取每一个值,然后kvc调用keyChain私有方法存储数据;

步骤S414:通过所述存储数据方法+setDataWithKey:NSString*key的声明和定义,进行数据存储。

所述步骤S5中的关键操作包括登录和支付。

实施例2

请参阅图4,本发明提供的另一种实施例:一种基于iOS平台的手机令牌管理系统,包括:首次登录模块,识别解码模块,时间校验模块,动态码生成和对比模块,二次验证模块;

所述首次登录模块,用于用户在官网登录成功之后开启手机令牌验证,服务器根据账户信息下发加密串;

所述识别解码模块,用于用户用iOS手机令牌管理器扫码识别加密串并解码,解码得到secret;

所述时间校验模块,用于手机令牌管理器发送校验时间信令,将本机时间和服务端进行对比;

所述动态码生成和对比模块,用于根据当前时间和步长,利用SHA1加密算法得到动态码,同时将secret保存到iOS端系统CTKeyChain,然后用户用此动态码跟server端动态码对比,比对成功即绑定成功;

所述二次验证模块,用于用户下次登录,进行关键操作时,需要手机令牌进行二次验证,验证成功方可进入系统。

动态码生成和对比模块包括动态码生成单元和动态码对比单元,

所述动态码生成单元,用于根据当前时间和步长,利用SHA1加密算法得到动态码;

所述动态码对比单元,用于将secret保存到iOS端系统CTKeyChain,用户用此动态码跟server端动态码对比,比对成功即绑定成功。

实施例3

请参阅图5,一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现一种基于iOS平台的手机令牌管理方法的步骤。

一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行一种基于iOS平台的手机令牌管理方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

最后:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术分类

06120116581677