基于区块链的短信验证方法、设备、网络及存储介质
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种基于区块链的短信验证方法、设备、网络及存储介质。
背景技术
目前在金融等领域中,基于短信验证码的身份验证方法是一种较为常用的身份验证方法。但是随着伪基站的小型化发展,目前一些伪基站已经能够实现将伪基站与伪终端合二为一,采用“两头欺骗”的方法,在网络侧和真正用户终端之间建立起联系,先冒充用户发起呼叫,当网络侧要验证用户身份时又诱骗真正用户终端反馈身份信息,从而使得网络侧被欺骗,将短信验证码发送给伪基站,使短信验证失去作用,进而给用户的信息安全和财产安全造成危害。
发明内容
本发明实施例提供一种基于区块链的短信验证方法、设备、网络及存储介质,用以提高短信验证的安全性。
本发明实施例第一方面提供一种基于区块链的短信验证方法,该方法适用于一种区块链网络,所述区块链网络中的节点包括运营商服务器、应用服务器和手机终端,所述区块链网络的账本中包括所述手机终端的手机号码与第一密文之间的对应关系,该方法包括:
所述应用服务器接收所述手机终端发送的用户身份验证请求,所述用户身份验证请求中包括明文和所述手机终端的手机号码;
所述应用服务器基于所述手机号码向所述手机终端发送短信验证码,以使所述手机终端在接收到所述短信验证码后,向所述应用服务器返回验证信息,所述验证信息包括所述短信验证码,以及所述明文的加密码;
所述应用服务器在接收到所述验证信息后,基于所述加密码对所述明文进行加密处理得到第二密文;
所述应用服务器将所述第二密文与所述电话号码对应的第一密文进行比对,若所述第一密文与所述第二密文相同,且所述验证信息中的短信验证码正确,则验证通过。
在一种可能的设计中,所述应用服务器接收所述手机终端发送的用户身份验证请求之前,所述方法还包括:
所述应用服务器接收并记录所述手机终端发送的广播信息,所述广播信息中包括所述手机终端的手机号码与第一密文之间的对应关系。
在一种可能的设计中,所述广播信息中还包括:所述第一密文对应的所述应用服务器提供的第一应用的信息。
在一种可能的设计中,所述第一密文为所述手机终端基于其自身生成的明文和加密码计算得到的。
在一种可能的设计中,所述应用服务器接收并记录所述手机终端发送的广播信息之前,所述方法还包括:
所述应用服务器为所述手机终端的手机号码分配对应的明文,以使所述手机终端在获取到所述明文后,基于其自身生成的加密码对所述明文进行加密生成第一密文,并将所述第一密文和其手机号码之间的对应关系携带在广播信息中广播到区块链网络中。
本发明实施例的第二发明提供一种应用服务器,所述应用服务器是一种区块链网络的节点,所述区块链网络中的节点还包括运营商服务器和手机终端,所述区块链网络的账本中包括所述手机终端的手机号码与第一密文之间的对应关系,其中,所述手机终端包括处理器,以及用于存储计算机指令的存储器,当处理器执行所述计算机指令时,所述处理器,用于:
接收所述手机终端发送的用户身份验证请求,所述用户身份验证请求中包括明文和所述手机终端的手机号码;
基于所述手机号码向所述手机终端发送短信验证码,以使所述手机终端在接收到所述短信验证码后,向所述应用服务器返回验证信息,所述验证信息包括所述短信验证码,以及所述明文的加密码;
在接收到所述验证信息后,基于所述加密码对所述明文进行加密处理得到第二密文;
将所述第二密文与所述电话号码对应的第一密文进行比对,若所述第一密文与所述第二密文相同,且所述验证信息中的短信验证码正确,则验证通过。
在一种可能的设计中,所述处理器在接收所述手机终端发送的用户身份验证请求之前,还用于:
接收并记录所述手机终端发送的广播信息,所述广播信息中包括所述手机终端的手机号码与第一密文之间的对应关系。
在一种可能的设计中,所述广播信息中还包括:所述第一密文对应的所述应用服务器提供的第一应用的信息。
在一种可能的设计中,所述第一密文为所述手机终端基于其自身生成的明文和加密码计算得到的。
在一种可能的设计中,所述处理器在接收并记录所述手机终端发送的广播信息之前,还用于:
为所述手机终端的手机号码分配对应的明文,以使所述手机终端在获取到所述明文后,基于其自身生成的加密码对所述明文进行加密生成第一密文,并将所述第一密文和其手机号码之间的对应关系携带在广播信息中广播到区块链网络中。
本发明实施例的第三方面提供一种区块链网络所述区块链网络中的节点包括:运营商服务器、应用服务器和手机终端,所述区块链网络的账本中包括所述手机终端的手机号码与第一密文之间的对应关系,其中,所述手机终端可执行上述第一方面所述的方法。
本发明实施例的第四方面提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本发明实施例,将运营商服务器、应用服务器和手机终端作为区块链网络的节点,并在区块链网络的账本中记录手机终端的手机号码与第一密文之间的对应关系。在执行短信验证时,应用服务器接收手机终端发送的用户身份验证请求,用户身份验证请求中包括明文和手机终端的手机号码,应用服务器在接收到用户身份验证请求后,基于手机终端的手机号码向该手机终端发送短信验证码以使手机终端在收到短信验证码后,向应用服务器返回包括短信验证码和加密码的验证信息,应用服务器基于接收到的加密码对手机终端发送的明文进行加密处理得到第二密文,若第二密文与手机号码对应的第一密文相同,且验证信息中的短信验证码正确,则确定验证通过。本发明实施例通过在短信验证过程中加入区块链技术,能够提高短信验证的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的一种通信场景的示意图;
图2是本发明实施例提供的一种区块链网络的示意图;
图3是本发明实施例提供的一种基于区块链的短信验证方法的流程图;
图4是本发明实施例提供的一种基于区块链的短信验证方法的流程图;
图5是本发明实施例提供的一种应用服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤的过程或结构的装置不必限于清楚地列出的那些结构或步骤而是可包括没有清楚地列出的或对于这些过程或装置固有的其它步骤或结构。
图1是现有技术提供的一种通信场景的示意图,在图1所示的场景中包括运营商基站11、手机终端12和伪基站13。其中伪基站13是伪基站和伪终端的结合体,其可以采用“两头欺骗”的方法,运营商基站11和手机终端12之间建立起联系,先冒充手机终端12向运营商基站11发起呼叫,当运营商基站11要验证用户身份时,伪基站13又诱骗手机终端12向其发送IMSI信息,并将该IMSI信息发送给运营商基站11从而使得运营商基站11通过对其身份的验证。从而在进行短信验证时,运营商基站11就会把短信验证码发送给伪基站13,从而导致短信验证失败。
针对现有技术存在的上述缺陷,本发明实施例提供了一种基于区块链的短信验证方法,该方法基于区块链网络可信度高的特点,在短信验证过程中结合区块链技术来提高短信验证的安全性。
具体的,图2是本发明实施例提供的一种区块链网络的示意图,如图2所示,在该区块链网络中运营商服务器21作为区块链网络的发起者节点,在创世区块中声明自己的身份,将自己的区块链标识和公钥广播出去,并被挖矿节点写入区块链账本中。运营商服务器21通过移动交换网的方式(例如发送短信息或者是拨打语音电话,然后识别其中的语音通信内容)发送每个手机号码在区块链中对应的公钥密码对给每个手机终端22,该公私钥密码对作为手机号码充当区块链网络的参与方身份在区块链网络中登记的认证标志。
当手机号码对应的手机终端22通过移动交换网的方式获得了一对公私钥后,在区块链网络中发送广播消息,该广播消息包括该手机终端22的区块链标识、手机号码、公钥,并且该广播消息需要使用该手机终端22自己的私钥签名后再次广播出去。
运营商服务器21接收到该手机终端22发送的该广播信息后,对其中的公钥和手机号码对应的关系进行验证,如果验证通过,则认为该广播信息是该手机号码对应的真实手机终端22发送的,运营商服务器21对该手机终端22进行认可,具体的方式为:运营商服务器21将认证通过的广播消息使用自己的私钥签名后广播出去,挖矿节点收到了具有该运营商服务器21私钥签名的广播消息后,将手机号码认证通过的消息记录到区块链账本中。但是如果验证未通过,则认为是黑客冒充的该手机号码所在的手机终端发送的广播消息,运营商服务器21对该手机终端22的黑客身份进行广播,具体的方式为运营商服务器21在接收到的广播消息的基础上加上警告信息,尤其是突出该手机终端22在区块链中的用户标识和IP地址等信息,并将该广播消息使用自己的私钥签名后,再次广播出去,挖矿节点收到经过运营商服务器21私钥签名的广播消息后,将该手机终端22的相关消息记录到区块链账本中,以供其他节点进行查询。
进一步的,验证通过的手机终端22自己随机产生一个明文,或者应用服务器23为手机终端22分配一个明文,在此之后,手机终端22随机生成一个加密码,通过该加密码为前述明文进行加密得到第一密文,该第一密文经过手机终端22的私钥签名后发送到区块链网络中,以使区块链网络中的其他节点在账本中记录手机终端22的手机号码与第一密文之间的对应关系。
进一步的,在执行短信验证操作时,区块链网络中的应用服务器23将接收到手机终端22发送的用户身份验证请求,该请求中包括明文和手机终端22的手机号码,基于手机终端22的手机号码向手机终端22发送短信验证码,手机终端22接收到短信验证码后,将该短信验证码以及上述明文的加密码携带在验证信息中发送给应用服务器23,应用服务器23在接收到验证信息后,基于验证信息中的加密码对上述接收到的明文进行加密处理得到第二密文,并将该第二密文与区块链网络账本中记录的前述所接收到的手机号码所对应的第一密文进行比对,若二者相同,则确定身份验证通过,否则验证失败,从而通过在短信验证过程中增加区块链技术,达到了提高短信验证安全性的目的。
下面结合示例性的实施例对本发明技术方案进行详细的描述。
图3是本发明实施例提供的一种基于区块链的短信验证方法的流程图,该方法适用于一种区块链网络,该区块链网络中的节点包括运营商服务器、应用服务器和手机终端,区块链网络的账本中包括所述手机终端的手机号码与第一密文之间的对应关系。如图3所示,在该区块链网络的基础上,该方法包括如下步骤:
步骤101、应用服务器接收所述手机终端发送的用户身份验证请求,所述用户身份验证请求中包括明文和所述手机终端的手机号码。
步骤102、所述应用服务器基于所述手机号码向所述手机终端发送短信验证码,以使所述手机终端在接收到所述短信验证码后,向所述应用服务器返回验证信息,所述验证信息包括所述短信验证码,以及所述明文的加密码。
步骤103、所述应用服务器在接收到所述验证信息后,基于所述加密码对所述明文进行加密处理得到第二密文。
步骤104、所述应用服务器将所述第二密文与所述电话号码对应的第一密文进行比对,若所述第一密文与所述第二密文相同,且所述验证信息中的短信验证码正确,则验证通过。
在本实施例中,用户身份验证请求携带的明文可以是手机终端在加入区块链网络后生成的并被手机终端记录的明文,也可以是应用服务器预先为手机终端分配的明文。
当手机终端接入上述区块链网络后,手机终端生成一个明文或者应用服务器为手机终端分配一个明文,然后手机终端生成一个加密码,通过该加密码对明文进行加密得到第一密文,并将第一密文与其手机号码之间的对应关系携带在广播信息中发送到区块链网路中,使得区块链网络中的其他节点将该对应关系记录在账本上。
另外,在另一种可能的实现方式中,手机终端可以为应用服务器提供的不同的应用生成不同的明文和加密码,得到不同的密文,在这种情况下,手机终端在生成第一密文后,还需要将第一密文对应的第一应用的信息携带在广播信息中发送到区块链网络中。
进一步的,当在执行短信验证操作时,首先接收到手机终端发送的用户身份验证请求,并基于用户身份验证请求中携带的手机号码向对应的手机终端发送短信验证码,手机终端在接收到短信验证码后,将该短信验证码以及明文的加密码携带在验证信息中发送给应用服务器,应用服务器在接收到验证信息后,基于验证信息中的加密码对上述接收到的明文进行加密处理得到第二密文,并将该第二密文与区块链网络账本中记录的前述所接收到的手机号码所对应的第一密文进行比对,若二者相同,则确定身份验证通过,否则验证失败。
本实施例,将运营商服务器、应用服务器和手机终端作为区块链网络的节点,并在区块链网络的账本中记录手机终端的手机号码与第一密文之间的对应关系。在执行短信验证时,应用服务器接收手机终端发送的用户身份验证请求,用户身份验证请求中包括明文和手机终端的手机号码,应用服务器在接收到用户身份验证请求后,基于手机终端的手机号码向该手机终端发送短信验证码以使手机终端在收到短信验证码后,向应用服务器返回包括短信验证码和加密码的验证信息,应用服务器基于接收到的加密码对手机终端发送的明文进行加密处理得到第二密文,若第二密文与手机号码对应的第一密文相同,且验证信息中的短信验证码正确,则确定验证通过。本实施例通过在短信验证过程中加入区块链技术,能够提高短信验证的安全性。
图4是本发明实施例提供的一种基于区块链的短信验证方法的流程图,如图4所示,在图3实施例的基础上,该方法包括如下步骤:
步骤201、应用服务器为手机终端的手机号码分配对应的明文,以使所述手机终端在获取到所述明文后,基于其自身生成的加密码对所述明文进行加密生成第一密文,并将所述第一密文和其手机号码之间的对应关系携带在广播信息中广播到区块链网络中。
步骤202、所述应用服务器接收并记录所述手机终端发送的广播信息,所述广播信息中包括所述手机终端的手机号码与第一密文之间的对应关系。
步骤203、所述应用服务器接收所述手机终端发送的用户身份验证请求,所述用户身份验证请求中包括明文和所述手机终端的手机号码。
步骤204、所述应用服务器基于所述手机号码向所述手机终端发送短信验证码,以使所述手机终端在接收到所述短信验证码后,向所述应用服务器返回验证信息,所述验证信息包括所述短信验证码,以及所述明文的加密码。
步骤205、所述应用服务器在接收到所述验证信息后,基于所述加密码对所述明文进行加密处理得到第二密文.
步骤206、所述应用服务器将所述第二密文与所述电话号码对应的第一密文进行比对,若所述第一密文与所述第二密文相同,且所述验证信息中的短信验证码正确,则验证通过。
本实施例的执行方式和有益效果与上述实施例类似,在这里不再赘述。
图5是本发明实施例提供的一种应用服务器的结构示意图,如图5所示,该应用服务器是一种区块链网络中的节点,所述区块链网络中的节点还包括运营商服务器和手机终端,所述区块链网络的账本中包括所述手机终端的手机号码与第一密文之间的对应关系,其中,所述手机终端包括处理器51,以及用于存储计算机指令的存储器52,当处理器执行所述计算机指令时,所述处理器51,用于:
接收所述手机终端发送的用户身份验证请求,所述用户身份验证请求中包括明文和所述手机终端的手机号码;
基于所述手机号码向所述手机终端发送短信验证码,以使所述手机终端在接收到所述短信验证码后,向所述应用服务器返回验证信息,所述验证信息包括所述短信验证码,以及所述明文的加密码;
在接收到所述验证信息后,基于所述加密码对所述明文进行加密处理得到第二密文;
将所述第二密文与所述电话号码对应的第一密文进行比对,若所述第一密文与所述第二密文相同,且所述验证信息中的短信验证码正确,则验证通过。
可选的,所述处理器51在接收所述手机终端发送的用户身份验证请求之前,还用于:
接收并记录所述手机终端发送的广播信息,所述广播信息中包括所述手机终端的手机号码与第一密文之间的对应关系。
可选的,所述广播信息中还包括:所述第一密文对应的所述应用服务器提供的第一应用的信息。
可选的,所述第一密文为所述手机终端基于其自身生成的明文和加密码计算得到的。
可选的,所述处理器51在接收并记录所述手机终端发送的广播信息之前,还用于:
为所述手机终端的手机号码分配对应的明文,以使所述手机终端在获取到所述明文后,基于其自身生成的加密码对所述明文进行加密生成第一密文,并将所述第一密文和其手机号码之间的对应关系携带在广播信息中广播到区块链网络中。
本实施例提供的应用服务器能够用于执行上述实施例中的方法,其执行方式和有益效果类似,在这里不再赘述。
本发明实施例还提供一种区块链网络,所述区块链网络中的节点包括:运营商服务器、应用服务器和手机终端,所述区块链网络的账本中包括所述手机终端的手机号码与第一密文之间的对应关系,其中,所述手机终端可执行上述任一实施例的技术方案。
本发明实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一实施例的技术方案。
最后需要说明的是,本领域普通技术人员可以理解上述实施例方法中的全部或者部分流程,是可以通过计算机程序来指令相关的硬件完成,所述的程序可存储于一计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可以为磁盘、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。
本发明实施例中的各个功能单元可以集成在一个处理模块中,也可以是各个单元单独的物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现,并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。上述提到的存储介质可以是只读存储器、磁盘或光盘等。
以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。