CN116471028A - 一种短信验证方法、装置和系统 - Google Patents
一种短信验证方法、装置和系统 Download PDFInfo
- Publication number
- CN116471028A CN116471028A CN202210025624.3A CN202210025624A CN116471028A CN 116471028 A CN116471028 A CN 116471028A CN 202210025624 A CN202210025624 A CN 202210025624A CN 116471028 A CN116471028 A CN 116471028A
- Authority
- CN
- China
- Prior art keywords
- client
- information
- server
- identity
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
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)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了一种短信验证方法、装置和系统,涉及通信安全技术领域,通过在上一次短信验证后提前预存服务器发送的身份信息和验证码,在此次短信验证过程中,服务器可以通过上一次预存的身份信息确定客户端为可信任客户端后,通过短信服务器和短信客户端,向用户提供验证码,用户在客户端上填写验证码后,客户端通过对身份码、身份信息、验证码和随机数进行密钥派生和密钥签名,然后发送给服务器,服务器再对自身存储的身份码、身份信息、验证码和随机数进行密钥派生和密钥签名,如果两个签名相同,表明此次短信验证过程中是该用户操作,确保整个短信验证过程是安全的。
Description
技术领域
本发明涉及通信安全技术领域,尤其涉及一种短信验证方法、装置和系统。
背景技术
手机短信验证,是一种基于手机号码和运营商的一次性密码(one timepassword,OTP)的验证方法,一般用于对安全性要求比较高的场景,如登录银行、登录某运维web管理系统后台等等。以手机短信为例,用户在执行登录身份验证或重要操作身份验证后,点击获取验证码,系统对接运营商的短信网关,并让短信网关向指定的手机号发送验证码,用户收到短信验证码后填入系统进行身份验证。但是,这种验证方式的安全性比较低,容易被不法分子窃取验证码,从而造成用户的安全泄露。
发明内容
为了解决上述的问题,本申请的实施例中提供了一种短信验证方法、装置和系统,通过在上一次短信验证后提前预存服务器发送的身份信息和验证码,在此次短信验证过程中,服务器可以通过上一次预存的身份信息确定客户端为可信任客户端后,通过短信服务器和短信客户端,向用户提供验证码,用户在客户端上填写验证码后,客户端通过对身份码、身份信息、验证码和随机数进行密钥派生和密钥签名,然后发送给服务器,服务器再对自身存储的身份码、身份信息、验证码和随机数进行密钥派生和密钥签名,如果两个签名相同,表明此次短信验证过程中是该用户操作,确保整个短信验证过程是安全的。相比较现有技术,安全性更高,且登录过程中,除了短信验证码无需其它操作,相对于其它方案,不仅安全性得到提升,而且带给用户的体验提升或体验不变。
为此,本申请的实施例中采用如下技术方案:
第一方面,本申请提供一种短信验证方法,其特征在于,所述方法由客户端执行,包括:向服务器发送第一请求信息,所述第一请求信息用于请求所述服务器生成短信验证码,所述第一请求信息携带有手机号码和所述客户端自身预先存储的第一身份信息,所述第一身份信息用于让所述服务器验证所述客户端是否为可信任的客户端;接收所述服务器发送的安全信息;接收用户输入的第一短信验证码,对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果,并将所述第一签名结果发送给所述服务器。
在一种实施方式中,当所述客户端自身未存储有所述第一身份信息时,在所述向服务器发送第一请求信息之前,还包括:确定前置可信认证成功;向所述服务器发送认证成功信息;接收所述服务器发送的所述客户端的第一身份信息和第一身份码。
在一种实施方式中,所述对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果包括:对所述第一短信验证码、所述安全信息和所述自身预先存储的身份信息进行密钥派生,得到第一加密密钥;对所述第一加密密钥、所述安全信息和所述自身预先存储的身份码进行密钥签名,得到所述第一签名结果。
在一种实施方式中,所述方法还包括:接收并存储所述服务器发送的所述客户端的第二身份信息和第二身份码,所述第二身份信息用于下一次短信验证时,让所述服务器验证所述客户端是否为可信任的客户端,所述第二身份码用于在下一次短信验证时,与下一次的短信验证码和安全信息一并加密。
在一种实施方式中,所述方法还包括:接收用户输入的第二短信验证码,对所述第二短信验证码、所述安全信息、所述第一加密密钥和所述第一身份信息进行密钥派生和密钥签名,得到第二签名结果,并将所述第二签名结果发送给所述服务器,所述第二短信验证码为短信客户端接收到的短信验证码。
在一种实施方式中,所述安全信息为一次性的随机数。
第二方面,本申请提供一种短信验证方法,所述方法由服务器执行,包括:接收客户端发送的第一请求信息,所述第一请求信息携带有手机号码和自身预先存储的第一身份信息;确定自身数据库中是否有所述第一身份信息;当所述自身数据库中有所述第一身份信息时,生成短信验证码;向短信服务器发送验证码信息,所述验证码信息包括所述手机号码和短信验证码;接收所述客户端发送的签名结果;对自身存储的短信验证码、安全信息、所述第一身份信息和第一身份码进行密钥派生和密钥签名,得到第三签名结果;比较所述客户端发送的签名结果和所述第三签名结果是否相同;当所述客户端发送的签名结果和所述第三签名结果相同时,向所述客户端发送登录成功信息,所述登录成功信息用于让所述客户端登录所述服务器。
在一种实施方式中,在所述接收客户端发送的第一请求信息之前,所述客户端自身未存储有所述第一身份信息时,所述方法还包括:接收所述客户端发送认证成功信息;生成所述客户端的第一身份信息和第一身份码;将所述第一身份信息和所述第一身份码存储在所述数据库中;向所述客户端发送所述第一身份信息和所述第一身份码。
在一种实施方式中,在所述向短信服务器发送验证码信息之前或之后,所述方法还包括:生成安全信息,并存储在所述数据库中;向所述客户端发送所述安全信息。
在一种实施方式中,所述方法还包括:当所述自身数据库中没有所述第一身份信息时,向所述客户端发送第二请求信息,所述第二请求信息用于让所述客户端进行前置可信认证。
在一种实施方式中,所述方法还包括:当所述客户端发送的签名结果和所述第三签名结果不相同时,向所述客户端发送第三请求信息,所述第三请求信息用于让所述客户端进行前置可信认证。
在一种实施方式中,所述方法还包括:生成所述客户端的第二身份信息和第二身份码,并存储在所述数据库中;向所述客户端发送所述第二身份信息和所述第二身份码。
第三方面,本申请提供一种短信验证装置,包括:收发单元,用于向服务器发送第一请求信息,所述第一请求信息用于请求所述服务器生成短信验证码,所述第一请求信息携带有手机号码和所述客户端自身预先存储的第一身份信息,所述第一身份信息用于让所述服务器验证所述客户端是否为可信任的客户端;接收所述服务器发送的安全信息;接收用户输入的第一短信验证码;处理单元,用于对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果,并将所述第一签名结果发送给所述服务器。
在一种实施方式中,所述处理单元,还用于确定前置可信认证成功;所述收发单元,还用于向所述服务器发送认证成功信息;接收所述服务器发送的所述客户端的第一身份信息和第一身份码。
在一种实施方式中,所述处理单元,具体用于对所述第一短信验证码、所述安全信息和所述自身预先存储的身份信息进行密钥派生,得到第一加密密钥;对所述第一加密密钥、所述安全信息和所述自身预先存储的身份码进行密钥签名,得到所述第一签名结果。
在一种实施方式中,所述收发单元,还用于接收并存储所述服务器发送的所述客户端的第二身份信息和第二身份码,所述第二身份信息用于下一次短信验证时,让所述服务器验证所述客户端是否为可信任的客户端,所述第二身份码用于在下一次短信验证时,与下一次的短信验证码和安全信息一并加密。
在一种实施方式中,所述收发单元,还用于接收用户输入的第二短信验证码,对所述第二短信验证码、所述安全信息、所述第一加密密钥和所述第一身份信息进行密钥派生和密钥签名,得到第二签名结果,并将所述第二签名结果发送给所述服务器,所述第二短信验证码为短信客户端接收到的短信验证码。
在一种实施方式中,所述安全信息为一次性的随机数。
第四方面,本申请提供一种短信验证装置,其特征在于,包括:收发单元,用于接收客户端发送的第一请求信息,所述第一请求信息携带有手机号码和自身预先存储的第一身份信息;处理单元,用于确定自身数据库中是否有所述第一身份信息;当所述自身数据库中有所述第一身份信息时,生成短信验证码;所述收发单元,还用于向短信服务器发送验证码信息,所述验证码信息包括所述手机号码和短信验证码;接收所述客户端发送的签名结果;所述处理单元,还用于对自身存储的短信验证码、安全信息、所述第一身份信息和第一身份码进行密钥派生和密钥签名,得到第三签名结果;比较所述客户端发送的签名结果和所述第三签名结果是否相同;当所述客户端发送的签名结果和所述第三签名结果相同时,向所述客户端发送登录成功信息,所述登录成功信息用于让所述客户端登录所述服务器。
在一种实施方式中,所述收发单元,还用于接收所述客户端发送认证成功信息;所述处理单元,还用于生成所述客户端的第一身份信息和第一身份码;将所述第一身份信息和所述第一身份码存储在所述数据库中;所述收发单元,还用于向所述客户端发送所述第一身份信息和所述第一身份码。
在一种实施方式中,所述处理单元,还用于生成安全信息,并存储在所述数据库中;所述收发单元,还用于向所述客户端发送所述安全信息。
在一种实施方式中,所述处理单元,还用于当所述自身数据库中没有所述第一身份信息时,向所述客户端发送第二请求信息,所述第二请求信息用于让所述客户端进行前置可信认证。
在一种实施方式中,所述处理单元,还用于当所述客户端发送的签名结果和所述第三签名结果不相同时,向所述客户端发送第三请求信息,所述第三请求信息用于让所述客户端进行前置可信认证。
在一种实施方式中,所述处理单元,还用于生成所述客户端的第二身份信息和第二身份码,并存储在所述数据库中;所述收发单元,还用于向所述客户端发送所述第二身份信息和所述第二身份码。
第五方面,本申请提供一种客户端,包括:至少一个收发器;至少一个存储器;至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得客户端执行如第一方面各个可能实现的实施例。
第六方面,本申请提供一种服务器,包括:至少一个收发器;至少一个存储器;至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得服务器执行如第二方面各个可能实现的实施例。
第七方面,本申请提供一种短信验证系统,包括:客户端,用于执行如第一方面各个可能实现的实施例;服务器,用于执行如第二方面各个可能实现的实施例;短信服务器,用于生成包括有验证码的短信;短信客户端,用于接收所述包括有验证码的短信,并呈现所述验证码。
第八方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行如第一方面各个可能实现的实施例或执行如第二方面各个可能实现的实施例。
第九方面,本申请提供一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施如第一方面各个可能实现的实施例或执行如第二方面各个可能实现的实施例。
附图说明
下面对实施例或现有技术描述中所需使用的附图作简单地介绍。
图1为现有技术中一种短信验证的流程示意图;
图2为本申请实施例中提供的一种实现短信验证的系统架构示意图;
图3为本申请实施例中提供的一种短信验证的页面示意图;
图4为本申请实施例中提供的一种实现短信验证的流程示意图;
图5为本申请实施例中提供的一种客户端与服务器之间可信任验证流程示意图;
图6为本申请实施例中提供的一种短信验证装置的结构示意图;
图7为本申请实施例中提供的一种短信验证装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
对于实现短信验证功能的软件或硬件系统,可以将基于短信内容的认证通道定义为“第一通道”,将短信内容从服务端传递到用户手中或、短信内容短暂显示、短信内容保留的通道定义为“第二通道”。
结合图1所示,短信验证实现过程具体为:
第一步:用户(user)在客户端(client)上登录需要进行短信验证的网页,如登录网上银行、PC版的华为云会议等应用程序,在填写手机号码后,点击页面上的获取“验证码”虚拟按钮,可以请求获取短信验证码;
第二步:client向应用程序对应的服务器(server)发起请求,请求生成短信验证码;
第三步:server生成短信验证码后,向短信息服务服务器(short massageservice server,SMS server)发送验证码;
第四步:SMS server将验证码编辑成短信的形式,发送给短信息服务客户端(short massage service client,SMS client);
第五步:user通过读取SMS client上的短信,得到验证码;
第六步:user在client上填写验证码,并单击页面上的“确定”虚拟按钮;
第七步:client将手机号码和验证码发送给server,让server进行身份验证。
现有技术的短信验证过程中,如果出现短信验证被攻击情况,大多数在第一通道或第二通道进行攻击,具体为:
1、第一通道被攻击:由于短信内容具有一次有效的特征,在第一通道内认证过程中是不会遭受重放攻击。但是,在请求短信验证到填入短信验证码之间存在较长的时间(短信接收时长和人工输入时长),且验证码的复杂度的提升,会导致用户一次性输入正确的正确率下降,系统通常会设计一些错误容忍值,导致遭受在第一通道内基于错误验证码泄露的猜解攻击。
另外,由于中间人(man in the middle,MitM)攻击的前提是仿冒,即攻击者面对用户A仿冒服务器S或面对服务器S仿冒用户A时,而短信验证是假设用户A确定信任服务器S后才发起的一种身份验证请求,所以不考虑MitM攻击的问题,应该是由其它技术确保“服务器S是用户A信赖的”,如公共密钥基础设施(public key infrastructure,PKI)证书系统。
2、第二通道被攻击:短信内容在第二通道内泄露可能会导致攻击者在第一通道内仿冒用户,实现攻击。以手机短信为例,常见的在第二通道内泄露的场景有手机遗失、用户身份识别(subscriber identity module,SIM)卡被复制、向近端展示手机屏幕或向远端共享手机屏幕时泄露、手机中木马后实时回传短信内容泄露等。
现有技术中,为了解决上述被攻击的问题,提出一种增加预留码的方式来解决第二通道短信验证码泄露的仿冒攻击问题,具体为:服务器端生成验证码并提供给验证运算模块;验证码发送至短信网关;短信至预留手机号码;用户输入验证码和预留码的运算结果,即用户按照自己设定的运算规则将手机接收到的验证码和预留码进行计算获取运算结果;服务器端获取用户输入数据并暂存为码2;提取用户预留码及运算规则;服务器端通过验证码运算得到码1;码1和码2比较,如果一直则认证成功,如果不一致,则认证失败。
但是,现有技术中的预留码在短信验证时需要输入到client中,且用户为了方便,设置的预留码的长度比较短、复杂度比较低,所以预留码很容易被攻击者破解。预留码和短信验证码进行计算的运算规则一般为可逆的计算方法,不是基于密码学的可逆算法,所以该算法规则被破解的可能性比较大,导致可以通过原文和密钥直接破解出规则和预留码。
为了解决上述存在的缺陷,本申请提供了一种新的短信验证方式,通过第一通道可信认证流程后(如更高安全的U盾认证、首次开通认证等等),服务端自动给当前设备下发用于下次短信登录的身份码,并引入第一通道的一次性有效安全随机数对抗对照攻击,基于密钥、随机数、身份码进行签名后传输到服务端进行校验,用户在常用设备(非SMSclient所在设备)上登录时,除了短信验证码无需其它操作,相对于其它方案,不仅安全性得到提升,而且带给用户的体验提升或体验不变。
图2为本申请实施例中提供的一种实现短信验证的系统架构示意图。如图2所示,该系统包括客户端100、服务器200、短信服务器300和短信客户端400。其中,客户端100、服务器200、短信服务器300和短信客户端400之间可以通过无线网、无线保真(wirelessfidelity,Wi-Fi)、2G/3G/4G/5G等通信技术实现通信,并进行数据传输。
客户端100是指用户登录验证网页的设备,可以是台式电脑、笔记本电脑、平板电脑、智能手机等电子设备。其中,验证网页可以是网上银行、登录应用程序(application,APP)、网站等等。
示例性地,结合图3所示,当用户需要登录“华为云会议”,通过在电脑上打开“华为云会议APP”,进入APP后,会显示一个需要登录APP的页面,需要用户输入手机号码,并需要根据手机号码发送短信验证码进行登录。在用户输入手机号码后,需要再次点击页面上的“获取验证码”的虚拟按钮,以触发客户端100向服务器200发送生成验证码的请求。
服务器200是指用户登录的验证网页的运行商对应的服务器,用于接收客户端100发送的生成验证码的请求,生成验证码,并寻求短信服务器300生成短信。其中,如果验证网页是网上银行,则服务器200为银行的服务器;如果验证网页是华为云会议,则服务器20为华为的服务器;如果验证网页是中华人民共和国国家知识产权局网站,则服务器200为国家的服务器,以及其它服务器,本申请在此不一一举例。
短信服务器300是指生成短信的服务器,用于接收服务器200发送的验证码、手机号码和生成短信的请求,生成包括有验证码的短信,并发送给对应手的机号码。其中,短信服务器300可以为国内的电信服务器、联通服务器、移动服务器,以及其它可生成短信的服务器,本申请在此不作限定。
短信客户端400是指接收短信的设备,一般是指可插入SIM卡的电子设备,如手机、平板电脑等等。本申请中,短信客户端400可以接收短信服务器300发送的短信,让用户可以根据短信客户端400上接收到的验证码,填入到网页中,进行登录验证。
下面,结合图4所示的流程图,具体介绍客户端100、服务器200、短信服务器300和短信客户端400之间进行短信验证实现过程,如下:
步骤S401,客户端100向服务器200发送生成短信验证的请求信息。其中,请求信息中携带有客户端100的身份信息。
具体地,当用户登录需要短信验证码进行验证的页面时,可以按照如图3所示的界面进行操作,先填入手机号码,然后点击“获取验证码”的虚拟按钮,从而触发客户端100向服务器200发送生成短信验证码的请求信息。其中,请求信息中不仅携带有用户填入的手机号码,还携带有客户端100的身份信息。手机号码是作为服务器200生成短信验证码后的发送对象,身份信息为一次性的身份凭证,是用于让服务器200验证本次短信验证过程中,客户端100是否为可信任的客户端。可选地,客户端100的身份信息可以为媒体存取控制(media access control,MAC)地址,也可以为客户端100与服务器200之间约定的密钥,以及其它可以验证客户端100的身份凭证。
客户端100的身份信息一般是由客户端100在上一次进行短信验证后,预存在客户端100中的存储器中,以便后续短信验证时进行身份验证。如果客户端100是首次与服务器200进行数据传输,客户端100中并没有存储有身份信息,客户端100在执行步骤S401之前,需要进行前置可信认证,采用如虚拟专用网络(virtual private network,VPN)通道、U盾等比短信验证更高安全性的验证方式实行前置可信认证。客户端100在前置可信认证成功后,再让客户端100与服务器200之间建立可信连接通道,实现过程如图5所示,具体为:
步骤S501,客户端100向服务器200发送前置可信认证成功的认证成功信息。
具体地,用户如果让客户端100在服务器200处为可信任的客户端,需要在客户端100处进行前置可信认证的操作,如通过VPN通道、U盾等方式进行前置可信认证。客户端100在通过前置可信认证成功后,向服务器200发送认证成功信息,请求服务器200发送进行短信验证的身份信息和身份码,以便后续进行短信验证。
步骤S502,服务器200随机生成客户端100的身份信息,以及根据客户端100的身份信息生成身份码,并将客户端100的身份信息和身份码存储在数据库中。
步骤S503,服务器200向客户端100发送身份信息和身份码。
具体地,服务器200在接收到前置可信认证成功的信息后,确认客户端100通过了前置可信认证,随机生成一个一次性的客户端100的身份信息,如临时MAC地址、二进制随机字符串等等,然后将该身份信息存储在数据库中,以便后续进行短信验证时,可以根据客户端100的身份信息确认客户端100为可信任的客户端。服务器200在得到客户端100的身份信息后,根据客户端100的身份信息生成身份码,并将该身份码存储在数据库中,以便后续短信验证过程中作为安全验证的身份信息,可以提高短信验证过程的安全性。其中,身份码可以为密码学的安全随机数,也可以为一串数字、字母、符号或数字和字母的混合,以及其它方式,本申请在此不作限定。
步骤S504,客户端100接收到身份信息和身份码后,将该身份信息和身份码存储在存储器中。
具体地,客户端100在接收到身份码后,表明服务器200将自身作为可信任的客户端后,并将身份信息和身份码存储在存储器中,以便后续短信验证过程中,利用该身份信息验证客户端100为服务器200的可信任的客户端,利用身份码作为短信验证的安全因子之一,增加破解的难度,从而提高短信验证的安全性。
本申请中,在客户端100与服务器200之间进行可信连接通道的过程中,客户端100在完整前置可信认证后,让服务器200随机生成一个一次性的身份信息和身份码,服务器200自身存储此次生成的身份信息和身份码,然后再将身份信息和身份码发送给客户端100,让客户端100也存储身份信息和身份码,从而完成客户端100与服务器200之间可信连接通道。
步骤S402,服务器200根据接收到的客户端100的身份信息,判断自身是否存储有该身份信息;如果有,执行步骤S403;如果没有,执行步骤S401。
具体地,服务器200接收到客户端100发送的请求信息后,并解析该请求信息,得到手机号码和客户端100的身份信息。服务器200在得到客户端100的身份信息后,需要对该身份信息进行验证,判断客户端100是否为可信任的客户端。示例性地,服务器200在得到客户端100的身份信息后,与自身数据库中已经存储的身份信息进行比对,判断自身存储的身份信息中是否有客户端100的身份信息。如果数据库中存储的身份信息中没有客户端100的身份信息,表明客户端100为不可信任的客户端,服务器200不作回应,或向客户端100发送不信任的反馈信息,如“当前客户端存在安全问题”、“当前客户端未做认证”等提示信息,以及可以让客户端100重新执行步骤S401,并重新进行前置可信认证,以及执行图5相应的步骤;如果数据库中存储的身份信息中有客户端100的身份信息,表明客户端100为可信任的客户端,服务器200可以根据请求信息,生成短信验证码。
步骤S403,服务器200生成验证码,向短信服务器300发送验证码信息。
具体地,服务器200根据请求信息中携带的客户端100的身份信息,确定数据库有该身份信息,则认为客户端100为可信任的客户端,然后根据该请求生成一串验证码,并将该验证码和手机号码一并发送给短信服务器300。
步骤S404,服务器200向客户端100发送安全信息。其中,安全信息中携带一次性安全随机数X。
具体地,服务器200在验证客户端100为可信任的客户端后,表明后续需要与客户端100进行短信验证,由于在短信验证过程中,验证码、客户端100的身份信息和身份码都是固定的,加密得到的密钥也是固定的,第三方即使不能全部拿到上述三个数据,可以根据得到密钥反推破解出上述三个数据。为了解决上述问题,一般会在加密过程中,添加一个随机数,使得每次根据上述三个数据进行加密的密钥都是不一样的,从而增加了密钥的破解难度。
示例性地,服务器200在验证客户端100为可信任的客户端后,随机生成一个随机数X,作为安全信息,发送给客户端100,以便后续客户端100在用户填写验证后,验证码、客户端100的身份信息、身份码和随机数X进行加密时,提高了密钥的复杂程度,不易被破解。同时,服务器200将此次生成的随机数X也存储在存储器中,以便后续接收到客户端100发送的密钥后,服务器200自身也要对自身存储的验证码、客户端100的身份信息、身份码和随机数X进行加密,来与接收到密钥进行比对。
本申请中,服务器200向短信服务器300发送验证码信息和生成随机数X的顺序,并不是完全按照步骤S403和步骤S404之间的顺序,也可以先生成随机数X,再向短信服务器300发送验证码信息,本申请在此不作限定。
步骤S405,短信服务器300接收到验证码信息,生成短信,并向短信客户端400短信。其中,短信中携带有验证码。
具体地,短信服务器300在接收到验证码信息后,根据验证码信息中的验证码,生成一条短信,然后根据验证码信息中的手机号码,将该短信发送给该手机号码对应的短信客户端400中,以便用户可以根据短信客户端400接收到的短信,知道验证码是多少。
需要说明的是,服务器200与短信服务器300之间的通信一般是由企业与运营商经过2G/3G/4G/5G等通信方式进行传输,其安全性比较高,破解难度比较大,所以本申请可以将此两个过程中数据传输,默认是安全的,并不需要进行加密处理。短信服务器300与短信客户端400之间的通信是否安全,本申请并不关心,即使短信服务器300与短信客户端400之间的通信不安全,导致短信验证码出现泄漏,如果不是通过客户端100进行短信验证,整个短信验证过程也是无法成功的。
步骤S406,客户端100接收到验证码后,对验证码、身份信息、身份码和随机数X进行密钥派生和密钥签名,得到第一签名结果。
步骤S407,客户端100向服务器200发送第一签名结果。
具体地,对于用户来说,在短信客户端400接收到短信后,用户可以浏览短信客户端400中的短信,以获取验证码,然后将短信客户端400接收到的验证码填入客户端100上的相应区域中,并点击页面上的“确定”虚拟按钮,实现短信验证过程。
对于客户端100来说,当用户点击“确定”虚拟按钮后,客户端100可以利用哈希(hash)、smk、SM-9等派生算法,对用户填入的验证码、自身存储的由服务器200发送的身份信息和由服务器200发送的随机数X进行密钥派生,得到加密密钥。示例性地,客户端100使用smk派生算法,对验证码、身份信息和随机数X进行加密,得到密钥为:
Smk=KDF(M,Ni,nonce)
其中,M表示短信的验证码,Ni表示通过可信通道发送的身份信息,nonce表示服务器生成的一次性的安全随机数X,KDF表示密钥派生算法。
客户端100在得到加密密钥Smk后,再对加密密钥Smk、由服务器200发送的随机数X和自身存储的由服务器200发送的身份码进行密钥签名,得到第一签名结果。示例性地,客户端100使用基于Smk的不可逆签名算法,如HMAC等签名算法,对密钥Smk、随机数X和身份码进行密钥签名,得到第一签名结果为:
y1=F(Smk,nonce,Nm)
其中,Smk表示客户端100生成的加密密钥,nonce表示服务器生成的一次性的安全随机数X,Nm表示通过可信通道发送的身份码。
可选地,客户端100使用基于Smk的不可逆签名算法,对密钥Smk、随机数X、身份码和身份信息进行密钥签名,得到第一签名结果为:
y1=F(Smk,nonce,Nm,Ni)
其中,Smk表示客户端100生成的加密密钥,nonce表示服务器生成的一次性的安全随机数X,Nm表示通过可信通道发送的身份码,Ni表示通过可信通道发送的身份信息。
步骤S408,服务器200接收到客户端100发送的第一签名结果,对自身存储的验证码、身份信息、身份码和随机数X进行密钥派生和密钥签名,得到第二签名结果,再与接收到的第一签名结果进行比较,如果相同,执行步骤S409;如果不相同,执行步骤S401。
服务器200在接收到客户端100发送的密钥Smk后,对自身生成的验证码、身份信息和随机数X进行密钥派生,得到加密密钥。示例性地,服务器200使用smk派生算法,对验证码、身份信息和随机数X进行加密,得到密钥为:
Smk=KDF(M,Ni,nonce)
其中,M表示服务器200自身生成的短信验证码,Ni表示服务器200自身生成的客户端100的身份信息,nonce表示服务器200自身生成的安全随机数X,KDF表示密钥派生算法。
服务器200在得到加密密钥Smk后,再对加密密钥Smk、服务器200自身生成的随机数X和服务器200自身生成的身份码进行密钥签名,得到第二签名结果。示例性地,服务器200使用基于Smk的不可逆签名算法,如HMAC等签名算法,对密钥Smk、随机数X和身份码进行密钥签名,得到第二签名结果为:
y2=F(Smk,nonce,Nm)
其中,Smk表示服务器200自身生成的加密密钥,nonce表示服务器200生成的一次性的安全随机数X,Nm表示服务器200自身生成的身份码。
可选地,客户端100使用基于Smk的不可逆签名算法,对密钥Smk、随机数X、身份码和身份信息进行密钥签名,得到第一签名结果为:
y2=F(Smk,nonce,Nm,Ni)
其中,Smk表示服务器200自身生成的加密密钥,nonce表示服务器200自身生成的一次性的安全随机数X,Nm表示服务器200自身生成的身份码,Ni表示服务器200自身生成的身份信息。
服务器200在得到第一签名结果y1和第二签名结果y2后,判断两个签名结果是否相同。如果两个签名结果的结果相同,则表明此次短信验证过程中,客户端100和验证码都是可信的,并没有被第三方窃取,确保整个短信验证过程的安全。如果比两个签名结果结果不相同,则表明短信验证过程中出现安全问题,服务器200可以不作回应,或向客户端100发送出现安全问题的反馈信息,如“当前短信验证过程存在安全问题”等安全提示信息,并让客户端100重新执行步骤S401,并重新进行前置可信认证,以及执行图5相应的步骤。
本申请中,考虑到用户在输入验证码出现错误时,需要对smk派生算法进行修改,修改为:
Smk[Ni,n]=KDF(Smk[Ni,n-1],nonce,Ni)
Smk[Ni,1]=KDF(M,nonce,Ni)
其中,Smk[Ni,n]表示此次输入验证码后的客户端100生成的密钥,Smk[Ni,n-1]表示此次之前的一次输入验证码后的客户端100生成的密钥。
步骤S409,服务器200向客户端100发送登录成功信息。其中,登录成功信息用于让客户端100提示此次认证成功的信息。可选地,登录成功信息携带有会话令牌,如token、sessionid、cookie等等,以便客户端100执行下一步操作。
步骤S410,服务器200再次生成身份信息和身份码。
步骤S411,服务器200向客户端100发送身份信息和身份码。
具体地,服务器200在完成此次短信验证后,可以再次生成一个一次性的身份信息和身份码,然后下发给客户端100,让客户端100存储此次获取的身份信息和身份码,可以将原先使用过的身份信息和身份码删除。
本申请实施例中,通过在上一次短信验证后提前预存服务器发送的身份信息和验证码,在此次短信验证过程中,服务器可以通过上一次预存的身份信息确定客户端为可信任客户端后,通过短信服务器和短信客户端,向用户提供验证码,用户在客户端上填写验证码后,客户端通过对身份码、身份信息、验证码和随机数进行密钥派生和密钥签名,然后发送给服务器,服务器再对自身存储的身份码、身份信息、验证码和随机数进行密钥派生和密钥签名,如果两个签名相同,表明此次短信验证过程中是该用户操作,确保整个短信验证过程是安全的。相比较现有技术,安全性更高,且登录过程中,除了短信验证码无需其它操作,相对于其它方案,不仅安全性得到提升,而且带给用户的体验提升或体验不变。
图6为本申请实施例中提供的一种短信验证装置的结构示意图。如图6所示,该短信验证装置,包括处理单元601和收发单元602,各个单元具体实现过程如下:
收发单元602用于向服务器发送第一请求信息,所述第一请求信息用于请求所述服务器生成短信验证码,所述第一请求信息携带有手机号码和所述客户端自身预先存储的第一身份信息,所述第一身份信息用于让所述服务器验证所述客户端是否为可信任的客户端;接收所述服务器发送的安全信息;接收用户输入的第一短信验证码;处理单元601用于对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果,并将所述第一签名结果发送给所述服务器。
在一种实施方式中,所述处理单元601还用于确定前置可信认证成功;所述收发单元602还用于向所述服务器发送认证成功信息;接收所述服务器发送的所述客户端的第一身份信息和第一身份码。
在一种实施方式中,所述处理单元601具体用于对所述第一短信验证码、所述安全信息和所述自身预先存储的身份信息进行密钥派生,得到第一加密密钥;对所述第一加密密钥、所述安全信息和所述自身预先存储的身份码进行密钥签名,得到所述第一签名结果。
在一种实施方式中,所述收发单元602还用于接收并存储所述服务器发送的所述客户端的第二身份信息和第二身份码,所述第二身份信息用于下一次短信验证时,让所述服务器验证所述客户端是否为可信任的客户端,所述第二身份码用于在下一次短信验证时,与下一次的短信验证码和安全信息一并加密。
在一种实施方式中,所述收发单元602还用于接收用户输入的第二短信验证码,对所述第二短信验证码、所述安全信息、所述第一加密密钥和所述第一身份信息进行密钥派生和密钥签名,得到第二签名结果,并将所述第二签名结果发送给所述服务器,所述第二短信验证码为短信客户端接收到的短信验证码。
在一种实施方式中,所述安全信息为一次性的随机数。
图7为本申请实施例中提供的一种短信验证装置的结构示意图。如图7所示,该短信验证装置,包括处理单元701和收发单元702,各个单元具体实现过程如下:
收发单元702用于接收客户端发送的第一请求信息,所述第一请求信息携带有手机号码和自身预先存储的第一身份信息;处理单元701用于确定自身数据库中是否有所述第一身份信息;当所述自身数据库中有所述第一身份信息时,生成短信验证码;所述收发单元702还用于向短信服务器发送验证码信息,所述验证码信息包括所述手机号码和短信验证码;接收所述客户端发送的签名结果;所述处理单元701还用于对自身存储的短信验证码、安全信息、所述第一身份信息和第一身份码进行密钥派生和密钥签名,得到第三签名结果;比较所述客户端发送的签名结果和所述第三签名结果是否相同;当所述客户端发送的签名结果和所述第三签名结果相同时,向所述客户端发送登录成功信息,所述登录成功信息用于让所述客户端登录所述服务器。
在一种实施方式中,所述收发单元702还用于接收所述客户端发送认证成功信息;所述处理单元701还用于生成所述客户端的第一身份信息和第一身份码;将所述第一身份信息和所述第一身份码存储在所述数据库中;所述收发单元702还用于向所述客户端发送所述第一身份信息和所述第一身份码。
在一种实施方式中,所述处理单元701还用于生成安全信息,并存储在所述数据库中;所述收发单元702还用于向所述客户端发送所述安全信息。
在一种实施方式中,所述处理单元701还用于当所述自身数据库中没有所述第一身份信息时,向所述客户端发送第二请求信息,所述第二请求信息用于让所述客户端进行前置可信认证。
在一种实施方式中,所述处理单元701还用于当所述客户端发送的签名结果和所述第三签名结果不相同时,向所述客户端发送第三请求信息,所述第三请求信息用于让所述客户端进行前置可信认证。
在一种实施方式中,所述处理单元701还用于生成所述客户端的第二身份信息和第二身份码,并存储在所述数据库中;所述收发单元702还用于向所述客户端发送所述第二身份信息和所述第二身份码。
本申请实施例中还提供了一种客户端,该客户端包括至少一个收发器、至少一个存储器和至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得客户端可以执行如图3-图5和上述对应保护的技术方案,使得该客户端具有上述保护的技术方案的技术效果。
本申请实施例中还提供了一种服务器,该服务器包括至少一个收发器、至少一个存储器和至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得服务器可以执行如图4-图5和上述对应保护的技术方案,使得该服务器具有上述保护的技术方案的技术效果。
本申请实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述图3-图5和相应描述内容中记载的任一项方法。
本申请实施例中还提供了一种计算机程序产品,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施上述图3-图5和相应描述内容中记载的任一项方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
此外,本申请实施例的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatiledisc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasableprogrammable read-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
在上述实施例中,图6中的短信验证装置600和图7中的短信验证装置700可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
应当理解的是,在本申请实施例的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者接入网设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (29)
1.一种短信验证方法,其特征在于,所述方法由客户端(100)执行,包括:
向服务器(200)发送第一请求信息,所述第一请求信息用于请求所述服务器生成短信验证码,所述第一请求信息携带有手机号码和所述客户端自身预先存储的第一身份信息,所述第一身份信息用于让所述服务器验证所述客户端是否为可信任的客户端;
接收所述服务器发送的安全信息;
接收用户输入的第一短信验证码,对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果,并将所述第一签名结果发送给所述服务器。
2.根据权利要求1所述的方法,其特征在于,当所述客户端自身未存储有所述第一身份信息时,在所述向服务器(200)发送第一请求信息之前,还包括:
确定前置可信认证成功;
向所述服务器发送认证成功信息;
接收所述服务器发送的所述客户端的第一身份信息和第一身份码。
3.根据权利要求1或2所述的方法,其特征在于,所述对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果包括:
对所述第一短信验证码、所述安全信息和所述自身预先存储的身份信息进行密钥派生,得到第一加密密钥;
对所述第一加密密钥、所述安全信息和所述自身预先存储的身份码进行密钥签名,得到所述第一签名结果。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
接收并存储所述服务器发送的所述客户端的第二身份信息和第二身份码,所述第二身份信息用于下一次短信验证时,让所述服务器验证所述客户端是否为可信任的客户端,所述第二身份码用于在下一次短信验证时,与下一次的短信验证码和安全信息一并加密。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:
接收用户输入的第二短信验证码,对所述第二短信验证码、所述安全信息、所述第一加密密钥和所述第一身份信息进行密钥派生和密钥签名,得到第二签名结果,并将所述第二签名结果发送给所述服务器,所述第二短信验证码为短信客户端(400)接收到的短信验证码。
6.根据权利要求1-4任意一项所述的方法,其特征在于,所述安全信息为一次性的随机数。
7.一种短信验证方法,其特征在于,所述方法由服务器(200)执行,包括:
接收客户端(100)发送的第一请求信息,所述第一请求信息携带有手机号码和自身预先存储的第一身份信息;
确定自身数据库中是否有所述第一身份信息;
当所述自身数据库中有所述第一身份信息时,生成短信验证码;
向短信服务器(300)发送验证码信息,所述验证码信息包括所述手机号码和短信验证码;
接收所述客户端发送的签名结果;
对自身存储的短信验证码、安全信息、所述第一身份信息和第一身份码进行密钥派生和密钥签名,得到第三签名结果;
比较所述客户端发送的签名结果和所述第三签名结果是否相同;
当所述客户端发送的签名结果和所述第三签名结果相同时,向所述客户端发送登录成功信息,所述登录成功信息用于让所述客户端登录所述服务器。
8.根据权利要求7所述的方法,其特征在于,在所述接收客户端发送的第一请求信息之前,所述客户端自身未存储有所述第一身份信息时,所述方法还包括:
接收所述客户端发送认证成功信息;
生成所述客户端的第一身份信息和第一身份码;
将所述第一身份信息和所述第一身份码存储在所述数据库中;
向所述客户端发送所述第一身份信息和所述第一身份码。
9.根据权利要求7或8所述的方法,其特征在于,在所述向短信服务器(300)发送验证码信息之前或之后,所述方法还包括:
生成安全信息,并存储在所述数据库中;
向所述客户端发送所述安全信息。
10.根据权利要求7-9任意一项所述的方法,其特征在于,所述方法还包括:
当所述自身数据库中没有所述第一身份信息时,向所述客户端发送第二请求信息,所述第二请求信息用于让所述客户端进行前置可信认证。
11.根据权利要求7-10任意一项所述的方法,其特征在于,所述方法还包括:
当所述客户端发送的签名结果和所述第三签名结果不相同时,向所述客户端发送第三请求信息,所述第三请求信息用于让所述客户端进行前置可信认证。
12.根据权利要求7-11任意一项所述的方法,其特征在于,所述方法还包括:
生成所述客户端的第二身份信息和第二身份码,并存储在所述数据库中;
向所述客户端发送所述第二身份信息和所述第二身份码。
13.一种短信验证装置,其特征在于,包括:
收发单元,用于向服务器发送第一请求信息,所述第一请求信息用于请求所述服务器生成短信验证码,所述第一请求信息携带有手机号码和所述客户端自身预先存储的第一身份信息,所述第一身份信息用于让所述服务器验证所述客户端是否为可信任的客户端;
接收所述服务器发送的安全信息;
接收用户输入的第一短信验证码;
处理单元,用于对所述第一短信验证码、所述安全信息、自身预先存储的第一身份码和第一身份信息进行密钥派生和密钥签名,得到第一签名结果,并将所述第一签名结果发送给所述服务器。
14.根据权利要求13所述的装置,其特征在于,所述处理单元,还用于确定前置可信认证成功;
所述收发单元,还用于向所述服务器发送认证成功信息;
接收所述服务器发送的所述客户端的第一身份信息和第一身份码。
15.根据权利要求13或14所述的装置,其特征在于,所述处理单元,具体用于
对所述第一短信验证码、所述安全信息和所述自身预先存储的身份信息进行密钥派生,得到第一加密密钥;
对所述第一加密密钥、所述安全信息和所述自身预先存储的身份码进行密钥签名,得到所述第一签名结果。
16.根据权利要求13-15任意一项所述的装置,其特征在于,所述收发单元,还用于
接收并存储所述服务器发送的所述客户端的第二身份信息和第二身份码,所述第二身份信息用于下一次短信验证时,让所述服务器验证所述客户端是否为可信任的客户端,所述第二身份码用于在下一次短信验证时,与下一次的短信验证码和安全信息一并加密。
17.根据权利要求13-16任意一项所述的装置,其特征在于,所述收发单元,还用于
接收用户输入的第二短信验证码,对所述第二短信验证码、所述安全信息、所述第一加密密钥和所述第一身份信息进行密钥派生和密钥签名,得到第二签名结果,并将所述第二签名结果发送给所述服务器,所述第二短信验证码为短信客户端接收到的短信验证码。
18.根据权利要求13-17任意一项所述的装置,其特征在于,所述安全信息为一次性的随机数。
19.一种短信验证装置,其特征在于,包括:
收发单元,用于接收客户端发送的第一请求信息,所述第一请求信息携带有手机号码和自身预先存储的第一身份信息;
处理单元,用于确定自身数据库中是否有所述第一身份信息;
当所述自身数据库中有所述第一身份信息时,生成短信验证码;
所述收发单元,还用于向短信服务器发送验证码信息,所述验证码信息包括所述手机号码和短信验证码;
接收所述客户端发送的签名结果;
所述处理单元,还用于对自身存储的短信验证码、安全信息、所述第一身份信息和第一身份码进行密钥派生和密钥签名,得到第三签名结果;
比较所述客户端发送的签名结果和所述第三签名结果是否相同;
当所述客户端发送的签名结果和所述第三签名结果相同时,向所述客户端发送登录成功信息,所述登录成功信息用于让所述客户端登录所述服务器。
20.根据权利要求19所述的装置,其特征在于,所述收发单元,还用于接收所述客户端发送认证成功信息;
所述处理单元,还用于生成所述客户端的第一身份信息和第一身份码;
将所述第一身份信息和所述第一身份码存储在所述数据库中;
所述收发单元,还用于向所述客户端发送所述第一身份信息和所述第一身份码。
21.根据权利要求19或20所述的装置,其特征在于,所述处理单元,还用于生成安全信息,并存储在所述数据库中;
所述收发单元,还用于向所述客户端发送所述安全信息。
22.根据权利要求19-21任意一项所述的装置,其特征在于,所述处理单元,还用于当所述自身数据库中没有所述第一身份信息时,向所述客户端发送第二请求信息,所述第二请求信息用于让所述客户端进行前置可信认证。
23.根据权利要求19-22任意一项所述的装置,其特征在于,所述处理单元,还用于当所述客户端发送的签名结果和所述第三签名结果不相同时,向所述客户端发送第三请求信息,所述第三请求信息用于让所述客户端进行前置可信认证。
24.根据权利要求19-23任意一项所述的装置,其特征在于,所述处理单元,还用于生成所述客户端的第二身份信息和第二身份码,并存储在所述数据库中;
所述收发单元,还用于向所述客户端发送所述第二身份信息和所述第二身份码。
25.一种客户端,其特征在于,包括:
至少一个收发器;
至少一个存储器;
至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得客户端执行如权利要求1-6任一所述的方法。
26.一种服务器,其特征在于,包括:
至少一个收发器;
至少一个存储器;
至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得服务器执行如权利要求7-12任一所述的方法。
27.一种短信验证系统,其特征在于,包括:
客户端(100),用于执行如权利要求1-6任一所述的方法;
服务器(200),用于执行如权利要求7-12任一所述的方法;
短信服务器(300),用于生成包括有验证码的短信;
短信客户端(400),用于接收所述包括有验证码的短信,并呈现所述验证码。
28.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-6中任一项的所述的方法或执行权利要求7-12中任一项的所述的方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施权利要求1-6中任一项的所述的方法或执行权利要求7-12中任一项的所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210025624.3A CN116471028A (zh) | 2022-01-11 | 2022-01-11 | 一种短信验证方法、装置和系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210025624.3A CN116471028A (zh) | 2022-01-11 | 2022-01-11 | 一种短信验证方法、装置和系统 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116471028A true CN116471028A (zh) | 2023-07-21 |
Family
ID=87179323
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210025624.3A Pending CN116471028A (zh) | 2022-01-11 | 2022-01-11 | 一种短信验证方法、装置和系统 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116471028A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118741436A (zh) * | 2024-09-04 | 2024-10-01 | 深圳中网讯通技术有限公司 | 短信签名标题实名自动化方法及系统 |
-
2022
- 2022-01-11 CN CN202210025624.3A patent/CN116471028A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118741436A (zh) * | 2024-09-04 | 2024-10-01 | 深圳中网讯通技术有限公司 | 短信签名标题实名自动化方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11764966B2 (en) | Systems and methods for single-step out-of-band authentication | |
| US8209744B2 (en) | Mobile device assisted secure computer network communication | |
| CN100388244C (zh) | 远程更改通讯密码的方法和系统 | |
| US20180082050A1 (en) | Method and a system for secure login to a computer, computer network, and computer website using biometrics and a mobile computing wireless electronic communication device | |
| TWI608361B (zh) | 電子裝置、伺服器、通訊系統及通訊方法 | |
| US20120284506A1 (en) | Methods and apparatus for preventing crimeware attacks | |
| US20030196084A1 (en) | System and method for secure wireless communications using PKI | |
| CN112989426B (zh) | 授权认证方法及装置、资源访问令牌的获取方法 | |
| CA3035817A1 (en) | System and method for decentralized authentication using a distributed transaction-based state machine | |
| CN105376216A (zh) | 一种远程访问方法、代理服务器及客户端 | |
| CN116633530A (zh) | 量子密钥传输方法、装置及系统 | |
| EP2414983B1 (en) | Secure Data System | |
| WO2023151427A1 (zh) | 量子密钥传输方法、装置及系统 | |
| TW202433321A (zh) | 基於多方多因子動態強加密認證之資通安全方法與系統 | |
| CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
| CN109347887B (zh) | 一种身份认证的方法及装置 | |
| CN114513345A (zh) | 信息传输系统以及使用者装置与信息安全硬件模块 | |
| US20210306306A1 (en) | Method and system for secure communication | |
| JP5186648B2 (ja) | 安全なオンライン取引を容易にするシステム及び方法 | |
| US20140250499A1 (en) | Password based security method, systems and devices | |
| WO2012166669A2 (en) | Methods and apparatus for preventing crimeware attacks | |
| CN116471028A (zh) | 一种短信验证方法、装置和系统 | |
| WO2022042198A1 (zh) | 身份验证方法、装置、计算机设备和存储介质 | |
| US20250202869A1 (en) | Offline multi-factor authentication | |
| CN117375824A (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 |