CN116684111A - 二维码身份认证方法、装置及系统 - Google Patents
二维码身份认证方法、装置及系统 Download PDFInfo
- Publication number
- CN116684111A CN116684111A CN202210167650.XA CN202210167650A CN116684111A CN 116684111 A CN116684111 A CN 116684111A CN 202210167650 A CN202210167650 A CN 202210167650A CN 116684111 A CN116684111 A CN 116684111A
- Authority
- CN
- China
- Prior art keywords
- dimensional code
- user terminal
- index
- code index
- dimension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004891 communication Methods 0.000 claims abstract description 30
- 238000012795 verification Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000005336 cracking Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/03—Protecting confidentiality, e.g. by encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/068—Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
- H04W12/084—Access security using delegated authorisation, e.g. open authorisation [OAuth] protocol
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)
- Storage Device Security (AREA)
Abstract
本发明提供一种二维码身份认证方法、装置及系统,该方法通过从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。本发明提高二维码身份认证的准确性和安全性,实现简单,成本低,便于对二维码进行管理。
Description
技术领域
本发明涉及身份认证技术领域,尤其涉及一种二维码身份认证方法、装置及系统。
背景技术
近年来随着数字身份认证科技水平的不断进步,数字身份二维码认证方式应用越加广泛。数字身份二维码这种新型认证方式在无法提供身份证的情况下提供数字身份认证服务,便于人们通过数字身份进行酒店入住、旅游购票、民航出行等应用场景。
现有的方案中有离线二维码以及在线二维码认证方式。其中,在线二维码的认证流程如图1所示,步骤如下:
1、用户打开APP(Application,应用程序)二维码页。
2、APP检测当前网络环境,如果网络环境异常直接生成二维码失败的信息。
3、网络环境正常则实时请求二维码。
离线二维码的认证流程如图2所示,步骤如下:
1、用户打开APP二维码页。
2、APP根据二维码平台定好的规则生成二维码。
3、终端扫描二维码。
在数字身份认证快速发展的同时,因数字身份认证的在线认证特性制约了其在离线场景的应用,即手机无网络或网络差的情况下无法顺利完成数字身份认证,使得离线场景的用户群体不得不继续使用原始身份证认证的落后手段。而且,现有的离线二维码技术安全性难以保障,技术实现成本高,支付行业可能需要采用硬件设备参与保护某些敏感信息,生成二维码由APP端生成,从而对二维码不方便管理。
发明内容
本发明提供一种二维码身份认证方法、装置及系统,用以解决现有技术中在手机无网络或网络差的情况下采用离线二维码身份认证安全性较差,成本高的缺陷,实现采用半离线二维码身份认证,提高安全性,降低成本。
本发明提供一种二维码认证方法,包括:
从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;
其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;
根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
根据本发明提供的一种二维码认证方法,所述从用户终端的缓存中选取未使用的二维码索引之前,还包括:
若所述缓存中未使用的二维码索引的数量小于预设阈值,则在所述用户终端通信正常时向所述服务端发送二维码索引请求,并将所述用户终端的公钥发送给所述服务端;
接收所述服务端根据所述二维码索引请求返回的使用SM4密钥加密的多个二维码索引和使用所述用户终端的公钥加密的所述SM4密钥,将加密的所述二维码索引和加密的所述SM4密钥存在所述缓存中;
所述根据所述未使用的二维码索引和所述二维码令牌生成二维码,包括:
使用所述用户终端的私钥对选取的未使用的二维码索引对应的SM4密钥进行解密,使用解密的所述SM4密钥对选取的所述二维码索引进行解密,获取解密的所述二维码索引;
根据解密的所述二维码索引和所述二维码令牌生成二维码。
根据本发明提供的一种二维码认证方法,所述根据所述二维码索引和所述二维码令牌生成二维码,包括:
根据所述二维码索引和所述SIM卡中的计数器,计算所述二维码中的校验位;其中,所述SIM卡中的计数器用于对所述二维码令牌在所述SIM卡中的存放次数进行计数;
根据所述计数器、二维码索引、校验位和二维码令牌生成所述二维码。
本发明还提供一种二维码身份认证方法,包括:
在用户终端通信正常时生成二维码索引,并将所述二维码索引发送给所述用户终端,以供所述用户终端接收所述二维码索引后保存到缓存中;
接收扫描终端扫描到的所述用户终端提供的二维码,根据所述二维码进行身份认证;
其中,所述二维码由所述用户终端根据从所述缓存中选取的未使用的二维码索引和所述用户终端的SIM卡中的二维码令牌生成。
根据本发明提供的一种二维码认证方法,所述在用户终端通信正常时生成二维码索引,包括:
在所述用户终端通信正常时根据所述二维码的用途,确定所述用途对应的标志位,并生成每个二维码索引对应的随机数;其中,所述用途和所述标志位预先关联;
根据所述二维码索引对应的随机数是否相同,确定每个二维码索引对应的偏移位;
根据所述标志位、所述二维码索引的生成日期、所述用户终端对应的用户身份证号码、每个二维码索引对应的随机数和偏移位,生成每个二维码索引对应的字符串;
对每个二维码索引对应的字符串进行加密,根据每个二维码索引对应的随机数从加密的字符串中选取字符作为每个二维码索引对应的校验位;
根据所述标志位、所述二维码索引的生成日期、所述用户终端对应的用户ID、每个二维码索引对应的随机数、偏移位和校验位,生成所述二维码索引。
根据本发明提供的一种二维码认证方法,所述将所述二维码索引发送给所述用户终端,包括:
接收所述用户终端发送的公钥;
使用SM4密钥对所述二维码索引进行加密,使用所述公钥对所述SM4密钥进行加密;
将加密的所述二维码索引和加密的所述SM4密钥发送给所述用户终端,以供所述用户终端将加密的所述二维码索引和加密的所述SM4密钥存在所述缓存中。
根据本发明提供的一种二维码认证方法,所述根据所述二维码进行身份认证,包括:
对所述二维码进行解析,获取所述二维码中的计数器、二维码索引和二维码令牌;
对所述二维码索引进行解析,获取所述二维码索引中的生成日期和用户身份证号码;
查询所述用户身份证号码和生成日期对应的用户信息,根据所述用户信息对所述二维码令牌进行校验;
将所述二维码令牌下发给所述用户终端的次数与所述计数器进行比较,判断所述二维码令牌在所述SIM卡中是否重放;
对所述二维码索引的有效性进行验证;所述二维码索引的有效性验证包括判断解析的二维码索引在为所述用户终端生成的二维码索引中是否存在、所述二维码索引在否首次使用、所述二维码索引是否按照预设顺序使用和所述生成日期是否超过预设时间范围中的一种或多种;
根据所述二维码令牌的校验结果和是否重放,以及所述二维码索引的有效性验证结果,确定所述二维码的身份认证结果。
本发明还提供一种二维码身份认证装置,包括:
获取模块,用于从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;
其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;
第一生成模块,用于根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
本发明还提供一种二维码身份认证装置,包括:
第二生成模块,用于在用户终端通信正常时生成二维码索引,并将所述二维码索引发送给所述用户终端,以供所述用户终端接收所述二维码索引后保存到缓存中;
认证模块,用于接收扫描终端扫描到的所述用户终端提供的二维码,根据所述二维码进行身份认证;
其中,所述二维码由所述用户终端根据从所述缓存中选取的未使用的二维码索引和所述用户终端的SIM卡中的二维码令牌生成。
本发明还提供一种二维码身份认证系统,包括上述两种二维码身份认证装置。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述二维码身份认证方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述二维码身份认证方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述二维码身份认证方法的步骤。
本发明提供的二维码身份认证方法、装置及系统,通过采用半离线方式进行二维码身份认证,在用户联网时提前由服务端生成二维码索引缓存到用户终端,便于对二维码进行管理;用户终端在离线场景下可从缓存中取出二维码索引,结合用户终端的SIM卡上的二维码令牌生成二维码,需要用户终端与SIM卡同时参与,提高二维码身份认证的准确性和安全性,实现简单,成本低。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的在线二维码认证的流程示意图;
图2是现有技术提供的离线二维码认证的流程示意图;
图3是本发明提供的二维码认证方法的流程示意图之一;
图4是本发明提供的二维码认证方法中在用户终端的SIM卡中写入二维码令牌的流程示意图;
图5是本发明提供的二维码认证方法中二维码的生成流程示意图;
图6是本发明提供的二维码认证方法的流程示意图之二;
图7是本发明提供的二维码认证方法中基于SM4算法生成二维码索引的流程示意图;
图8是本发明提供的二维码认证方法中二维码身份认证流程示意图;
图9是本发明提供的二维码认证装置的结构示意图之一;
图10是本发明提供的二维码认证装置的结构示意图之二;
图11是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图3描述本发明的一种二维码认证方法,包括:步骤301,从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;
其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;
本实施例的执行主体为用户终端。二维码索引为用于检索二维码所表示信息的索引。二维码令牌为进行二维码身份认证的用户的身份标识。
本实施例采用半离线的二维码认证方法。用户终端在线时提前由服务端生成一个批次的二维码索引,并缓存至用户终端。用户终端在离线场景下可通过提前缓存的二维码索引生成二维码进行身份认证。
用户终端的SIM(Subscriber Identity Module,用户识别卡)卡可为超级SIM卡。由服务端下发写卡令牌指令,由用户终端上的APP通过机卡通道将二维码令牌写入SIM卡,以便用于生成二维码。在用户终端的SIM卡中写入二维码令牌的流程如图4所示。
APP打开机卡通道读取SIM卡上的二维码令牌,该过程可以离线进行,耗时可以控制在10ms以内,具备高效、安全以及断网读取的特性。
当用户需要进行二维码身份认证时,通过操作进入二维码展示页面。用户终端上的APP从缓存中选择一个未使用的二维码索引生成二维码进行展示,并打开
步骤302,根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
可选地,将选取的二维码索引和二维码令牌按照预设格式进行组合生成二维码。扫描终端扫描到二维码明文后,向服务端发送身份认证请求,对请求参数进行对称加密加签,保证请求参数的合法性,尤其是用户终端的公钥,防止传输过程中对请求参数进行篡改。同时对二维码明文进行单独加密后发送给服务端进行身份认证。服务端收到身份认证请求后先进行验签,验签通过后再对二维码进行验证,将验证结果返回给用户终端。
本实施例通过采用半离线方式进行二维码身份认证,在用户联网时提前由服务端生成二维码索引缓存到用户终端,便于对二维码进行管理;用户终端在离线场景下可从缓存中取出二维码索引,结合用户终端的SIM卡上的二维码令牌生成二维码,需要用户终端与SIM卡同时参与,提高二维码身份认证的准确性和安全性,实现简单,成本低。
在上述实施例的基础上,本实施例中所述从用户终端的缓存中选取未使用的二维码索引之前,还包括:若所述缓存中未使用的二维码索引的数量小于预设阈值,则在所述用户终端通信正常时向所述服务端发送二维码索引请求,并将所述用户终端的公钥发送给所述服务端;
可选地,如果缓存中没有未使用的二维码或者剩余未使用的二维码索引数量不足,如少于5个,则用户终端在进入二维码展示页面时如果有网则请求服务端生成一个批次的二维码索引,如一个批次的二维码索引的数量为20个。将缓存中当前未使用的二维码索引丢弃。在接收到服务端生成的新批次的二维码索引后,将之前缓存中的二维码索引设置为无效。
用户终端在请求二维码索引时,将自身的公钥,如key store公钥一并传输给服务端。每个用户终端的公钥都不同,从而保证SM4密钥的安全性,且在破解之后影响范围小。
可选地,在用户登录用户终端上的APP时,将自身公钥上传到服务端保持。如果该用户后面上传的公钥发生变动,则说明该用户已更换设备,此时将该用户对应的现有二维码索引全部设置为无效。
接收所述服务端根据所述二维码索引请求返回的使用SM4密钥加密的多个二维码索引和使用所述用户终端的公钥加密的所述SM4密钥,将加密的所述二维码索引和加密的所述SM4密钥存在所述缓存中;
服务端根据二维码索引生成方法生成一个批次的二维码索引,并将二维码索引存入数据库中。
SM4密钥使用SM4密码算法动态生成。SM4密码算法是一个分组算法,设计简沽,安全高效。
使用SM4密钥对二维码索引进行加密,使用用户终端的公钥对SM4密钥进行加密。用户终端接收服务端返回的加密SM4密钥和加密二维码索引,并将加密SM4密钥和加密二维码索引缓存到本地用于二维码生成和展示。使用公钥对SM4密钥加密的目的是防止SM4密钥被非法解密得到二维码索引明文信息,保护用户的敏感信息。每个用户终端的key store密钥对都不一样。
所述根据所述未使用的二维码索引和所述二维码令牌生成二维码,包括:使用所述用户终端的私钥对选取的未使用的二维码索引对应的SM4密钥进行解密,使用解密的所述SM4密钥对选取的所述二维码索引进行解密,获取解密的所述二维码索引;根据解密的所述二维码索引和所述二维码令牌生成二维码。
二维码生成是由用户终端上的APP按照二维码索引生成时间的先后顺序取一个可用的二维码索引,使用用户终端的上的私钥对SM4密钥进行解密,该私钥的泄漏成本高。再使用解密的SM4密钥对二维码索引进行解密。使用解密的二维码索引生成二维码。二维码的生成流程如图5所示。
本实施例通过使用用户终端的公私钥对加上SIM卡二维码令牌生成二维码索引,该公私钥对具有较高安全性,破解成本较高;同时,使用机卡通道存储二维码令牌到超级SIM卡,能够高效进行令牌读取,读取响应时间在10ms以内,保障了单SIM卡令牌模式被NFC(Near Field Communication,近距离无线通信)技术盗取令牌的风险。
在上述各实施例的基础上,本实施例中所述根据所述二维码索引和所述二维码令牌生成二维码,包括:根据所述二维码索引和所述SIM卡中的计数器,计算所述二维码中的校验位;其中,所述SIM卡中的计数器用于对所述二维码令牌在所述SIM卡中的存放次数进行计数;根据所述计数器、二维码索引、校验位和二维码令牌生成所述二维码。
用户终端上的APP从SIM卡上读取的内容包括二维码令牌的密文信息和counter计数器。
可选地,APP将二维码索引、二维码令牌和counter计数器按照如下方式进行组合:
counter计数器(5位)+二维码索引(20位)+校验位(5以内位)+SIM卡令牌(64位以内)。其中加号表示拼接操作。
其中,校验位由二维码索引中后6位(偏移位+校验位)除counter计数器的余数得到,若除数大于被除数则校验位取除数,以进一步增强二维码组成的随机性。
下面结合图6描述本发明的一种二维码认证方法,包括:步骤601,在用户终端通信正常时生成二维码索引,并将所述二维码索引发送给所述用户终端,以供所述用户终端接收所述二维码索引后保存到缓存中;
本实施例的执行主体为服务端。用户终端在线时提前由服务端生成一个批次的二维码索引,并缓存至用户终端。用户终端在离线场景下可通过提前缓存的二维码索引生成二维码进行身份认证。
步骤602,接收扫描终端扫描到的所述用户终端提供的二维码,根据所述二维码进行身份认证;
其中,所述二维码由所述用户终端根据从所述缓存中选取的未使用的二维码索引和所述用户终端的SIM卡中的二维码令牌生成。
可选地,用户终端将选取的二维码索引和二维码令牌按照预设格式进行组合生成二维码。扫描终端扫描到二维码明文后,向服务端发送身份认证请求,对请求参数进行对称加密加签,防止对请求参数进行篡改。同时对二维码明文进行单独加密后发送给服务端进行身份认证。服务端收到身份认证请求后先进行验签,验签通过后再对二维码进行验证。
本实施例通过采用半离线方式进行二维码身份认证,在用户联网时提前由服务端生成二维码索引缓存到用户终端,便于对二维码进行管理;用户终端在离线场景下可从缓存中取出二维码索引,结合用户终端的SIM卡上的二维码令牌生成二维码,需要用户终端与SIM卡同时参与,提高二维码身份认证的准确性和安全性,实现简单,成本低。
在上述实施例的基础上,本实施例中所述在用户终端通信正常时生成二维码索引,包括:在所述用户终端通信正常时根据所述二维码的用途,确定所述用途对应的标志位,并生成每个二维码索引对应的随机数;其中,所述用途和所述标志位预先关联;
二维码中的标志位用于区分二维码的用途。服务端可根据标志位进行不同用途的二维码验证。
使用随机数生成算法生成随机数,随机数用于保证二维码的安全性,防止进行伪造撞库攻击。
根据所述二维码索引对应的随机数是否相同,确定每个二维码索引对应的偏移位;
偏移位用于防止生成重复的二维码索引。若为同一批次的二维码索引生成的随机数存在相同,则将相同随机数对应的偏移位逐渐递增,保证同批次生成的二维码索引不重复。例如,生成的随机数中有三个随机数相同,则这三个随机数对应的偏移位分别为2、3和4,其他随机数对应的偏移位为2。偏移位的起始位由二维码索引的批次决定,不同批次的二维码索引中偏移位的起始位不同,从而保证不同批次的二维码索引之间不重复。
根据所述标志位、所述二维码索引的生成日期、所述用户终端对应的用户身份证号码、每个二维码索引对应的随机数和偏移位,生成每个二维码索引对应的字符串;
可选地,二维码索引的格式为2位标志位(依据二维码功能定义)+4位日期信息(当前年份)+2位随机数+4位日期(当前月份+日期)+4位用户身份证尾号(身份证号码后4位)+2位偏移位+4位校验位(根据前18位计算)。其中,加号表示拼接操作。二维码索引的生成日期和用户身份证尾号用于提升数据库检索性能,从而提高二维码认证效率。
对每个二维码索引对应的字符串进行加密,根据每个二维码索引对应的随机数从加密的字符串中选取字符作为每个二维码索引对应的校验位;
可选地,对二维码索引的前18位进行AES(Advanced Encryption Standard,高级加密标准)加密得到加密字符串,从中根据两位随机数的组成取加密字符串的4位字符作为校验位。
例如,两位随机数上的值分别为x和y,则从加密字符串中第x位开始截取两位字符,同理从加密字符串中第y位开始截取两位字符,最后将四位截取到的字符拼接在一起组成校验位。
其中,AES加密密钥为用户随机生成,做到不同用户加密密钥不一致,以增强安全性。校验位生成方式为服务端私有,从而进一步防止伪造撞库攻击。
根据所述标志位、所述二维码索引的生成日期、所述用户终端对应的用户ID、每个二维码索引对应的随机数、偏移位和校验位,生成所述二维码索引。
在上述实施例的基础上,本实施例中所述将所述二维码索引发送给所述用户终端,包括:接收所述用户终端发送的公钥;
用户终端在请求二维码索引时,将自身的公钥,如key store公钥一并传输给服务端,服务端接收用户终端发送的公钥。每个用户终端的公钥都不同,从而保证SM4密钥的安全性。
使用SM4密钥对所述二维码索引进行加密,使用所述公钥对所述SM4密钥进行加密;
服务端根据二维码索引生成方法生成一个批次的二维码索引,并将二维码索引存入数据库中。使用SM4密钥对二维码索引进行加密,使用用户终端的公钥对SM4密钥进行加密,并将加密SM4密钥和加密二维码索引返回给用户终端。
将加密的所述二维码索引和加密的所述SM4密钥发送给所述用户终端,以供所述用户终端将加密的所述二维码索引和加密的所述SM4密钥存在所述缓存中。二维码索引需要用户终端的密钥和SIM卡的二维码令牌才能生成,提高安全性。
如图7所示,基于SM4算法生成二维码索引的步骤如下:
1、用户终端登录时APP将公钥传输给服务端保存。
2、服务端依据生码方法生成二维码索引存库,将二维码索引用SM4密钥加密,SM4密钥由SM4密码算法动态生成。
3、服务端将SM4密钥使用APP公钥加密。
4、服务端将二维码密文以及加密后的SM4密钥返回给APP。
本实施例通过使用用户终端的公私钥对加上SIM卡二维码令牌生成二维码索引,该公私钥对具有较高安全性,破解成本较高;同时,使用机卡通道存储二维码令牌到超级SIM卡,能够高效进行令牌读取,保障了单SIM卡令牌模式被NFC技术盗取令牌的风险。
在上述实施例的基础上,如图8所示,本实施例中所述根据所述二维码进行身份认证,包括:对所述二维码进行解析,获取所述二维码中的计数器、二维码索引和二维码令牌;
可选地,如果二维码为密文,则服务端先解密二维码得到明文,然后根据二维码各组成部分的位置截取各组成部分。
例如,将二维码明文截取前5位获取计数器,截取第6位到第20位得到二维码索引,根据二维码索引以及计数器计算校验位,确定校验位长度。根据校验位长度确定二维码令牌的起始位,即21加上校验位长度,截取二维码令牌的起始位到最后得到二维码令牌密文。
对所述二维码索引进行解析,获取所述二维码索引中的生成日期和用户身份证号码;
对二维码索引进行解析得到二维码索引中的信息明细,获取用户身份证号码和生成日期。
查询所述用户身份证号码和生成日期对应的用户信息,根据所述用户信息对所述二维码令牌进行校验;
将用户身份证号和二维码索引的生成日期作为条件查询数据库,得到用户信息,包括用户基本信息,如姓名和年龄,本实施例不限于用户信息的具体内容。该方式有效提高数据库的检索效率。
将二维码令牌作为条件查询数据库,得到用户信息。将以不同条件查询到的用户信息进行比对,判断是否一致。若不一致,则二维码令牌校验不通过,否则校验通过。
此外,若二维码令牌为密文,服务器不能对其进行解密或解密结果与服务端下发给用户终端的二维码令牌不一致,则认为二维码令牌不合法。
将所述二维码令牌下发给所述用户终端的次数与所述计数器进行比较,判断所述二维码令牌在所述SIM卡中是否重放;
服务端记录将二维码令牌下发给用户终端的次数。可选地,判断SIM卡上的计数器减去服务端的记录值是否大于等于1且小于等于3,若不是,则认为该二维码令牌在SIM卡上存在重放的可能,终止二维码身份认证流程。
对所述二维码索引的有效性进行验证;所述二维码索引的有效性验证包括判断解析的二维码索引在为所述用户终端生成的二维码索引中是否存在、所述二维码索引在否首次使用、所述二维码索引是否按照预设顺序使用和所述生成日期是否超过预设时间范围中的一种或多种;
对二维码索引的的有效性判断包括时效性、一致性、不可重用性和有序性判断。若查找不到相关记录,则终止二维码身份认证流程。
其中,时效性是指二维码索引从生成到使用之间的时间在规定的预设范围内,过期则不能使用。例如,二维码索引的有效期为7天。
正确性是指二维码索引二维码索引必须是正确无误的,不能被篡改,必须是由服务端为用户终端生成的才能使用。
不可重用性是指每个二维码索引只能使用一次。
有序性是指同一批次的二维码索引按照一定顺序使用,不可逆序使用。用户终端在二维码展示一次(时长≤60s)之后,下次则按顺序展示下二维码索引对应的二维码。服务端对于同批次的二维码索引,建立一个使用计数器,每个二维码索引都有序号,每次使用的二维码索引的序号应高于上次使用的二维码索引的序号,支持跨序号使用,防止拍照盗用二维码。
根据所述二维码令牌的校验结果和是否重放,以及所述二维码索引的有效性验证结果,确定所述二维码的身份认证结果。
若二维码令牌校验通过,没有重放,且二维码索引有效,则确定二维码身份认证通过,否则不通过。
对于安全级别较高的场景,在二维码身份认证之后还可以支持附加的验证,例如人像比对或者基本信息比对。
下面对本发明提供的二维码认证装置进行描述,下文描述的二维码认证装置与上文描述的二维码认证方法可相互对应参照。
如图9所示,该装置包括获取模块901和第一生成模块902,其中:
获取模块901用于从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;
其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;
第一生成模块902用于根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
本实施例通过采用半离线方式进行二维码身份认证,在用户联网时提前由服务端生成二维码索引缓存到用户终端,便于对二维码进行管理;用户终端在离线场景下可从缓存中取出二维码索引,结合用户终端的SIM卡上的二维码令牌生成二维码,需要用户终端与SIM卡同时参与,提高二维码身份认证的准确性和安全性,实现简单,成本低。
如图10所示,该装置包括第二生成模块1001和认证模块1002,其中:
第二生成模块1001用于在用户终端通信正常时生成二维码索引,并将所述二维码索引发送给所述用户终端,以供所述用户终端接收所述二维码索引后保存到缓存中;
认证模块1002用于接收扫描终端扫描到的所述用户终端提供的二维码,根据所述二维码进行身份认证;
其中,所述二维码由所述用户终端根据从所述缓存中选取的未使用的二维码索引和所述用户终端的SIM卡中的二维码令牌生成。
本实施例通过采用半离线方式进行二维码身份认证,在用户联网时提前由服务端生成二维码索引缓存到用户终端,便于对二维码进行管理;用户终端在离线场景下可从缓存中取出二维码索引,结合用户终端的SIM卡上的二维码令牌生成二维码,需要用户终端与SIM卡同时参与,提高二维码身份认证的准确性和安全性,实现简单,成本低。
本实施例提供一种二维码身份认证系统,包括上述两个实施例中的二维码身份认证装置。
本实施例通过采用半离线方式进行二维码身份认证,在用户联网时提前由服务端生成二维码索引缓存到用户终端,便于对二维码进行管理;用户终端在离线场景下可从缓存中取出二维码索引,结合用户终端的SIM卡上的二维码令牌生成二维码,需要用户终端与SIM卡同时参与,提高二维码身份认证的准确性和安全性,实现简单,成本低。
图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行二维码身份认证方法,该方法包括:从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的二维码身份认证方法,该方法包括:从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的二维码身份认证方法,该方法包括:从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种二维码认证方法,其特征在于,包括:
从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;
其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;
根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
2.根据权利要求1所述的二维码认证方法,其特征在于,所述从用户终端的缓存中选取未使用的二维码索引之前,还包括:
若所述缓存中未使用的二维码索引的数量小于预设阈值,则在所述用户终端通信正常时向所述服务端发送二维码索引请求,并将所述用户终端的公钥发送给所述服务端;
接收所述服务端根据所述二维码索引请求返回的使用SM4密钥加密的多个二维码索引和使用所述用户终端的公钥加密的所述SM4密钥,将加密的所述二维码索引和加密的所述SM4密钥存在所述缓存中;
所述根据所述未使用的二维码索引和所述二维码令牌生成二维码,包括:
使用所述用户终端的私钥对选取的未使用的二维码索引对应的SM4密钥进行解密,使用解密的所述SM4密钥对选取的所述二维码索引进行解密,获取解密的所述二维码索引;
根据解密的所述二维码索引和所述二维码令牌生成二维码。
3.根据权利要求1或2所述的二维码认证方法,其特征在于,所述根据所述二维码索引和所述二维码令牌生成二维码,包括:
根据所述二维码索引和所述SIM卡中的计数器,计算所述二维码中的校验位;其中,所述SIM卡中的计数器用于对所述二维码令牌在所述SIM卡中的存放次数进行计数;
根据所述计数器、二维码索引、校验位和二维码令牌生成所述二维码。
4.一种二维码身份认证方法,其特征在于,包括:
在用户终端通信正常时生成二维码索引,并将所述二维码索引发送给所述用户终端,以供所述用户终端接收所述二维码索引后保存到缓存中;
接收扫描终端扫描到的所述用户终端提供的二维码,根据所述二维码进行身份认证;
其中,所述二维码由所述用户终端根据从所述缓存中选取的未使用的二维码索引和所述用户终端的SIM卡中的二维码令牌生成。
5.根据权利要求4所述的二维码身份认证方法,其特征在于,所述在用户终端通信正常时生成二维码索引,包括:
在所述用户终端通信正常时根据所述二维码的用途,确定所述用途对应的标志位,并生成每个二维码索引对应的随机数;其中,所述用途和所述标志位预先关联;
根据所述二维码索引对应的随机数是否相同,确定每个二维码索引对应的偏移位;
根据所述标志位、所述二维码索引的生成日期、所述用户终端对应的用户身份证号码、每个二维码索引对应的随机数和偏移位,生成每个二维码索引对应的字符串;
对每个二维码索引对应的字符串进行加密,根据每个二维码索引对应的随机数从加密的字符串中选取字符作为每个二维码索引对应的校验位;
根据所述标志位、所述二维码索引的生成日期、所述用户终端对应的用户ID、每个二维码索引对应的随机数、偏移位和校验位,生成所述二维码索引。
6.根据权利要求4所述的二维码身份认证方法,其特征在于,所述将所述二维码索引发送给所述用户终端,包括:
接收所述用户终端发送的公钥;
使用SM4密钥对所述二维码索引进行加密,使用所述公钥对所述SM4密钥进行加密;
将加密的所述二维码索引和加密的所述SM4密钥发送给所述用户终端,以供所述用户终端将加密的所述二维码索引和加密的所述SM4密钥存在所述缓存中。
7.根据权利要求5所述的二维码身份认证方法,其特征在于,所述根据所述二维码进行身份认证,包括:
对所述二维码进行解析,获取所述二维码中的计数器、二维码索引和二维码令牌;
对所述二维码索引进行解析,获取所述二维码索引中的生成日期和用户身份证号码;
查询所述用户身份证号码和生成日期对应的用户信息,根据所述用户信息对所述二维码令牌进行校验;
将所述二维码令牌下发给所述用户终端的次数与所述计数器进行比较,判断所述二维码令牌在所述SIM卡中是否重放;
对所述二维码索引的有效性进行验证;所述二维码索引的有效性验证包括判断解析的二维码索引在为所述用户终端生成的二维码索引中是否存在、所述二维码索引在否首次使用、所述二维码索引是否按照预设顺序使用和所述生成日期是否超过预设时间范围中的一种或多种;
根据所述二维码令牌的校验结果和是否重放,以及所述二维码索引的有效性验证结果,确定所述二维码的身份认证结果。
8.一种二维码身份认证装置,其特征在于,包括:
获取模块,用于从用户终端的缓存中选取未使用的二维码索引,并读取所述用户终端的SIM卡中的二维码令牌;
其中,所述二维码索引由服务端在所述用户终端通信正常时生成,并发送给所述用户终端,所述用户终端接收所述二维码索引后保存到缓存中;
第一生成模块,用于根据所述未使用的二维码索引和所述二维码令牌生成二维码,以供扫描终端扫描所述二维码,并将所述二维码发送给所述服务端进行身份认证。
9.一种二维码身份认证装置,其特征在于,包括:
第二生成模块,用于在用户终端通信正常时生成二维码索引,并将所述二维码索引发送给所述用户终端,以供所述用户终端接收所述二维码索引后保存到缓存中;
认证模块,用于接收扫描终端扫描到的所述用户终端提供的二维码,根据所述二维码进行身份认证;
其中,所述二维码由所述用户终端根据从所述缓存中选取的未使用的二维码索引和所述用户终端的SIM卡中的二维码令牌生成。
10.一种二维码身份认证系统,其特征在于,包括权利要求8所述的二维码身份认证装置和权利要求9所述的二维码身份认证装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210167650.XA CN116684111A (zh) | 2022-02-23 | 2022-02-23 | 二维码身份认证方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210167650.XA CN116684111A (zh) | 2022-02-23 | 2022-02-23 | 二维码身份认证方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116684111A true CN116684111A (zh) | 2023-09-01 |
Family
ID=87782439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210167650.XA Pending CN116684111A (zh) | 2022-02-23 | 2022-02-23 | 二维码身份认证方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116684111A (zh) |
-
2022
- 2022-02-23 CN CN202210167650.XA patent/CN116684111A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162596B (zh) | 用于生成在与服务器交互中使用的安全值并传送给用户的设备 | |
CN108833114A (zh) | 一种基于区块链的去中心化身份认证系统及方法 | |
CN106603496B (zh) | 一种数据传输的保护方法、智能卡、服务器及通信系统 | |
US20060153380A1 (en) | Personal cryptoprotective complex | |
CN109766979A (zh) | 一种二维码的生成方法、验证方法及其装置 | |
CN111275419B (zh) | 一种区块链钱包签名确权方法、装置及系统 | |
CN106953732B (zh) | 芯片卡的密钥管理系统及方法 | |
CN110519046A (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN113541935B (zh) | 一种支持密钥托管的加密云存储方法、系统、设备、终端 | |
CN108494783A (zh) | 云端数据的保护方法 | |
CN110855667B (zh) | 一种区块链加密方法、装置及系统 | |
CN109981266B (zh) | 密钥和敏感信息存储、读取方法及装置 | |
CN113344222A (zh) | 一种基于区块链的安全可信的联邦学习机制 | |
CN110224834A (zh) | 基于动态令牌的身份认证方法、解密及加密终端 | |
CN108323230A (zh) | 一种传输密钥的方法、接收终端和分发终端 | |
CN110138548A (zh) | 基于非对称密钥池对和dh协议的量子通信服务站密钥协商方法和系统 | |
CN110380859A (zh) | 基于非对称密钥池对和dh协议的量子通信服务站身份认证方法和系统 | |
CN113761488A (zh) | 一种内容网络版权溯源加密系统及加密方法 | |
CN106656955A (zh) | 一种通信方法及系统、客户端 | |
CN109067702B (zh) | 一种实名制网络身份生成和保护的方法 | |
CN110365472A (zh) | 基于非对称密钥池对的量子通信服务站数字签名方法、系统 | |
CN110098925A (zh) | 基于非对称密钥池对和随机数的量子通信服务站密钥协商方法和系统 | |
CN110224810A (zh) | 一种二维码的防伪方法 | |
CN109302442A (zh) | 一种数据存储证明方法及相关设备 | |
CN117335989A (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 |