CN106790138A - 一种政务云应用用户登录双因子验证的方法 - Google Patents
一种政务云应用用户登录双因子验证的方法 Download PDFInfo
- Publication number
- CN106790138A CN106790138A CN201611234506.4A CN201611234506A CN106790138A CN 106790138 A CN106790138 A CN 106790138A CN 201611234506 A CN201611234506 A CN 201611234506A CN 106790138 A CN106790138 A CN 106790138A
- Authority
- CN
- China
- Prior art keywords
- password
- user
- information
- service end
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0838—Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种政务云应用用户登录双因子验证的方法,包括客户端和服务端,验证过程为:首先服务端和客户端采用同样的因子的MD5算法产生口令信息,并把该口令信息处理为8字节字符串;设定周期时间,周期性产生新的口令,并通过随机数调整时间信息,在使用输入动态口令时,服务端获取相应信息;在用户登录时,输入口令串验证,服务端提供本次和上次口令串供对比。该政务云应用用户登录双因子验证的方法与现有技术相比,采用了客户端和服务端非联通、无交互模式,独立计算口令,并通过周期协调口令配对,配合传统的用户名、密码模式,极大提高了政务云内部应用登录安全,简便易行,具有可操作性,适用于内部网络需要双因子验证登录应用的场景。
Description
技术领域
本发明涉及云计算安全技术领域,具体地说是一种实用性强、政务云应用用户登录双因子验证的方法。
背景技术
政务云是运用云计算技术,统筹利用已有的机房、计算、存储、网络、安全、应用支撑、信息资源等,发挥云计算虚拟化、高可靠性、高通用性、高可扩展性及快速、按需、弹性服务等特征,为政府行业提供基础设施、支撑软件、应用系统、信息资源、运行保障和信息安全等综合服务平台。政务云是当前云计算使用的主要业务场景,从网络上政务云包含国家电子政务外网和互联网两个部分。国家电子政务外网相对于互联网来说,是具有特殊性质的内部互联局域网,正常情况下无法通过互联网接入。政务云应用有较高安全性需求,安全是政务云的主要特征,除了做好边界防护外,政务云使用的电子政务外网与互联网不能直接联通,这个特征与各行业云或企业云的内部局域网一样。在用户登录方面,必须使用双因子验证。传统的用户和密码是验证用户合法性的模式之一,另外被认可的是短信通知、动态口令等。短信通知因为有些应用在政务云的局域网络部分不能直接发送,而成为使用的瓶颈;动态口令一般采取硬件令牌的模式提供,造价高、使用模式复杂。
短信通知模式涉及到通信运营商,其使用有固定的模式,只能改变自身环境去适应这个固定模式,但政务云的网络环境因为安全监管要求也很难改变,并且短信通知需要一定的花费,带来较高的使用成本。借鉴硬件令牌模式,规避网络设计带来的使用限制,是一个可行的办法。本方法即参考了令牌的实现机理,通过其他有效变通,使结果高效、低成本、可实用。
软件令牌是低成本的使用模式,已有较多应用,其中CN200310111570.X《一种动态身份认证方法和系统》描述手机令牌用于产生同步的当前身份认证密码。本发明既可有效防范通过窥视或猜测认证密码来进行的非法登录,又可有效防范通过截获传输信息来进行的非法登录,从而大大提高了系统的安全性。而在同权利人的CN200310111571.4《一种用于动态身份认证的手机》专利中描述一种用于动态身份认证的手机,该手机的SIM卡中设置有动态身份认证客户端应用模块,可独立产生与认证服务器相同且同步的动态身份认证密码。未公开密码算法并且嵌入SIM卡,使用复杂不易执行。CN03114476.4《基于软件令牌的适用于网络的动态口令身份认证系统》描述一种基于软件令牌的适用于网络的动态口令身份认证系统,整体采用B/S模块化结构,软件令牌图标化,包括:一个认证服务器,一个管理控制台,一个软件令牌,一个具有标准程序接口和协议的接口组件。本专利与该专利,同样使用了软件令牌模式,但仅在领域上有重叠,该专利没有描述如何实现验证使用,并且也没有算法实现方面的具体描述,缺乏可执行性。
在CN201510136509.3《一种基于软件令牌的动态口令认证方法及系统》、CN201510136507.4《基于软件令牌的动态口令认证方法及系统》中,描述了客户端通过内置的卫星授时模块获取当前时间,同时将标识用户的标识信息和当前时间发送至服务器;服务器根据接收到的标识信息查找与之关联的密钥参数;客户端中结合当前时间、预存在客户端中与用户关联的密钥参数和算法生成第一动态口令,并将第一动态口令发送至服务器;服务器中结合接收到的当前时间、查找到的密钥参数、和预存在服务器中的算法生成第二动态口令;服务器中将生成的第二动态口令与接收到的第一动态口令进行比对。该专利服务端时间获取方式复杂,不利具体使用实现;算法因素少,如果知道了使用的算法,就可以自计算获取动态口令;没有很好的解决客户端与服务端之间的协调和信息保密问题,没有建立客户端与服务端无争议的基础信任信息。基于此,现提供一种政务云应用用户登录双因子验证的方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、政务云应用用户登录双因子验证的方法。
一种政务云应用用户登录双因子验证的方法,包括客户端和服务端,其中客户端为智能设备端,服务端为服务器端,基于此,用户登录双因子验证过程为:
首先服务端和客户端采用同样的因子的MD5算法产生口令信息,并把该口令信息处理为8字节字符串;
设定周期时间,周期性产生新的口令,并通过随机数调整时间信息,在使用输入动态口令时,服务端获取相应信息;
在用户登录时,输入口令串验证,服务端提供本次和上次口令串供对比,避免周期临界时间点及输入延迟带来的对比失败。
用户通过客户端登录基于该客户端安装的应用程序实现,该应用程序在安装时输入自己的用户名和应用名,应用名由管理员处获得,在重置前这两个信息一直保存在应用程序中;在用户登录时,除了输入用户名、密码外,还输入手机上应用程序产生的动态口令,组成两个独立的验证因子,确保操作用户是合法用户。
产生的口令信息为8个字节长,共32个bit,其中8个bit代表随机数、4个bit表示干扰码、剩余的bit信息来自于通过MD5加工的密码串。
口令信息的具体产生过成为:动态口令为8个字节32个bit,包含1-255间的随机数两个字节R1R2;一个字节干扰码B1;5个字节的MD5信息M1M2M3M4M5;
MD5算法输出为128bit,32个字节,从1-128,每隔6个bit取一个bit,取够20bit结束,这20个bit形成5个字节;
干扰码从128个干扰码中取随机数位置的字节,如果随机数大于128则减去128剩下的数值为字节的位置,随机数为1-255,这里的128个干扰码是指内置于应用程序中的128字节的数字串,该数字串为目标用户的私有密钥,在服务端按用户分别存储到数据表中;
最终动态口令形式为R1M1M2M3M4M5B1R2,并根据需要在bit级再调整顺序,最终形成32bit信息,输出为8个字节。
在MD5算法产生口令信息时,输入以下因素:身份标识,动态信息和干扰信息,其中身份标识包括用户名、应用名和手机号,动态信息则采用标准的GPS时间,干扰信息采用干扰码,然后在生成的128bit中挑选20个bit放入最终的动态口令中。
所述用户名、应用名在应用程序安装完成后,由使用者输入获得;时间信息采集自标准的GPS时间;而手机号是应用程序自动从手机终端获取,干扰码自于应用程序安装时的输入,长度为128字节,即从用户注册时存储的数据表里查询获取手机号、干扰码;其中,
应用名用于区分用户在不同应用中的口令,该应用名可以设置为缺省值;
用户名用于区分不同用户;
手机号码在用户注册时预留在服务端,服务端从数据表中以用户名为条件获取,客户端直接从手机终端上获取,使令牌具有指向性;
GPS时间作为客户端和服务端的口令配对桥梁和裁判,通过随机数模式改变易得性;
干扰码使最终的动态口令具有自定义算法属性。
周期性产生新的口令是指设定一个固定的时间周期,作为时间窗口,客户端和服务端都根据这个时间窗口约定产生动态口令,即在固定的指定时间内,结合用户输入的因素,客户端和服务端通过公共的MD5算法计算获取动态口令。
通过随机数调整时间信息是指使用随机数来调整最终算法里使用的时间因素,即在时间窗口的基础上,增加未知因素,但客户端和服务端还都可以获取同样的信息。动态口令在客户端产生后,利用动态口令的输入特性,把随机数放到动态口令中提供给服务端知道;随机数的用法就是在标准的时间窗口基值上调整对应的数字,具体为:动态口令的有效期是每个时间周期时长,即每个时间周期时长更新一次,相对应的,更新的时间就是每天的时间周期整数倍的时刻,在这些时间的基础上,减去随机数分钟数的新时间为最后算法使用的时间因素数值。
客户端产生口令的具体过程为:
初始化获得用户名、应用名、干扰码和手机号;
根据预先设定的时间周期,确定是否为新的时间窗口,否则返回;
如果是则从GPS获取时间stime,并产生1-255间的随机数rnum;
使用随机数处理stime获取istime,通过用户名、应用名、干扰码和手机号,使用MD5算法获取字符串;
调整字符串,加入随机数、干扰码信息,产生动态码。
服务端产生并验证客户端的口令过程为:
用户在客户端输入用户名及动态码时,服务端获取该用户注册存储用户名、手机号和用户的私钥,应用自身设置应用名;
获取GPS时间,并从客户端产生的动态码中拆分出随机数,处理到对应的时间字符串;
使用用户名及服务端的手机号、干扰号、应用名信息,并结合时间字符串,通过MD5算法计算;
调整产生的加密字符串,并按与客户端同样顺序加入随机数、干扰码信息;
比较输入及产生密码是否一致,并将比较结果返回给输入端。
本发明的一种政务云应用用户登录双因子验证的方法,具有以下优点:
1)算法不可达的可对比口令对。用户登录验证需要两个样本进行比对,如果相同则通过验证,否则失败;实现客户端和服务端动态口令验证一致性,即配对完整性为100%,并且在主要算法透明的情况下,仍然可以保持口令不可计算获取。在本方法中,口令采用八字节,以字母和数字组合,其中包含两个字节最大为FF(255)的随机数,是在周期性时间序列因子上的动态项(如果考虑计算难度,可以增加位数,考虑应用场景该复杂度可用),该动态项是客户端口令序列和服务端口令序列的裁判员,让两端产生交集,获得同样的数值;一个字节是软件令牌APP中内置的干扰项;剩余五个字节是经过MD5算法计算后变形的口令码。
2)软件令牌降低使用成本和复杂度。充分利用现在普及的智能终端做载体,代替硬件令牌介质,降低使用成本。同时,智能终端通过运营商网络可以支持GPS时间,可以提供与服务端一致的时间信息。
3)基于GPS时间的随机数算法解决脑裂争端。客户端和服务端基于GPS时间序列自计算动态口令序列,但缺少对比时的仲裁机制,也就是无法解决脑裂问题。客户端和服务端都遵循GPS时间作为同步的标准,但直接使用GPS时间这个因素,在算法公开的情况下,可以通过算法推导获得其口令串;另外也没法解决用户输入客户端上的动态口令,可以匹配服务端哪个时间点的动态口令的问题。在客户端的APP上动态产生1-255的随机数,并转换为16进制的字节附加到产生的动态口令,随登录时用户输入而上传到服务端。通过这个方式,可以解决GPS时间显性泄露和对比时间点的问题,即通过裁判机制解决了脑裂问题。
4)充分利用载体特征,制定多维度因子,使口令获取公共算法不可达。本方法的软件令牌是部署在智能终端上的APP,智能终端一方面可以获取GPS时间,另外终端还可以获取手机号码。时间作为动态因子,而手机号可以作为身份验证信息,增加一层保障。另外,在安装时通过输入用户名和应用名确定使用范围,在APP和服务端的算法中,都内置一定长度的干扰码,使动态口令算法不可达。用户名、应用名、GPS时间、手机号(用户名对应)、干扰码是算法的组成因子,本方法算法采用MD5初始化口令串,再通过位置调整拼装形成最终的动态口令。自定义的拼装规则,可以阻止因子泄露后通过公共算法计算获取动态口令的风险,实用性强,适用范围广泛,易于推广。
附图说明
附图1为客户端产生口令的流程图。
附图2为服务端验证口令的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步说明。
本发明的一种政务云应用用户登录双因子验证的方法,政务云是特殊形态的私有云,一般分为电子政务外网和互联网两种网络环境,从安全上都要求应用具有双因子验证,除了传统的用户名、密码模式外,被认可的还有短信和动态口令模式。本方法以最小的使用成本,简单的部署模式,获得较好的安全效果,因为无法解决电子政务外网连通运营商短信平台发送验证短信的问题,所以模仿动态口令模式实现另外一种因子验证。
动态口令是通过一定的算法在独立的介质上显示数字和字符的组合串,该口令串能被服务端同样生成,在用户使用时按照用户识别码核对是否一致,如果一致则成功,否则失败。其难点在于客户端和服务端虽然通过算法独立计算获得,并且具有可配对性,但需要实现客户端和服务端的口令时间切片一致,即基于相同算法因子计算产生的动态口令,才能配对成功,否则无法配对。在用户输入动态口令时,服务端并不知道输入的是哪个时间的口令串。为了解决这个问题一般通过时间窗口的模式,让口令在窗口期内有效,比如五分钟有效,这样客户端和服务端就可以通过时间判断当前输入的口令是哪个时间点的口令串。时间窗口模式在知道算法和因子的情况下,能够很容易计算获得某个时间点的动态口令,即口令可以简单的由算法计算可达。为了改善这个问题,并且还能具有时间窗口保证客户端和服务端配对一致性的问题,本方法方法里引入随机数,即在时间窗口基础上增加随机数来计算使用的时间因子,这样就避免了算法直接计算获得。如果在客户端和服务端通过某种算法那产生两个相同的随机数,几乎不可能,本方法采用先生成包含随机数的客户端口令,并通过输入被服务端获取,拆分后可以知道随机数信息。为了避免算法直接通过因子计算的问题,本方法还引入了干扰码因素,在生成的动态口令,通过编排插入干扰码,使生成的动态口令具有更强的保密性,不可模仿、不可外部使用公用算法直接计算获取。
令牌软件化是常规方法,但一般都在PC端模拟实现,本方法采用智能手机终端作为令牌软件化的载体。智能手机终端可以提供GPS标准时间,另外还可以获取本机的号码,这些信息可以辅助判断是否本人操作,使令牌具有绑定性和指向性,不是泛化通用。
本方法采用动态口令模式,但规避了昂贵的终端令牌设备和服务端设备成本,采用常见的智能手机作为令牌终端,通过GPS时间作为非连接模式下客户端与服务端的协同因素。
本发明包括客户端和服务端,其中客户端为智能设备端,一般指智能手机,服务端为服务器端,基于此,用户登录双因子验证过程为:
第一,应用系统的用户通过公开途径获取app,安装时输入用户名、应用名及私钥。
第二,服务端与客户端采用同样因子的MD5算法产生口令信息,并把该口令信息处理为8字节字符串,方便输入使用。
第三,约定以5分钟为周期产生新的口令,并通过随机数调整时间信息,在使用输入动态口令时,服务端获取相应信息。
第四,在用户登录应用时,输入口令串验证,为了提高配对成功率,服务端提供本次和上次口令串供对比,避免周期临界时间点及输入延迟带来的对比失败。
软件令牌APP程序以其他渠道由使用者下载并安装(主要支持Android和IOS两种),安装时输入自己的用户名和应用名(管理员处获得),在重置前这两个信息一直保存在APP中。干扰码为内置于APP程序中的128字节的数字串,该数字串为目标用户的私有密钥,在服务端按用户分别存储到数据表中。
在用户登录某个具体应用时,除了输入用户名、密码外,还可以输入手机上APP产生的动态口令,组成两个独立的验证因子,确保操作用户是合法用户。
产生的口令信息为8个字节长,共32个bit,其中8个bit代表随机数、4个bit表示干扰码、剩余的bit信息来自于通过MD5加工的密码串。
口令信息的具体产生过成为:动态口令为8个字节32个bit,包含1-255间的随机数两个字节R1R2;一个字节干扰码B1;5个字节的MD5信息M1M2M3M4M5;
MD5算法输出为128bit,32个字节,从1-128,每隔6个bit取一个bit,取够20bit结束,这20个bit形成5个字节;
干扰码从128个干扰码中取随机数位置的字节,如果随机数大于128则减去128剩下的数值为字节的位置,随机数为1-255,这里的128个干扰码是指内置于应用程序中的128字节的数字串,该数字串为目标用户的私有密钥,在服务端按用户分别存储到数据表中;
最终动态口令形式为R1M1M2M3M4M5B1R2,并根据需要在bit级再调整顺序,最终形成32bit信息,输出为8个字节。
在MD5算法产生口令信息时,输入以下因素:身份标识,动态信息和干扰信息,其中身份标识包括用户名、应用名和手机号,动态信息则采用标准的GPS时间,干扰信息采用干扰码,然后在生成的128bit中挑选20个bit放入最终的动态口令中。算法因素无论客户端和服务端都是由以上五个组成,使用不可逆的MD5算法计算可以获得128bit的信息串。
所述用户名、应用名在应用程序安装完成后,由使用者输入获得;时间信息采集自标准的GPS时间;而手机号是应用程序自动从手机终端获取,干扰码自于应用程序安装时的输入,长度为128字节,即从用户注册时存储的数据表里查询获取手机号、干扰码;服务端算法使用的因素用户名来自于用户输入,登录时会输入用户名、密码以及动态口令。使用输入时的用户名可以从用户注册时存储的数据表里查询获取手机号、干扰码,应用名来自系统配置,时间信息同样来自于GPS时间。GPS时间是公共认同的标准信息,具有公理性,协同客户端和服务端的动态信息。时间信息自GPS获得后需要进一步处理为最终使用的时间因素,客户端与服务端一致。
其中,
应用名用于区分用户在不同应用中的口令,该应用名可以设置为缺省值;
用户名用于区分不同用户;
手机号码在用户注册时预留在服务端,服务端从数据表中以用户名做条件获取,客户端直接从手机终端上获取,可以使令牌具有指向性,避免任意冒充或滥用;
GPS时间作为客户端和服务端的口令配对桥梁和裁判,解决脑裂问题,并通过随机数模式改变易得性;
干扰码可以使最终的动态口令具有自定义算法属性,不易被规律性算法破解。
总之,利用GPS时间的公共性,依托智能手机终端的动态令牌,实现了无连接客户端和服务端的口令配对,配合用户名、密码的传统模式,解决了政务云应用的用户登录双因子验证问题。并且,这种方法具有很高的保密性、不可模仿,部署简单,使用方便,符合政务云的安全要求,不增加额外的安全考虑和配置。
周期性产生新的口令是指设定一个固定的时间周期,作为时间窗口,客户端和服务端都根据这个时间窗口约定产生动态口令,即在固定的指定时间内,结合用户输入的因素,客户端和服务端通过公共的MD5算法计算获取动态口令。
具体为:以GPS时间为动态因素的客户端和服务端口令,像火车道的两个铁轨,没有交汇的点。虽然从客户端任意取一个时间点的值在服务端都可以找到对应时间点的口令,并且来自同样处理逻辑的对应口令一定可匹配。但是客户端口令在使用时,主要由登录界面输入,但输入的口令是哪个时间点的口令,服务端无法确定知道。因为输入会有时间延迟,后者输入的口令就不是当前时间的口令,如何让服务端知道客户端输入的是哪个时间点的口令,是使用的关键。使用时间窗口可以解决这个问题,即客户端和服务端都约定产生的动态口令,都按照一个固定的周期,比如5分钟,这个周期就是有效的时间窗口。时间窗口是客户端和服务端的裁判,解决了两方互挣的脑裂问题。时间窗口的引入,相当于有了固定的指定时间,在凑齐其他因素后,能够通过公共的MD5算法计算获取动态口令。
为了解决这个问题,降低被猜测碰撞的可能性,使用随机数来调整最终算法里使用的时间因素。即在时间窗口的基础上,增加未知因素,但客户端和服务端还都可以获取同样的信息。如果在客户端和服务端产生两个相同的随机数,难度非常大,已超出本方法的研究范围。所以动态口令在客户端产生后,利用动态口令的输入特性,把随机数放到动态口令中提供给服务端知道。随机数的用法就是在标准的时间窗口基值上调整对应的数字,比如5分钟的时间窗口,动态口令的有效期是5分钟,即每5分钟更新一次(周期可以设置,周期越短口令约安全),则更新的时间就是每天的5分钟整数倍的时刻,如0点0分、0点5分等。在这些时间的基础上,减去随机数分钟数的新时间为最后算法使用的时间因素数值。
口令验证比较时提高配对成功率。客户端输入的动态口令,在提交到服务端验证时,可能处于临界状态(靠近新的时间窗口),为了提高配对成功率,服务端会计算当前和上一个时间窗口的口令与客户端输入值比较。
基于上述内容,如附图1所示,客户端产生口令的具体过程为:
初始化获得用户名、应用名、干扰码和手机号;
根据预先设定的时间周期,确定是否为新的时间窗口,否则返回;
如果是则从GPS获取时间stime,并产生1-255间的随机数rnum;
使用随机数处理stime获取istime,通过用户名、应用名、干扰码和手机号,使用MD5算法获取字符串;
调整字符串,加入随机数、干扰码信息,产生动态码。
如附图2所示,服务端产生并验证客户端的口令过程为:
用户在客户端输入用户名及动态码时,服务端获取该用户注册存储用户名、手机号和用户的私钥,应用自身设置应用名;
获取GPS时间,并从客户端产生的动态码中拆分出随机数,处理到对应的时间字符串;
使用用户名及服务端的手机号、干扰号、应用名信息,并结合时间字符串,通过MD5算法计算;
调整产生的加密字符串,并按与客户端同样顺序加入随机数、干扰码信息;
比较输入及产生密码是否一致,并将比较结果返回给输入端。
本方法采用了客户端和服务端非联通、无交互模式,独立计算口令,并通过周期协调口令配对。本方法简便易行,具有很好的可操作性,同样适用于局域网络需要双因子验证登录应用的场景,同时解决以下问题:
政务云基于软件令牌、智能手机终端、GPS时间特征的客户端、服务端无连接环境中用户登录动态口令验证模式;
以GPS时间为可信前提,以周期窗口为判断基础,经过随机数调整的算法时间信息,是口令动态的核心要素,也是口令可验证的关键;
GPS时间解决了客户端和服务端之间的可信标准,是实现无连接模式的关键方法。
本发明具有算法不可达的可对比口令对。用户登录验证需要两个样本进行比对,如果相同则通过验证,否则失败。在《一种基于软件令牌的动态口令认证方法及系统》(专利号CN201510136509.3)中描述了基于GPS时间获取客户端和服务端密码的思路,但没有说明如何比较,因为在时间序列上客户端和服务端同样存在若干个对等的密码,就跟两个平衡的火车轨道一样,怎么让他们产生交互,在验证的时候用的客户端的密码,也正好能对应到服务端那个时间点的密码,这个问题没有解决。另外,在知道算法和因子以及产生规律的的情况下,获取到产生的动态口令是显而易见的,即比较容易的可以破解口令。如何做到即使知道算法也无法破解获取到的口令,即不可计算、不可推导的动态口令,上述专利中也没有描述。本方法针对这些细节问题做了实现和验证,做到客户端和服务端动态口令验证一致性,即配对完整性为100%,并且在主要算法透明的情况下,仍然可以保持口令不可计算获取。在本方法中,口令采用八字节,以字母和数字组合,其中包含两个字节最大为FF(255)的随机数,是在周期性时间序列因子上的动态项(如果考虑计算难度,可以增加位数,考虑应用场景该复杂度可用),该动态项是客户端口令序列和服务端口令序列的裁判员,让两端产生交集,获得同样的数值;一个字节是软件令牌APP中内置的干扰项;剩余五个字节是经过MD5算法计算后变形的口令码。
软件令牌降低使用成本和复杂度。充分利用现在普及的智能终端做载体,代替硬件令牌介质,降低使用成本。同时,智能终端通过运营商网络可以支持GPS时间,可以提供与服务端一致的时间信息。在专利《基于软件令牌的适用于网络的动态口令身份认证系统》(CN03114476.4)中仅描述了软件令牌的形式,没有充分涉及智能终端载体及利用载体自身的优势特征。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种政务云应用用户登录双因子验证的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (10)
1.一种政务云应用用户登录双因子验证的方法,其特征在于,包括客户端和服务端,其中客户端为智能设备端,服务端为服务器端,基于此,用户登录双因子验证过程为:
首先服务端和客户端采用同样的因子的MD5算法产生口令信息,并把该口令信息处理为8字节字符串;
设定周期时间,周期性产生新的口令,并通过随机数调整时间信息,在使用输入动态口令时,服务端获取相应信息;
在用户登录时,输入口令串验证,服务端提供本次和上次口令串供对比,避免周期临界时间点及输入延迟带来的对比失败。
2.根据权利要求1所述的一种政务云应用用户登录双因子验证的方法,其特征在于,用户通过客户端登录基于该客户端安装的应用程序实现,该应用程序在安装时输入自己的用户名和应用名,应用名由管理员处获得,在重置前这两个信息一直保存在应用程序中;在用户登录时,除了输入用户名、密码外,还输入手机上应用程序产生的动态口令,组成两个独立的验证因子,确保操作用户是合法用户。
3.根据权利要求1所述的一种政务云应用用户登录双因子验证的方法,其特征在于,产生的口令信息为8个字节长,共32个bit,其中8个bit代表随机数、4个bit表示干扰码、剩余的bit信息来自于通过MD5加工的密码串。
4.根据权利要求3所述的一种政务云应用用户登录双因子验证的方法,其特征在于,口令信息的具体产生过成为:动态口令为8个字节32个bit,包含1-255间的随机数两个字节R1R2;一个字节干扰码B1;5个字节的MD5信息M1M2M3M4M5;
MD5算法输出为128bit,32个字节,从1-128,每隔6个bit取一个bit,取够20bit结束,这20个bit形成5个字节;
干扰码从128个干扰码中取随机数位置的字节,如果随机数大于128则减去128剩下的数值为字节的位置,随机数为1-255,这里的128个干扰码是指内置于应用程序中的128字节的数字串,该数字串为目标用户的私有密钥,在服务端按用户分别存储到数据表中;
最终动态口令形式为R1M1M2M3M4M5B1R2,并根据需要在bit级再调整顺序,最终形成32bit信息,输出为8个字节。
5.根据权利要求3或4所述的一种政务云应用用户登录双因子验证的方法,其特征在于,在MD5算法产生口令信息时,输入以下因素:身份标识,动态信息和干扰信息,其中身份标识包括用户名、应用名和手机号,动态信息则采用标准的GPS时间,干扰信息采用干扰码,然后在生成的128bit中挑选20个bit放入最终的动态口令中。
6.根据权利要求5所述的一种政务云应用用户登录双因子验证的方法,其特征在于,所述用户名、应用名在应用程序安装完成后,由使用者输入获得;时间信息采集自标准的GPS时间;而手机号是应用程序自动从手机终端获取,干扰码自于应用程序安装时的输入,长度为128字节,即从用户注册时存储的数据表里查询获取手机号、干扰码;其中,
应用名用于区分用户在不同应用中的口令,该应用名可以设置为缺省值;
用户名用于区分不同用户;
手机号码在用户注册时预留在服务端,服务端从数据表中以用户名为条件获取,客户端直接从手机终端上获取,使令牌具有指向性;
GPS时间作为客户端和服务端的口令配对桥梁和裁判,通过随机数模式改变易得性;
干扰码使最终的动态口令具有自定义算法属性。
7.根据权利要求5所述的一种政务云应用用户登录双因子验证的方法,其特征在于,周期性产生新的口令是指设定一个固定的时间周期,作为时间窗口,客户端和服务端都根据这个时间窗口约定产生动态口令,即在固定的指定时间内,结合用户输入的因素,客户端和服务端通过公共的MD5算法计算获取动态口令。
8.根据权利要求5所述的一种政务云应用用户登录双因子验证的方法,其特征在于,通过随机数调整时间信息是指使用随机数来调整最终算法里使用的时间因素,即在时间窗口的基础上,增加未知因素,但客户端和服务端还都可以获取同样的信息;动态口令在客户端产生后,利用动态口令的输入特性,把随机数放到动态口令中提供给服务端知道;随机数的用法就是在标准的时间窗口基值上调整对应的数字,具体为:动态口令的有效期是每个时间周期时长,即每个时间周期时长更新一次,相对应的,更新的时间就是每天的时间周期整数倍的时刻,在这些时间的基础上,减去随机数分钟数的新时间为最后算法使用的时间因素数值。
9.根据权利要求5所述的一种政务云应用用户登录双因子验证的方法,其特征在于,客户端产生口令的具体过程为:
初始化获得用户名、应用名、干扰码和手机号;
根据预先设定的时间周期,确定是否为新的时间窗口,否则返回;
如果是则从GPS获取时间stime,并产生1-255间的随机数rnum;
使用随机数处理stime获取istime,通过用户名、应用名、干扰码和手机号,使用MD5算法获取字符串;
调整字符串,加入随机数、干扰码信息,产生动态码。
10.根据权利要求9所述的一种政务云应用用户登录双因子验证的方法,其特征在于,服务端产生并验证客户端的口令过程为:
用户在客户端输入用户名及动态码时,服务端获取该用户注册存储用户名、手机号和用户的私钥,应用自身设置应用名;
获取GPS时间,并从客户端产生的动态码中拆分出随机数,处理到对应的时间字符串;
使用用户名及服务端的手机号、干扰号、应用名信息,并结合时间字符串,通过MD5算法计算;
调整产生的加密字符串,并按与客户端同样顺序加入随机数、干扰码信息;
比较输入及产生密码是否一致,并将比较结果返回给输入端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611234506.4A CN106790138A (zh) | 2016-12-28 | 2016-12-28 | 一种政务云应用用户登录双因子验证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611234506.4A CN106790138A (zh) | 2016-12-28 | 2016-12-28 | 一种政务云应用用户登录双因子验证的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106790138A true CN106790138A (zh) | 2017-05-31 |
Family
ID=58923937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611234506.4A Pending CN106790138A (zh) | 2016-12-28 | 2016-12-28 | 一种政务云应用用户登录双因子验证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790138A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491670A (zh) * | 2017-08-22 | 2017-12-19 | 深圳竹云科技有限公司 | 一种基于OTP算法的Windows系统安全登录方法 |
CN109389386A (zh) * | 2018-09-13 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 一种扫码控制方法、装置及系统 |
CN109495500A (zh) * | 2018-12-14 | 2019-03-19 | 北京威努特技术有限公司 | 一种基于智能手机的双因子认证方法 |
CN111817998A (zh) * | 2019-04-10 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 信息认证处理方法、装置、系统及电子设备 |
CN113032771A (zh) * | 2019-12-24 | 2021-06-25 | 意法半导体国际有限公司 | 密码质询的动态随机化 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080114980A1 (en) * | 2006-11-13 | 2008-05-15 | Thangapandi Sridhar | System, method and apparatus for using standard and extended storage devices in two-factor authentication |
CN102045349A (zh) * | 2010-12-03 | 2011-05-04 | 北京航空航天大学 | 一种基于时间和事件的一次性口令生成和验证方法 |
CN104539421A (zh) * | 2014-08-22 | 2015-04-22 | 南京速帕信息科技有限公司 | 一种基于动态算法种子的手机令牌的实现方法 |
CN104683356A (zh) * | 2015-03-26 | 2015-06-03 | 上海众人网络安全技术有限公司 | 基于软件令牌的动态口令认证方法及系统 |
US9172698B1 (en) * | 2012-10-12 | 2015-10-27 | Ut-Battelle, Llc | System and method for key generation in security tokens |
CN105391556A (zh) * | 2015-11-27 | 2016-03-09 | 厦门雅迅网络股份有限公司 | 一种动态口令生成方法与设备、认证方法及系统 |
CN106100848A (zh) * | 2016-06-14 | 2016-11-09 | 东北大学 | 基于智能手机和用户口令的双因子身份认证系统及方法 |
-
2016
- 2016-12-28 CN CN201611234506.4A patent/CN106790138A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080114980A1 (en) * | 2006-11-13 | 2008-05-15 | Thangapandi Sridhar | System, method and apparatus for using standard and extended storage devices in two-factor authentication |
CN102045349A (zh) * | 2010-12-03 | 2011-05-04 | 北京航空航天大学 | 一种基于时间和事件的一次性口令生成和验证方法 |
US9172698B1 (en) * | 2012-10-12 | 2015-10-27 | Ut-Battelle, Llc | System and method for key generation in security tokens |
CN104539421A (zh) * | 2014-08-22 | 2015-04-22 | 南京速帕信息科技有限公司 | 一种基于动态算法种子的手机令牌的实现方法 |
CN104683356A (zh) * | 2015-03-26 | 2015-06-03 | 上海众人网络安全技术有限公司 | 基于软件令牌的动态口令认证方法及系统 |
CN105391556A (zh) * | 2015-11-27 | 2016-03-09 | 厦门雅迅网络股份有限公司 | 一种动态口令生成方法与设备、认证方法及系统 |
CN106100848A (zh) * | 2016-06-14 | 2016-11-09 | 东北大学 | 基于智能手机和用户口令的双因子身份认证系统及方法 |
Non-Patent Citations (2)
Title |
---|
叶晰等: "基于MD5算法的动态口令技术的软件实现", 《计算机应用与软件》 * |
邓珂等: "一种引入干扰因子概念的动态身份认证协议", 《福建电脑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491670A (zh) * | 2017-08-22 | 2017-12-19 | 深圳竹云科技有限公司 | 一种基于OTP算法的Windows系统安全登录方法 |
CN109389386A (zh) * | 2018-09-13 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 一种扫码控制方法、装置及系统 |
CN109389386B (zh) * | 2018-09-13 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 一种扫码控制方法、装置及系统 |
CN109495500A (zh) * | 2018-12-14 | 2019-03-19 | 北京威努特技术有限公司 | 一种基于智能手机的双因子认证方法 |
CN111817998A (zh) * | 2019-04-10 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 信息认证处理方法、装置、系统及电子设备 |
CN111817998B (zh) * | 2019-04-10 | 2023-08-15 | 阿里巴巴集团控股有限公司 | 信息认证处理方法、装置、系统及电子设备 |
CN113032771A (zh) * | 2019-12-24 | 2021-06-25 | 意法半导体国际有限公司 | 密码质询的动态随机化 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108064440B (zh) | 基于区块链的fido认证方法、装置及系统 | |
CN103685282B (zh) | 一种基于单点登录的身份认证方法 | |
US8869253B2 (en) | Electronic system for securing electronic services | |
CN102685093B (zh) | 一种基于移动终端的身份认证系统及方法 | |
TW201812630A (zh) | 區塊鏈身份系統 | |
CN104363207B (zh) | 多因子安全增强授权与认证方法 | |
CN105099690A (zh) | 一种移动云计算环境下基于otp和用户行为的认证授权方法 | |
CN110267270A (zh) | 一种变电站内传感器终端接入边缘网关身份认证智能合约 | |
CN106790138A (zh) | 一种政务云应用用户登录双因子验证的方法 | |
US10091189B2 (en) | Secured data channel authentication implying a shared secret | |
US11716312B1 (en) | Platform for optimizing secure communications | |
CN109474419A (zh) | 一种活体人像照片加密、解密方法及加解密系统 | |
CN109936552A (zh) | 一种密钥认证方法、服务器及系统 | |
CN106209811A (zh) | 蓝牙设备安全登录身份验证方法及装置 | |
CN104539420A (zh) | 一种通用的智能硬件的安全密钥管理方法 | |
Huang et al. | A token-based user authentication mechanism for data exchange in RESTful API | |
CN103152732A (zh) | 一种云密码系统及其运行方法 | |
US20170104748A1 (en) | System and method for managing network access with a certificate having soft expiration | |
BR102019005184A2 (pt) | Método e sistema para provisionar um terminal seguro | |
CN104657856A (zh) | 基于位置认证的智能移动客户端支付方法及服务器系统 | |
CN110266653A (zh) | 一种鉴权方法、系统及终端设备 | |
CN112383401B (zh) | 一种提供身份鉴别服务的用户名生成方法及系统 | |
CN104703180A (zh) | 基于移动互联网智能终端的一种隐形多重认证方法 | |
CN116112242B (zh) | 面向电力调控系统的统一安全认证方法及系统 | |
CN109218318A (zh) | 一种基于设备知识的物联网网关登录检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |