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

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

Info

Publication number
CN111586023B
CN111586023B CN202010361413.8A CN202010361413A CN111586023B CN 111586023 B CN111586023 B CN 111586023B CN 202010361413 A CN202010361413 A CN 202010361413A CN 111586023 B CN111586023 B CN 111586023B
Authority
CN
China
Prior art keywords
terminal
server
authentication
sequence data
dynamic password
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
CN202010361413.8A
Other languages
English (en)
Other versions
CN111586023A (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 CN202010361413.8A priority Critical patent/CN111586023B/zh
Publication of CN111586023A publication Critical patent/CN111586023A/zh
Application granted granted Critical
Publication of CN111586023B publication Critical patent/CN111586023B/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)
  • Accounting & Taxation (AREA)
  • Power Engineering (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

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

Claims (17)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN111586023A CN111586023A (zh) 2020-08-25
CN111586023B true CN111586023B (zh) 2022-05-31

Family

ID=72111964

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN111586023B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055008B (zh) * 2020-08-31 2022-10-14 广州市百果园信息技术有限公司 一种身份验证方法、装置、计算机设备和存储介质
CN112202559B (zh) * 2020-12-10 2021-03-16 飞天诚信科技股份有限公司 一种自动注册管理服务器的方法及系统
CN116074028A (zh) * 2021-11-02 2023-05-05 华为技术有限公司 加密流量的访问控制方法、装置及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1997291A2 (en) * 2005-10-03 2008-12-03 Encap AS Method and arrangement for secure autentication
CN101719826A (zh) * 2009-05-13 2010-06-02 北京宏基恒信科技有限责任公司 具有种子密钥更新功能的动态令牌及其种子密钥的更新方法
CN103647645A (zh) * 2013-11-05 2014-03-19 北京宏基恒信科技有限责任公司 多认证服务器的动态口令认证方法、系统和装置
CN104184592A (zh) * 2014-09-10 2014-12-03 上海众人科技有限公司 一种动态令牌及其实现方法和动态口令认证方法及系统
CN104539701A (zh) * 2014-12-29 2015-04-22 飞天诚信科技股份有限公司 一种在线激活移动终端令牌的设备和系统的工作方法
CN104579680A (zh) * 2014-12-19 2015-04-29 飞天诚信科技股份有限公司 一种安全分发种子的方法
CN104702580A (zh) * 2013-12-10 2015-06-10 北京安讯奔科技有限责任公司 多通讯渠道认证授权平台系统和方法
CN105939196A (zh) * 2016-03-15 2016-09-14 天地融科技股份有限公司 身份认证方法和系统
CN108964922A (zh) * 2018-06-19 2018-12-07 深圳市文鼎创数据科技有限公司 移动终端令牌激活方法、终端设备及服务器
CN113396569A (zh) * 2019-03-18 2021-09-14 第一资本服务有限责任公司 用于客户支持呼叫的第二因素认证的系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428001B (zh) * 2013-09-05 2016-08-17 中国科学院信息工程研究所 一种隐式增强便捷web身份认证方法
US10574692B2 (en) * 2016-05-30 2020-02-25 Christopher Nathan Tyrwhitt Drake Mutual authentication security system with detection and mitigation of active man-in-the-middle browser attacks, phishing, and malware and other security improvements
CN106789032B (zh) * 2017-01-16 2019-12-10 西安电子科技大学 服务器与移动设备间秘密共享的单一口令三方认证方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1997291A2 (en) * 2005-10-03 2008-12-03 Encap AS Method and arrangement for secure autentication
CN101719826A (zh) * 2009-05-13 2010-06-02 北京宏基恒信科技有限责任公司 具有种子密钥更新功能的动态令牌及其种子密钥的更新方法
CN103647645A (zh) * 2013-11-05 2014-03-19 北京宏基恒信科技有限责任公司 多认证服务器的动态口令认证方法、系统和装置
CN104702580A (zh) * 2013-12-10 2015-06-10 北京安讯奔科技有限责任公司 多通讯渠道认证授权平台系统和方法
CN104184592A (zh) * 2014-09-10 2014-12-03 上海众人科技有限公司 一种动态令牌及其实现方法和动态口令认证方法及系统
CN104579680A (zh) * 2014-12-19 2015-04-29 飞天诚信科技股份有限公司 一种安全分发种子的方法
CN104539701A (zh) * 2014-12-29 2015-04-22 飞天诚信科技股份有限公司 一种在线激活移动终端令牌的设备和系统的工作方法
CN105939196A (zh) * 2016-03-15 2016-09-14 天地融科技股份有限公司 身份认证方法和系统
CN108964922A (zh) * 2018-06-19 2018-12-07 深圳市文鼎创数据科技有限公司 移动终端令牌激活方法、终端设备及服务器
CN113396569A (zh) * 2019-03-18 2021-09-14 第一资本服务有限责任公司 用于客户支持呼叫的第二因素认证的系统和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Time-based OTP authentication via secure tunnel(TOAST):A mobile TOTP scheme using TLS seed exchange and encrypted offline keystore;Mariano Luis T. Uymatiao,William Emmanuel,S. Yu;《IEEE 》;20141013;全文 *
基于事件的一次性口令系统的研究与改进;罗婵等;《软件导刊》;20101030(第10期);全文 *
移动互联网络安全认证及安全应用中若干关键技术研究;石莎;《中国博士学位论文全文数据库信息科技辑》;20130131;全文 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
US11930103B2 (en) Method, user device, management device, storage medium and computer program product for key management
CN111586023B (zh) 一种认证方法、设备和存储介质
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
US11018866B2 (en) Dynamic second factor authentication for cookie-based authentication
CN109391468A (zh) 一种认证方法及系统
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
EP3378190A1 (en) Method of performing keyed-hash message authentication code (hmac) using multi-party computation without boolean gates
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
CN114697040B (zh) 一种基于对称密钥的电子签章方法和系统
CN109525388B (zh) 一种密钥分离的组合加密方法及系统
CN101677269A (zh) 密钥传输的方法及系统
WO2023160420A1 (zh) 群组消息加密方法、装置、设备和存储介质
EP3866039A1 (en) Method and system for protecting authentication credentials
CN112087302A (zh) 一种非对称动态令牌加、解密算法的装置
CN113708917A (zh) 基于属性加密的app用户数据访问控制系统及方法
CN111586024B (zh) 一种认证方法、设备和存储介质
CN116208330A (zh) 一种基于量子加密的工业互联网云边协同数据安全传输方法及系统
CN115499118A (zh) 报文密钥生成、文件加密、解密方法、装置、设备和介质
WO2018043466A1 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
Yoon et al. Security enhancement scheme for mobile device using H/W cryptographic module
CN102761417A (zh) 终端数据传输的处理方法及终端
CN113922973A (zh) 基于密文的登录方法和设备
CN117118759B (zh) 用户控制服务器端密钥可靠使用的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221202

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.