CN111586024B - 一种认证方法、设备和存储介质 - Google Patents

一种认证方法、设备和存储介质 Download PDF

Info

Publication number
CN111586024B
CN111586024B CN202010362144.7A CN202010362144A CN111586024B CN 111586024 B CN111586024 B CN 111586024B CN 202010362144 A CN202010362144 A CN 202010362144A CN 111586024 B CN111586024 B CN 111586024B
Authority
CN
China
Prior art keywords
time window
terminal
server
authentication
parameter
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
Application number
CN202010362144.7A
Other languages
English (en)
Other versions
CN111586024A (zh
Inventor
李岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bigo Technology Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202010362144.7A priority Critical patent/CN111586024B/zh
Publication of CN111586024A publication Critical patent/CN111586024A/zh
Application granted granted Critical
Publication of CN111586024B publication Critical patent/CN111586024B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

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)
  • Business, Economics & Management (AREA)
  • Power Engineering (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种认证方法、设备和存储介质,该方法包括:终端将携带令牌的第一认证请求消息发送至服务器;服务器将第一认证响应消息发送至终端;终端将携带目标动态口令的第二认证请求消息发送至服务器,目标动态口令加密自终端本地的注册参数、原始密钥、时间窗口参数;服务器将携带认证结果的第二认证响应消息发送至终端,认证结果用于表示在时间窗口参数表示的时间窗口内、根据注册参数、原始密钥与时间窗口参数对目标动态口令进行认证。服务器与终端之间可使用对称密钥函数和HMAC技术进行注册、认证,可提高计算的速度,减少时间与空间的开销,时间窗口的范围较广,对时间同步的要求较低,适合跨国、跨区域的终端与服务器的认证。

Description

一种认证方法、设备和存储介质
技术领域
本发明实施例涉及安全技术,尤其涉及一种认证方法、设备和存储介质。
背景技术
用户在终端进行登录、支付、转账等业务操作时,常面临针对口令、登录凭证的窃听攻击和重放攻击威胁,对此服务器往往对用户进行身份认证,以保障用户数据及财产的安全性。
传统的账号和口令的方式,口令是固定的,需要用户记住,一般称为静态口令,为了防止不法人员盗用一个已有用户的身份,多使用动态口令(OTP,One Time Password)进行用户身份的认证,动态口令又称一次性密码,该密码或者口令在认证中是一次性有效的。
目前,动态口令主要分为如下两大类:
1、硬件令牌技术
硬件令牌技术是终端和服务器分别预置相同的种子密钥,使用时,终端和服务器使用相同的种子密钥和算法,计算出相同的动态口令。
然而,硬件令牌技术依赖独立的物理硬件,给用户的携带和保管增加负担,并且,硬件令牌技术需要定期更换物理硬件,导致成本较高,适用范围较小。
2、软件令牌技术
软件令牌技术目前主要依赖于终端和服务器时间严格同步,或者使用非对称加解密技术。
然而,服务器和终端时间严格同步在现实中较难实现,并且,非对称加解密技术会造成终端、服务器计算开销较大。
发明内容
本发明实施例提供一种认证方法、设备和存储介质,以解决适用动态口令对用户进行身份认证时,如何在保证成本的情况下,降低同步要求、降低开销的问题。
第一方面,本发明实施例提供了一种认证方法,包括:
终端将携带令牌的第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
服务器将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
终端将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
服务器将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
第二方面,本发明实施例还提供了一种认证方法,应用于终端,所述终端在向服务器注册时存储原始密钥、时间窗口参数与令牌,所述方法包括:
将携带令牌的第一认证请求消息发送至服务器,服务器用于将所述令牌解密为原始密钥、时间窗口参数与注册参数;
接收服务器发送的第一认证响应消息;
将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
接收服务器发送的、携带认证结果的第二认证响应消息,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
第三方面,本发明实施例还提供了一种认证方法,应用于服务器,所述方法包括:
接收终端发送的、携带令牌的第一认证请求消息,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
接收终端发送的、携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
第四方面,本发明实施例还提供了一种认证方法,包括:
终端将第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥与时间窗口参数;
服务器将第一认证响应消息发送至终端,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
终端将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
服务器将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
第五方面,本发明实施例还提供了一种认证方法,应用于终端,所述终端在向服务器注册时存储原始密钥与时间窗口参数,所述方法包括:
将第一认证请求消息发送至服务器;
接收服务器发送的第一认证响应消息,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
接收服务器发送的、携带认证结果的第二认证响应消息,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
第六方面,本发明实施例还提供了一种认证方法,应用于服务器,所述服务器对终端注册时存储注册参数、原始密钥与时间窗口参数,所述方法包括:
接收终端发送的第一认证请求消息,终端向服务器注册时存储原始密钥与时间窗口参数;
将第一认证响应消息发送至终端;
接收终端发送的、携带目标动态口令的第二认证请求消息,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
第七方面,本发明实施例还提供了一种认证系统,包括终端与服务器:
终端,用于将携带令牌的第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
服务器,用于将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
终端,还用于将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
服务器,还用于将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
第八方面,本发明实施例还提供了一种认证系统,包括终端与服务器:
终端,用于将第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥与时间窗口参数;
服务器,用于将第一认证响应消息发送至终端,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
终端,还用于将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
服务器,还用于将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
第九方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面、第二方面、第三方面、第四方面、第五方面、第六方面中任一所述的认证方法。
第十方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面、第二方面、第三方面、第四方面、第五方面、第六方面中任一所述的认证方法。
在本实施例中,服务器与终端之间同步时间窗口以及共享原始密钥,每次认证使用动态口令,以抵抗窃听攻击和重放攻击。服务器与终端之间可使用对称密钥函数和HMAC(Hash-based Message Authentication Code,哈希消息认证码)技术进行注册、认证,可提高计算的速度,减少时间与空间的开销,时间窗口的范围较广,对时间同步的要求较低,适合跨国、跨区域的终端与服务器的认证。在一种情况中,服务器并不持久化存储用户认证的相关数据,实现在无状态模式下,基于时间窗口进行认证,可以保护用户隐私。在另一种情况中,服务器并持久化存储用户认证的相关数据,实现在有状态模式下,基于时间窗口进行认证,以便减少用户的数据在网络传输中占用的带宽,降低敏感的数据在网络传输过程中的泄漏风险。
附图说明
图1为本发明实施例一提供的一种认证方法的流程图;
图2为本发明实施例一提供的一种无状态模式下的认证信令图;
图3是本发明实施例二提供的一种认证方法的流程图;
图4为本发明实施例二提供的一种无状态模式下的认证信令图;
图5是本发明实施例三提供的一种认证方法的流程图;
图6是本发明实施例四提供的一种认证方法的流程图;
图7为本发明实施例五提供的一种认证方法的流程图;
图8为本发明实施例五提供的一种有状态模式下的认证信令图;
图9是本发明实施例六提供的一种认证方法的流程图;
图10为本发明实施例六提供的一种有状态模式下的认证信令图;
图11是本发明实施例七提供的一种认证方法的流程图;
图12是本发明实施例八提供的一种认证方法的流程图;
图13为本发明实施例九提供的一种认证系统的结构示意图;
图14为本发明实施例十提供的一种认证系统的结构示意图;
图15为本发明实施例十一提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种认证方法的流程图,本实施例可适用于在无状态模式下,服务器对终端基于时间窗口(TimeWindow)进行注册的情况,所谓无状态模式,可以指服务器不持久化存储用户认证的相关数据,该方法可以由计算机设备来执行,该计算机设备(终端与服务器)可以由软件和/或硬件实现,其中,该终端可以包括移动终端(如手机、平板电脑等)、可穿戴设备(如智能手表等),等等,该方法具体包括如下步骤:
S101、终端将携带注册参数的注册请求消息发送至服务器。
在本实施例中,终端在用户注册时,将注册参数组装至注册请求消息中发送至服务器。
在一种实施方式中,如图2所示,在注册请求消息N1中,注册参数可以包括用户标识UID、用户密码password和/或环境信息。
其中,用户标识UID为一个唯一标识用户的信息,如用户的ID。
环境信息为标识认证环境的信息,例如,用于表示设备环境的设备标识DeviceID(如设备的ID)、用于表示地理环境的地理标识IPCountry(如IP所属国家或地区),等等。
一般而言,可同时使用设备标识DeviceID、地理标识IPCountry,但是,在某些情况下,可以单独使用用户密码password,此时,环境标识IPCountry为空,又或者,可以单独适用环境标识IPCountry,此时,用户密码password为空,本实施例对此不加以限制。
在使用环境信息时,可以单独使用设备标识DeviceID或者地理标识IPCountry,或者,同时使用设备标识DeviceID与地理标识IPCountry,本实施例对此亦不加以限制。
S102、服务器使用注册参数生成新的注册参数,将携带原始密钥、时间窗口参数与令牌的注册响应消息发送至终端。
在本实施例中,如图2所示,服务器在接收到终端的注册请求消息之后,响应该注册请求消息,对终端进行注册,在注册成功时,生成新的原始密钥SK、新的时间窗口参数、使用原有的注册参数生成新的注册参数,通过注册响应消息N2将原始密钥SK、时间窗口参数与令牌Token发送至终端。
其中,时间窗口参数为用于表示时间窗口的参数,具体可以包括注册时间CreateTime与时间窗口的长度tw。
而令牌Token加密自原始密钥SK、时间窗口参数与注册参数,需要说明的是,该注册参数可以指原有的注册参数,也可以指新的注册参数,本实施例对此不加以限制。
在一种实施方式中,如图2所示,在对终端注册时,服务器可进行如下操作:
1、随机生成安全参数Salt,作为新的注册参数,使得在注册、认证的过程可加入安全参数Salt,提高用户密码Password、环境信息(如设备标识DeviceID、地理标识IPCountry)等数据的安全性,防范被字典攻击暴力破解。
2、将用户密码password与安全参数Salt按照预设的结构进行组合,使用第一单向散列函数对用户密码password与安全参数Salt加密,获得第一散列值H1,作为新的注册参数,和/或,将环境信息(如设备标识DeviceID、地理标识IPCountry)与安全参数Salt按照预设的结构进行组合,使用第二单向散列函数对环境信息(如设备标识DeviceID、地理标识IPCountry)与安全参数Salt加密,获得第二散列值H2,作为新的注册参数。
其中,第一单向散列函数、第二单向散列函数均属于单向散列函数,该单向散列函数可以包括MD5(Message Digest Algorithm 5,消息摘要算法第五版)、SHA(Secure HashAlgorithm,安全哈希算法),等等。MD5输出16B的散列值、SHA1输出20B的散列值、SHA256输出32B的散列值、SHA512输出64B的散列值,等等。
在本实施例中,用户密码password为空时,第一散列值H1可以为空,环境信息为空时,第二散列值H2可以为空,但是,用户密码password、环境信息中至少一者不为空(即用户密码password、环境信息不同时为空),即第一散列值H1、第二散列值H2至少一者不为空(即第一散列值H1、第二散列值H2不同时为空)。
3、读取当前的时间、作为注册时间CreateTime。
4、根据认证的应用场景,确定相应的时间窗口的长度tw。
一般而言,时间窗口的长度tw是服务器设置的时间段,根据安全策略设定,具体而言,时间窗口的长度tw与安全性负相关,即时间窗口的长度tw越大,其安全性越低,反之,时间窗口的长度tw越短,其安全性越高。在对安全性要求较低的应用场景,如登录,可以生成较大的时间窗口的长度tw,减少因为超时而导致认证失败,在对安全性要求较高的应用场景,如支付,可以生成较短的时间窗口的长度tw,提高认证的安全性。
5、使用对称密钥函数对原始密钥SK、用户标识UID、安全参数Salt、注册时间CreateTime、时间窗口的长度tw、第一散列值H1与第二散列值H2进行加密Encrypt,从而获得令牌Token。
其中,对称密钥函数属于对称密钥函数,可以指加密和解密使用相同密钥的算法,例如,AES(Advanced Encryption Standard,高级加密标准,又称Rijndael加密法)、3DES(Triple Data Encryption Algorithm,三重数据加密算法)、PBE(Password-basedencryption,基于密码验证)、RC4(Rivest Cipher 4)、SM1、SM4,等等。
以AES作为对称密钥函数的示例,AES包括密码分组链接模式(Cipher BlockChaining,CBC)、计算器模式(Counter,CTR)、密码反馈模式(Cipher FeedBack,CFB)、输出反馈模式(Output FeedBack,OFB)等模式,针对原始密钥SK、用户标识UID、安全参数Salt、第一散列值H1与第二散列值H2,可使用AES中的CTR进行加密,而CTR是用密钥Key对输入的计数器加密,然后同明文(原始密钥SK、用户标识UID、安全参数Salt、注册时间CreateTime、时间窗口的长度tw、第一散列值H1与第二散列值H2)异或得到密文。
对称密钥函数所使用的密钥Key,是通用的密钥Key,预先存储在服务器与终端中。
在完成上述操作之后,将原始密钥SK、注册时间CreateTime、时间窗口的长度tw与令牌Token组装至注册响应消息中,将注册响应消息发送至终端。
需要说明的是,服务器并不持久化原始密钥SK、注册时间CreateTime、时间窗口的长度tw与令牌Token等与用户认证的相关数据。
S103、终端存储原始密钥、时间窗口参数与令牌。
如图2所示,终端在接收到服务器反馈的注册响应消息N2时,从注册响应消息N2中提取原始密钥SK、时间窗口参数(如注册时间CreateTime、时间窗口的长度tw)与令牌Token,并将原始密钥SK、时间窗口参数(如注册时间CreateTime、时间窗口的长度tw)与令牌Token存储在终端本地的数据库中,从而完成注册的流程。
实施例二
图3为本发明实施例二提供的一种认证方法的流程图,本实施例以前述实施例为基础,进一步增加在无状态模式下,服务器基于时间窗口对终端进行认证的处理操作,该方法具体包括如下步骤:
S301、终端将携带令牌的第一认证请求消息发送至服务器。
在本实施例中,如图4所示,终端在向服务器注册时存储原始密钥SK、时间窗口参数与令牌Token,服务器并不持久化原始密钥SK、时间窗口参数与令牌Token等与用户认证的相关数据,在认证时,终端提取本地存储的令牌Token,通过第一认证请求消息发送至服务器。
在一种实施方式中,如图4所示,终端提取终端本地的令牌Token、用户标识UID,确定终端的时间,作为第一参考时间tsA,随机生成第一数值NA、从而防止中间人和重放攻击。
将令牌Token、用户标识UID、第一参考时间tsA与第一数值NA组装至第一认证请求消息M1中,以及,将第一认证请求消息M1发送至服务器。
S302、服务器将第一认证响应消息发送至终端。
在本实施例中,令牌Token可用于令牌Token用于在服务器解密为原始密钥SK、时间窗口参数与注册参数,即服务器在接收到第一认证请求消息之后,从第一认证请求消息提取令牌Token,并将令牌Token解密为原始密钥SK、时间窗口参数与注册参数,以及,生成第一认证响应消息,并将该第一认证响应消息发送至终端,从而对第一认证请求消息进行响应。
在一种实施方式中,如图4所示,注册参数包括用户标识UID、安全参数Salt、第一散列值H1与第二散列值H2,在本实施方式中,服务器可以提取本地预先存储的密钥Key,使用对称密钥函数对令牌Token进行解密Decrypt,获得原始密钥SK、用户标识UID、安全参数Salt、第一散列值H1与第二散列值H2
需要说明的是,解密令牌Token的对称密钥函数与加密令牌Token的对称密钥函数相同,可以包括AES、3DES、PBE、RC4、SM1、SM4,等等。
以AES作为对称密钥函数的示例,若在先使用AES中的CTR进行加密令牌Token,则可以使用AES中的CTR对令牌Token进行解密,即用密钥Key对输入计数器加密,然后同密文异或得到明文(原始密钥SK、用户标识UID、安全参数Salt、注册时间CreateTime、时间窗口的长度tw、第一散列值H1与第二散列值H2)。
可将第一认证请求消息中的用户标识UID与令牌Token解密的用户标识UID进行比较。
若校验第一认证请求消息中的用户标识UID与令牌Token解密的用户标识UID不同,则确定认证失败。
若校验第一认证请求消息中的用户标识UID与令牌Token解密的用户标识UID相同,则确定服务器的时间,作为第二参考时间tsB,随机生成第二数值NB、防止中间人和重放攻击。
将安全参数Salt、第二参考时间tsB与第二数值NB组装至第一认证响应消息M2中,以及,将第一认证响应消息M2发送至终端。
S303、终端将携带目标动态口令的第二认证请求消息发送至服务器。
在本实施例中,终端在接收到服务器的第一认证响应消息之后,可提取终端本地的注册参数,以及,使用本地的注册参数、原始密钥与时间窗口参数加密,获得本次认证有效的目标动态口令OTP,即目标动态口令OTP加密自终端本地的注册参数、原始密钥SK与时间窗口参数,此时,可通过第二认证请求消息将目标动态口令OTP发送至服务器。
在一种实施方式中,第一认证请求消息中包括第一数值NA、第一参考时间tsA,第一认证响应消息中包括第二数值NB、第二参考时间tsB、安全参数Salt,注册参数包括用户密码password和/或环境信息(如设备标识DeviceID和/或地理标识IPCountry)。
在此实施方式中,如图4所示,终端可进行如下操作:
1、获取用户密码password和/或环境信息(如设备标识DeviceID和/或地理标识IPCountry),从而使用第一单向散列函数对用户密码password与安全参数Salt加密,获得第一散列值H1,和/或,使用第二单向散列函数对环境信息与安全参数Salt加密,获得第二散列值H2
2、计算第二参考时间tsB所处时间窗口参数表示的时间窗口的次序S。
在实现中,自注册时间CreateTime开始,每间隔一个时间窗口的长度tw可以划分出一个时间窗口,按照时间的先后顺序对每个时间窗口排序,则可以确定每个时间窗口的次序S。
在本实施例中,针对本地认证,可以以服务器的时间为主,测定第二参考时间tsB所处时间窗口的次序S。
在具体实现中,时间窗口参数包括注册时间CreateTime、时间窗口的长度tw,则可以计算第二参考时间tsB与注册时间CreateTime之间的差值,作为注册时差,计算注册时差与时间窗口的长度tw之间的比值,作为时间窗口的次序S,即S=(tsB-CreateTime)/tw。
3、根据终端本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成目标动态口令OTP。
在具体实现中,终端可以按照在先与服务器预约的方式将终端本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成目标动态口令OTP。
在一个示例中,可以将原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一散列值H1、第二散列值H2与时间窗口的次序S按照预设的结构进行组合,并使用第三单向散列函数对终端本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S进行加密,获得第三散列值digest。
从第三散列值digest中读取处于第一位置的第一数据,如取最后4个字节的数据BL-4BL-3BL-2BL-1,作为第一数据。
确定第三散列值digest的长度L。
计算第一数据与第三散列值digest的长度L相除之后的余数,作为第二位置,获得四个随机字节索引偏移量,即d1=BL-1mod L、d2=BL-2mod L、d3=BL-3mod L、d4=BL-4mod L。
从第三散列值digest中读取处于第二位置(d1、d2、d3、d4)的数据,作为第二数据Val。
将第二数据Val的格式转换为无符号整数型(unsigned[int])。
计算第二数据Val与参考数值相除之后的余数,作为目标动态口令OTP,其中,参考数值为目标动态口令OTP的进制数的D(D为正整数)次方,D为目标动态口令OTP的位数,假设目标动态口令OTP需要D位十进制数,则目标动态口令OTP=Val mod 10D
其中,第三单向散列函数属于单向散列函数,如MD5、SHA等,第一单向散列函数、第二单向散列函数、第三单向散列函数可以相同,也可以不同,本实施例对此不加以限制。
当然,上述生成目标动态口令OTP的方式只是作为示例,在实施本实施例时,可以根据实际情况设置其他生成目标动态口令OTP的方式,例如,从第三散列值digest取指定位置的数据作为目标动态口令OTP,等等,本实施例对此不加以限制。另外,除了上述生成目标动态口令OTP的方式外,本领域技术人员还可以根据实际需要采用其它生成目标动态口令OTP的方式,本实施例对此也不加以限制。
在完成上述操作之后,如图4所示,可将目标动态口令OTP组装至第二认证请求消息M3中,以及,将第二认证请求消息M3发送至服务器。
S304、服务器将携带认证结果的第二认证响应消息发送至终端。
在本实施例中,服务器在接收到终端的第二认证响应消息之后,可以从第二认证响应消息中提取目标动态口令OTP,并在时间窗口参数表示的时间窗口内,根据注册参数、原始密钥SK与时间窗口参数对目标动态口令OTP进行认证,获得认证结果Result,即认证结果Result用于在时间窗口参数表示的时间窗口内、根据注册参数、原始密钥SK与时间窗口参数对目标动态口令OTP进行认证。
在具体实现中,第一认证请求消息中包括第一数值NA、第一参考时间tsA,第一认证响应消息中包括第二数值NB、第二参考时间tsB、安全参数Salt,注册参数包括用户标识UID、第一散列值H1、第二散列值H2,如图4所示,服务器可进行如下操作:
1、确定服务器当前的时间,作为检测时间ts,以及,判断检测时间ts与第二参考时间tsB是否在同一个时间窗口参数表示的时间窗口内。
若检测时间ts与第二参考时间tsB不在同一个时间窗口参数表示的时间窗口内,则确定认证失败。
若检测时间ts与第二参考时间tsB在同一个时间窗口参数表示的时间窗口内,则继续执行操作2。
2、计算第二参考时间tsB所处时间窗口参数表示的时间窗口的次序S。
在具体实现中,时间窗口参数包括注册时间CreateTime、时间窗口的长度tw,则可以计算检测时间ts与第二参考时间tsB之间的差值,作为检测时差。
将检测时差与时间窗口的长度tw进行比较。
若检测时差大于时间窗口的长度tw(即ts-tsB>tw),则确认检测时间与第二参考时间tsB不在同一个时间窗口参数表示的时间窗口内。
若检测时差小于或等于时间窗口的长度tw(即ts-tsB≤tw),则确认检测时间与第二参考时间tsB在同一个时间窗口参数表示的时间窗口内,此时,可计算第二参考时间tsB与注册时间CreateTime之间的差值,作为注册时差,计算注册时差与时间窗口的长度tw之间的比值,作为时间窗口的次序S。
3、根据服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成参考动态口令OTP。
进一步地,注册参数包括用户标识UID、第一散列值H1、第二散列值H2,则可以根据服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一散列值H1、第二散列值H2与与时间窗口的次序S生成参考动态口令OTP。
在实现中,第一认证请求消息中包括第一数值NA,服务器可以按照在先与终端预约的方式将服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成参考动态口令OTP。
在一个示例中,可以将原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S按照预设的结构进行组合,并使用第三单向散列函数对服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S进行加密,获得第三散列值digest。
从第三散列值digest中读取处于第一位置的第一数据,如取最后4个字节的数据BL-4BL-3BL-2BL-1,作为第一数据。
确定第三散列值digest的长度L。
计算第一数据与第三散列值digest的长度L相除之后的余数,作为第二位置,获得四个随机字节索引偏移量,即d1=BL-1mod L、d2=BL-2mod L、d3=BL-3mod L、d4=BL-4mod L。
从第三散列值digest中读取处于第二位置(d1、d2、d3、d4)的数据,作为第二数据Val。
将第二数据Val的格式转换为无符号整数型(unsigned[int])。
计算第二数据Val与参考数值相除之后的余数,作为参考动态口令OTP,其中,参考数值为参考动态口令OTP的进制数的D次方,D为参考动态口令OTP的位数,假设参考动态口令OTP需要D位十进制数,则参考动态口令OTP=Val mod 10D
其中,第三单向散列函数属于单向散列函数,如MD5、SHA等,第一单向散列函数、第二单向散列函数、第三单向散列函数可以相同,也可以不同,本实施例对此不加以限制。
当然,上述生成参考动态口令OTP的方式只是作为示例,在实施本实施例时,可以根据实际情况设置其他生成参考动态口令OTP的方式,例如,从第三散列值digest取指定位置的数据作为参考动态口令OTP,等等,本实施例对此不加以限制。另外,除了上述生成参考动态口令OTP的方式外,本领域技术人员还可以根据实际需要采用其它生成参考动态口令OTP的方式,本实施例对此也不加以限制。
4、将参考动态口令OTP与目标动态口令OTP进行对比。
若参考动态口令OTP与目标动态口令OTP相同,则确定认证结果Result为认证成功Success。
若参考动态口令OTP与目标动态口令OTP不相同,则确定认证结果Result为认证失败Failure。
在完成上述操作之后,如图4所示,将认证结果Result组装至第二认证响应消息M4中,以及,将第二认证响应消息M4发送至终端。
终端在认证结果Result为认证成功Success时,可以继续执行登录、支付、转账等业务操作。
终端在认证结果Result为认证失败Failure时,禁止继续执行登录、支付、转账等业务操作,等待再次进行认证。
在本实施例中,服务器与终端之间同步时间窗口以及共享原始密钥,每次认证使用动态口令,以抵抗窃听攻击和重放攻击。服务器与终端之间可使用对称密钥函数和HMAC(Hash-based Message Authentication Code,哈希消息认证码)技术进行注册、认证,可提高计算的速度,减少时间与空间的开销,时间窗口的范围较广,对时间同步的要求较低,适合跨国、跨区域的终端与服务器的认证。并且,服务器并不持久化存储用户认证的相关数据,实现在无状态模式下,基于时间窗口进行认证,可以保护用户隐私。
再者,本实施例在使用用户密码进行登录等情况下,无需直接传输用户密码或者用户密码的衍生值,而直接计算出一次性的动态口令,该动态口令在本次认证有效,可大大减少被重放攻击的风险,也大大减少了通过动态口令逆向分析得到密码的风险。
此外,本实施例可使用用户认证时的环境,如设备环境、地理环境,作为用户认证的第二因子使用,可加强安全性,无需直接网络传输用户常用的设备环境和地理环境等私密的环境信息,终端根据环境信息在本地计算出一次性动态口令,该动态口令在本次认证有效,可大大减少被重放攻击的风险,也大大减少通过动态口令逆向分析得到用户环境信息的风险。
实施例三
图5为本发明实施例三提供的一种认证方法的流程图,本实施例可适用于在无状态模式下,服务器基于时间窗口对终端进行注册、认证的情况,该方法可以由计算机设备来执行,该计算机设备可以实现为终端,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌,终端可以由软件和/或硬件实现,其中,该终端可以包括移动终端(如手机、平板电脑等)、可穿戴设备(如智能手表等),等等,该方法具体包括如下步骤:
S501、将携带令牌的第一认证请求消息发送至服务器。
在具体实现中,服务器用于将令牌解密为原始密钥、时间窗口参数与注册参数。
在本发明的一个实施例中,S501可以包括如下步骤:
提取终端本地的令牌、用户标识;
确定终端的时间,作为第一参考时间;
随机生成第一数值;
将令牌、用户标识、第一参考时间与第一数值组装至第一认证请求消息中;
将第一认证请求消息发送至服务器。
S502、接收服务器发送的第一认证响应消息。
在本发明的一个实施例中,服务器可以通过如下方式生成并发送第一认证响应消息:
使用对称密钥函数对令牌进行解密,获得原始密钥、用户标识、安全参数、第一散列值、第二散列值与时间窗口参数;
若校验第一认证请求消息中的用户标识与令牌解密的用户标识相同,则确定服务器的时间,作为第二参考时间;
随机生成第二数值;
将安全参数、第二参考时间与第二数值组装至第一认证响应消息中;
将第一认证响应消息发送至终端。
S503、将携带目标动态口令的第二认证请求消息发送至服务器。
其中,目标动态口令加密自终端本地的注册参数、原始密钥、时间窗口参数。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,S503可以包括如下步骤:
获取用户密码和/或环境信息;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对环境信息与安全参数加密,获得第二散列值;
计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令;
将目标动态口令组装至第二认证请求消息中;
将第二认证请求消息发送至服务器。
进一步地,时间窗口参数包括注册时间、时间窗口的长度,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为目标动态口令,其中,参考数值为目标动态口令的进制数的D次方。
S504、接收服务器发送的、携带认证结果的第二认证响应消息。
其中,认证结果用于表示在时间窗口参数表示的时间窗口内、根据注册参数、原始密钥与时间窗口参数对目标动态口令进行认证。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,注册参数包括用户标识、第一散列值、第二散列值,则服务器可以通过如下方式生成并发送第二认证响应消息:
确定当前的时间,作为检测时间;
若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成参考动态口令;
若参考动态口令与目标动态口令相同,则确定认证结果为认证成功;
若参考动态口令与目标动态口令不相同,则确定认证结果为认证失败;
将认证结果组装至第二认证响应消息中;
将第二认证响应消息发送至终端。
进一步地,时间窗口参数包括注册时间、时间窗口的长度;则若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算检测时间与第二参考时间之间的差值,作为检测时差;
若检测时差小于或等于时间窗口的长度,则计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成参考动态口令,包括:
使用第三单向散列函数对服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为参考动态口令,其中,参考数值为参考动态口令的进制数的D次方。
在本发明的一个实施例中,在注册时还可以包括如下步骤:
将携带注册参数的注册请求消息发送至服务器,服务器用于使用该注册参数生成新的注册参数;
接收服务器发送的、携带原始密钥、时间窗口参数与令牌的注册响应消息,令牌加密自原始密钥、时间窗口参数与注册参数;
存储原始密钥、时间窗口参数与令牌。
进一步地,注册参数包括用户标识、用户密码和/或环境信息,时间窗口参数包括注册时间与时间窗口的长度;则服务器可以通过如下方式生成并发送注册响应消息:
随机生成安全参数;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对环境信息与安全参数加密,获得第二散列值;
随机生成原始密钥;
读取当前的时间、作为注册时间;
确定时间窗口的长度;
使用对称密钥函数对原始密钥、用户标识、安全参数、注册时间、时间窗口的长度、第一散列值与第二散列值进行加密,从而获得令牌;
将原始密钥、注册时间、时间窗口的长度与令牌组装至注册响应消息中;
将注册响应消息发送至终端。
需要说明的是,由于实施例三与实施例一、实施例二的应用基本相似,所以描述的比较简单,相关之处参见实施例一、实施例二的部分说明即可,本实施例在此不加以详述。
实施例四
图6为本发明实施例四提供的一种认证方法的流程图,本实施例可适用于在无状态模式下,服务器基于时间窗口对终端进行注册、认证的情况,该方法可以由计算机设备来执行,该计算机设备可以实现为服务器,服务器可以由软件和/或硬件实现,该方法具体包括如下步骤:
S601、接收终端发送的、携带令牌的第一认证请求消息。
其中,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌。
在本发明的一个实施例中,终端可以通过如下方式生成并发送第一认证请求消息:
提取终端本地的令牌、用户标识;
确定终端的时间,作为第一参考时间;
随机生成第一数值;
将令牌、用户标识、第一参考时间与第一数值组装至第一认证请求消息中;
将第一认证请求消息发送至服务器。
S602、将第一认证响应消息发送至终端。
其中,令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数。
在本发明的一个实施例中,S602可以包括如下步骤:
使用对称密钥函数对令牌进行解密,获得原始密钥、用户标识、安全参数、第一散列值、第二散列值与时间窗口参数;
若校验第一认证请求消息中的用户标识与令牌解密的用户标识相同,则确定服务器的时间,作为第二参考时间;
随机生成第二数值;
将安全参数、第二参考时间与第二数值组装至第一认证响应消息中;
将第一认证响应消息发送至终端。
S603、接收终端发送的、携带目标动态口令的第二认证请求消息发送至服务器。
其中,目标动态口令加密自终端本地的注册参数、原始密钥、时间窗口参数。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,终端可以通过如下方式生成并发送第二认证请求消息:
获取用户密码和/或环境信息;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对环境信息与安全参数加密,获得第二散列值;
计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令;
将目标动态口令组装至第二认证请求消息中;
将第二认证请求消息发送至服务器。
进一步地,时间窗口参数包括注册时间、时间窗口的长度,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为目标动态口令,其中,参考数值为目标动态口令的进制数的D次方。
S604、将携带认证结果的第二认证响应消息发送至终端。
其中,认证结果用于表示在时间窗口参数表示的时间窗口内、根据注册参数、原始密钥与时间窗口参数对目标动态口令进行认证。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,注册参数包括用户标识、第一散列值、第二散列值,则S604可以包括如下步骤:
确定当前的时间,作为检测时间;
若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成参考动态口令;
若参考动态口令与目标动态口令相同,则确定认证结果为认证成功;
若参考动态口令与目标动态口令不相同,则确定认证结果为认证失败;
将认证结果组装至第二认证响应消息中;
将第二认证响应消息发送至终端。
进一步地,时间窗口参数包括注册时间、时间窗口的长度;则若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算检测时间与第二参考时间之间的差值,作为检测时差;
若检测时差小于或等于时间窗口的长度,则计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成参考动态口令,包括:
使用第三单向散列函数对服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为参考动态口令,其中,参考数值为参考动态口令的进制数的D次方。
在本发明的一个实施例中,在注册还可以包括如下步骤:
接收终端发送的、携带注册参数的注册请求消息;
使用注册参数生成新的注册参数,将携带原始密钥、时间窗口参数与令牌的注册响应消息发送至终端,终端用于存储原始密钥、时间窗口参数与令牌,其中,该令牌加密自原始密钥、时间窗口参数与注册参数。
在本发明的一个实施例中,注册参数包括用户标识、用户密码和/或环境信息,时间窗口参数包括注册时间与时间窗口的长度;
使用注册参数生成新的注册参数,将携带原始密钥、时间窗口参数与令牌的注册响应消息发送至终端,包括:
随机生成安全参数;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对环境信息与安全参数加密,获得第二散列值;
随机生成原始密钥;
读取当前的时间、作为注册时间;
确定时间窗口的长度;
使用对称密钥函数对原始密钥、用户标识、安全参数、注册时间、时间窗口的长度、第一散列值与第二散列值进行加密,从而获得令牌;
将原始密钥、注册时间、时间窗口的长度与令牌组装至注册响应消息中;
将注册响应消息发送至终端。
需要说明的是,由于实施例四与实施例一、实施例二的应用基本相似,所以描述的比较简单,相关之处参见实施例一、实施例二的部分说明即可,本实施例在此不加以详述。
实施例五
图7为本发明实施例五提供的一种认证方法的流程图,本实施例可适用于在有状态模式下,服务器基于时间窗口对终端进行注册的情况,所谓有状态模式,可以指服务器使用数据库等设备来持存储备份用户认证的相关数据,以便减少用户的数据的网络传输量,降低敏感的数据在网络传输过程中泄漏的风险,该方法可以由计算机设备来执行,该计算机设备包括终端与服务器,该计算机设备(终端与服务器)可以由软件和/或硬件实现,其中,该终端可以包括移动终端(如手机、平板电脑等)、可穿戴设备(如智能手表等),等等,该方法具体包括如下步骤:
S701、终端将携带注册参数的注册请求消息发送至服务器。
在本实施例中,终端在初次对用户进行身份认证,或者,在先对用户进行身份认证的时间窗口参数(如超时)失效时,获取注册参数,并将注册参数组装至注册请求消息中,将请求消息将注册参数发送至服务器,从而请求服务器对终端进行注册。
在一种实施方式中,如图8所示,在注册请求消息N1中,注册参数可以包括用户标识UID、用户密码password和/或环境信息(如设备标识DeviceID和/或地理标识IPCountry)。
S702、服务器对终端生成原始密钥、时间窗口参数与使用注册参数生成新的注册参数,存储原始密钥、时间窗口参数与注册参数。
S703、服务器将携带原始密钥与时间窗口参数的注册响应消息发送至终端。
在本实施例中,如图8所示,服务器在接收到终端的注册请求消息之后,响应该注册请求消息,对终端进行注册,在注册成功时,生成新的原始密钥SK、新的时间窗口参数、使用原有的注册参数生成新的注册参数,并针对该终端在数据库中存储原始密钥SK、新的时间窗口参数与注册参数,通过注册响应消息N2将原始密钥SK与时间窗口参数发送至终端。
在一种实施方式中,注册参数包括用户标识UID、用户密码password与环境信息(如设备标识DeviceID、地理标识IPCountry),时间窗口参数包括注册时间CreateTime与时间窗口的长度tw,如图2所示,在对终端注册时,服务器可进行如下操作:
1、随机生成安全参数Salt,作为新的注册参数。
2、将用户密码password与安全参数Salt按照预设的结构进行组合,使用第一单向散列函数对用户密码password与安全参数Salt加密,获得第一散列值H1,作为新的注册参数,和/或,将环境信息(如设备标识DeviceID、地理标识IPCountry)与安全参数Salt按照预设的结构进行组合,使用第二单向散列函数对环境信息(如设备标识DeviceID、地理标识IPCountry)与安全参数Salt加密,获得第二散列值H2,作为新的注册参数。
3、随机生成原始密钥SK。
4、读取当前的时间、作为注册时间CreateTime。
4、根据认证的应用场景,确定时间窗口的长度tw。
5、在数据库中存储用户标识UID、原始密钥SK、注册时间CreateTime、时间窗口的长度tw、安全参数Salt、第一散列值H1与第二散列值H2,使得用户标识UID与原始密钥SK、注册时间CreateTime、时间窗口的长度tw、安全参数Salt、第一散列值H1与第二散列值H2建立关联关系。
S704、终端存储原始密钥与时间窗口参数。
如图8所示,终端在接收到服务器反馈的注册响应消息N2时,从注册响应消息N2中提取原始密钥SK与时间窗口参数,并将原始密钥SK与时间窗口参数存储在终端本地的数据库中,从而完成注册的流程。
实施例六
图9为本发明实施例六提供的一种认证方法的流程图,本实施例以前述实施例为基础,进一步增加在有状态模式下,服务器基于时间窗口对终端进行认证的处理操作,该方法具体包括如下步骤:
S901、终端将第一认证请求消息发送至服务器。
在本实施例中,如图10所示,终端在向服务器注册时存储原始密钥SK与时间窗口参数,而服务器对终端注册时存储注册参数(如用户标识UID、安全参数Salt、第一散列值H1、第二散列值H2等)、原始密钥SK与时间窗口参数等与用户认证的相关数据。
在一种实施方式中,如图10所示,终端可提取终端本地的用户标识UID,以及,确定终端的时间,作为第一参考时间tsA,随机生成第一数值NA、从而防止中间人和重放攻击。
将用户标识UID、第一参考时间tsA与第一数值NA组装至第一认证请求消息中,以及,将第一认证请求消息M1发送至服务器。
S902、服务器将第一认证响应消息发送至终端。
在本实施例中,服务器在接收到第一认证请求消息之后,生成第一认证响应消息,并将该第一认证响应消息发送至终端,从而对第一认证请求消息进行响应。
在一种实施方式中,如图10所示,第一认证请求消息中包括用户标识UID,在本实施方式中,将第一认证请求消息M1中的用户标识UID与数据库存储的注册参数中的用户标识UID进行比较。
若第一认证请求消息M1中的用户标识UID与数据库存储的所有注册参数中的用户标识UID不同,则确定认证失败。
若第一认证请求消息M1中的用户标识UID与数据库存储的某个注册参数中的用户标识UID相同,则在数据库中查找该用户标识UID对应的原始密钥SK、时间窗口参数、安全参数Salt、第一散列值H1与第二散列值H2
确定服务器的时间,作为第二参考时间tsB,随机生成第二数值NB、从而防止中间人和重放攻击。
将安全参数Salt、第二参考时间tsB与第二数值NB组装至第一认证响应消息M2中,以及,将第一认证响应消息M2发送至终端。
S903、终端将携带目标动态口令的第二认证请求消息发送至服务器。
在本实施例中,终端在接收到服务器的第一认证响应消息之后,可提取终端本地的注册参数,以及,使用本地的注册参数、原始密钥SK与时间窗口参数加密,获得本次认证有效的目标动态口令OTP,即目标动态口令OTP加密自终端本地的注册参数、原始密钥SK与时间窗口参数,此时,可通过第二认证请求消息将目标动态口令OTP发送至服务器。
在一种实施方式中,注册参数包括用户密码password和/或环境信息(如设备标识DeviceID和/或地理标识IPCountry),第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数。
在此实施方式中,如图10所示,终端可进行如下操作:
1、获取用户密码password和/或环境信息(如设备标识DeviceID和/或地理标识IPCountry),从而使用第一单向散列函数对用户密码password与安全参数Salt加密,获得第一散列值H1,和/或,使用第二单向散列函数对环境信息如设备标识DeviceID和/或地理标识IPCountry)与安全参数Salt加密,获得第二散列值H2
2、计算第二参考时间tsB所处时间窗口参数表示的时间窗口的次序S。
在具体实现中,时间窗口参数包括注册时间CreateTime、时间窗口的长度tw;则可以计算第二参考时间tsB与注册时间CreateTime之间的差值,作为注册时差,计算注册时差与时间窗口的长度tw之间的比值,作为时间窗口的次序S,即S=(tsB-CreateTime)/tw。
2、根据终端本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成目标动态口令OTP。
在具体实现中,终端可以按照在先与服务器预约的方式将终端本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成目标动态口令OTP。
在一个示例中,可以使用第三单向散列函数对终端本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S进行加密,获得第三散列值digest。
从第三散列值digest中读取处于第一位置的第一数据,如取最后4个字节的数据BL-4BL-3BL-2BL-1,作为第一数据。
确定第三散列值digest的长度L。
计算第一数据与第三散列值的长度L相除之后的余数,作为第二位置,获得四个随机字节索引偏移量,即d1=BL-1mod L、d2=BL-2mod L、d3=BL-3mod L、d4=BL-4mod L。
从第三散列值digest中读取处于第二位置(d1、d2、d3、d4)的数据,作为第二数据Val。
将第二数据Val的格式转换为无符号整数型(unsigned[int])。
计算第二数据与参考数值相除之后的余数,作为目标动态口令OTP,其中,参考数值为目标动态口令OTP的进制数的D次方,D为目标动态口令OTP的位数,假设目标动态口令OTP需要D位十进制数,则目标动态口令OTP=Val mod 10D
在完成上述操作之后,如图10所示,可将目标动态口令OTP组装至第二认证请求消息M3中,以及,将第二认证请求消息M3发送至服务器。
S904、服务器将携带认证结果的第二认证响应消息发送至终端。
在本实施例中,服务器在接收到终端的第二认证响应消息之后,可以从第二认证响应消息中提取目标动态口令OTP,在服务器本地的时间窗口参数表示的时间窗口内,根据注册参数、原始密钥SK与时间窗口参数对目标动态口令OTP进行认证,获得认证结果Result,即认证结果Result用于在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥SK与时间窗口参数对目标动态口令OTP进行认证。
在具体实现中,第一认证请求消息中包括第一数值NA、第一参考时间tsA,第一认证响应消息中包括第二数值NB、第二参考时间tsB、安全参数Salt,注册参数包括用户标识UID、第一散列值H1、第二散列值H2,如图10所示,服务器可进行如下操作:
1、确定服务器当前的时间,作为检测时间ts,以及,判断检测时间ts与第二参考时间tsB是否在同一个时间窗口参数表示的时间窗口内。
若检测时间ts与第二参考时间tsB不在同一个时间窗口参数表示的时间窗口内,则确定认证失败。
若检测时间ts与第二参考时间tsB在同一个时间窗口参数表示的时间窗口内,则继续执行操作2。
2、计算第二参考时间tsB所处时间窗口参数表示的时间窗口的次序S。
在具体实现中,时间窗口参数包括注册时间CreateTime、时间窗口的长度tw,则可以计算检测时间ts与第二参考时间tsB之间的差值,作为检测时差。
将检测时差与时间窗口的长度tw进行比较。
若检测时差大于时间窗口的长度tw(即ts-tsB>tw),则确认检测时间与第二参考时间tsB不在同一个时间窗口参数表示的时间窗口内。
若检测时差小于或等于时间窗口的长度tw(即ts-tsB≤tw),则确认检测时间与第二参考时间tsB在同一个时间窗口参数表示的时间窗口内,此时,可计算第二参考时间tsB与注册时间CreateTime之间的差值,作为注册时差,计算注册时差与时间窗口的长度tw之间的比值,作为时间窗口的次序S。
3、根据服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成参考动态口令OTP。
注册参数包括用户标识UID、第一散列值H1、第二散列值H2,则可以根据服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一散列值H1、第二散列值H2与时间窗口的次序S生成参考动态口令OTP。
在实现中,第一认证请求消息中包括第一数值NA,服务器可以按照在先与终端预约的方式将服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S生成参考动态口令OTP。
在一个示例中,可以将原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S按照预设的结构进行组合,并使用第三单向散列函数对服务器本地的原始密钥SK、用户标识UID、第一数值NA、第二数值NB、第一参考时间tsA、第二参考时间tsB、第一散列值H1、第二散列值H2与时间窗口的次序S进行加密,获得第三散列值digest。
从第三散列值digest中读取处于第一位置的第一数据,如取最后4个字节的数据BL-4BL-3BL-2BL-1,作为第一数据。
确定第三散列值digest的长度L。
计算第一数据与第三散列值digest的长度L相除之后的余数,作为第二位置,获得四个随机字节索引偏移量,即d1=BL-1mod L、d2=BL-2mod L、d3=BL-3mod L、d4=BL-4mod L。
从第三散列值digest中读取处于第二位置(d1、d2、d3、d4)的数据,作为第二数据Val。
将第二数据Val的格式转换为无符号整数型(unsigned[int])。
计算第二数据Val与参考数值相除之后的余数,作为参考动态口令OTP,其中,参考数值为参考动态口令OTP的进制数的D次方,D为参考动态口令OTP的位数,假设参考动态口令OTP需要D位十进制数,则参考动态口令OTP=Val mod 10D
当然,上述生成参考动态口令OTP的方式只是作为示例,在实施本实施例时,可以根据实际情况设置其他生成参考动态口令OTP的方式,例如,从第三散列值digest取指定位置的数据作为参考动态口令OTP,等等,本实施例对此不加以限制。另外,除了上述生成参考动态口令OTP的方式外,本领域技术人员还可以根据实际需要采用其它生成参考动态口令OTP的方式,本实施例对此也不加以限制。
4、将参考动态口令OTP与目标动态口令OTP进行对比。
若参考动态口令OTP与目标动态口令OTP相同,则确定认证结果Result为认证成功Success。
若参考动态口令OTP与目标动态口令OTP不相同,则确定认证结果Result为认证失败Failure。
在完成上述操作之后,如图4所示,将认证结果Result组装至第二认证响应消息M4中,以及,将第二认证响应消息M4发送至终端。
终端在认证结果Result为认证成功Success时,可以继续执行登录、支付、转账等业务操作。
终端在认证结果Result为认证失败Failure时,禁止继续执行登录、支付、转账等业务操作,等待再次进行认证。
其中,由于实施例五、实施例六与实施例一、实施例二的应用部分相似,所以描述的比较简单,相关之处参见实施例一、实施例二的部分说明即可,本实施例在此不加以详述。
在本实施例中,服务器与终端之间同步时间窗口以及共享原始密钥,每次认证使用动态口令,以抵抗窃听攻击和重放攻击。服务器与终端之间可使用对称密钥函数和HMAC技术进行注册、认证,可提高计算的速度,减少时间与空间的开销,时间窗口的范围较广,对时间同步的要求较低,适合跨国、跨区域的终端与服务器的认证。并且,服务器并持久化存储用户认证的相关数据,实现在有状态模式下,基于时间窗口进行认证,以便减少用户的数据在网络传输中占用的带宽,降低敏感的数据在网络传输过程中的泄漏风险。
再者,本实施例在使用用户密码进行登录等情况下,无需直接传输用户密码或者用户密码的衍生值,而直接计算出一次性的动态口令,该动态口令在本次认证有效,可大大减少被重放攻击的风险,也大大减少了通过动态口令逆向分析得到密码的风险。
此外,本实施例可使用用户认证时的环境,如设备环境、地理环境,作为用户认证的第二因子使用,可加强安全性,降低使用短信验证码认证的成本开销,并且,无需直接网络传输用户常用的设备环境和地理环境等私密的环境信息,终端根据环境信息在本地计算出一次性的动态口令,该动态口令在本次认证有效,可大大减少被重放攻击的风险,也大大减少了通过动态口令逆向分析得到用户常用的环境信息的风险。
实施例七
图11为本发明实施例七提供的一种认证方法的流程图,本实施例可适用于在有状态模式下,服务器基于时间窗口对终端进行注册、认证的情况,该方法可以由计算机设备来执行,该计算机设备可以实现为终端,终端在向服务器注册时存储原始密钥与时间窗口参数,终端可以由软件和/或硬件实现,其中,该终端可以包括移动终端(如手机、平板电脑等)、可穿戴设备(如智能手表等),等等,该方法具体包括如下步骤:
S1101、将第一认证请求消息发送至服务器。
在本发明的一个实施例中,S1101可以包括如下步骤:
提取终端本地的用户标识;
确定终端的时间,作为第一参考时间;
随机生成第一数值;
将用户标识、第一参考时间与第一数值组装至第一认证请求消息中;
将第一认证请求消息发送至服务器。
S1102、接收服务器发送的第一认证响应消息。
其中,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数。
在本发明的一个实施例中,第一认证请求消息中包括用户标识,服务器可以通过如下方式生成并发送第一认证响应消息:
查找用户标识对应的原始密钥、时间窗口参数、安全参数、第一散列值与第二散列值;
确定服务器的时间,作为第二参考时间;
随机生成第二数值;
将安全参数、第二参考时间与第二数值组装至第一认证响应消息中;
将第一认证响应消息发送至终端。
S1103、将携带目标动态口令的第二认证请求消息发送至服务器。
其中,述目标动态口令加密自终端本地的注册参数、原始密钥与时间窗口参数。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,S1103可以包括如下步骤:
获取用户密码和/或环境信息;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对设备信息、环境信息与安全参数加密,获得第二散列值;
计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令;
将目标动态口令组装至第二认证请求消息中;
将第二认证请求消息发送至服务器。
进一步地,时间窗口参数包括注册时间、时间窗口的长度;计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为目标动态口令,其中,参考数值为目标动态口令的进制数的D次方。
S1104、接收服务器发送的、携带认证结果的第二认证响应消息。
其中,认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对目标动态口令进行认证。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,注册参数包括用户标识、第一散列值、第二散列值;
则服务器可以通过如下方式生成并发送第二认证响应消息:
确定当前的时间,作为检测时间;
若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令;
若参考动态口令与目标动态口令相同,则确定认证结果为认证成功;
若参考动态口令与目标动态口令不相同,则确定认证结果为认证失败;
将认证结果组装至第二认证响应消息中;
将第二认证响应消息发送至终端。
进一步地,时间窗口参数包括注册时间、时间窗口的长度;则,若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算检测时间与第二参考时间之间的差值,作为检测时差;
若检测时差小于时间窗口的长度,则计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为参考动态口令,其中,参考数值为参考动态口令的进制数的D次方。
在本发明的一个实施例中,在注册还可以包括如下步骤:
将携带注册参数的注册请求消息发送至服务器,服务器用于对终端生成原始密钥、时间窗口参数与使用该注册参数生成新的注册参数,存储原始密钥、时间窗口参数与注册参数;
接收服务器发送的、携带原始密钥与时间窗口参数的注册响应消息;
存储原始密钥与时间窗口参数。
在本发明的一个实施例中,注册参数包括用户标识、用户密码和/或环境信息,时间窗口参数包括注册时间与时间窗口的长度;
则服务器可以通过如下方式对终端进行注册:
随机生成安全参数;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对环境信息与安全参数加密,获得第二散列值;
随机生成原始密钥;
读取当前的时间、作为注册时间;
确定时间窗口的长度;
存储用户标识、原始密钥、注册时间、时间窗口的长度、安全参数、第一散列值与第二散列值。
需要说明的是,由于实施例七与实施例五、实施例六的应用基本相似,所以描述的比较简单,相关之处参见实施例五、实施例六的部分说明即可,本实施例在此不加以详述。
实施例八
图12为本发明实施例八提供的一种认证方法的流程图,本实施例可适用于在有状态模式下,服务器基于时间窗口对终端进行注册、认证的情况,该方法可以由计算机设备来执行,该计算机设备可以实现为服务器,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数,服务器可以由软件和/或硬件实现,该方法具体包括如下步骤:
S1201、接收终端发送的第一认证请求消息。
其中,终端在向服务器注册时存储原始密钥与时间窗口参数。
在本发明的一个实施例中,终端可以通过如下方式生成并发送第一认证请求消息:
提取终端本地的用户标识;
确定终端的时间,作为第一参考时间;
随机生成第一数值;
将用户标识、第一参考时间与第一数值组装至第一认证请求消息中;
将第一认证请求消息发送至服务器。
S1202、将第一认证响应消息发送至终端。
在本发明的一个实施例中,第一认证请求消息包括用户标识,S1102可以包括如下步骤:
查找用户标识对应的原始密钥、时间窗口参数、安全参数、第一散列值与第二散列值;
确定服务器的时间,作为第二参考时间;
随机生成第二数值;
将安全参数、第二参考时间与第二数值组装至第一认证响应消息中;
将第一认证响应消息发送至终端。
S1203、接收终端发送的、携带目标动态口令的第二认证请求消息。
其中,目标动态口令加密自终端本地的注册参数、原始密钥与时间窗口参数。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,终端可以通过如下方式生成并发送第二认证请求消息:
获取用户密码和/或环境信息;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对设备信息、环境信息与安全参数加密,获得第二散列值;
计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令;
将目标动态口令组装至第二认证请求消息中;
将第二认证请求消息发送至服务器。
进一步地,时间窗口参数包括注册时间、时间窗口的长度;计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对终端本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为目标动态口令,其中,参考数值为目标动态口令的进制数的D次方。
S1204、将携带认证结果的第二认证响应消息发送至终端。
其中,认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对目标动态口令进行认证。
在本发明的一个实施例中,第一认证请求消息中包括第一数值、第一参考时间,第一认证响应消息中包括第二数值、第二参考时间、安全参数,注册参数包括用户标识、第一散列值、第二散列值;
则S1204可以包括如下步骤:
确定当前的时间,作为检测时间;
若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序;
根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令;
若参考动态口令与目标动态口令相同,则确定认证结果为认证成功;
若参考动态口令与目标动态口令不相同,则确定认证结果为认证失败;
将认证结果组装至第二认证响应消息中;
将第二认证响应消息发送至终端。
进一步地,时间窗口参数包括注册时间、时间窗口的长度;则,若检测时间与第二参考时间在同一个时间窗口参数表示的时间窗口内,则计算第二参考时间所处时间窗口参数表示的时间窗口的次序,包括:
计算检测时间与第二参考时间之间的差值,作为检测时差;
若检测时差小于时间窗口的长度,则计算第二参考时间与注册时间之间的差值,作为注册时差;
计算注册时差与时间窗口的长度之间的比值,作为时间窗口的次序。
进一步地,根据服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对服务器本地的原始密钥、用户标识、第一数值、第二数值、第一参考时间、第二参考时间、第一散列值、第二散列值与时间窗口的次序进行加密,获得第三散列值;
从第三散列值中读取处于第一位置的第一数据;
确定第三散列值的长度;
计算第一数据与第三散列值的长度相除之后的余数,作为第二位置;
从第三散列值中读取处于第二位置的第二数据;
将第二数据的格式转换为无符号整数型;
计算第二数据与参考数值相除之后的余数,作为参考动态口令,其中,参考数值为参考动态口令的进制数的D次方。
在本发明的一个实施例中,在注册还可以包括如下步骤:
接收终端发送的、携带注册参数的注册请求消息;
对终端生成原始密钥、时间窗口参数与使用注册参数生成新的注册参数,存储原始密钥、时间窗口参数与注册参数;
将携带原始密钥与时间窗口参数的注册响应消息发送至终端,该终端用于存储原始密钥与时间窗口参数。
在本发明的一个实施例中,注册参数包括用户标识、用户密码和/或环境信息,时间窗口参数包括注册时间与时间窗口的长度;
则对终端生成原始密钥、时间窗口参数与使用注册参数生成新的注册参数,存储原始密钥、时间窗口参数与注册参数,包括:
随机生成安全参数;
使用第一单向散列函数对用户密码与安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对环境信息与安全参数加密,获得第二散列值;
随机生成原始密钥;
读取当前的时间、作为注册时间;
确定时间窗口的长度;
存储用户标识、原始密钥、注册时间、时间窗口的长度、安全参数、第一散列值与第二散列值。
需要说明的是,由于实施例八与实施例五、实施例六的应用基本相似,所以描述的比较简单,相关之处参见实施例五、实施例六的部分说明即可,本实施例在此不加以详述。
实施例九
图13为本发明实施例九提供的一种认证系统的结构示意图,该系统具体可以包括终端1301与服务器1302:
终端1301,用于将携带令牌的第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
服务器1302,用于将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
终端1301,还用于将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
服务器1302,还用于将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
在本发明的一个实施例中,
终端1301,还用于将携带注册参数的注册请求消息发送至服务器;
服务器1302,还用于使用所述注册参数生成新的注册参数,将携带原始密钥、时间窗口参数与令牌的注册响应消息发送至终端,所述令牌加密自所述原始密钥、所述时间窗口参数与所述注册参数;
终端1301,还用于存储所述原始密钥、所述时间窗口参数与所述令牌。
本发明实施例所提供的认证系统可执行本发明任意实施例所提供的认证方法,具备执行方法相应的功能模块和有益效果。
实施例十
图14为本发明实施例十提供的一种认证系统的结构示意图,该系统具体可以包括终端1401与服务器1402:
终端1401,用于将第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥与时间窗口参数;
服务器1402,用于将第一认证响应消息发送至终端,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
终端1401,还用于将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
服务器1402,还用于将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
在本发明的一个实施例中,
终端1401,还用于将携带注册参数的注册请求消息发送至服务器;
服务器1402,还用于对终端生成原始密钥、时间窗口参数与使用所述注册参数生成新的注册参数,存储所述原始密钥、所述时间窗口参数与所述注册参数;
服务器1402,还用于将携带原始密钥与所述时间窗口参数的注册响应消息发送至终端;
终端1401,还用于存储所述原始密钥与所述时间窗口参数。
本发明实施例所提供的认证系统可执行本发明任意实施例所提供的认证方法,具备执行方法相应的功能模块和有益效果。
实施例十一
图15为本发明实施例十五提供的一种计算机设备的结构示意图。如图15所示,该计算机设备包括处理器1500、存储器1501、通信模块1502、输入装置1503和输出装置1504;计算机设备中处理器1500的数量可以是一个或多个,图15中以一个处理器1500为例;计算机设备中的处理器1500、存储器1501、通信模块1502、输入装置1503和输出装置1504可以通过总线或其他方式连接,图15中以通过总线连接为例。
本实施例提供的计算机设备,可执行本发明任一实施例提供的认证方法,具体相应的功能和有益效果。
实施例十二
本发明实施例十二还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明任一所述的认证方法。
当然,本发明实施例所提供的计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的认证方法中的相关操作。
值得注意的是,上述认证系统的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (16)

1.一种认证方法,其特征在于,包括:
终端将携带令牌的第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
服务器将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
终端将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
服务器将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
2.根据权利要求1所述的方法,其特征在于,所述终端将携带令牌的第一认证请求消息发送至服务器,包括:
提取终端本地的令牌、用户标识;
确定终端的时间,作为第一参考时间;
随机生成第一数值;
将所述令牌、所述用户标识、所述第一参考时间与所述第一数值组装至第一认证请求消息中;
将所述第一认证请求消息发送至服务器。
3.根据权利要求1所述的方法,其特征在于,所述服务器将第一认证响应消息发送至终端,包括:
使用对称密钥函数对所述令牌进行解密,获得原始密钥、注册参数与时间窗口参数,所述注册参数包括用户标识、安全参数、第一散列值和第二散列值;
若校验所述第一认证请求消息中的用户标识与所述令牌解密的用户标识相同,则确定服务器的时间,作为第二参考时间;
随机生成第二数值;
将所述安全参数、所述第二参考时间与所述第二数值组装至第一认证响应消息中;
将所述第一认证响应消息发送至终端。
4.根据权利要求1所述的方法,其特征在于,所述第一认证请求消息中包括第一数值、第一参考时间,所述第一认证响应消息中包括第二数值、第二参考时间、安全参数,所述终端将携带目标动态口令的第二认证请求消息发送至服务器,包括:
获取用户密码和/或环境信息;
使用第一单向散列函数对所述用户密码与所述安全参数加密,获得第一散列值,和/或,使用第二单向散列函数对所述环境信息与所述安全参数加密,获得第二散列值;
计算所述第二参考时间所处所述时间窗口参数表示的时间窗口的次序;
根据终端本地的所述原始密钥、用户标识、所述第一数值、所述第二数值、所述第一参考时间、所述第二参考时间、所述第一散列值、所述第二散列值与所述时间窗口的次序生成目标动态口令;
将所述目标动态口令组装至第二认证请求消息中;
将所述第二认证请求消息发送至服务器。
5.根据权利要求4所述的方法,其特征在于,所述时间窗口参数包括注册时间、时间窗口的长度;
所述计算所述第二参考时间所处所述时间窗口参数表示的时间窗口的次序,包括:
计算所述第二参考时间与所述注册时间之间的差值,作为注册时差;
计算所述注册时差与所述时间窗口的长度之间的比值,作为时间窗口的次序。
6.根据权利要求4所述的方法,其特征在于,所述根据终端本地的所述原始密钥、所述用户标识、所述第一数值、所述第二数值、所述第一参考时间、所述第二参考时间、所述第一散列值、所述第二散列值与所述时间窗口的次序生成目标动态口令,包括:
使用第三单向散列函数对终端本地的所述原始密钥、所述用户标识、所述第一数值、所述第二数值、所述第一参考时间、所述第二参考时间、所述第一散列值、所述第二散列值与所述时间窗口的次序进行加密,获得第三散列值;
从所述第三散列值中读取处于第一位置的第一数据;
确定所述第三散列值的长度;
计算所述第一数据与所述第三散列值的长度相除之后的余数,作为第二位置;
从所述第三散列值中读取处于所述第二位置的第二数据;
将所述第二数据的格式转换为无符号整数型;
计算所述第二数据与参考数值相除之后的余数,作为目标动态口令,其中,所述参考数值为所述目标动态口令的进制数的D次方,D为所述目标动态口令的位数。
7.根据权利要求1所述的方法,其特征在于,所述第一认证请求消息中包括第一数值、第一参考时间,所述第一认证响应消息中包括第二数值、第二参考时间、安全参数,所述注册参数包括用户标识、第一散列值、第二散列值,所述服务器将携带认证结果的第二认证响应消息发送至终端,包括:
确定当前的时间,作为检测时间;
若所述检测时间与所述第二参考时间在同一个所述时间窗口参数表示的时间窗口内,则计算所述第二参考时间所处所述时间窗口参数表示的时间窗口的次序;
根据服务器本地的所述原始密钥、所述用户标识、所述第一数值、所述第二数值、所述第一参考时间、所述第二参考时间、所述第一散列值、所述第二散列值与所述时间窗口的次序生成参考动态口令;
若所述参考动态口令与所述目标动态口令相同,则确定认证结果为认证成功;
若所述参考动态口令与所述目标动态口令不相同,则确定认证结果为认证失败;
将所述认证结果组装至第二认证响应消息中;
将所述第二认证响应消息发送至终端。
8.一种认证方法,其特征在于,应用于终端,所述终端在向服务器注册时存储原始密钥、时间窗口参数与令牌,所述方法包括:
将携带令牌的第一认证请求消息发送至服务器,服务器用于将所述令牌解密为原始密钥、时间窗口参数与注册参数;
接收服务器发送的第一认证响应消息;
将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
接收服务器发送的、携带认证结果的第二认证响应消息,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
9.一种认证方法,其特征在于,应用于服务器,所述方法包括:
接收终端发送的、携带令牌的第一认证请求消息,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
接收终端发送的、携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
10.一种认证方法,其特征在于,包括:
终端将第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥与时间窗口参数,所述第一认证请求消息中包括终端本地的用户标识;
服务器在所述第一认证请求消息中的用户标识与数据库储存的注册参数中的用户标识相同时,将第一认证响应消息发送至终端,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
终端将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
服务器将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
11.一种认证方法,其特征在于,应用于终端,所述终端在向服务器注册时存储原始密钥与时间窗口参数,所述方法包括:
将第一认证请求消息发送至服务器,所述第一认证请求消息中包括终端本地的用户标识,服务器在所述第一认证请求消息中的用户标识与数据库储存的注册参数中的用户标识相同时,向终端发送第一认证响应消息;
接收服务器发送的第一认证响应消息,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
接收服务器发送的、携带认证结果的第二认证响应消息,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
12.一种认证方法,其特征在于,应用于服务器,所述服务器对终端注册时存储注册参数、原始密钥与时间窗口参数,所述方法包括:
接收终端发送的第一认证请求消息,终端在向服务器注册时存储原始密钥与时间窗口参数,所述第一认证请求消息中包括终端本地的用户标识;
在所述第一认证请求消息中的用户标识与数据库储存的注册参数中的用户标识相同时,将第一认证响应消息发送至终端;
接收终端发送的、携带目标动态口令的第二认证请求消息,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
13.一种认证系统,其特征在于,包括终端与服务器:
终端,用于将携带令牌的第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥、时间窗口参数与令牌;
服务器,用于将第一认证响应消息发送至终端,所述令牌用于在服务器解密为原始密钥、时间窗口参数与注册参数;
终端,还用于将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥、所述时间窗口参数;
服务器,还用于将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在所述时间窗口参数表示的时间窗口内、根据所述注册参数、所述原始密钥与所述时间窗口参数对所述目标动态口令进行认证。
14.一种认证系统,其特征在于,包括终端与服务器:
终端,用于将第一认证请求消息发送至服务器,终端在向服务器注册时存储原始密钥与时间窗口参数,所述第一认证请求消息中包括终端本地的用户标识;
服务器,用于在所述第一认证请求消息中的用户标识与数据库储存的注册参数中的用户标识相同时,将第一认证响应消息发送至终端,服务器对终端注册时存储注册参数、原始密钥与时间窗口参数;
终端,还用于将携带目标动态口令的第二认证请求消息发送至服务器,所述目标动态口令加密自终端本地的注册参数、所述原始密钥与所述时间窗口参数;
服务器,还用于将携带认证结果的第二认证响应消息发送至终端,所述认证结果用于表示在服务器本地的时间窗口参数表示的时间窗口内、根据服务器本地的注册参数、原始密钥与时间窗口参数对所述目标动态口令进行认证。
15.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的认证方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-12中任一所述的认证方法。
CN202010362144.7A 2020-04-30 2020-04-30 一种认证方法、设备和存储介质 Active CN111586024B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010362144.7A CN111586024B (zh) 2020-04-30 2020-04-30 一种认证方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010362144.7A CN111586024B (zh) 2020-04-30 2020-04-30 一种认证方法、设备和存储介质

Publications (2)

Publication Number Publication Date
CN111586024A CN111586024A (zh) 2020-08-25
CN111586024B true CN111586024B (zh) 2022-06-14

Family

ID=72112018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010362144.7A Active CN111586024B (zh) 2020-04-30 2020-04-30 一种认证方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111586024B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000942B (zh) * 2020-10-30 2021-01-22 成都掌控者网络科技有限公司 基于授权行为的权限列表匹配方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102916968A (zh) * 2012-10-29 2013-02-06 北京天诚盛业科技有限公司 身份认证方法、身份认证服务器和身份认证装置
CN103428001A (zh) * 2013-09-05 2013-12-04 中国科学院信息工程研究所 一种隐式增强便捷web身份认证方法
CN103580856A (zh) * 2013-11-19 2014-02-12 上海众人网络安全技术有限公司 根据认证窗口大小同步令牌装置的方法
CN103647647A (zh) * 2013-12-06 2014-03-19 上海众人网络安全技术有限公司 服务器端动态口令时间偏移自动校正方法
CN104125565A (zh) * 2013-04-23 2014-10-29 中兴通讯股份有限公司 一种基于oma dm实现终端认证的方法、终端及服务器
CN106712931A (zh) * 2015-08-20 2017-05-24 上海国盾量子信息技术有限公司 基于量子密码网络的手机令牌身份认证系统及方法
CN106789032A (zh) * 2017-01-16 2017-05-31 西安电子科技大学 服务器与移动设备间秘密共享的单一口令三方认证方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102916968A (zh) * 2012-10-29 2013-02-06 北京天诚盛业科技有限公司 身份认证方法、身份认证服务器和身份认证装置
CN104125565A (zh) * 2013-04-23 2014-10-29 中兴通讯股份有限公司 一种基于oma dm实现终端认证的方法、终端及服务器
CN103428001A (zh) * 2013-09-05 2013-12-04 中国科学院信息工程研究所 一种隐式增强便捷web身份认证方法
CN103580856A (zh) * 2013-11-19 2014-02-12 上海众人网络安全技术有限公司 根据认证窗口大小同步令牌装置的方法
CN103647647A (zh) * 2013-12-06 2014-03-19 上海众人网络安全技术有限公司 服务器端动态口令时间偏移自动校正方法
CN106712931A (zh) * 2015-08-20 2017-05-24 上海国盾量子信息技术有限公司 基于量子密码网络的手机令牌身份认证系统及方法
CN106789032A (zh) * 2017-01-16 2017-05-31 西安电子科技大学 服务器与移动设备间秘密共享的单一口令三方认证方法

Also Published As

Publication number Publication date
CN111586024A (zh) 2020-08-25

Similar Documents

Publication Publication Date Title
CN108650082B (zh) 待验证信息的加密和验证方法、相关装置及存储介质
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
US11018866B2 (en) Dynamic second factor authentication for cookie-based authentication
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
CN103078863B (zh) 登录认证的方法、装置及系统
EP3337088B1 (en) Data encryption method, decryption method, apparatus, and system
CN111586023B (zh) 一种认证方法、设备和存储介质
KR20180119201A (ko) 인증 시스템을 위한 전자 장치
CN105681470A (zh) 基于超文本传输协议的通信方法、服务器、终端
CN105450413A (zh) 一种密码的设置方法、装置和系统
WO2020232854A1 (zh) 车辆解锁方法、装置、计算机设备及存储介质
US20180083935A1 (en) Method and system for secure sms communications
WO2023160420A1 (zh) 群组消息加密方法、装置、设备和存储介质
CN115499118A (zh) 报文密钥生成、文件加密、解密方法、装置、设备和介质
JP2020513169A (ja) 装置認証キーを利用したデータ暗号化方法およびシステム
JP6378424B1 (ja) 無欠性及び保安性が強化された使用者認証方法
CN111586024B (zh) 一种认证方法、设备和存储介质
CN114785527B (zh) 数据传输方法、装置、设备及存储介质
Yoon et al. Security enhancement scheme for mobile device using H/W cryptographic module
CN114513316B (zh) 一种基于身份的匿名认证方法、服务器及用户终端设备
Chen et al. Biometric-based remote mutual authentication scheme for mobile device
CN117040825B (zh) 物联网设备的认证方法和存储介质
US11343078B2 (en) System and method for secure input at a remote service

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221206

Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou, Guangdong 510000

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.