CN110932858B - 认证方法和系统 - Google Patents
认证方法和系统 Download PDFInfo
- Publication number
- CN110932858B CN110932858B CN201811097496.3A CN201811097496A CN110932858B CN 110932858 B CN110932858 B CN 110932858B CN 201811097496 A CN201811097496 A CN 201811097496A CN 110932858 B CN110932858 B CN 110932858B
- Authority
- CN
- China
- Prior art keywords
- server
- authentication
- client terminal
- login
- value
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3278—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
-
- 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/0853—Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/107—Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/082—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种认证方法和系统。其中,该方法包括:客户终端获取签名信息,第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。本申请解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
Description
技术领域
本申请涉及双因素认证领域,具体而言,涉及一种认证方法和系统。
背景技术
双因素验证(2FA,Two-factor Authentication)已经是国际上公认的,对用户账号安全最有效的增强保障手段。常见的双因素认证方案如短信验证码、RSA令牌(TOTP)、生物信息等,存在操作不便,中途数据可能被劫持,泄漏用户的隐私等问题。
通用第二因素(U2F,Universal 2nd Facto)类似国内的二代U盾的保护机制,使用双因子(密码和能与用户交互的设备)保护用户账户和隐私。用户在注册阶段,使用服务器支持的U2F设备,将账户和设备绑定。当进行登录验证操作时,服务器在合适的时候,提示用户插入设备并进行按键操作,加密设备对数据签名,发送给服务器,服务器做验证,如果验证成功,用户则可登录成功。由于有了第二因子(加密设备)的保护,用户可以选择不设置密码或者使用更简单易记的密码。
其工作原理如下:当用户登录服务器注册信息时,用户的U2F设备产生一对非对称密钥对,私钥在加密设备中保留,黑客无法读取,公钥传给服务器,服务器将此公钥和用户对应的账户相关联;当用户登录服务器验证信息时,用户使用U2F设备中的私钥对服务器的挑战值做签名,服务器使用对应的公钥做验证,用户的设备中的私钥,必须经过用户解锁(如按键),才能被用来做签名操作。
具体地,用户注册的过程如下:用户的终端设备提示用户选择一个FIDO(FastIDentity Online。快速在线身份认证联盟)认证因子;用户使用U2F设备解锁FIDO认证因子;用户的终端设备产生一个对本地设备、在线服务、用户账号唯一的新的公钥/私钥对;用户的终端设备发送公钥给在线服务,私钥和本地认证方式(比如U2F设备)不能离开本地设备。
用户登录的过程如下:在线业务的服务器对用户发出挑战,要求用户登陆;用户使用注册时的方法解锁FIDO的认证因子;终端设备使用在线业务服务器提供的用户的账号标识,来选择正确的私钥,并对在线业务的挑战值进行签名;终端设备发送签名后的挑战值给在线业务服务器,在线业务服务器使用公钥对签名做验证,并返回登陆响应给用户。
近年来,FIDO U2F已经成为新一代的、最受关注、最有希望的双因素验证手段,具有免驱动、浏览器(Chrome)原生支持、操作便捷、安全性高(密码学芯片的引入)、设计简单等优点。U2F引入的密钥派生机制,使得FIDO U2F标准虽然安全,但在实现过程中,容易被厂商方面引入安全风险,包括以下两点:
安全模型风险:U2F的安全模型,应该从芯片级安全的信任程度,被降低到供应商级别,即芯片级的安全并不可信,因为U2F设备芯片中的主密钥(即私钥)在出厂、销售、运输等过程中,容易被克隆复制,U2F设备只有在供应商出厂的时候才可信。用户在被授予U2F设备后,需要能够对此U2F设备的主密钥进行重置,以规避供应链过程中引入的主密钥(即私钥)泄漏风险。
克隆检测风险:一些使用了U2F机制的服务提供商,在U2F设备的主密钥被克隆复制之后,没有做对应的提示和注销等风控操作。甚至有些厂商没有按照标准协议实现防克隆检测,导致攻击者根据克隆的主密钥来实现登录认证。
为了避免上述两种安全风险,可以使用计数器作为一种探测被克隆的U2F设备的信号。U2F设备协议包含一个使用计数器,以允许会话发起者在某些情况下检测问题。U2F设备每次执行验证操作时,计数器的值都必须加1。该计数器可以是“全局的”(即,一个U2F令牌设备的计数器用于多个应用服务器),也可以针对某个单个应用的。U2F设备的计数器应该从0开始。U2F设备会记住它执行的签名操作次数的计数,无论是每对密钥(如果它有足够的内存)或全局(如果它有内存约束,会丢失密钥间的一些隐私),甚至在两者之间(例如,共享计数器的密钥桶,少许隐私泄漏)。
U2F设备会将实际计数器值发送回浏览器,以便在每次签名操作后将其中继到会话发起者。U2F设备还会在签名前将计数器值连接到客户端数据的散列值,以便会话发起者可以强有力地验证计数器值是否未被浏览器篡改。服务器可以对U2F设备当前发送的计数器值,和之前从同一U2F设备进行交互时接收到的计数器值相比较。如果当前的计数器值比之前接收到的计数器值小,则表示存在多个拥有相同密钥对的U2F设备与会话发起者进行交互(即,此U2F设备已经被克隆)。
如图1所示,正常的U2F认证过程如下:步骤S11,用户在浏览器侧,登录某个Web应用,输入用户名和密码,浏览器把经过摘要等算法处理后的用户名和密码发送给应用服务器;步骤S12,应用服务器对用户的密码进行验证;步骤S13,应用服务器对用户的用户名和密码验证通过后,应用服务器生成挑战值;步骤S14,应用服务器将生成的挑战值发送给用户的浏览器;步骤S15,用户的浏览器将挑战值发送给用户的U2F设备;步骤S16,用户的U2F设备会提示用户,是否确认本次操作;用户按下按钮,确认本次登录操作;步骤S17,用户的U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,同时生成计数器的值,并生成包含计数器值和签名的响应消息,发送给浏览器;步骤S18,浏览器把包含有计数器值和签名的响应消息发送给应用服务器;步骤S19,应用服务器根据用户之前注册的公钥,对响应消息中的签名进行验证;步骤S110,如果验证通过,并且本次收到的counter与之前记录的counter_old相比较,如果计数器是递增的,则允许用户登录,否则拒绝用户登录。
虽然计数器是一种强大的克隆信号,但无法在各种情况下都能检测到克隆情况的发生。例如,如果克隆操作发生之后,原始设备再也没有被使用过,则无法检测到此情况。或者,攻击者在克隆了U2F设备的主密钥(私钥)之后,对应用服务器发送的挑战值进行验签,自己产生一个比较大的计数器Counter。
针对现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种认证方法和系统,以至少解决现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
根据本申请实施例的一个方面,提供了一种认证方法,包括:客户终端获取签名信息,第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。
根据本申请实施例的另一方面,还提供了一种认证方法,包括:服务器发送挑战值至客户终端;服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息,第一数值和认证因素生成的,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;服务器对认证信息进行验证。
根据本申请实施例的另一方面,还提供了一种认证系统,包括:服务器,用于发送挑战值;客户终端,与服务器具有通信关系,用于基于签名信息,第一数值和认证因素,生成认证信息,其中,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素包括如下之一:登录时间和目标应用程序对应的第二数值;服务器还用于对认证信息进行验证,得到认证结果。
根据本申请实施例的另一方面,还提供了一种认证方法,包括:客户终端获取签名信息和认证参数,其中,认证参数用于表征客户终端登录服务器的登录信息和操作信息;客户终端基于签名信息和认证参数,生成认证信息。
根据本申请实施例的另一方面,还提供了一种认证方法,包括:服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息和认证参数生成的,认证参数用于表征客户终端登录服务器的登录信息和操作信息;服务器对认证信息进行验证。
根据本申请实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤:客户终端获取签名信息,第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,认证信息由服务器进行认证,得到认证结果。
根据本申请实施例的另一方面,还提供了一种移动设备,包括:处理器,处理器用于运行程序,其中,在程序运行时执行以下步骤:客户终端获取签名信息,第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,认证信息由服务器进行认证,得到认证结果。
根据本申请实施例的另一方面,还提供了一种认证系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:客户终端获取签名信息,第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,认证信息由服务器进行认证,得到认证结果。
在本申请实施例中,客户终端获取签名信息,第一数值和认证因素,进一步根据获取到的信息生成认证信息,并发送至服务器进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请实施例的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据现有技术的一种双因素认证的交互图;
图2是根据本申请实施例的一种用于实现认证方法的计算机终端(或移动设备)的硬件结构框图;
图3是根据本申请实施例的一种计算机终端作为发送端的示意图;
图4是根据本申请实施例1的一种认证方法的流程图;
图5是根据本申请实施例的一种可选的基于登录时间的认证方法的流程图;
图6是根据本申请实施例的一种可选的基于掩码的登录方案的示意图;
图7是根据本申请实施例的一种可选的基于掩码的认证方法的流程图;
图8是根据本申请实施例2的一种认证方法的流程图;
图9是根据本申请实施例3的一种认证装置的示意图;
图10是根据本申请实施例4的一种认证装置的示意图;
图11是根据本申请实施例5的一种认证系统的示意图;
图12是根据本申请实施例6的一种认证方法的流程图;
图13是根据本申请实施例7的一种认证方法的流程图;以及
图14是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
U2F:是一个开放认证的标准,使用专门的USB或NFC(Near Field Communication,近场通信)或BTLE(Bluetooth Low Energy,蓝牙低功耗技术)设备来加强并简化双因素认证。
FIDO:FIDO联盟是成立于2012年7月的行业协会。其目标是创建一套开放的标准协议,保证各个厂商开发的强认证技术之间的互操作性,改变目前的主流在线验证的方式(即使用密码作为主要验证手段),消除或者减弱用户对密码的依赖。FIDO联盟正是一个推动去密码化的强认证协议标准的组织。
实施例1
根据本申请实施例,提供了一种认证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图2示出了一种用于实现认证方法的计算机终端(或移动设备)的硬件结构框图。如图2所示,计算机终端20(或移动设备20)可以包括一个或多个(图中采用202a、202b,……,202n来示出)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输装置206。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
应当注意到的是上述一个或多个处理器202和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端20(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器204可用于存储应用软件的软件程序以及模块,如本申请实施例中的认证方法对应的程序指令/数据存储装置,处理器202通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的认证方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输装置206包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置206可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端20(或移动设备)的用户界面进行交互。
图2示出的硬件结构框图,不仅可以作为上述计算机终端20(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图3以框图示出了使用上述图2所示的计算机终端20(或移动设备)作为发送端的一种实施例。如图3所示,计算机终端20(或移动设备)可以经由数据网络连接或电子连接到一个或多个服务器,例如安全服务器、资源服务器、游戏服务器等。一种可选实施例中,上述计算机终端20(或移动设备)可以是任意移动计算设备等。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。计算机终端20(或移动设备)可以执行以连接到由一个服务器(例如安全服务器)或一组服务器执行的网络服务。网络服务器是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
在上述运行环境下,本申请提供了如图4所示的认证方法。图4是根据本申请实施例1的一种认证方法的流程图。如图4所示,该方法包括如下步骤:
步骤S42,客户终端获取签名信息,第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的第一数值)。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
步骤S44,客户终端基于签名信息、第一数值和认证因素,生成认证信息。
步骤S46,客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。
在一种可选的方案中,在双因素认证过程中,应用服务器可以发送挑战值给客户终端,客户终端通过U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,得到签名信息,同时生成计数器的值,并且读取新增的认证因素,进一步根据上述信息生成认证信息,通过浏览器转发给应用服务器进行双因素认证。应用服务器在接收到认证信息之后,需要分别对签名信息、计数器的值以及认证因素进行验证,只有在所有的信息均通过验证之后,才可以确定双因素认证通过。
本申请上述实施例1所提供的方案,客户终端获取签名信息,第一数值和认证因素,进一步根据获取到的信息生成认证信息,并发送至服务器进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例1的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
本申请上述实施例中,步骤S42,客户终端获取登录时间包括:
步骤S4202,客户终端从认证设备中读取历史登录时间,其中,历史登录时间用于表征客户终端上一次成功登录服务器的登录时间。
具体地,每次客户终端成功登录服务器之后,可以将客户终端成功登录服务器的登录时间记录在U2F设备的单片机内,从而在每次进行双因素认证时,可以直接从U2F设备的单片机内读取到客户终端上一次成功登录该应用服务器的登录时间。
步骤S4204,客户终端读取当前登录时间,其中,当前登录时间用于表征客户终端当前登录服务器的登录时间。
具体地,客户终端可以从U2F设备自身,或者客户终端上读取到当前登录时间,在客户终端此次成功登录应用服务器之后,该时间会作为下次双因素认证中的“历史登录时间”。
需要说明的是,上述的登录时间可以以U2F设备或者客户终端的时间为准,无需与应用服务器的本地时间保持同步,应用服务器中只需要对客户终端发送的登录时间进行存储,无需与本地时间进行比较。
可选地,在客户终端首次登录服务器的情况下,历史登录时间用于表征客户终端在服务器上进行注册操作的时间,其中,在客户终端在服务器上进行注册操作的情况下,客户终端根据当前登录时间生成登录时间。
具体地,如果客户终端是第一次登录该应用服务器,则可以将客户终端在应用服务器上进行注册操作的时间作为历史登录时间。对于注册操作,由于不存在历史登录时间,则可以仅获取当前时间。
在一种可选的方案中,客户终端可以通过U2F设备读取当前登录时间(timestamp_current)和上次成功登录的时间(timestamp_old),并在认证信息中发送给应用服务器,由应用服务器进行双因素认证。
例如,基于登录时间的认证方法如图5所示,客户终端上安装有浏览器,客户终端与U2F设备连接,该方法可以包括如下步骤:
步骤S51,用户在浏览器侧,登录某个Web应用程序(即上述的目标应用程序),输入用户名和密码,浏览器将经过摘要算法处理后的用户明和密码发送给应用服务器;
步骤S52,应用服务器对用户的用户名和密码进行验证;
步骤S53,应用服务器对用户的用户名和密码验证通过后,应用服务器生成挑战值。
步骤S54,应用服务器将挑战值发送给用户的浏览器,用户的浏览器将挑战值发送给用户的U2F设备。
步骤S55,用户的U2F设备提示用户,是否确认本次操作,用户按下按键,确认本次登录操作;
步骤S56,用户的U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,同时生成计数器的值,并生成包含计数器值和签名的响应消息(即上述的认证信息),发送给浏览器。
U2F设备每次在用户执行按键操作时,都需要从设备自身,或是从所连接的电脑上,读取当前登录时间(timestamp_current)和上次成功登录的时间(timestamp_old),并在响应消息中发送给浏览器。U2F设备在每次登录成功后,需要记录此当前时间(timestamp_current),这个时间会作为下次登陆响应的“上次登录时间”(timestamp_old),同时在响应消息中发送给浏览器,并最终发送给应用服务器。
如果是第一次登录操作,timestamp_old则是注册操作的时间。对于注册操作,则只需要发送当前时间即可。当前时间和上次登录时间,可以存储在U2F设备的单片机内,不用存储在SE(Secure Element)内,因为一般SE的存储空间有限。
步骤S57,浏览器将从U2F设备收到的含有签名、计数器值(Counter)、上次登录时间(timestamp_old)、当前登录时间(timestamp_current)的相应信息发送给应用服务器。
步骤S58,应用服务器根据用户之前注册的公钥,对认证信息中的签名进行验证。
步骤S59,在收到本次浏览器发送上来的计数器值之后,应用服务器会读取之前记录的旧的计数器的值(counter_old)和上次登录时间(timestamp_last)。
步骤S510,应用服务器将本次接收到览器发送上来的计数器值(counter)与读取的旧的计数器值(counter_old)进行比较,并将收到浏览器发送上来的上次成功登录时间(timestamp_old)与记录的上次成功登录时间(timestamp_last)相比较,并执行风险控制的策略。关于计数器值Counter,具体的风险控制的策略如本实施例中后续描述内容所述。关于时间戳,如果应用服务器发现浏览器发送上来的(timestamp_old)与记录的上次成功登录时间(timestamp_last)不一致,应用服务器可以对用户进行风险提示,由用户进行二次确认,或者冻结(Revoke)掉此U2F认证因素。
每次登录成功之后,应用服务器对之前每次验证通过的用户浏览器发送上来的计数器(Counter)的值进行存储,并记录浏览器发送上来的当前登录时间(timestamp_current),此时间会作为下次登录操作的上次登录时间(timestamp_last)。
U2F设备发送的这个当前登录时间和上次登录时间,可以以U2F设备或U2F设备连接的电脑的时间为准,不需要与应用服务器的本地时间保持同步,因为应用服务器收到这两个时间之后,只需要与上次收到和记录的登录时间比较即可,不需要与本地的时间进行比较。
通过上述方案,通过在响应消息中增加时间戳之后,即使攻击者在克隆了U2F设备的主密钥(私钥)之后,对应用服务器发送的挑战值进行验签,自己产生一个比较大的计数器Counter,这个Counter虽然比之前的大,但是攻击者无法知道用户上次的登录时间,同样会无法通过验证。相当于增加了一个认证因素。
本申请上述实施例中,步骤S42,客户终端获取登录次数包括:
步骤S4222,客户终端从认证设备中读取目标应用程序对应的历史数值,其中,目标应用程序与服务器对应,历史数值用于表征客户终端登录服务器的历史登录次数。
具体地,由于用户可以通过浏览器登录不同的应用程序,为了能够确定不同应用程序的登录次数,可以为不同的应用程序设置不同的子计数器(sub_counter),通过子计数器值表示用户登录该应用程序的登录次数。U2F设备可以存储一个映射表,记录下每个应用程序(AppID)所对应的计数器值(sub_counter)。如果U2F设备的SE(Secure Element)存储空间有限,这个映射表可以存储在U2F设备的单片机内。当每次用户成功登录到某个应用上时,这个应用对应的子计数器的值递增1。
例如,对于Atmel ATECC508A这款芯片,计数器Counter共有两个,每个计数器的上限是2097151。假设一个U2F设备可以服务于20个应用程序,可以给每个应用程序分配10万个计数范围。假如一个用户一天登录这个应用10次,一年就是3650次,这个U2F设备大约可以使用27年,才会溢出。在大部分的应用场景下,这个计数范围足够了。U2F存储的映射表如下表1所示:
表1
其中,对应于每个应用程序标识(AppID),其存储的子计数器的值(stored_sub_counter)需要落到事先分配的区间范围[min_value,max_value],上传到应用服务器的子计数器的实际值(next_sub_counter),只需要是实际的登录次数即可,即:next_sub_counter=stored_counter+1。
步骤S4224,客户终端获取历史数值与第一预设值之和,得到登录次数。
具体地,如表1所示,对于第二个应用程序Gmail,事先分配的sub_counter的值的区间范围为(1,100000),其存储的stored_sub_counter为100016,用户再次登录该应用程序,需要递增1(也即上述的第一预设值为1),再上传到服务器,即:next_sub_counter=16+1=17。
本申请上述实施例中,第一数值为客户终端上安装的所有应用程序对应的历史数值与第一预设值之和。
具体地,U2F设备还需要同时将总的计数器值(counter)上传到应用服务器,也即U2F设备中存储的计数器值,总的计数器值(counter)即为所有应用对应的存储的子计数器值(stored_sub_counter)之和,再加1。
本申请上述实施例中,步骤S42,客户终端获取登录次数包括:
步骤S4242,客户终端获取服务器发送的目标应用程序对应的历史掩码,其中,历史掩码用于表征客户终端登录服务器的历史登录次数。
具体地,可以通过“掩码”或“Counter复用”的方案来表示登录次数。例如,用户目前只绑定了Facebook,Gmail,Github三个网站,SE中的共享Counter上限为999999,其中,Facebook使用SE中的Counter的个位和十位(掩码为0000XX),构成了0-99的Sub Counter;Gmail使用SE中的Counter的百位和千位(掩码为00XX00),构成了0-99的Sub Counter;Github使用SE中的Counter的高两位(掩码为XX0000),构成了0-99的Sub Counter。掩码在注册过程中,保存于网站侧,也即,保存在应用服务器中。
步骤S4244,客户终端获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码。
具体地,上述的第二预设值也可以是1,用户每次登录某一应用程序时,相应的应用服务器将含有Counter掩码的挑战值发送给U2F设置,将Counter掩码增加1步,得到当前掩码。
如图6所示,当Facebook登录时,Counter值由000000变为000001;当Gmail登录时,Counter值由000001变为000101;当Gmail再次登录时,Counter值由000101变为000201;当Github登录时,Counter值由000201变为010201;当Gmail登录时,Counter值由010201变为010301。
步骤S4246,客户终端基于当前掩码,得到登录次数。
具体地,可以根据掩码算出Sub Counter值,也即得到登录次数。例如,如图6所示,当Facebook登录时,可以确定Facebook对应的Sub Counter值为1;当Gmail登录时,可以确定Gmail对应的Sub Counter值为1;当Gmail再次登录时,可以确定Gmail对应的SubCounter值为2;当Github登录时,可以确定Github对应的Sub Counter值为1;当Gmail登录时,可以确定Gmail对应的Sub Counter值为3。
例如,基于掩码的认证方法如图7所示,客户终端上安装有浏览器,客户终端与U2F设备连接,该方法可以包括如下步骤:
步骤S71至步骤S73的实现方式与步骤S51至步骤S53相同,在此不做赘述。
步骤S74,应用服务器将包含有counter掩码的挑战值发送给浏览器,并通过浏览器发送给U2F设备。
步骤S75的实现方式与步骤S55相同,在此不做赘述,
步骤S76,U2F设备将counter按掩码增加1步。
步骤S77,U2F设备根据掩码算出subcounter之值。
步骤S78,U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,同时生成计数器的值,并根据subcounter值,生成响应消息,发送给浏览器。
步骤S79,浏览器将响应消息转发给应用服务器。
步骤S710,应用服务器对响应消息进行验证。
步骤S711,应用服务器根据counter及掩码,算出subcounter之值。
步骤S712,应用服务器将本次接收到的计数器值(counter)与读取的旧的计数器值(counter_old)进行比较,并将收到浏览器发送上来的subcounter值与记录的subcounter值相比较,如果两个数值均合理增加,则确定双因素认证成功;否则,确定双因素认证失败。
通过上述方案,通过在认证信息中增加掩码确定的子计数器的值作为登录次数,即使攻击者在克隆了U2F设备的主密钥之后,对应用服务器发送的挑战值进行延签,自己产生一个比较大的计数器Counter,这个Counter虽然比之前的大,但是攻击者无法知道用户登录次数,同样会无法通过验证。
本申请上述实施例中,在步骤S46,客户终端将认证信息发送至服务器之后,该方法还包括:
步骤S48,服务器对签名信息、第一数值和认证因素进行验证。
步骤S410,如果签名信息、第一数值或认证因素认证失败,则服务器拒绝客户终端登录服务器,并执行相应的控制策略。
步骤S412,如果签名信息、第一数值和认证因素均认证成功,则服务器允许客户终端登录服务器。
在一种可选的方案中,客户终端在将认证信息发送给应用服务器之后,可以由应用服务器进行双因素认证,分别对认证信息中的签名信息、第一数值和认证因素进行认证,其中,签名信息和第一数值的认证可以采用现有的双因素认证方法中的方法实现,三个信息中只有所有的信息均认证通过,应用服务器才允许客户终端登录服务器,如果仅仅是签名信息和第一数值认证通过,而认证因素认证未通过,则可以确定存在克隆情况,也即,攻击者克隆了U2F设备的主密钥之后,自己产生一个比较大的计数器Counter,而且这个Counter比之前大,由于认证因素认证未通过,从而避免了克隆情况的发生。
需要说明的是,FIDO U2F标准中,存在防止克隆计数器Counter的涉及,但对其Counter异常的情况,并没有做过多的规范。不同厂商也对U2F的防克隆计数器缺乏应有的管控。理论上,对于这些验证设备,都会有一个计数器的存在:即每使用一次,计数器就会加一,因此计数器只会增长,不会减少。那么当攻击者获取密钥并且登录时,服务器端的计数器将会增加,但是用户本身的U盾计数器不会增加——那么当用户下一次使用U盾,就会产生计数器的不匹配,从而会产生警告。
尽管现有的厂商存在计数器的检测,却依然会对计数器不匹配的认证的行为,没有对用户进行可见的提示,只表现为一次"卡顿"。而有些厂商甚至根本没有对计数器进行检测。U2F的问题不仅仅是一个硬件上的问题,平台在应对克隆攻击上也欠缺应有的保护措施。
为了解决上述问题,应用服务器在双因素认证过程中,当认证失败时,可以采取相应的控制策略,具体地,对于从提供了U2F作为双因素认证服务的网站自身的角度来说,提供了新的风控策略;对于作为第三方评审评估检测机构,对提供了U2F作为双因素认证服务的网站,提供了独立审计的方法。
本申请上述实施例中,步骤S48,服务器对登录时间进行认证包括:
步骤S4802,服务器将客户终端发送的历史登录时间与本地存储的历史登录时间进行比较。
具体地,对于登录时间,应用服务器可以接收客户终端发送的当前登录时间,如果双因素认证通过,则可以允许客户终端成功登录应用服务器,从而可以确定当前登录时间为客户终端此次成功登录的登录时间,存储在应用服务器中,用于进行下一次认证。
由于应用服务器中存储的历史登录时间是客户终端发送的登录时间,客户终端中存储的历史登录时间与应用服务器中存储的历史登录时间相同,因此,应用服务器通过将客户终端发送的历史登录时间与本地存储的历史登录时间进行比较,如果相同,则可以确定客户终端不存在克隆情况;如果不相同,则可以确定客户终端存在克隆情况。
步骤S4804,如果客户终端发送的历史登录时间与本地存储的历史登录时间相同,则服务器确定登录时间认证成功。
步骤S4806,如果客户终端发送的历史登录时间与本地存储的历史登录时间不同,则服务器确定登录时间认证失败。
需要说明的是,对于克隆情况,由于攻击者会克隆U2F设备的主密钥,而且会产生一个比较大的计数器Counter,也即,认证信息中的签名信息和第一数值均认证通过,因此,在本申请实施例中,可以通过对认证因素进行认证,实现双因素认证过程。
在一种可选的方案中,应用服务器将接收到浏览器发送的上次成功登录时间(timestamp_old)与本地记录的上次成功登录时间(timestamp_last)相比较,如果两个登录时间相同,可以确定登录时间认证成功,进一步确定双因素认证成功,不存在安全风险;如果两个登录时间不同,可以确定登录时间认证失败,进一步确定双因素认证失败,存在安全风险,可以执行相应的风险控制策略。
本申请上述实施例中,在服务器确定登录时间认证成功之后,客户终端根据当前登录时间对认证设备内存储的历史登录时间进行更新;服务器根据当前登录时间对本地存储的历史登录时间进行更新。
具体地,在应用服务器确定客户终端发送的登录时间认证成功之后,可以确定不存在克隆风险,为了能够实现下一次双因素认证,客户终端可以将当前登录时间存储在U2F设备的单片机中,作为下一次获取到的历史登录时间;应用服务器同样可以将当前登录时间存储在本地设备中,作为下一次获取到的历史登录时间。
需要说明的是,为了避免数据存储量过大,客户终端和应用服务器均可以采用覆盖存储的方式对当前登录时间进行存储。
本申请上述实施例中,步骤S48,服务器对登录次数进行认证包括:
步骤S4822,服务器获取本地存储的目标应用程序对应的子计数器的历史数值,得到本地存储的历史登录次数。
具体地,客户终端和应用服务器中可以存储子计数器的历史数值,而不仅仅是存储历史登录次数。应用服务器中可以仅仅存储相应的目标应用程序对应的子计数器的历史数值,无需存储其余应用程序对应的子计数器的历史数值;而客户终端中可以存储安装的所有应用程序对应的子计数器的历史数值。
步骤S4824,服务器获取客户终端发送的登录次数与本地存储的历史登录次数的差值。
步骤S4826,服务器判断差值是否为第一预设值。
步骤S4828,如果差值为第一预设值,则服务器确定登录次数认证成功。
步骤S4830,如果差值不为第一预设值,则服务器确定登录次数认证失败。
具体地,由于客户终端发送的登录次数是在历史登录次数的基础上,增加1得到,应用服务器在接收到客户终端发送的登录次数之后,可以比较登录次数与本地存储的历史登录次数的差值是否为1,如果差值是1,则可以确定不存在安全风险,从而确定登录次数认证成功,进一步确定双因素认证成功,不存在安全风险;如果差值不是1,则可以确定存在安全风险,从而确定登录次数认证失败,进一步确定双因素认证失败,可以执行相应的风险控制策略。
本申请上述实施例中,在服务器确定登录次数认证成功之后,客户终端根据登录次数对认证设备内存储的历史数值进行更新;服务器根据登录次数对本地存储的历史数值进行更新。
具体地,在应用服务器确定客户终端发送的登录次数认证成功之后,可以确定不存在克隆风险,为了能够实现下一次双因素认证,客户终端可以根据登录次数确定子计数器的当前数值,并将当前数值存储在U2F设备的单片机中,作为下一次获取到的历史数值;应用服务器同样可以将当前数值存储在本地设备中,作为下一次获取到的历史数值。
本申请上述实施例中,步骤S48,服务器对登录次数进行认证包括:
步骤S4842,服务器获取本地存储的目标应用程序对应的历史掩码。
具体地,掩码可以存储在网站侧,也即,应用服务器中存储有历史掩码,并且可以根据客户终端发送的登录次数进行更新,从而实现对掩码进行更新。
步骤S4844,服务器根据本地存储的历史掩码和第一数值,得到本地存储的历史登录次数。
步骤S4846,服务器判断登录次数与本地存储的历史登录次数的差值是否为第一预设值。
步骤S4848,如果差值为第一预设值,则服务器确定登录次数认证成功。
步骤S4850,如果差值不为第一预设值,则服务器确定登录次数认证失败。
具体地,由于客户终端发送的登录次数是在历史登录次数的基础上,增加1得到,同样可以比较登录次数与本地存储的历史登录次数的差值是否为1,确定登录次数认证是否成功,进一步确定双因素认证是否成功。
本申请上述实施例中,在步骤S4848,服务器确定登录次数认证成功之后,该方法还包括:
步骤S4852,服务器获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码。
具体地,由于应用服务器接收到的登录次数与历史登录次数差1,应用服务器可以将本地存储的历史掩码增加1步,得到当前掩码,并作为下一次双因素认证过程中的历史掩码。
步骤S4854,服务器根据当前掩码对本地存储的历史掩码进行更新。
具体地,应用服务器在双因素认证成功之后,可以将计算得到的当前掩码覆盖存储在本地,从而在下一次双因素过程中,应用服务器在发送挑战值的同时,发送本地存储的历史掩码。
本申请上述实施例中,步骤S48,服务器对第一数值进行认证包括:
步骤S4862,服务器获取客户终端发送的第一数值与本地存储的第一数值的差值。
步骤S4864,服务器判断差值是否处于预设范围内。
步骤S4866,如果差值处于预设范围内,则服务器确定第一数值认证成功。
步骤S4868,如果差值未处于预设范围内,则服务器确定第一数值认证失败。
具体地,如果不存在克隆情况,则应用服务器可以确定客户终端发送的计数器值(counter)与读取的旧的计数器值(counter_old)的差值为1,如果存在克隆情况,也即客户终端发送的计数器值是攻击者自己生成的,计数器值可能会小于应用服务器存储的计数器值(counter_old),计数器值也有可能会远大于本地存储的计数器值(counter_old)。因此,可以预先设置一个预设范围,如果两个计数器值的差值未处于预设范围内,可以确定存在克隆情况。
本申请上述实施例中,在第一数值认证失败的情况下,步骤S410,服务器执行相应的控制策略包括:
步骤S4102,如果差值小于预设范围的最小值,则服务器执行回滚控制策略。
步骤S4104,如果差值大于预设范围的最大值,则服务器执行跳跃控制策略。
步骤S4106,如果客户终端发送的第一数值超过服务器的存储空间,则服务器执行溢出控制策略。
具体地,本申请为双因素认证服务的网站自身提供了风险控制策略,作为第三方评审评估检测机构提供了独立审计方法,主要包括三种风险检测及控制,回滚控制策略Counter Rolling Back、跳跃控制策略Counter Jump和溢出控制策略Counter Overflow,如下表2所示:
表2
对于Counter Rolling Back,应用服务器将收到的Counter值,与网站所记录的Counter的最大值对比,发现收到的Counter值比之前记录的Counter的最大值要小,比如上次的最大值是99,本次收到的值是50。网站侧发现此行为后,采用新的风控策略,网站侧直接冻结(Revoke)掉此U2F认证因素。另外,作为独立检测方,可以使用U2F协议模拟器,制造Rolling Back的行为,观测其行为。可以从网站侧的对应的风控反应(完全不检测Counter/检测Counter但不告警/告警但不冻结),给出对它的安全评估及建议。
对于Counter Jump,应用服务器将收到的Counter值,与网站所记录的Counter的最大值相比,有很大的跳变。比如之前记录的Counter值是99,本次跳变到199。网站发现此行为后,采用新的风控策略,限制其在相对短的时间内(如1个月),增加相对大的值(如1000),对于此行为进行告警(邮件提醒,短信提醒),进一步,将U2F因素暂时冻结。用户可以通过其他方式进行身份验证,来重新启用此U2F认证因素。
对于Counter Overflow,应用服务器收到的Counter值超过存储空间,溢出。比如,Counter是四个字节,溢出上界通常为4294967296,如果网站侧收到的Counter值比上界要大,则溢出了。网站侧检测到溢出时,网站侧应该冻结(Revoke)掉此认证因素,让用户重新绑定一个新的U2F设备。正常使用情况下,是很难达到此上界的。而被黑客入侵达到溢出的可能性更大。此方案本质上,是以牺牲一点点用户体验,来换取安全性。
本申请上述实施例中,步骤S48,服务器对签名信息进行认证包括:
步骤S4882,服务器通过本地存储的公钥对签名信息进行认证。
具体地,应用服务器本地存储的公钥可以是U2F设备在注册过程中,U2F发送的与用户账号对应的公钥。
本申请上述实施例中,在认证因素认证失败的情况下,步骤S410,服务器执行相应的控制策略至少包括如下之一:
步骤S4108,服务器拒绝客户终端登录。
步骤S4110,服务器再次对客户终端进行认证。
步骤S4112,服务器对认证因素进行冻结。
在一种可选的方案中,如果应用服务器确定认证因素认证失败,则应用服务器可以对用户进行风险提示,拒绝客户终端登录应用服务器,或者由用户进行二次确认,又或者冻结(Revoke)掉此U2F认证因素。
本申请上述实施例中,该方法还包括:
步骤S414,客户终端对认证信息进行加密,得到加密后的认证信息。
步骤S416,客户终端将加密后的认证信息发送至服务器。
具体地,对于有隐私保护需求和防中间人攻击的场景,需要对浏览器上传的签名信息、计数器值、认证因素等认证信息进行加密,再发送到服务器,以保护用户隐私,防止中间人攻击。
本申请上述实施例中,在步骤S46,客户终端将认证信息发送至服务器之后,该方法还包括:
步骤S418,服务器获取客户终端上安装的认证设备的数字证书。
步骤S420,服务器将数字证书与证书白名单进行匹配。
步骤S422,如果数字证书与证书白名单匹配失败,则服务器执行认证设备控制策略。
具体地,用户使用自己生产的,或者小厂商生产的U2F设备,存在一定的安全风险。目前U2F标准中,是采用数字证书Attestation Key的方式,通过U2F设备制造商的数字证书,来验证U2F设备的制造商,但标准中并没有强制要求对Attestation Key的风控策略。在本申请实施例中,在应用服务器中增加U2F设备Attestation Key的白名单,也即通过验证U2F设备制造商的数字证书,只接受白名单中认可的U2F设备制造商。通过上述方案,可以检测网站对DIY设备的容忍策略。
本申请上述实施例中,在步骤S42,客户终端获取签名信息,预设计数器的第一数值和认证因素之前,该方法还包括:
步骤S424,客户终端发送携带登录账号和登录密码的登录请求至服务器,其中,登录请求由服务器进行验证。
步骤S426,在登录请求验证成功的情况下,客户终端接收服务器发送的挑战值和/或目标应用程序对应的历史掩码。
在一种可选的方案中,当需要进行双因素认证时,用户可以通过浏览器登录某个应用程序,浏览器发送用户输入的用户账号和密码至应用服务器,由应用服务器进行验证,如果用户账号和密码通过验证,则应用服务器可以生成挑战值,并将挑战值通过浏览器发送给U2F设备。在认证因素采用掩码的情况下,应用服务器在发送挑战值的同时,可以发送本地存储的该应用程序对应的历史掩码。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种认证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图8是根据本申请实施例2的一种认证方法的流程图。如图8所示,该方法包括如下步骤:
步骤S82,服务器发送挑战值至客户终端。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的预设计数器的第一数值)。
在一种可选的方案中,当需要进行双因素认证时,用户可以通过浏览器登录某个应用程序,浏览器发送用户输入的用户账号和密码至应用服务器,由应用服务器进行验证,如果用户账号和密码通过验证,则应用服务器可以生成挑战值,并将挑战值通过浏览器发送给U2F设备。
步骤S84,服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息,预设计数器的第一数值和认证因素生成的,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
步骤S86,服务器对认证信息进行验证。
在一种可选的方案中,在双因素认证过程中,应用服务器可以发送挑战值给客户终端,客户终端通过U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,得到签名信息,同时生成计数器的值,并且读取新增的认证因素,进一步根据上述信息生成认证信息,通过浏览器转发给应用服务器进行双因素认证。应用服务器在接收到认证信息之后,需要分别对签名信息、计数器的值以及认证因素进行验证,只有在所有的信息均通过验证之后,才可以确定双因素认证通过。
本申请上述实施例2所提供的方案,服务器发送挑战值至客户终端,获取客户终端返回的认证信息,并对认证信息进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和预设计数器的第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的计数器数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例2的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
本申请上述实施例中,步骤S86,服务器对认证信息进行验证包括:
步骤S88,服务器对签名信息、第一数值和认证因素进行验证。
步骤S810,如果签名信息、第一数值或认证因素认证失败,则服务器拒绝客户终端登录服务器,并执行相应的控制策略。
步骤S812,如果签名信息、第一数值和认证因素均认证成功,则服务器允许客户终端登录服务器。
在一种可选的方案中,客户终端在将认证信息发送给应用服务器之后,可以由应用服务器进行双因素认证,分别对认证信息中的签名信息、第一数值和认证因素进行认证,其中,签名信息和第一数值的认证可以采用现有的双因素认证方法中的方法实现,三个信息中只有所有的信息均认证通过,应用服务器才允许客户终端登录服务器,如果仅仅是签名信息和第一数值认证通过,而认证因素认证未通过,则可以确定存在克隆情况,也即,攻击者克隆了U2F设备的主密钥之后,自己产生一个比较大的计数器Counter,而且这个Counter比之前大,由于认证因素认证未通过,从而避免了克隆情况的发生。
需要说明的是,FIDO U2F标准中,存在防止克隆计数器Counter的涉及,但对其Counter异常的情况,并没有做过多的规范。不同厂商也对U2F的防克隆计数器缺乏应有的管控。理论上,对于这些验证设备,都会有一个计数器的存在:即每使用一次,计数器就会加一,因此计数器只会增长,不会减少。那么当攻击者获取密钥并且登录时,服务器端的计数器将会增加,但是用户本身的U盾计数器不会增加——那么当用户下一次使用U盾,就会产生计数器的不匹配,从而会产生警告。
尽管现有的厂商存在计数器的检测,却依然会对计数器不匹配的认证的行为,没有对用户进行可见的提示,只表现为一次"卡顿"。而有些厂商甚至根本没有对计数器进行检测。U2F的问题不仅仅是一个硬件上的问题,平台在应对克隆攻击上也欠缺应有的保护措施。
为了解决上述问题,应用服务器在双因素认证过程中,当认证失败时,可以采取相应的控制策略,具体地,对于从提供了U2F作为双因素认证服务的网站自身的角度来说,提供了新的风控策略;对于作为第三方评审评估检测机构,对提供了U2F作为双因素认证服务的网站,提供了独立审计的方法。
本申请上述实施例中,服务器对登录时间进行认证包括:服务器将客户终端发送的历史登录时间与本地存储的历史登录时间进行比较;如果客户终端发送的历史登录时间与本地存储的历史登录时间相同,则服务器确定登录时间认证成功;如果客户终端发送的历史登录时间与本地存储的历史登录时间不同,则服务器确定登录时间认证失败。
本申请上述实施例中,在服务器确定登录时间认证成功之后,服务器根据当前登录时间对本地存储的历史登录时间进行更新。
本申请上述实施例中,服务器对登录次数进行认证包括:服务器获取本地存储的目标应用程序对应的子计数器的历史数值,得到本地存储的历史登录次数;服务器获取客户终端发送的登录次数与本地存储的历史登录次数的差值;服务器判断差值是否为第一预设值;如果差值为第一预设值,则服务器确定登录次数认证成功;如果差值不为第一预设值,则服务器确定登录次数认证失败。
本申请上述实施例中,在服务器确定登录次数认证成功之后,服务器根据登录次数对本地存储的历史数值进行更新。
本申请上述实施例中,服务器对登录次数进行认证包括:服务器获取本地存储的目标应用程序对应的历史掩码;服务器根据本地存储的历史掩码和第一数值,得到本地存储的历史登录次数;服务器判断登录次数与本地存储的历史登录次数的差值是否为第一预设值;如果差值为第一预设值,则服务器确定登录次数认证成功;如果差值不为第一预设值,则服务器确定登录次数认证失败。
本申请上述实施例中,在服务器确定登录次数认证成功之后,该方法还包括:服务器获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码;服务器根据当前掩码对本地存储的历史掩码进行更新。
本申请上述实施例中,服务器对第一数值进行认证包括:服务器获取客户终端发送的第一数值与本地存储的第一数值的差值;服务器判断差值是否处于预设范围内;如果差值处于预设范围内,则服务器确定第一数值认证成功;如果差值未处于预设范围内,则服务器确定第一数值认证失败。
本申请上述实施例中,在第一数值认证失败的情况下,服务器执行相应的控制策略包括:如果差值小于预设范围的最小值,则服务器执行回滚控制策略;如果差值大于预设范围的最大值,则服务器执行跳跃控制策略;如果客户终端发送的第一数值超过服务器的存储空间,则服务器执行溢出控制策略。
本申请上述实施例中,服务器对签名信息进行认证包括:服务器通过本地存储的公钥对签名信息进行认证。
本申请上述实施例中,在认证因素认证失败的情况下,服务器执行相应的控制策略至少包括如下之一:服务器拒绝客户终端登录;服务器再次对客户终端进行认证;服务器对认证因素进行冻结。
本申请上述实施例中,该方法还包括:服务器接收客户终端发送的加密后的认证信息,其中,加密后的认证信息是客户终端对认证信息进行加密得到的。
本申请上述实施例中,在服务器获取客户终端返回的认证信息之后,该方法还包括:服务器获取客户终端上安装的认证设备的数字证书;服务器将数字证书与证书白名单进行匹配;如果数字证书与证书白名单匹配失败,则服务器执行认证设备控制策略。
本申请上述实施例中,在服务器发送挑战值至客户终端之前,该方法还包括:服务器接收客户终端发送的携带登录账号和登录密码的登录请求;服务器对登录请求进行验证;在登录请求验证成功的情况下,服务器发送挑战值和/或目标应用程序对应的历史掩码至客户终端。
实施例3
根据本申请实施例,还提供了一种用于实施上述认证方法的认证装置,该装置部署在客户终端侧。如图9所示,该装置900包括:获取模块902、生成模块904和发送模块906。
其中,获取模块902用于获取签名信息,预设计数器的第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;生成模块904用于基于签名信息、第一数值和认证因素,生成认证信息;发送模块906用于将认证信息发送至服务器,其中,服务器对认证信息进行验证。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的预设计数器的第一数值)。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
此处需要说明的是,上述获取模块902、生成模块904和发送模块906对应于实施例1中的步骤S42至步骤S46,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本申请上述实施例3所提供的方案,客户终端通过获取模块获取签名信息,预设计数器的第一数值和认证因素,进一步通过生成模块根据获取到的信息生成认证信息,并通过发送模块发送至服务器进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和预设计数器的第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的计数器数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例3的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
本申请上述实施例中,获取模块包括:第一读取单元,用于从认证设备中读取历史登录时间,其中,历史登录时间用于表征客户终端上一次成功登录服务器的登录时间;第二读取单元,用于读取当前登录时间,其中,当前登录时间用于表征客户终端当前登录服务器的登录时间。
可选地,在客户终端首次登录服务器的情况下,历史登录时间用于表征客户终端在服务器上进行注册操作的时间,其中,在客户终端在服务器上进行注册操作的情况下,客户终端根据当前登录时间生成登录时间。
本申请上述实施例中,获取模块包括:第三读取单元,用于从认证设备中读取目标应用程序对应的子计数器的历史数值,其中,目标应用程序与服务器对应,子计数器的历史数值用于表征客户终端登录服务器的历史登录次数;第一获取单元,用于获取历史数值与第一预设值之和,得到登录次数。
本申请上述实施例中,预设计数器的第一数值为客户终端上安装的所有应用程序对应的子计数器的历史数值与第一预设值之和。
本申请上述实施例中,获取模块包括:第二获取单元,用于获取服务器发送的目标应用程序对应的历史掩码,其中,历史掩码用于表征客户终端登录服务器的历史登录次数;第三获取单元,用于获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码;处理单元,用于基于当前掩码,得到登录次数。
本申请上述实施例中,该装置还包括:存储模块,用于在服务器确定登录时间认证成功之后,根据当前登录时间对认证设备内存储的历史登录时间进行更新。
本申请上述实施例中,存储模块还用于在服务器确定登录次数认证成功之后,根据登录次数对认证设备内存储的历史数值进行更新。
本申请上述实施例中,该装置还包括:加密模块,用于客户终端对认证信息进行加密,得到加密后的认证信息;发送模块还用于将加密后的认证信息发送至服务器。
本申请上述实施例中,发送模块还用于发送携带登录账号和登录密码的登录请求至服务器,其中,登录请求由服务器进行验证;该装置还包括:接收模块,用于在登录请求验证成功的情况下,接收服务器发送的挑战值和/或目标应用程序对应的历史掩码。
实施例4
根据本申请实施例,还提供了一种用于实施上述认证方法的认证装置,该装置部署在服务器侧。如图10所示,该装置1000包括:发送模块1002、获取模块1004和认证模块1006。
其中,发送模块1002用于发送挑战值至客户终端;获取模块1004用于获取客户终端返回的认证信息,其中,认证信息是基于签名信息,预设计数器的第一数值和认证因素生成的,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;认证模块1006用于对认证信息进行验证。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的预设计数器的第一数值)。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
此处需要说明的是,上述发送模块1002、获取模块1004和认证模块1006对应于实施例2中的步骤S82至步骤S86,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本申请上述实施例4所提供的方案,服务器通过发送模块发送挑战值至客户终端,通过获取模块获取客户终端返回的认证信息,并通过认证模块对认证信息进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和预设计数器的第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的计数器数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例4的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
本申请上述实施例中,认证模块包括:认证单元用于对签名信息、第一数值和认证因素进行验证;第一处理单元,用于如果签名信息、第一数值或认证因素认证失败,则拒绝客户终端登录服务器,并执行相应的控制策略;第二处理单元,用于如果签名信息、第一数值和认证因素均认证成功,则允许客户终端登录服务器。
本申请上述实施例中,认证单元包括:比较子模块,用于将客户终端发送的历史登录时间与本地存储的历史登录时间进行比较;第一确定子模块,用于如果客户终端发送的历史登录时间与本地存储的历史登录时间相同,则确定登录时间认证成功;第一确定子模块,用于如果客户终端发送的历史登录时间与本地存储的历史登录时间不同,则服务器确定登录时间认证失败。
本申请上述实施例中,该装置还包括:存储模块,用于在服务器确定登录时间认证成功之后,根据当前登录时间对本地存储的历史登录时间进行更新。
本申请上述实施例中,认证单元包括:第一获取子模块,用于获取本地存储的目标应用程序对应的子计数器的历史数值,得到本地存储的历史登录次数;第二获取子模块,用于获取客户终端发送的登录次数与本地存储的历史登录次数的差值;第一判断子模块,用于判断差值是否为第一预设值;第二确定子模块,用于如果差值为第一预设值,则确定登录次数认证成功;第二确定子模块,用于如果差值不为第一预设值,则确定登录次数认证失败。
本申请上述实施例中,存储模块还用于在服务器确定登录次数认证成功之后,根据登录次数对本地存储的历史数值进行更新。
本申请上述实施例中,认证单元包括:第三获取子模块,用于获取本地存储的目标应用程序对应的历史掩码;处理子模块,用于根据本地存储的历史掩码和第一数值,得到本地存储的历史登录次数;第二判断子模块,用于判断登录次数与本地存储的历史登录次数的差值是否为第一预设值;第三确定子模块,用于如果差值为第一预设值,则确定登录次数认证成功;第三确定子模块,用于如果差值不为第一预设值,则确定登录次数认证失败。
本申请上述实施例中,存储模块还用于获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码,根据当前掩码对本地存储的历史掩码进行更新。
本申请上述实施例中,认证单元包括:第四获取子模块,用于获取客户终端发送的第一数值与本地存储的第一数值的差值;第三判断子模块,用于判断差值是否处于预设范围内;第四确定子模块,用于如果差值处于预设范围内,则确定第一数值认证成功;第四确定子模块,用于如果差值未处于预设范围内,则确定第一数值认证失败。
本申请上述实施例中,第一处理单元包括:第一执行子模块,用于如果差值小于预设范围的最小值,则执行回滚控制策略;第二执行子模块,用于如果差值大于预设范围的最大值,则执行跳跃控制策略;第三执行子模块,用于如果客户终端发送的第一数值超过服务器的存储空间,则执行溢出控制策略。
本申请上述实施例中,认证单元包括:认证子模块,用于服务器通过本地存储的公钥对签名信息进行认证。
本申请上述实施例中,第一处理单元至少包括如下之一:拒绝子模块,用于拒绝客户终端登录;二次认证子模块,用于再次对客户终端进行认证;冻结子模块,用于对认证因素进行冻结。
本申请上述实施例中,该装置还包括:接收模块,用于接收客户终端发送的加密后的认证信息,其中,加密后的认证信息是客户终端对认证信息进行加密得到的。
本申请上述实施例中,获取模块,用于获取客户终端上安装的认证设备的数字证书;该装置还包括:匹配模块,用于将数字证书与证书白名单进行匹配;执行模块,用于如果数字证书与证书白名单匹配失败,则执行认证设备控制策略。
本申请上述实施例中,该装置还包括:接收模块,用于接收客户终端发送的携带登录账号和登录密码的登录请求;验证模块,用于对登录请求进行验证;发送模块还用于在登录请求验证成功的情况下,发送挑战值和/或目标应用程序对应的历史掩码至客户终端。
实施例5
根据本申请实施例,还提供了一种认证系统,如图11所示,该系统包括:
其中,服务器112,用于发送挑战值;客户终端114,与服务器具有通信关系,用于基于签名信息,预设计数器的第一数值和认证因素,生成认证信息,其中,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素包括如下之一:登录时间和目标应用程序对应的子计数器的第二数值;服务器还用于对认证信息进行验证,得到认证结果。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的预设计数器的第一数值)。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
在一种可选的方案中,在双因素认证过程中,应用服务器可以发送挑战值给客户终端,客户终端通过U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,得到签名信息,同时生成计数器的值,并且读取新增的认证因素,进一步根据上述信息生成认证信息,通过浏览器转发给应用服务器进行双因素认证。应用服务器在接收到认证信息之后,需要分别对签名信息、计数器的值以及认证因素进行验证,只有在所有的信息均通过验证之后,才可以确定双因素认证通过。
本申请上述实施例5所提供的方案,客户终端获取签名信息,预设计数器的第一数值和认证因素,进一步根据获取到的信息生成认证信息,并发送至服务器进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和预设计数器的第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的计数器数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例5的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
本申请上述实施例中,客户终端还用于从认证设备中读取历史登录时间,其中,历史登录时间用于表征客户终端上一次成功登录服务器的登录时间;读取当前登录时间,其中,当前登录时间用于表征客户终端当前登录服务器的登录时间。
可选地,在客户终端首次登录服务器的情况下,历史登录时间用于表征客户终端在服务器上进行注册操作的时间,其中,在客户终端在服务器上进行注册操作的情况下,客户终端根据当前登录时间生成登录时间。
本申请上述实施例中,客户终端还用于从认证设备中读取目标应用程序对应的子计数器的历史数值,其中,目标应用程序与服务器对应,子计数器的历史数值用于表征客户终端登录服务器的历史登录次数;获取历史数值与第一预设值之和,得到登录次数。
本申请上述实施例中,预设计数器的第一数值为客户终端上安装的所有应用程序对应的子计数器的历史数值与第一预设值之和。
本申请上述实施例中,客户终端还用于获取服务器发送的目标应用程序对应的历史掩码,其中,历史掩码用于表征客户终端登录服务器的历史登录次数;获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码;基于当前掩码,得到登录次数。
本申请上述实施例中,服务器还用于对签名信息、第一数值和认证因素进行验证;如果签名信息、第一数值或认证因素认证失败,则拒绝客户终端登录服务器,并执行相应的控制策略;如果签名信息、第一数值和认证因素均认证成功,则允许客户终端登录服务器。
本申请上述实施例中,服务器还用于将客户终端发送的历史登录时间与本地存储的历史登录时间进行比较;如果客户终端发送的历史登录时间与本地存储的历史登录时间相同,则确定登录时间认证成功;如果客户终端发送的历史登录时间与本地存储的历史登录时间不同,则确定登录时间认证失败。
本申请上述实施例中,客户终端还用于在服务器确定登录时间认证成功之后,根据当前登录时间对认证设备内存储的历史登录时间进行更新;服务器还用于在服务器确定登录时间认证成功之后,根据当前登录时间对本地存储的历史登录时间进行更新。
本申请上述实施例中,服务器还用于获取本地存储的目标应用程序对应的子计数器的历史数值,得到本地存储的历史登录次数;获取客户终端发送的登录次数与本地存储的历史登录次数的差值;判断差值是否为第一预设值;如果差值为第一预设值,则确定登录次数认证成功;如果差值不为第一预设值,则确定登录次数认证失败。
本申请上述实施例中,客户终端还用于在服务器确定登录次数认证成功之后,根据登录次数对认证设备内存储的历史数值进行更新;服务器还用于在服务器确定登录次数认证成功之后,根据登录次数对本地存储的历史数值进行更新。
本申请上述实施例中,服务器还用于获取本地存储的目标应用程序对应的历史掩码;根据本地存储的历史掩码和第一数值,得到本地存储的历史登录次数;判断登录次数与本地存储的历史登录次数的差值是否为第一预设值;如果差值为第一预设值,则确定登录次数认证成功;如果差值不为第一预设值,则确定登录次数认证失败。
本申请上述实施例中,服务器还用于获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码;根据当前掩码对本地存储的历史掩码进行更新。
本申请上述实施例中,服务器还用于获取客户终端发送的第一数值与本地存储的第一数值的差值;判断差值是否处于预设范围内;如果差值处于预设范围内,则确定第一数值认证成功;如果差值未处于预设范围内,则确定第一数值认证失败。
本申请上述实施例中,服务器还用于在第一数值认证失败的情况下,如果差值小于预设范围的最小值,则执行回滚控制策略;如果差值大于预设范围的最大值,则执行跳跃控制策略;如果客户终端发送的第一数值超过服务器的存储空间,则执行溢出控制策略。
本申请上述实施例中,服务器还用于通过本地存储的公钥对签名信息进行认证。
本申请上述实施例中,服务器还用于在认证因素认证失败的情况下,拒绝客户终端登录;再次对客户终端进行认证;对认证因素进行冻结。
本申请上述实施例中,客户终端还用于对认证信息进行加密,得到加密后的认证信息;将加密后的认证信息发送至服务器。
本申请上述实施例中,服务器还用于获取客户终端上安装的认证设备的数字证书;将数字证书与证书白名单进行匹配;如果数字证书与证书白名单匹配失败,则执行认证设备控制策略。
本申请上述实施例中,客户终端还用于发送携带登录账号和登录密码的登录请求至服务器,其中,登录请求由服务器进行验证;在登录请求验证成功的情况下,接收服务器发送的挑战值和/或目标应用程序对应的历史掩码。
实施例6
根据本申请实施例,提供了一种认证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图12是根据本申请实施例6的一种认证方法的流程图。如图12所示,该方法包括如下步骤:
步骤S122,客户终端获取签名信息和认证参数,其中,认证参数用于表征客户终端登录服务器的登录信息和操作信息。
可选地,认证参数包括:第一数值和认证因素,其中,第一数值用于表征对服务器发送的挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息,签名信息是对挑战值进行签名得到的。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的第一数值)。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
步骤S124,客户终端基于签名信息和认证参数,生成认证信息。
步骤S126,客户终端将认证信息发送至服务器。
可选地,服务器还用于对认证信息进行双因素认证。
在一种可选的方案中,在认证过程中,应用服务器可以发送挑战值给客户终端,客户终端通过U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,得到签名信息,同时生成计数器的值,并且读取新增的认证因素,进一步根据上述信息生成认证信息,通过浏览器转发给应用服务器进行双因素认证。应用服务器在接收到认证信息之后,需要分别对签名信息、计数器的值以及认证因素进行验证,只有在所有的信息均通过验证之后,才可以确定双因素认证通过。
本申请上述实施例6所提供的方案,客户终端获取签名信息和认证参数,进一步根据获取到的信息生成认证信息,并发送至服务器进行双因素认证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例6的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
实施例7
根据本申请实施例,提供了一种认证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图13是根据本申请实施例7的一种认证方法的流程图。如图13所示,该方法包括如下步骤:
步骤S132,服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息和认证参数生成的,认证参数用于表征客户终端登录服务器的登录信息和操作信息。
可选地,认证参数包括:第一数值和认证因素,其中,第一数值用于表征对服务器发送的挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息,签名信息是对挑战值进行签名得到的。
可选地,客户终端上可以连接有认证设备,认证因素可以存储在认证设备的单片机或安全模块内。
可选地,认证因素可以至少包括如下之一:登录时间和登录次数。
具体地,上述的客户终端可以是计算机终端,上述的服务器可以是应用服务器,客户终端上安装有多个应用程序,通过浏览器可以登录任意一个应用程序,从而登录对应的应用服务器。为了实现双因素认证,客户终端上可以连接U2F设备(即上述的认证设备),U2F设备可以根据自身的主密钥对应用服务器发送的挑战值进行签名,同时生成计数器的值(即上述的第一数值)。
由于无法在各种情况下检测到克隆情况的发生,为了避免克隆情况下的发生,可以增加一个无法被攻击者获知的认证因素,例如,可以是客户终端上一次登录应用服务器的登录信息,具体可以包括:客户终端上一次登录的登录时间、客户终端登录该应用服务器的登录次数等。应用服务器可以根据不同安全级别的要求,选择性第要求浏览器和U2F发送认证因素,例如,如果安全级别不高,则认证因素可以仅仅是客户终端上一次登录的登录时间,或者仅仅是客户终端登录该应用服务器的登录次数;如果安全级别较高,则认证因素可以包括客户终端上一次登录的登录时间,以及客户终端登录该应用服务器的登录次数。
为了确保新增加的认证因素的安全性,由于安全模块SE的存储空间有限,可以将认证因素存储在U2F设备的单片机内。现有的计数器机制未发生变化,仅仅在单片机内增加新的认证因素,因此并未引入新的安全风险。当SE的存储容量较大时,为了增加安全性,可以将认证因素存储在SE中。
步骤S134,服务器对认证信息进行验证,得到认证结果。
在一种可选的方案中,在认证过程中,应用服务器可以发送挑战值给客户终端,客户终端通过U2F设备根据自身的主密钥(即私钥)对挑战值进行签名,得到签名信息,同时生成计数器的值,并且读取新增的认证因素,进一步根据上述信息生成认证信息,通过浏览器转发给应用服务器进行双因素认证。应用服务器在接收到认证信息之后,需要分别对签名信息、计数器的值以及认证因素进行验证,只有在所有的信息均通过验证之后,才可以确定双因素认证通过。
本申请上述实施例7所提供的方案,客户终端获取签名信息和认证参数,进一步根据获取到的信息生成认证信息,并发送给服务器,服务器获取到认证信息,并对认证信息进行验证,得到认证结果,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例7的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
实施例8
根据本申请实施例,还提供了一种身份认证系统,包括:
处理器;以及
存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:客户终端获取签名信息,预设计数器的第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。
本申请上述实施例8所提供的方案,客户终端获取签名信息,预设计数器的第一数值和认证因素,进一步根据获取到的信息生成认证信息,并发送至服务器进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和预设计数器的第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的计数器数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请提供的上述实施例8的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
实施例9
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行认证方法中以下步骤的程序代码:客户终端获取签名信息,预设计数器的第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。
可选地,图14是根据本申请实施例的一种计算机终端的结构框图。如图14所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1402以及存储器1404。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的认证方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的认证方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:客户终端获取签名信息,预设计数器的第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。
可选的,上述处理器还可以执行如下步骤的程序代码:客户终端上连接有认证设备,认证因素存储在认证设备的单片机或安全模块内。
可选的,上述处理器还可以执行如下步骤的程序代码:认证因素至少包括如下之一:登录时间和登录次数。
可选的,上述处理器还可以执行如下步骤的程序代码:客户终端从认证设备中读取历史登录时间,其中,历史登录时间用于表征客户终端上一次成功登录服务器的登录时间;客户终端读取当前登录时间,其中,当前登录时间用于表征客户终端当前登录服务器的登录时间。
可选的,上述处理器还可以执行如下步骤的程序代码:在客户终端首次登录服务器的情况下,历史登录时间用于表征客户终端在服务器上进行注册操作的时间,其中,在客户终端在服务器上进行注册操作的情况下,客户终端根据当前登录时间生成登录时间。
可选的,上述处理器还可以执行如下步骤的程序代码:客户终端从认证设备中读取目标应用程序对应的子计数器的历史数值,其中,目标应用程序与服务器对应,子计数器的历史数值用于表征客户终端登录服务器的历史登录次数;客户终端获取历史数值与第一预设值之和,得到登录次数。
可选的,上述处理器还可以执行如下步骤的程序代码:预设计数器的第一数值为客户终端上安装的所有应用程序对应的子计数器的历史数值与第一预设值之和。
可选的,上述处理器还可以执行如下步骤的程序代码:客户终端获取服务器发送的目标应用程序对应的历史掩码,其中,历史掩码用于表征客户终端登录服务器的历史登录次数;客户终端获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码;客户终端基于当前掩码,得到登录次数。
可选的,上述处理器还可以执行如下步骤的程序代码:在客户终端将认证信息发送至服务器之后,服务器对签名信息、第一数值和认证因素进行验证;如果签名信息、第一数值或认证因素认证失败,则服务器拒绝客户终端登录服务器,并执行相应的控制策略;如果签名信息、第一数值和认证因素均认证成功,则服务器允许客户终端登录服务器。
可选的,上述处理器还可以执行如下步骤的程序代码:服务器将客户终端发送的历史登录时间与本地存储的历史登录时间进行比较;如果客户终端发送的历史登录时间与本地存储的历史登录时间相同,则服务器确定登录时间认证成功;如果客户终端发送的历史登录时间与本地存储的历史登录时间不同,则服务器确定登录时间认证失败。
可选的,上述处理器还可以执行如下步骤的程序代码:在服务器确定登录时间认证成功之后,客户终端根据当前登录时间对认证设备内存储的历史登录时间进行更新;服务器根据当前登录时间对本地存储的历史登录时间进行更新。
可选的,上述处理器还可以执行如下步骤的程序代码:服务器获取本地存储的目标应用程序对应的子计数器的历史数值,得到本地存储的历史登录次数;服务器获取客户终端发送的登录次数与本地存储的历史登录次数的差值;服务器判断差值是否为第一预设值;如果差值为第一预设值,则服务器确定登录次数认证成功;如果差值不为第一预设值,则服务器确定登录次数认证失败。
可选的,上述处理器还可以执行如下步骤的程序代码:在服务器确定登录次数认证成功之后,客户终端根据登录次数对认证设备内存储的历史数值进行更新;服务器根据登录次数对本地存储的历史数值进行更新。
可选的,上述处理器还可以执行如下步骤的程序代码:服务器获取本地存储的目标应用程序对应的历史掩码;服务器根据本地存储的历史掩码和第一数值,得到本地存储的历史登录次数;服务器判断登录次数与本地存储的历史登录次数的差值是否为第一预设值;如果差值为第一预设值,则服务器确定登录次数认证成功;如果差值不为第一预设值,则服务器确定登录次数认证失败。
可选的,上述处理器还可以执行如下步骤的程序代码:在服务器确定登录次数认证成功之后,服务器获取历史掩码与第二预设值之和,得到目标应用程序对应的当前掩码;服务器根据当前掩码对本地存储的历史掩码进行更新。
可选的,上述处理器还可以执行如下步骤的程序代码:服务器获取客户终端发送的第一数值与本地存储的第一数值的差值;服务器判断差值是否处于预设范围内;如果差值处于预设范围内,则服务器确定第一数值认证成功;如果差值未处于预设范围内,则服务器确定第一数值认证失败。
可选的,上述处理器还可以执行如下步骤的程序代码:在第一数值认证失败的情况下,如果差值小于预设范围的最小值,则服务器执行回滚控制策略;如果差值大于预设范围的最大值,则服务器执行跳跃控制策略;如果客户终端发送的第一数值超过服务器的存储空间,则服务器执行溢出控制策略。
可选的,上述处理器还可以执行如下步骤的程序代码:服务器通过本地存储的公钥对签名信息进行认证。
可选的,上述处理器还可以执行如下步骤的程序代码:在认证因素认证失败的情况下,服务器拒绝客户终端登录;服务器再次对客户终端进行认证;服务器对认证因素进行冻结。
可选的,上述处理器还可以执行如下步骤的程序代码:客户终端对认证信息进行加密,得到加密后的认证信息;客户终端将加密后的认证信息发送至服务器。
可选的,上述处理器还可以执行如下步骤的程序代码:在客户终端将认证信息发送至服务器之后,服务器获取客户终端上安装的认证设备的数字证书;服务器将数字证书与证书白名单进行匹配;如果数字证书与证书白名单匹配失败,则服务器执行认证设备控制策略。
可选的,上述处理器还可以执行如下步骤的程序代码:在客户终端获取签名信息,预设计数器的第一数值和认证因素之前,客户终端发送携带登录账号和登录密码的登录请求至服务器,其中,登录请求由服务器进行验证;在登录请求验证成功的情况下,客户终端接收服务器发送的挑战值和/或目标应用程序对应的历史掩码。
采用本申请实施例,客户终端获取签名信息,预设计数器的第一数值和认证因素,进一步根据获取到的信息生成认证信息,并发送至服务器进行验证,从而实现通用第二因素认证的目的。
容易注意到的,认证信息中不仅仅包含签名信息和预设计数器的第一数值,还包括认证因素,而且认证因素为客户终端登录服务器的登录信息,与现有技术相比,由于攻击者无法获知认证因素,即使攻击者生成一个较大的计数器数值,也无法通过双因素认证,从而有效检测到克隆操作的发生,达到了提高认证准确率,提升用户体验感的技术效果。
由此,本申请实施例的方案解决了现有技术中认证方法无法有效检测到克隆操作的发生,导致认证准确率低的技术问题。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:服务器发送挑战值至客户终端;服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息,预设计数器的第一数值和认证因素生成的,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;服务器对认证信息进行验证。
可选的,上述处理器还可以执行如下步骤的程序代码:服务器对签名信息、第一数值和认证因素进行验证;如果签名信息、第一数值或认证因素认证失败,则服务器拒绝客户终端登录服务器,并执行相应的控制策略;如果签名信息、第一数值和认证因素均认证成功,则服务器允许客户终端登录服务器。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:客户终端获取签名信息和认证参数,其中,认证参数用于表征客户终端登录服务器的登录信息和操作信息;客户终端基于签名信息和认证参数,生成认证信息。
可选地,认证参数包括:第一数值和认证因素,其中,第一数值用于表征对服务器发送的挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息,签名信息是对挑战值进行签名得到的,服务器还用于对认证信息进行验证。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息和认证参数生成的,认证参数用于表征客户终端登录服务器的登录信息和操作信息;服务器对认证信息进行验证,得到认证结果。
本领域普通技术人员可以理解,图14所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例9
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的认证方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:客户终端获取签名信息,预设计数器的第一数值和认证因素,其中,签名信息是对服务器发送的挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;客户终端基于签名信息、第一数值和认证因素,生成认证信息;客户终端将认证信息发送至服务器,其中,服务器对认证信息进行验证。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:服务器发送挑战值至客户终端;服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息,预设计数器的第一数值和认证因素生成的,签名信息是对挑战值进行签名得到的,第一数值用于表征对挑战值进行签名的操作次数,认证因素用于表征客户终端登录服务器的登录信息;服务器对认证信息进行验证。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:客户终端获取签名信息和认证参数,其中,认证参数用于表征客户终端登录服务器的登录信息和操作信息;客户终端基于签名信息和认证参数,生成认证信息。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:服务器获取客户终端返回的认证信息,其中,认证信息是基于签名信息和认证参数生成的,认证参数用于表征客户终端登录服务器的登录信息和操作信息;服务器对认证信息进行验证,得到认证结果。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (25)
1.一种认证方法,包括:
客户终端获取签名信息,第一数值和认证因素,其中,所述签名信息是对服务器发送的挑战值进行签名得到的,所述第一数值用于表征对所述挑战值进行签名的操作次数,所述认证因素用于表征所述客户终端登录所述服务器的登录信息,所述客户终端上连接有认证设备,所述认证因素存储在所述认证设备的单片机或安全模块内,所述认证因素至少包括如下之一:登录时间和登录次数;
所述客户终端基于所述签名信息、所述第一数值和所述认证因素,生成认证信息;
所述客户终端将所述认证信息发送至所述服务器,其中,所述认证信息由所述服务器进行验证;
所述客户终端上安装的认证设备的数字证书由所述服务器在所述客户终端将所述认证信息发送至所述服务器之后获取,并与证书白名单进行匹配;认证设备控制策略由所述服务器在所述数字证书与所述证书白名单匹配失败的情况下执行。
2.根据权利要求1所述的方法,其中,所述客户终端获取所述登录时间包括:
所述客户终端从所述认证设备中读取历史登录时间,其中,所述历史登录时间用于表征所述客户终端上一次成功登录所述服务器的登录时间;
所述客户终端读取当前登录时间,其中,所述当前登录时间用于表征所述客户终端当前登录所述服务器的登录时间。
3.根据权利要求2所述的方法,其中,在所述客户终端首次登录所述服务器的情况下,所述历史登录时间用于表征所述客户终端在所述服务器上进行注册操作的时间,其中,在所述客户终端在所述服务器上进行注册操作的情况下,所述客户终端根据所述当前登录时间生成所述登录时间。
4.根据权利要求1所述的方法,其中,所述客户终端获取所述登录次数包括:
所述客户终端从所述认证设备中读取目标应用程序对应的历史数值,其中,所述目标应用程序与所述服务器对应,所述历史数值用于表征所述客户终端登录所述服务器的历史登录次数;
所述客户终端获取所述历史数值与第一预设值之和,得到所述登录次数。
5.根据权利要求4所述的方法,其中,所述第一数值为所述客户终端上安装的所有应用程序对应的历史数值与所述第一预设值之和。
6.根据权利要求1所述的方法,其中,所述客户终端获取所述登录次数包括:
所述客户终端获取所述服务器发送的目标应用程序对应的历史掩码,其中,所述历史掩码用于表征所述客户终端登录所述服务器的历史登录次数;
所述客户终端获取所述历史掩码与第二预设值之和,得到所述目标应用程序对应的当前掩码;
所述客户终端基于所述当前掩码,得到所述登录次数。
7.根据权利要求1至6中任意一项所述的方法,其中,在所述客户终端将所述认证信息发送至所述服务器之后,所述方法还包括:
所述服务器对所述签名信息、所述第一数值和所述认证因素进行验证;
如果所述签名信息、所述第一数值或所述认证因素认证失败,则所述服务器拒绝所述客户终端登录所述服务器,并执行相应的控制策略;
如果所述签名信息、所述第一数值和所述认证因素均认证成功,则所述服务器允许所述客户终端登录所述服务器。
8.根据权利要求7所述的方法,其中,所述服务器对所述登录时间进行认证包括:
所述服务器将所述客户终端发送的历史登录时间与本地存储的历史登录时间进行比较;
如果所述客户终端发送的历史登录时间与所述本地存储的历史登录时间相同,则所述服务器确定所述登录时间认证成功;
如果所述客户终端发送的历史登录时间与所述本地存储的历史登录时间不同,则所述服务器确定所述登录时间认证失败。
9.根据权利要求8所述的方法,其中,在所述服务器确定所述登录时间认证成功之后,所述客户终端根据当前登录时间对所述认证设备内存储的历史登录时间进行更新;所述服务器根据所述当前登录时间对所述本地存储的历史登录时间进行更新。
10.根据权利要求7所述的方法,其中,所述服务器对所述登录次数进行认证包括:
所述服务器获取本地存储的目标应用程序对应的历史数值,得到本地存储的历史登录次数;
所述服务器获取所述客户终端发送的登录次数与所述本地存储的历史登录次数的差值;
所述服务器判断所述差值是否为第一预设值;
如果所述差值为所述第一预设值,则所述服务器确定所述登录次数认证成功;
如果所述差值不为所述第一预设值,则所述服务器确定所述登录次数认证失败。
11.根据权利要求10所述的方法,其中,在所述服务器确定所述登录次数认证成功之后,所述客户终端根据所述登录次数对所述认证设备内存储的历史数值进行更新;
所述服务器根据所述登录次数对所述本地存储的历史数值进行更新。
12.根据权利要求7所述的方法,其中,所述服务器对所述登录次数进行认证包括:
所述服务器获取本地存储的目标应用程序对应的历史掩码;
所述服务器根据所述本地存储的历史掩码和所述第一数值,得到本地存储的历史登录次数;
所述服务器判断所述登录次数与所述本地存储的历史登录次数的差值是否为第一预设值;
如果所述差值为所述第一预设值,则所述服务器确定所述登录次数认证成功;
如果所述差值不为所述第一预设值,则所述服务器确定所述登录次数认证失败。
13.根据权利要求12所述的方法,其中,在所述服务器确定所述登录次数认证成功之后,所述方法还包括:
所述服务器获取所述历史掩码与第二预设值之和,得到所述目标应用程序对应的当前掩码;
所述服务器根据所述当前掩码对所述本地存储的历史掩码进行更新。
14.根据权利要求7所述的方法,其中,所述服务器对所述第一数值进行认证包括:
所述服务器获取所述客户终端发送的第一数值与本地存储的第一数值的差值;
所述服务器判断所述差值是否处于预设范围内;
如果所述差值处于所述预设范围内,则所述服务器确定所述第一数值认证成功;
如果所述差值未处于所述预设范围内,则所述服务器确定所述第一数值认证失败。
15.根据权利要求14所述的方法,其中,在所述第一数值认证失败的情况下,所述服务器执行相应的控制策略包括:
如果所述差值小于所述预设范围的最小值,则所述服务器执行回滚控制策略;
如果所述差值大于所述预设范围的最大值,则所述服务器执行跳跃控制策略;
如果所述客户终端发送的第一数值超过所述服务器的存储空间,则所述服务器执行溢出控制策略。
16.根据权利要求7所述的方法,其中,所述服务器对所述签名信息进行认证包括:
所述服务器通过本地存储的公钥对所述签名信息进行认证。
17.根据权利要求7所述的方法,其中,在所述认证因素认证失败的情况下,所述服务器执行相应的控制策略至少包括如下之一:
所述服务器拒绝所述客户终端登录;
所述服务器再次对所述客户终端进行认证;
所述服务器对所述认证因素进行冻结。
18.根据权利要求1所述的方法,其中,所述方法还包括:
所述客户终端对所述认证信息进行加密,得到加密后的认证信息;
所述客户终端将所述加密后的认证信息发送至所述服务器。
19.根据权利要求6所述的方法,其中,在客户终端获取签名信息,第一数值和认证因素之前,所述方法还包括:
所述客户终端发送携带登录账号和登录密码的登录请求至所述服务器,其中,所述登录请求由所述服务器进行验证;
在所述登录请求验证成功的情况下,所述客户终端接收所述服务器发送的所述挑战值和/或所述目标应用程序对应的历史掩码。
20.一种认证方法,包括:
服务器发送挑战值至客户终端;
所述服务器获取所述客户终端返回的认证信息,其中,所述认证信息是基于签名信息,第一数值和认证因素生成的,所述签名信息是对所述挑战值进行签名得到的,所述第一数值用于表征对所述挑战值进行签名的操作次数,所述认证因素用于表征所述客户终端登录所述服务器的登录信息,所述客户终端上连接有认证设备,所述认证因素存储在所述认证设备的单片机或安全模块内,所述认证因素至少包括如下之一:登录时间和登录次数;
所述服务器对所述认证信息进行验证;
在所述服务器获取所述客户终端返回的认证信息之后,所述服务器获取所述客户终端上安装的认证设备的数字证书;所述服务器将所述数字证书与证书白名单进行匹配;如果所述数字证书与所述证书白名单匹配失败,则所述服务器执行认证设备控制策略。
21.根据权利要求20所述的方法,其中,所述服务器对所述认证信息进行验证包括:
所述服务器对所述签名信息、所述第一数值和所述认证因素进行验证;
如果所述签名信息、所述第一数值或所述认证因素认证失败,则所述服务器拒绝所述客户终端登录所述服务器,并执行相应的控制策略;
如果所述签名信息、所述第一数值和所述认证因素均认证成功,则所述服务器允许所述客户终端登录所述服务器。
22.一种认证系统,包括:
服务器,用于发送挑战值;
客户终端,与所述服务器具有通信关系,用于基于签名信息,第一数值和认证因素,生成认证信息,其中,所述签名信息是对所述挑战值进行签名得到的,所述第一数值用于表征对所述挑战值进行签名的操作次数,所述认证因素包括如下之一:登录时间和目标应用程序对应的第二数值,所述客户终端上连接有认证设备,所述认证因素存储在所述认证设备的单片机或安全模块内,所述认证因素至少包括如下之一:登录时间和登录次数;
所述服务器还用于对所述认证信息进行验证,得到认证结果;
所述服务器还用于在所述客户终端将所述认证信息发送至所述服务器之后,获取所述客户终端上安装的认证设备的数字证书;将所述数字证书与证书白名单进行匹配;如果所述数字证书与所述证书白名单匹配失败,则执行认证设备控制策略。
23.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:客户终端获取签名信息,第一数值和认证因素,其中,所述签名信息是对服务器发送的挑战值进行签名得到的,所述第一数值用于表征对所述挑战值进行签名的操作次数,所述认证因素用于表征所述客户终端登录所述服务器的登录信息,所述客户终端上连接有认证设备,所述认证因素存储在所述认证设备的单片机或安全模块内,所述认证因素至少包括如下之一:登录时间和登录次数;所述客户终端基于所述签名信息、所述第一数值和所述认证因素,生成认证信息;所述客户终端将所述认证信息发送至所述服务器,其中,所述认证信息由所述服务器进行验证;所述客户终端上安装的认证设备的数字证书由所述服务器在所述客户终端将所述认证信息发送至所述服务器之后获取,并与证书白名单进行匹配;认证设备控制策略由所述服务器在所述数字证书与所述证书白名单匹配失败的情况下执行。
24.一种移动设备,包括:处理器,所述处理器用于运行程序,其中,在所述程序运行时执行以下步骤:客户终端获取签名信息,第一数值和认证因素,其中,所述签名信息是对服务器发送的挑战值进行签名得到的,所述第一数值用于表征对所述挑战值进行签名的操作次数,所述认证因素用于表征所述客户终端登录所述服务器的登录信息,所述客户终端上连接有认证设备,所述认证因素存储在所述认证设备的单片机或安全模块内,所述认证因素至少包括如下之一:登录时间和登录次数;所述客户终端基于所述签名信息、所述第一数值和所述认证因素,生成认证信息;所述客户终端将所述认证信息发送至所述服务器,其中,所述认证信息由所述服务器进行验证;所述客户终端上安装的认证设备的数字证书由所述服务器在所述客户终端将所述认证信息发送至所述服务器之后获取,并与证书白名单进行匹配;认证设备控制策略由所述服务器在所述数字证书与所述证书白名单匹配失败的情况下执行。
25.一种认证系统,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:客户终端获取签名信息,第一数值和认证因素,其中,所述签名信息是对服务器发送的挑战值进行签名得到的,所述第一数值用于表征对所述挑战值进行签名的操作次数,所述认证因素用于表征所述客户终端登录所述服务器的登录信息,所述客户终端上连接有认证设备,所述认证因素存储在所述认证设备的单片机或安全模块内,所述认证因素至少包括如下之一:登录时间和登录次数;所述客户终端基于所述签名信息、所述第一数值和所述认证因素,生成认证信息;所述客户终端将所述认证信息发送至所述服务器,其中,所述认证信息由所述服务器进行验证;所述客户终端上安装的认证设备的数字证书由所述服务器在所述客户终端将所述认证信息发送至所述服务器之后获取,并与证书白名单进行匹配;认证设备控制策略由所述服务器在所述数字证书与所述证书白名单匹配失败的情况下执行。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811097496.3A CN110932858B (zh) | 2018-09-19 | 2018-09-19 | 认证方法和系统 |
PCT/US2019/051262 WO2020060910A1 (en) | 2018-09-19 | 2019-09-16 | Authentication method and system |
US16/571,790 US20200092284A1 (en) | 2018-09-19 | 2019-09-16 | Authentication method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811097496.3A CN110932858B (zh) | 2018-09-19 | 2018-09-19 | 认证方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110932858A CN110932858A (zh) | 2020-03-27 |
CN110932858B true CN110932858B (zh) | 2023-05-02 |
Family
ID=69772358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811097496.3A Active CN110932858B (zh) | 2018-09-19 | 2018-09-19 | 认证方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200092284A1 (zh) |
CN (1) | CN110932858B (zh) |
WO (1) | WO2020060910A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11363021B1 (en) * | 2019-09-30 | 2022-06-14 | Amazon Technologies, Inc. | Proxy service for two-factor authentication |
CN111516638A (zh) * | 2020-05-12 | 2020-08-11 | 长春大学 | 一种新型的基于物联网的指纹识别汽车启动系统及方法 |
US11947659B2 (en) | 2020-05-28 | 2024-04-02 | Red Hat, Inc. | Data distribution across multiple devices using a trusted execution environment in a mobile device |
US11971980B2 (en) | 2020-05-28 | 2024-04-30 | Red Hat, Inc. | Using trusted execution environments to perform a communal operation for mutually-untrusted devices |
US10848309B2 (en) * | 2020-07-02 | 2020-11-24 | BehavioSec Inc | Fido authentication with behavior report to maintain secure data connection |
US11848924B2 (en) * | 2020-10-12 | 2023-12-19 | Red Hat, Inc. | Multi-factor system-to-system authentication using secure execution environments |
CN112492598A (zh) * | 2020-12-18 | 2021-03-12 | 厦门盈趣科技股份有限公司 | Wifi网络设置方法、系统、移动终端及存储介质 |
CN112738043B (zh) * | 2020-12-22 | 2023-06-27 | 北京八分量信息科技有限公司 | 大数据系统中对用户身份进行合法性认证的方法、系统及相关产品 |
CN112737790B (zh) * | 2020-12-30 | 2023-04-07 | 北京天融信网络安全技术有限公司 | 数据传输方法、装置及服务器、客户终端 |
US20220217136A1 (en) * | 2021-01-04 | 2022-07-07 | Bank Of America Corporation | Identity verification through multisystem cooperation |
US11750597B2 (en) * | 2021-06-18 | 2023-09-05 | Kyndryl, Inc. | Unattended authentication in HTTP using time-based one-time passwords |
US20220405766A1 (en) * | 2021-06-18 | 2022-12-22 | Capital One Services, Llc | Systems and methods for contactless card communication and key pair cryptographic authentication using distributed storage |
CN113824732B (zh) * | 2021-10-13 | 2023-08-22 | 成都安恒信息技术有限公司 | 一种基于零信任的多因子认证方法 |
CN114978749B (zh) * | 2022-06-14 | 2023-10-10 | 中国电信股份有限公司 | 登录认证方法及系统、存储介质和电子设备 |
CN115118496B (zh) * | 2022-06-27 | 2024-02-27 | 珠海格力电器股份有限公司 | 身份认证信息的存储方法、装置以及身份认证设备 |
CN115514531B (zh) * | 2022-08-26 | 2024-05-10 | 苏州浪潮智能科技有限公司 | 数据劫持告警方法、系统、电子设备及存储介质 |
CN115344842B (zh) * | 2022-10-19 | 2023-04-21 | 益企商旅(山东)科技服务有限公司 | 一种差旅管理系统登录认证方法 |
CN116028909B (zh) * | 2023-02-24 | 2023-12-19 | 深圳市赛柏特通信技术有限公司 | 一种安全办公控制方法、系统及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187450A (zh) * | 2015-10-08 | 2015-12-23 | 飞天诚信科技股份有限公司 | 一种基于认证设备进行认证的方法和设备 |
CN105847247A (zh) * | 2016-03-21 | 2016-08-10 | 飞天诚信科技股份有限公司 | 一种认证系统及其工作方法 |
CN106330838A (zh) * | 2015-07-01 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种动态签名方法及应用该方法的客户端和服务器 |
CN106470201A (zh) * | 2015-08-21 | 2017-03-01 | 中兴通讯股份有限公司 | 一种用户认证方法和装置 |
CN106549973A (zh) * | 2016-11-21 | 2017-03-29 | 飞天诚信科技股份有限公司 | 一种基于生物特征识别的客户端及其工作方法 |
CN106686004A (zh) * | 2017-02-28 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种登录认证方法及系统 |
WO2017186100A1 (zh) * | 2016-04-27 | 2017-11-02 | 腾讯科技(深圳)有限公司 | 身份认证方法、系统及设备 |
CN108064440A (zh) * | 2017-05-25 | 2018-05-22 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的fido认证方法、装置及系统 |
CN108092776A (zh) * | 2017-12-04 | 2018-05-29 | 南京南瑞信息通信科技有限公司 | 一种身份认证服务器和身份认证令牌 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185316B1 (en) * | 1997-11-12 | 2001-02-06 | Unisys Corporation | Self-authentication apparatus and method |
US6607136B1 (en) * | 1998-09-16 | 2003-08-19 | Beepcard Inc. | Physical presence digital authentication system |
US6912653B2 (en) * | 2001-01-23 | 2005-06-28 | Erika Monika Gohl | Authenticating communications |
US7987510B2 (en) * | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
US7020645B2 (en) * | 2001-04-19 | 2006-03-28 | Eoriginal, Inc. | Systems and methods for state-less authentication |
US7207060B2 (en) * | 2001-10-18 | 2007-04-17 | Nokia Corporation | Method, system and computer program product for secure ticketing in a communications device |
US20170032360A9 (en) * | 2002-09-09 | 2017-02-02 | U.S. Encode Corporation | Systems and methods for enrolling a token in an online authentication program |
US7596704B2 (en) * | 2003-10-10 | 2009-09-29 | Jing-Jang Hwang | Partition and recovery of a verifiable digital secret |
GB0411777D0 (en) * | 2004-05-26 | 2004-06-30 | Crypomathic Ltd | Computationally asymmetric cryptographic systems |
WO2006119184A2 (en) * | 2005-05-04 | 2006-11-09 | Tricipher, Inc. | Protecting one-time-passwords against man-in-the-middle attacks |
WO2007019351A1 (en) * | 2005-08-03 | 2007-02-15 | Intercomputer Corporation | System and method for user identification and authentication |
JP5231254B2 (ja) * | 2006-02-10 | 2013-07-10 | ベリサイン・インコーポレイテッド | ネットワークベースの不正および認証サービスのシステムと方法 |
TWI338489B (en) * | 2006-03-22 | 2011-03-01 | Lg Electronics Inc | Asymmetric cryptography for wireless systems |
US8640203B2 (en) * | 2007-06-04 | 2014-01-28 | Rajesh G. Shakkarwar | Methods and systems for the authentication of a user |
US8776176B2 (en) * | 2008-05-16 | 2014-07-08 | Oracle America, Inc. | Multi-factor password-authenticated key exchange |
US20100235900A1 (en) * | 2009-03-13 | 2010-09-16 | Assa Abloy Ab | Efficient two-factor authentication |
US8966268B2 (en) * | 2011-12-30 | 2015-02-24 | Vasco Data Security, Inc. | Strong authentication token with visual output of PKI signatures |
JP2014050064A (ja) * | 2012-09-04 | 2014-03-17 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法、プログラム及びクライアント端末 |
CN105052072A (zh) * | 2012-12-28 | 2015-11-11 | 威斯科数据安全国际有限公司 | 远程认证和业务签名 |
US9374369B2 (en) * | 2012-12-28 | 2016-06-21 | Lookout, Inc. | Multi-factor authentication and comprehensive login system for client-server networks |
US10270748B2 (en) * | 2013-03-22 | 2019-04-23 | Nok Nok Labs, Inc. | Advanced authentication techniques and applications |
US9578005B2 (en) * | 2013-10-01 | 2017-02-21 | Robert K Lemaster | Authentication server enhancements |
US10491587B2 (en) * | 2013-10-28 | 2019-11-26 | Singou Technology Ltd. | Method and device for information system access authentication |
US9292711B1 (en) * | 2014-01-07 | 2016-03-22 | Amazon Technologies, Inc. | Hardware secret usage limits |
US9781097B2 (en) * | 2014-02-18 | 2017-10-03 | Secureauth Corporation | Device fingerprint updating for single sign on authentication |
US9686272B2 (en) * | 2015-02-24 | 2017-06-20 | Go Daddy Operating Company, LLC | Multi factor user authentication on multiple devices |
KR102558361B1 (ko) * | 2015-04-13 | 2023-07-21 | 삼성전자주식회사 | 통신 시스템에서 프로파일을 관리하는 기법 |
EP3318041A1 (en) * | 2015-06-30 | 2018-05-09 | Raghav Bhaskar | User friendly two factor authentication |
CN106330850B (zh) * | 2015-07-02 | 2020-01-14 | 创新先进技术有限公司 | 一种基于生物特征的安全校验方法及客户端、服务器 |
CN106341372A (zh) * | 2015-07-08 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 终端的认证处理、认证方法及装置、系统 |
JP5951094B1 (ja) * | 2015-09-07 | 2016-07-13 | ヤフー株式会社 | 生成装置、端末装置、生成方法、生成プログラム及び認証処理システム |
DE102017000768A1 (de) * | 2017-01-27 | 2018-08-02 | Giesecke+Devrient Mobile Security Gmbh | Verfahren zum Durchführen einer Zweifaktorauthentifizierung |
US10762481B2 (en) * | 2017-03-21 | 2020-09-01 | The Toronto-Dominion Bank | Secure offline approval of initiated data exchanges |
US11388155B2 (en) * | 2017-05-16 | 2022-07-12 | Softex, Inc. | Integrated cybersecurity system and method for providing restricted client access to a website |
US10771459B2 (en) * | 2017-09-04 | 2020-09-08 | Electronics And Telecommunications Research Institute | Terminal apparatus, server apparatus, blockchain and method for FIDO universal authentication using the same |
EP3718069B1 (en) * | 2017-11-30 | 2024-04-17 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
CN109936547A (zh) * | 2017-12-18 | 2019-06-25 | 阿里巴巴集团控股有限公司 | 身份认证方法、系统及计算设备 |
US10701070B2 (en) * | 2018-05-23 | 2020-06-30 | Verum Securitas, Inc. | Personalized security system |
WO2020035009A1 (zh) * | 2018-08-15 | 2020-02-20 | 飞天诚信科技股份有限公司 | 认证系统及其工作方法 |
KR20200031803A (ko) * | 2018-09-17 | 2020-03-25 | 삼성에스디에스 주식회사 | 인증 시스템 및 방법 |
CA3108917A1 (en) * | 2018-10-02 | 2020-04-09 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
WO2020197779A1 (en) * | 2019-03-22 | 2020-10-01 | Zev Industries | System and method for the measurement of impact kinetics |
-
2018
- 2018-09-19 CN CN201811097496.3A patent/CN110932858B/zh active Active
-
2019
- 2019-09-16 US US16/571,790 patent/US20200092284A1/en not_active Abandoned
- 2019-09-16 WO PCT/US2019/051262 patent/WO2020060910A1/en active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330838A (zh) * | 2015-07-01 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种动态签名方法及应用该方法的客户端和服务器 |
CN106470201A (zh) * | 2015-08-21 | 2017-03-01 | 中兴通讯股份有限公司 | 一种用户认证方法和装置 |
CN105187450A (zh) * | 2015-10-08 | 2015-12-23 | 飞天诚信科技股份有限公司 | 一种基于认证设备进行认证的方法和设备 |
WO2017059741A1 (zh) * | 2015-10-08 | 2017-04-13 | 飞天诚信科技股份有限公司 | 基于认证设备进行认证的方法和设备 |
CN105847247A (zh) * | 2016-03-21 | 2016-08-10 | 飞天诚信科技股份有限公司 | 一种认证系统及其工作方法 |
WO2017186100A1 (zh) * | 2016-04-27 | 2017-11-02 | 腾讯科技(深圳)有限公司 | 身份认证方法、系统及设备 |
CN106549973A (zh) * | 2016-11-21 | 2017-03-29 | 飞天诚信科技股份有限公司 | 一种基于生物特征识别的客户端及其工作方法 |
CN106686004A (zh) * | 2017-02-28 | 2017-05-17 | 飞天诚信科技股份有限公司 | 一种登录认证方法及系统 |
CN108064440A (zh) * | 2017-05-25 | 2018-05-22 | 深圳前海达闼云端智能科技有限公司 | 基于区块链的fido认证方法、装置及系统 |
CN108092776A (zh) * | 2017-12-04 | 2018-05-29 | 南京南瑞信息通信科技有限公司 | 一种身份认证服务器和身份认证令牌 |
Non-Patent Citations (4)
Title |
---|
"Adaptive authentication based on analysis of user behavior";Khairul Azmi Abu Bakar;《2014 Science and Information Conference》;20141009;全文 * |
基于FIDO协议的双向动态口令认证方案;郭佳鑫等;《计算机工程与设计》;20171116(第11期);全文 * |
基于FIDO协议的指纹认证方案研究;郭茂文;《广东通信技术》;20160415(第04期);全文 * |
基于U2F与OAuth的认证授权方案研究;李梁磊等;《保密科学技术》;20170320(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020060910A1 (en) | 2020-03-26 |
US20200092284A1 (en) | 2020-03-19 |
CN110932858A (zh) | 2020-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110932858B (zh) | 认证方法和系统 | |
US11765172B2 (en) | Network system for secure communication | |
CN110770695B (zh) | 物联网(iot)设备管理 | |
AU2016235515B2 (en) | Methods and apparatus for user authentication and human intent verification in mobile devices | |
CN109547464B (zh) | 用于存储和执行访问控制客户端的方法及装置 | |
US20190281028A1 (en) | System and method for decentralized authentication using a distributed transaction-based state machine | |
US9780950B1 (en) | Authentication of PKI credential by use of a one time password and pin | |
CN109417545B (zh) | 下载网络接入简档的方法、安全模块、移动终端和介质 | |
CN110874494B (zh) | 密码运算处理方法、装置、系统及度量信任链构建方法 | |
WO2020176870A1 (en) | System and method for endorsing a new authenticator | |
WO2014036021A1 (en) | Secure device service enrollment | |
WO2013177069A1 (en) | System and method for enabling unconfigured devices to join an autonomic network in a secure manner | |
US10091189B2 (en) | Secured data channel authentication implying a shared secret | |
CN113411187B (zh) | 身份认证方法和系统、存储介质及处理器 | |
US9443069B1 (en) | Verification platform having interface adapted for communication with verification agent | |
US9503442B1 (en) | Credential-based application programming interface keys | |
Alaca et al. | Comparative analysis and framework evaluating web single sign-on systems | |
CN113569210A (zh) | 分布式身份认证方法、设备访问方法及装置 | |
WO2016030132A1 (en) | A method for signing data, corresponding first device and system | |
US20210367775A1 (en) | Devices, Systems, And Methods For Providing Security To IoT Networks And Sensors | |
CN110771087B (zh) | 私钥更新 | |
DK2916509T3 (en) | Network Authentication Procedure for Secure User Identity Verification | |
CN113169953B (zh) | 用于验证设备或用户的方法和装置 | |
KR20180052479A (ko) | 서명 체인을 이용한 유무선 공유기의 펌웨어 업데이트 시스템, 유무선 공유기 및 유무선 공유기의 펌웨어 업데이트 방법 | |
US9659177B1 (en) | Authentication token with controlled release of authentication information based on client attestation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |