CN111756678B - 信息验证方法、装置及设备 - Google Patents

信息验证方法、装置及设备 Download PDF

Info

Publication number
CN111756678B
CN111756678B CN201910251489.2A CN201910251489A CN111756678B CN 111756678 B CN111756678 B CN 111756678B CN 201910251489 A CN201910251489 A CN 201910251489A CN 111756678 B CN111756678 B CN 111756678B
Authority
CN
China
Prior art keywords
information
version
verification
verification information
target
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
CN201910251489.2A
Other languages
English (en)
Other versions
CN111756678A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910251489.2A priority Critical patent/CN111756678B/zh
Priority to EP20785173.4A priority patent/EP3923538A4/en
Priority to PCT/CN2020/080894 priority patent/WO2020199982A1/zh
Publication of CN111756678A publication Critical patent/CN111756678A/zh
Priority to US17/479,931 priority patent/US20220006817A1/en
Application granted granted Critical
Publication of CN111756678B publication Critical patent/CN111756678B/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/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • H04L61/302Administrative registration, e.g. for domain names at internet corporation for assigned names and numbers [ICANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供一种信息验证方法、装置及设备,该方法包括:向服务器发送第一消息,第一消息包括目标域名以及第一指示信息,第一指示信息用于指示客户端中保存的第一验证信息的状态;第一验证信息是根据多个域名以及多个域名的所有者信息生成的验证信息,第一验证信息用于对多个域名的所有者信息进行验证,多个域名包括目标域名;接收服务器根据第一消息发送的第二消息,第二消息用于指示目标第一验证信息,目标第一验证信息用于客户端对目标域名的所有者信息进行验证;根据第二消息,对获得的目标域名的所有者信息进行验证。本申请实现了客户端对服务器的验证。

Description

信息验证方法、装置及设备
技术领域
本申请涉及互联网技术领域,尤其涉及一种信息验证方法、装置及设备。
背景技术
域名系统(Domain Name System,DNS)是互联网(Internet)的重要基础设施之一,具体的,客户端可以通过与服务器的交互,获得其需要访问的目标域名的互联网协议(Internet Protocol,IP)地址。
现有技术中,客户端可以向服务器发送DNS请求消息,该DNS请求消息用于请求目标域名的IP地址。该服务器在接收到该DNS请求消息后,可以从其他服务器获取该目标域名的IP地址,并将获取到的该目标域名的IP地址返回给该客户端。该客户端在接收到该IP地址之后,可以将该IP地址作为该目标域名的IP地址,以访问该目标域名。
但是,现有技术中,客户端需要无条件信任服务器,存在客户端无法对服务器进行验证的问题。
发明内容
本申请提供一种信息验证方法、装置及设备,用以解决现有技术中客户端需要无条件信任服务器,所存在客户端无法对服务器进行验证的问题。
第一方面,本申请实施例提供一种信息验证方法,包括:
接收客户端发送的第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示所述客户端中保存的第一验证信息的状态;所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
根据所述第一消息,向所述客户端发送第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证。
上述方案中,通过服务器接收客户端发送的包括目标域名以及第一指示信息的第一消息,并根据第一消息向客户端发送用于指示目标第一验证信息的第二消息,使得客户端可以获得用于对目标域名的所有者信息进行验证的目标第一验证信息,从而实现了客户端对于服务器的验证。
在一种可能的实现中,所述第一验证信息由所述客户端根据第二验证信息进行验证。
上述方案中,通过所述第一验证信息由所述客户端根据第二验证信息进行验证,可以提高验证的严密性。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述根据所述第一消息,向所述客户端发送第二消息,包括:
根据所述第一消息,判断所述目标域名的第一所有者信息与所述目标域名的第二所有者信息是否相同,所述第一所有者信息为用于生成第二版本的所述第一验证信息的所述目标域名的所有者信息,所述第二所有者信息为用于生成所述第一版本的所述第一验证信息的所述目标域名的所有者信息,所述第二版本为最新的所述第一验证信息的版本;
若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息不相同,则向所述客户端发送所述第二消息,所述第二消息包括:所述第二版本的所述第一验证信息,以及目标第二验证信息;所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本的所述第一验证信息为所述目标第一验证信息;
若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息相同,则向所述客户端发送所述第二消息,所述目标第一验证信息为所述客户端保存的所述第一验证信息。
上述方案中,通过在用于生成最新的第一验证信息(即第二版本的第一验证信息)的目标域名的所有者信息与用于生成客户端所保存的第一验证信息(即第一版本的第一验证信息)的目标域名的所有者信息相同时,客户端可以使用其所保存的第一验证信息对目标域名的所有者信息进行验证,避免了由于用于生成第一验证信息的非目标域名的所有者信息的变化,客户端需要重新从服务器获取最新的第一验证信息而导致客户端对于目标域名的访问速度较慢的问题。
在一种可能的实现中,所述目标第一验证信息为所述客户端保存的所述第一验证信息,所述第二消息还用于指示所述第二版本的版本号;
所述方法还包括:
接收所述客户端根据所述第二版本的版本号发送的第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
根据所述第三消息向所述客户端发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本。
上述方案中,通过接收客户端根据所述第二版本的版本号发送的用于指示请求最新的所述第一验证信息的版本的第三消息,并根据所述第三消息向所述客户端发送包括最新的所述第一验证信息的版本的第四消息,使得客户端可以获得最新版本的第一验证信息。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息;所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息。
在一种可能的实现中,所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述第二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
上述方案中,通过所述第一消息还包括用于指示所述客户端请求所述第二验证信息中的部分信息的第二指示信息,可以减小所述服务器与所述客户端之间的信息交互量。
在一种可能的实现中,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
上述方案中,通过所述第二版本为最新生成的所述第一验证信息的版本,使得所述客户端可以获得最新生成的第一验证信息。通过所述第二版本为本地最新快照保存的所述第一验证信息的版本,使得所述服务器可以实现对于所述第一验证信息的快照保存,避免了所述服务器保存全部的第一验证信息对资源消耗过大的问题。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。
上述方案中,通过第一验证信息由区块链节点生成,使得区块链节点可以对验证信息进行维护,从而提高了验证信息维护的灵活性。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
上述方案中,通过所述第二验证信息是所述区块链中的信息,使得基于区块链的SPV技术可以确保第二验证信息的正确性。可以理解的是,在不考虑基于区块链的技术确保第二验证信息的正确性的基础上,可替换的,所述第二验证信息也可以不为所述区块链中的信息。
第二方面,本申请实施例提供一种信息验证方法,包括:
向服务器发送第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示客户端中保存的第一验证信息的状态;所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
接收所述服务器根据所述第一消息发送的第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证;
根据所述第二消息,对获得的所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一验证信息由所述客户端根据第二验证信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第二消息包括:所述第二版本的所述第一验证信息,以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述根据所述第二消息,对所述目标域名的所有者信息进行验证,包括:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第一目标验证信息为所述客户端保存的所述第一验证信息;
所述根据所述第二消息,对所述目标域名的所有者信息进行验证,包括:
根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第二消息还用于指示所述第二版本的版本号;
所述方法还包括:根据所述第二版本的版本号,向所述服务器发送第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
接收所述服务器根据所述第三消息发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本,并对所述最新的所述第一验证信息的版本进行存储。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述根据所述第二消息,对所述目标域名的所有者信息进行验证,包括:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述向服务器发送第一消息之前还包括:
根据已保存的验证信息,确定向所述服务器请求所述第一验证信息中的部分信息;
所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
在一种可能的实现中,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
第三方面,本申请实施例提供一种信息验证装置,包括:
接收单元,用于接收客户端发送的第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示所述客户端中保存的第一验证信息的状态;所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
发送单元,用于根据所述第一消息,向所述客户端发送第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一验证信息由所述客户端根据第二验证信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述发送单元具体用于:
根据所述第一消息,判断所述目标域名的第一所有者信息与所述目标域名的第二所有者信息是否相同,所述第一所有者信息为用于生成第二版本的所述第一验证信息的所述目标域名的所有者信息,所述第二所有者信息为用于生成所述第一版本的所述第一验证信息的所述目标域名的所有者信息,所述第二版本为最新的所述第一验证信息的版本;
若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息不相同,则向所述客户端发送所述第二消息,所述第二消息包括:所述第二版本的所述第一验证信息,以及目标第二验证信息;所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本的所述第一验证信息为所述目标第一验证信息;
若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息相同,则向所述客户端发送所述第二消息,所述目标第一验证信息为所述客户端保存的所述第一验证信息。
在一种可能的实现中,所述目标第一验证信息为所述客户端保存的所述第一验证信息,所述第二消息还用于指示所述第二版本的版本号;
所述接收单元,还用于接收所述客户端根据所述第二版本的版本号发送的第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
所述发送单元,还用于根据所述第三消息向所述客户端发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息;所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息。
在一种可能的实现中,所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述第二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
在一种可能的实现中,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
第四方面,本申请实施例提供一种信息验证装置,包括:
发送单元,用于向服务器发送第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示客户端中保存的第一验证信息的状态;所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
接收单元,用于接收所述服务器根据所述第一消息发送的第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证;
验证单元,用于根据所述第二消息,对获得的所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一验证信息由所述客户端根据第二验证信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第二消息包括:所述第二版本的所述第一验证信息,以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述验证单元具体用于:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第一目标验证信息为所述客户端保存的所述第一验证信息;
所述验证单元具体用于:
根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第二消息还用于指示所述第二版本的版本号;
所述发送单元,还用于根据所述第二版本的版本号,向所述服务器发送第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
所述接收单元,还用于接收所述服务器根据所述第三消息发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本,并对所述最新的所述第一验证信息的版本进行存储。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述验证单元具体用于:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述装置还包括:确定单元,用于根据已保存的验证信息,确定向所述服务器请求所述第一验证信息中的部分信息;
所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
在一种可能的实现中,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
第五方面,本申请实施例提供一种信息验证设备,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行权上述第一方面中任一项所述的方法。
第六方面,本申请实施例提供一种信息验证设备,包括:处理器、存储器和通信接口;
所述处理器控制所述通信接口的收发动作;
所述存储器存储程序;
所述处理器调用所述存储器存储的程序,以执行上述第二方面中任一项所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第八方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明实施例提供的信息验证方法、装置及设备,通过客户端向服务器发送第一消息,第一消息包括目标域名以及第一指示信息,服务器根据第一消息向客户端发送第二消息,第二消息用于指示目标第一验证信息,客户端根据第二消息,对获得的目标域名的所有者信息进行验证,实现了客户端对目标域名的所有者信息的验证,从而实现了客户端对服务器的验证,避免了由于客户端无条件信任服务器所带来的问题。
附图说明
图1为本申请实施例的应用场景示意图;
图2为相关技术中DNS系统的原理示意图;
图3为相关技术中ENS系统的原理示意图;
图4为相关技术中BNS系统的原理示意图;
图5为本申请一实施例提供的信息验证方法的流程示意图;
图6为本申请实施例应用的系统架构的示意图;
图7为本申请实施例提供的生成布隆过滤器的示意图;
图8为本申请实施例提供的布隆过滤器与存储树的关系示意图;
图9为本申请实施例提供的存储数与SPV方式的关系示意图;
图10为本申请实施例提供的报文格式的示意图;
图11为本申请实施例提供的客户端在场景1下获得验证信息的示意图;
图12为本申请实施例提供的客户端在场景2下获得验证信息的示意图;
图13为本申请实施例提供的客户端在场景3下获得验证信息的示意图;
图14为本申请一实施例提供的信息验证装置的结构示意图;
图15为本申请另一实施例提供的信息验证装置的结构示意图;
图16为本申请实施例提供的信息验证设备的硬件结构示意图。
具体实施方式
图1为本申请实施例的应用场景示意图,如图1所示,该应用场景可以包括:客户端(client)11和服务器(server)12,客户端11与服务器12之间通过互联网通信连接。其中,客户端11可以向服务器12发送对于目标域名的DNS请求(query)消息,客户端11还可以根据服务器12的指示对目标域名的所有者信息进行验证。需要说明的是,本申请实施例中,客户端11可以理解为实体设备,该实体设备上可以设置有能够触发实体设备向服务器12发送DNS请求消息的应用程序(application,App)(例如,浏览器);或者,客户端11可以理解为应用程序,例如浏览器。其中,服务器12可以理解为本地服务器。
以DNS系统如图2所示且目标域名为www.example.com为例,相关技术中的具体处理过程如下:客户端11可以将其对目标域名www.example.com的DNS请求消息发送至本地DNS服务器(localDNS server)。本地DNS服务器可以将该DNS请求消息发送至根服务器,根服务器根据该DNS请求消息可以向本地DNS服务器返回负责.com域名的顶级域名服务器的地址。进一步的,本地DNS服务器可以根据.com域名的顶级域名服务器的地址,将DNS请求消息发送至.com域名的顶级域名服务器。该顶级域名服务器在接收到该DNS请求消息后,可以向本地DNS服务器返回负责example.com域名的权威服务器(authoritative server)的地址。之后,本地DNS服务器可以根据该权威服务器的地址,将该DNS请求消息发送至该权威服务器。该权威服务器可以向本地DNS服务器返回www.example.com的IP地址。最后,本地DNS服务器可以将权威服务器返回的www.example.com的IP地址发送给客户端11。
可以看出,对于客户端11来说,其无条件信任本地DNS服务器、根服务器、顶级域名服务器和权威服务器,而没有办法对服务器进行验证,更无法确定其收到的IP地址的真实性。一旦任何一台服务器返回假信息,那么客户端11最终都将无法访问到目标域名的真实IP地址。
另外,对于为了解决DNS中心化的问题,所提出的基于区块链进行域名的分配和管理的域名系统,例如区块堆栈命名系统(Blockstack Naming System,BNS),同样存在客户端需要无条件信任服务器的问题。
其中,ENS系统的基本原理可以如图3所示。具体的,登记合约账户(Registry)是一个智能合约账户,负责所有的域名注册和交易,并且将域名的相关信息存储在该合约中,存储的数据为<名称(name),所有者(owner),解析合约账户(resolver)>,其中name为域名,owner为该域名的所有者的账户,解析合约账户为该域名对应的DNS信息的存储位置(其他智能合约账户)。当客户端需要发起DNS请求消息时,会通过ENS相关的应用程序接口(Application Programming Interface,API)向登记合约账户发送对目标域名的DNS请求消息,登记合约账户根据DNS请求消息将该DNS目标域名对应解析合约账户的地址返回给客户端,客户端再根据获得的解析合约账户的地址向解析合约账户发起对目标域名的DNS请求消息,解析合约账户根据DNS请求消息将目标域名的IP地址返回给服务器。需要说明的是,图3中以登记合约账户和解析合约账户是同一个节点为例,节点在图3中可以作为服务器。
其中,BNS系统的基本原理可以如图4所示。具体的,所有的域名交易都会在网络上完成,最终域名的归属信息所有权(ownership)和区域文件(zonefile)信息会被写在交易中,信息内容为<name, owner,哈希(hash)>,其中name为域名,owner为该域名的所有者,hash为该域名对应的zonefile的hash。客户端向本地BNS服务器发起访问目标域名的请求,本地BNS服务器会从区块链上同步<name, owner, hash>信息,并且从对等网络上下载zonefile,最终通过zonefile向服务器提供目标域名的IP地址。
可以看出,目前基于区块链进行域名的分配和管理的域名系统中,客户端还是无条件信任服务器。例如对于图3,客户端无条件的信任节点,对于图4,客户端无条件的信任本地BNS服务器。
本申请实施例中,通过客户端11根据服务器12的指示对目标域名的所有者信息进行验证的验证结果,从而能够实现对于服务器的验证,避免了客户端无法对服务器进行验证的问题。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图5为本申请一实施例提供的信息验证方法的流程示意图。本实施例可以由终端设备执行,如图5所示,本实施例的方法可以包括:
步骤501,客户端向服务器发送第一消息,所述第一消息包括目标域名以及第一指示信息。
本步骤中,所述第一指示信息用于指示所述客户端中保存的第一验证信息的状态。具体的,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,或者,所述第一指示信息具体用于指示所述客户端中未保存有所述第一验证信息。可选的,考虑到所述第一验证信息可以更新时,在所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息时,所述第一指示信息还可以用于指示所述客户端所保存的第一验证信息的版本(以下,可以将客户端所保存的第一验证信息的版本记为第一版本)。
可选的,所述客户端中保存的所述第一验证信息可以是:步骤501之前,由所述服务器或者所述服务器之外的其他设备发送至所述客户端。
可选的,对于客户端接收到的第一验证信息,客户端可以认为是正确的。或者,可选的,为了提高验证的严密性,可以通过第二验证信息对第一验证信息进行验证,即所述第一验证信息由所述客户端根据第二验证信息进行验证。即,在客户端根据第二验证信息对第一验证信息进行验证,并验证通过之后,进一步的可以使用第一验证信息对域名进行验证。
其中,所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名。所述第一验证信息既可以用于对所述目标域名的所有者信息进行验证,又可以用于对所述目标域名之外的一个或多个域名的所有者信息进行验证。
需要说明的是,所述目标域名的所有者信息具体可以为任意能够唯一标识所述目标域名的所有者的信息。可选的,所述所有者信息可以包括所有者(owner)公钥(PublicKey,PK)。
需要说明的是,对于所述客户端向所述服务器发送第一消息的具体方式,本申请可以不作限定,例如客户端可以通过互联网向服务器发送第一消息,或者,客户端可以通过无线保真(Wireless Fidelity,WIFI)网络以及互联网向服务器发送第一消息。
步骤502,所述服务器接收客户端发送的所述第一消息。
步骤503,所述服务器根据所述第一消息,向所述客户端发送第二消息,所述第二消息用于指示目标第一验证信息。
本步骤中,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证。需要说明的是,所述目标第一验证信息可以为所有版本的第一验证信息中一个版本的第一验证信息,可以理解的是,除所述第一目标验证信息之外的其他版本的第一验证信息均无法用于所述客户端对所述目标域名的所有者信息进行验证,或者,除所述第一目标验证信息之外的其他版本第一验证信息中的至少一个版本的第一验证信息也可以用于所述客户端对所述目标域名的所有者信息进行验证。
基于所述第一指示信息所指示的所述客户端中保存的第一验证信息的不同状态,所述服务器根据所述第一消息,向所述客户端发送第二消息的具体方式可以包括如下三种情况:
情况1,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息。
所述服务器根据所述第一消息向所述客户端发送的第二消息中包括:第二版本的所述第一验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息。
可选的,本申请实施例中所述第二版本可以为最新生成的所述第一验证信息的版本。通过所述第二版本为最新生成的所述第一验证信息的版本,使得所述客户端可以获得最新生成的第一验证信息。或者,所述第二版本可以为本地最新快照保存的所述第一验证信息的版本。通过所述第二版本为本地最新快照保存的所述第一验证信息的版本,使得所述服务器可以实现对于所述第一验证信息的快照保存,避免了所述服务器保存全部的第一验证信息对资源消耗过大的问题。
可选的,在所述第一验证信息是由所述客户端根据第二验证信息进行验证时,所述第二消息中还包括:目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息。
情况2,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所述第一指示信息中未指示所述客户端中所保存的所述第一验证信息的版本。
所述服务器根据所述第一消息向所述客户端发送的第二消息所指示的所述目标第一验证信息为所述客户端保存的所述第一验证信息。可以理解的是,这里未考虑所述第一验证信息可以更新的场景,从而可以减小客户端与服务器的信息交互。
情况3,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本。
步骤503具体可以包括如下步骤A至步骤C。
步骤A,所述服务器根据所述第一消息,判断所述目标域名的第一所有者信息与所述目标域名的第二所有者信息是否相同。
其中,所述第一所有者信息为用于生成第二版本的所述第一验证信息的所述目标域名的所有者信息,所述第二所有者信息为用于生成所述第一版本的所述第一验证信息的所述目标域名的所有者信息,所述第二版本为最新的所述第一验证信息的版本。
所述第一验证信息可以存在如下特点:对于第一验证信息x和第一验证信息y,假设用于生成第一验证信息x的域名包括域名a的所有者信息a1,域名b的所有者信息b1以及域名c的所有者信息c1,则使用第一验证信息x对域名a的所有者信息a1的验证结果为正确,使用第一验证信息x对域名b的所有者信息b1的验证结果为正确,使用第一验证信息x对域名c的所有者信息c1的验证结果为正确。进一步的,假设域名a的所有者信息由a1变化为a2,则使用第一验证信息x对域名a的所有者信息a2的验证结果为不正确。进一步的,假设用于生成第一验证信息y的域名包括域名a的所有者信息a2,域名b的所有者信息b1以及域名c的所有者信息c1,则使用第一验证信息y对域名a的所有者信息a2的验证结果为正确,使用第一验证信息y对域名b的所有者信息b1的验证结果为正确,使用第一验证信息y对域名c的所有者信息c1的验证结果为正确。
即,若用于生成最新的第一验证信息(即第二版本的第一验证信息)的目标域名的所有者信息与用于生成客户端所保存的第一验证信息(即第一版本的第一验证信息)的目标域名的所有者信息相同,则客户端所保存的第一验证信息可以用于对目标域名当前的所有者信息进行验证;若用于生成最新的第一验证信息的目标域名的所有者信息与用于生成客户端所保存的第一验证信息的目标域名的所有者信息不相同,则客户端所保存的第一验证信息不可以用于对目标域名当前的所有者信息进行验证。
因此,可以基于用于生成第二版本的所述第一验证信息的所述目标域名的所有者信息,与用于生成第一版本的所述第一验证信息的所述目标域名的所有者信息是否相同,确定客户端是使用第一版本的第一验证信息对目标域名的所有者信息进行验证(即,如下步骤C),还是使用第二版本的第一验证信息对目标域名的所有者信息进行验证(即,如下步骤B)。
需要说明的是,对于实现第一验证信息的具体方式,本申请可以不作限定。可选的,可以通过布隆过滤器实现第一验证信息。
步骤B,若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息不相同,则所述服务器向所述客户端发送所述第二消息,所述第二消息包括:所述第二版本的所述第一验证信息,所述第二版本的所述第一验证信息为所述目标第一验证信息。
可选的,在所述第一验证信息由所述客户端根据第二验证信息进行验证时,所述第二消息中还包括:目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息。
步骤C,若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息相同,则所述服务器向所述客户端发送所述第二消息,所述目标第一验证信息为所述客户端保存的所述第一验证信息。
通过上述步骤A至步骤C,使得在用于生成最新的第一验证信息(即第二版本的第一验证信息)的目标域名的所有者信息与用于生成客户端所保存的第一验证信息(即第一版本的第一验证信息)的目标域名的所有者信息相同时,客户端可以使用其所保存的第一验证信息对目标域名的所有者信息进行验证,避免了由于用于生成第一验证信息的非目标域名的所有者信息的变化,客户端需要重新从服务器获取最新的第一验证信息而导致客户端对于目标域名的访问速度较慢的问题。
在上述步骤C中,可选的,所述第二消息还用于指示所述第二版本的版本号,使得所述客户端可以根据所述第二消息获知最新的所述第一验证信息的版本,并进一步的根据所述第二消息确定向所述服务器请求最新的所述第一验证信息,从而提高了所述客户端获取所述第一验证信息的灵活性。
相应的,本实施例的方法还可以包括如下步骤C1至步骤C4。
步骤C1,所述客户端根据所述第二版本的版本号,向所述服务器发送第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本。
可选的,所述客户端可以根据所述第二版本的版本号,在满足一定条件时,向所述服务器发送第三消息。例如,所述客户端可以根据所述第二版本的版本号,在所述客户端的中央处理器(Central Processing Unit,CPU)占用率小于或等于一定门限时,向所述服务器发送第三消息。又例如,所述客户端可以根据所述第二版本的版本号,在所述客户端空闲时,向所述服务器发送第三消息。
步骤C2,所述服务器接收所述客户端第三消息。
步骤C3,所述服务器根据所述第三消息向所述客户端发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本。
步骤C4,所述客户端接收所述第四消息,并对所述第四消息中包括的所述最新的所述第一验证信息的版本进行存储。
可选的,为了减小所述服务器与所述客户端之间的信息交互量,所述客户端向所述服务器发送所述第一消息之前,还可以包括:所述客户端根据已保存的验证信息,确定向所述服务器请求所述第一验证信息中的部分信息。相应的,所述第一消息中还可以包括第二指示信息,所述第二指示信息用于指示所述客户端请求所述第二验证信息中的部分信息。所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。例如,第二验证信息中可以包括m1部分、m2部分、m3部分和m4部分,共4部分的信息,第二指示信息可以用于指示客户端请求第二验证信息中的m1和m2两个部分的信息(即,部分信息),相应的,第二消息中包括的目标第二验证信息具体可以为目标第二验证信息中的m1和m2两个部分的信息。
示例性的,所述客户端可以根据已保存的验证信息,确定已获得所述第二版本的所述第一验证信息中除所述部分信息之外的其他信息。或者,示例性的,所述客户端可以根据已保存的所述第一版本的所述第一验证信息,确定所述第一版本的所述第一验证信息中的所述部分信息与所述第二版本的所述第一验证信息中的所述部分信息相同。
步骤504,所述客户端接收所述第二消息。
步骤505,所述客户端根据所述第二消息,对获得的所述目标域名的所有者信息进行验证。
本步骤中,所述客户端可以从所述服务器获得所述目标域名的所有者信息。
与步骤503对应,对于情况1,步骤505具体可以包括:根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。可选的,在所述第二消息中还包括所述目标第二验证信息时,所述根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证之前,还包括:根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证。
对于情况2,步骤505具体可以包括:根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
对于情况3,若所述第二消息中包括所述第二版本的所述第一验证信息,则步骤505具体可以包括:根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。可选的,若所述第二消息中还包括所述目标第二验证信息,则步骤505具体可以包括:根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
对于情况3,若所述目标第一验证信息为所述客户端保存的所述第一验证信息,则步骤505具体可以包括:根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
可选的,所述客户端可以根据所述客户端对所述目标域名的所有者信息的验证结果,确定从服务器获取到的所述目标域名的IP地址的真实性。所述客户端对所述目标域名的所有者信息的验证结果具体可以为验证通过或验证不通过。
可选的,在所述客户端对所述目标域名的所有者信息的验证结果为验证不通过时,所述客户端可以确定从服务器获得的IP地址为目标域名的非真实IP地址。
可选的,在所述客户端对所述目标域名的所有者信息的验证结果为验证通过时,所述客户端可以根据所述目标域名的所有者信息对从服务器获得的IP地址进行验证。
示例性的,所述客户端可以根据所述目标域名的所有者信息对目标域名的IP地址进行签名验证。在对目标域名的IP地址进行签名验证的验证结果为正确时,所述客户端可以确定IP地址为目标域名的真实IP地址。在对目标域名的IP地址进行签名验证的验证结果为不正确时,所述客户端可以确定IP地址为目标域名的非真实IP地址。
示例性的,所述客户端可以根据所述目标域名的所有者信息对目标域名的所有者签名的其他PK例如,DNS秘钥(DNSKEY))进行签名验证。在对目标域名的所有者签名的其他PK进行签名验证的验证结果为不正确时,所述客户端可以确定IP地址为目标域名的非真实IP地址。在对目标域名的所有者签名的其他PK进行签名验证的验证结果为正确时,所述客户端可以根据所有者签名的其他PK对目标域名的IP地址进行签名验证。在对目标域名的IP地址进行签名验证的验证结果为正确时,所述客户端可以确定IP地址为目标域名的真实IP地址。在对目标域名的IP地址进行签名验证的验证结果为不正确时,所述客户端可以确定IP地址为目标域名的非真实IP地址。
需要说明的是,对于根据第二验证信息对第一验证信息进行验证,以及根据第一验证信息对目标域名的所有者信息进行验证的具体方式,本申请可以不作限定。
本实施例中,通过客户端向服务器发送第一消息,第一消息包括目标域名以及第一指示信息,服务器根据第一消息向客户端发送第二消息,第二消息用于指示目标第一验证信息,客户端根据第二消息,对获得的目标域名的所有者信息进行验证,实现了客户端对目标域名的所有者信息的验证,从而实现了客户端对服务器的验证,避免了由于客户端无条件信任服务器所带来的问题。
以基于区块链进行域名的分配和管理的域名系统,且第一验证信息由第二验证信息进行验证为例,本申请实施例应用的系统架构可以如图6所示。如图6所示,该系统架构可以包括客户端11、服务器12、基于区块链的域名管理系统13和权威服务器14。
以客户端11为实体设备为例,示例性的,客户端11可以包括浏览器、验证模块(module)和简单支付验证(Simplified Payment Verification,SPV)模块。其中,验证模块可以根据第一验证信息对所有权信息进行验证,并根据第二验证信息对第一验证信息进行验证。SPV模块可以用于基于SPV技术对第二验证信息进行验证。需要说明的是,关于基于SPV技术对第二验证信息进行验证的具体方式,可以参照相关技术中SPV技术的相关内容,在此不再赘述。
示例性的,服务器12可以包括:遗产(legacy)模块、区块链(block chain,BC)模块、快照(snapshot)模块和本地数据库(local DataBase)。其中,遗产模块可以用于提供图2中本地DNS服务器的功能。区块链模块可以提供区块链功能,用于服务器从基于区块链的域名管理系统13中同步域名以及域名的所有者信息,并存入本地数据库中。快照模块可以用于存储基于区块链的域名管理系统的所有验证信息在某些历史时刻的快照,并根据客户端的请求获取相应快照下的验证信息。示例性的,所有验证信息可以包括第一验证信息、域名的所有者信息、存储树(storage trie)、合约账户信息以及状态树(state trie)等。
基于区块链的域名管理系统13:可以基于区块链实现域名相关的申请、买卖等功能,并且存储域名的所有者信息,示例性的,其对外提供的信息可以为<name, owner PK,权威服务器的IP地址>,其中name为域名,owner PK为该域名的所有者提供的公钥。如域名的所有者信息可以被存储在智能合约中。需要说明的是,对于域名的所有者信息存储的具体方式,本申请可以不作限定。
权威服务器14:其可以保存<name, IP>的映射关系以及其他除name和IP之外的资源记录(Resource Record,RR)。其中,name为域名,IP该域名的IP地址。域名的所有者可以将其所拥有的域名的RR放在自行部署的权威服务器上,也可以将RR放置在某个提供权威服务器功能的第三方服务器上。可选的,为了实现对于权威服务器14中保存的信息的可验证性,域名的RR可以使用owner PK或者该owner PK签名的其他PK所对应的私钥(Secret Key,SK)进行签名。
基于图6,可选的,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。通过第一验证信息由区块链节点生成,使得区块链节点可以对验证信息进行维护,从而提高了验证信息维护的灵活性。其中,区块链节点可以是指区块链网络中的计算机,例如可以包括手机、矿机、台式机和服务器等。
需要说明的是,本申请实施例中所述区块链节点可以为所述服务器,或者可以为所述服务器之外的其他实体,本申请对此可以不作限定。
进一步可选的,所述第二验证信息可以是所述区块链中的信息。通过所述第二验证信息是所述区块链中的信息,使得基于区块链的SPV技术可以确保第二验证信息的正确性。可以理解的是,在不考虑基于区块链的技术确保第二验证信息的正确性的基础上,可替换的,所述第二验证信息也可以不为所述区块链中的信息。
示例性的,第一验证信息的生成方式可以如下:
首先,可以确定布隆过滤器(bloom filter)的个数和大小。可选的,以智能合约为例,合约的部署者可以在代码中写入布隆过滤器的个数和大小;或者,也可以通过增强EVM,使得部署者可以在部署的时候通过传递参数的方式传入布隆过滤器的个数和大小。
然后,可以对所有的布隆过滤器进行编号。例如,如图7所示,布隆过滤器的个数可以为3,编号分别为BF1、BF2和BF3。
之后,如图7所示,可以以布隆过滤器的编号区间为输出区间,对域名进行哈希运算,将一个域名唯一的映射到一个布隆过滤器。
最后,如图7所示,可以将域名以及该域名的所有者信息作为键值对作为该域名所映射的布隆过滤器(以编号为BF2的布隆过滤器为例)的输入,相应的该域名所映射的布隆过滤器被修改。需要说明的是,在基于布隆过滤器实现时,为了使能删除操作,可以使用计数(counting)-BF,即为BF的每一个bit可以在额外开辟存储空间用于计数。
修改后的布隆过滤器可以作为第一验证信息。
之后,示例性的,如图8所示,可以将该域名的修改后的布隆过滤器以及其编号一起作为全局变量,参与到该域名对应的智能合约账户的存储树的生成中。需要说明的是,图8中编号在前,布隆过滤器在后仅为举例。示例性的,所述第二验证信息可以包括:所述第二验证信息对应版本所在区块的区块头信息、所述目标域名的所有者信息、所述第二验证信息对应版本的存储树默克尔路径(merkle path)、所述第二验证信息对应版本的状态树默克尔路径和所述目标智能合约账户用于生成状态树的所有参数中除存储树的根节点的值之外的其他参数。
其中,存储树(storage trie)可以为SPV方式中的信息,其中关于存储树在SPV方式中的信息中的具体说明可以如图9所示。如图9所示,基于SPV方式,需要使用区块头(blockheader)信息,并且该区块头信息中可以包括状态树的根的哈希值(state roottrie hash)。其中,状态树(statetrie)中每个叶子节点可以对应一个智能合约账户,且一个智能合约账户中可以包括该智能合约账户的存储树的根的哈希值,该智能合约账户的存储树的叶子节点的值可以为该智能合约账户的变量中一个变量的值,且叶子节点与变量一一对应。其中,该变量可以包括修改后的布隆过滤器以及其编号一起作为全局变量。
如图9所示,示例性的,所述目标智能合约账户用于生成状态树的所有参数中除存储树的根节点值之外的其他参数具体可以包括:常量(Nonce)、账户余额(Balance)和哈希(Code Hash)。
需要说明的是,图9中关于区块头信息中的其他信息可以参考相关技术中的说明,在此不再赘述。
需要说明的是,对于状态树和存储树,非叶子节点的值,均是对其下一级节点的进行哈希运算的结果。
进一步的,以第一消息包括第一指示信息和第二指示信息,且第一消息为DNS请求消息为例,DNS请求消息的格式可以如图10所示。
如图10所示,现有DNS标准中,DNS请求消息和DNS响应(response)消息的报文格式相同,均可以包括5个字段,分别为消息头(header)字段、问题(question)字段、答案(answer)字段、权威信息(authority)字段和额外(additional)字段。本申请实施例中可以其中的问题字段和额外字段进行扩展。
其中,问题字段是客户端发送DNS请求消息时需要指明的目标域名,其中,每个目标域名可以对应问题名称(QNAME)、问题类型(QTYPE)和问题等级(QCLASS)三个子字段。示例性的,可以在每个目标域名的问题等级子字段之后增加如下子字段1、子字段2和子字段3,共3个子字段。需要说明的是,关于问题名称(QNAME)、问题类型(QTYPE)和问题等级(QCLASS)三个子字段的具体内容可以参见现有DNS标准中的相关说明,在此不再赘述。
其中,子字段1例如可以称为T字段,可以占2个比特(bit)。第1个比特可以指示对于DNS信息的需求,第2个比特可以用于指示对于验证信息的需求。
示例性的,当子字段1的值为11时,可以表示请求目标域名的IP地址,且请求验证信息;当子字段1的值为10时,可以表示请求目标域名的IP地址,不请求验证信息,字段2和子字段3可以不出现;当子字段1的值为01时,可以表示请求所有者信息,且请求验证信息;当子字段1的值为00时,可以表示请求所有者信息,不请求验证信息,子字段2和子字段3可以不出现。
示例性的,子字段2例如可以称为指示(Indicator)字段,可以是8比特的位图(bitmap)。示例性的,第1个比特可以预留,第2个比特可以指示客户端当前是否缓存第一验证信息,第3个至第8个比特中每个比特可以表示对验证信息的6部分中各部分的需求,当为1时可以表示请求对应部分的信息,当为0时可以表示不请求对应部分的信息。
示例性的,第2个比特可以称为状态指示(State_indicator)比特。如果状态指示比特为1,可以表明客户端缓存有第一验证信息,子字段3可以写入客户端当前缓存的第一验证信息的版本号(即第一版本的版本号);如果状态指示比特0,可以表明客户端未缓存第一验证信息,可以不出现子字段3。状态指示比特和子字段3可以对应上述第一指示信息。
示例性的,第3个比特可以称为所有者公钥(Owner PK)比特,用于指示对目标域名的所有者信息的需求。通过所有者公钥比特可以实现客户端向服务器请求目标域名的所有者信息。
示例性的,第4个比特可以称为布隆过滤器比特,用于指示对布隆过滤器的需求。
示例性的,第5个比特可以用于指示对第二验证信息对应版本的存储树默克尔路径(merkle path)的需求。
示例性的,第6个比特可以用于指示对目标智能合约账户用于生成状态树的所有参数中除存储树的根节点值之外的其他参数的需求。
示例性的,第7个比特可以用于指示对第二验证信息对应版本的状态树默克尔路径的需求。
示例性的,第8个比特可以用于指示对第二验证信息对应版本所在区块的区块头信息的需求。
需要说明的是,上述子字段2的第3、5至8比特,可以对应上述第二指示信息。
示例性的,子字段3例如可以称为<L,V>字段,对于DNS请求消息可以用于指示客户端保存的第一验证信息的版本,对于DNS响应消息可以用于指示最新的第一验证信息的版本。
额外字段为DNS响应消息中关于目标域名的一些额外信息,本申请中可以被用来放置验证信息。示例性的,如图10所示,额外字段被用来放置验证信息的格式可以为名称+验证信息。示例性的,验证信息的顺序可以以DNS请求消息中的需求为准,例如,DNS请求消息中子字段2的第3至5比特的值均为1,第6至8个比特的值均为0,则额外字段中第1个名称+验证信息格式可以表示目标域名的所有者信息,第2个名称+验证信息格式可以表示布隆过滤器,第3个名称+验证信息格式可以表示第二验证信息对应版本的存储树默克尔路径。
示例性的,名称+验证信息中,验证信息可以以<F,V>方式封装。其中,F为0可以表示V表征验证信息的值;F为1,可以表示V表征域名。
需要说明的是,上述问题字段可以是用于客户端发送DNS请求消息时指明的目标域名。DNS请求消息中可以出现问题字段,而不出现额外字段。DNS响应消息中可以出现额外字段以及与额外字段中所包括的验证信息对应的子字段2。
需要说明的是,图9中以目标域名的个数为两个,分别为名称1和名称2为例。
需要说明的是,所述第一消息为DNS请求消息仅为举例。
示例性的,为了简化服务器的实现,服务器可以以一定的快照间隔对第一验证信息和第二验证信息进行保存。示例性的,可以将区块链的区块高度作为第一验证信息的版本号,需要说明的是,对于第一验证信息的版本号的实现方式,本申请实施例可以不作限定。
以服务器的快照间隔为10(即,每10个区块高度对第一验证信息进行一次快照保存),最大快照数为3(最多保存3个快照),且第一消息为DNS请求消息为例,对客户端从服务器获得验证信息的具体实现进行如下三种场景的举例。
场景1客户端未缓存第一验证信息(即,目标域名的布隆过滤器)
如图11所示,区块链中最新的块高度为112,服务器快照保存有块高度90、100以及110下的第一验证信息和第二验证信息,且客户端没有缓存第一验证信息。
步骤x1,客户端向服务器发送针对目标域名的DNS请求消息,其中,状态指示比特的值等于0(以下,可以记为s_ID = 0)可以表明没有保存第一验证信息。
DNS请求消息中的子字段1的值可以为二进制11,子字段2的值可以为二进制00111111(表示客户端需要第二验证信息中的全部信息以及第一验证信息)
步骤x2,服务器收到该DNS请求消息后,可以检索本地数据库,对比区块高度为112和区块高度为110下的目标域名的所有者信息。
步骤x3,若区块高度112和区块高度110下目标域名的所有者信息相同,则可以将目标域名的IP地址(可以从权威服务器获取)以及区块高度110下的验证相关信息封装在DNS响应消息中返回给客户端。
示例性的,区块高度110下的验证相关信息可以包括:区块高度为110下目标域名的所有者信息、区块高度为110下目标域名对应的布隆过滤器(即第一验证信息)以及用于对区块高度为110下目标域名对应的布隆过滤器进行验证的第二验证信息。
步骤x4,若区块高度112和区块高度110下目标域名的所有者信息不相同,则可以将目标域名的IP地址以及区块高度112下的验证相关信息封装在DNS响应消息中返回给客户端。
示例性的,区块高度112下的验证相关信息可以包括:区块高度为112下目标域名的所有者信息、区块高度为112下目标域名对应的布隆过滤器(即第一验证信息)以及用于对区块高度为112下目标域名对应的布隆过滤器进行验证的第二验证信息。
步骤x5,客户端收到DNS响应消息后,根据DNS响应消息进行验证。
具体的,客户端可以根据第二验证信息对第一验证信息进行验证,在验证通过时对第一验证信息进行保存,并根据验证通过的第一验证信息对获得的目标域名的所有者信息进行验证。
DNS响应消息中子字段1的值可以为二进制11,子字段2的值可以为二进制01111111。其中,子字段2的值可以为二进制01111111,可以表示服务器返回了第二验证信息中的全部信息以及第一验证信息。
场景2 客户端中缓存有最新快照保存的第一验证信息
如图12所示,区块链中最新的块高度为112,服务器快照保存有块高度90、100以及110下的第一验证信息和第二验证信息,且客户端中缓存有区块高度110下的第一验证信息。可选的,客户端中还可以缓存有区块高度110下的第二验证信息。
步骤y1,客户端向服务器发送针对目标域名的DNS请求消息,其中,s_ID = 1,且字段3的值等于十进制110,可以表明客户端中保存的第一验证信息对应的区块高度为110。
DNS请求消息中的子字段1的值可以为二进制11,子字段2的值可以为二进制01000000(表示客户端拥有区块高度110下的第一验证信息和第二验证信息)。
步骤y2,服务器收到该DNS请求消息后,可以检索本地数据库,对比区块高度为112和区块高度为110下的目标域名的所有者信息。
步骤y3,若区块高度112和区块高度110下目标域名的所有者信息相同,则可以将目标域名的IP地址封装在DNS响应消息中返回给客户端。
DNS响应消息中子字段1的值可以为二进制11,子字段2的值可以为二进制01000000。其中,子字段2的值可以为二进制01000000,可以表示服务器在额外字段中未添加验证信息。
步骤y4,若区块高度112和区块高度110下目标域名的所有者信息不相同,则可以将目标域名的IP地址以及区块高度112下的验证相关信息封装在DNS响应消息中返回给客户端。
可选的,区块高度112下的验证相关信息可以包括:区块高度为112下目标域名的所有者信息、区块高度为112下目标域名对应的布隆过滤器以及用于对区块高度为112下目标域名对应的布隆过滤器进行验证的第二验证信息。DNS响应消息中子字段1的值可以为二进制11,子字段2的值可以为二进制01111111。其中,子字段2的值可以为二进制01111111,可以表示客户端缓存的验证信息不可用,服务器返回了第二验证信息中的全部信息以及第一验证信息。
或者,区块高度112下的验证相关信息可以包括:区块高度110与区块高度112下目标域名的所有者信息、目标域名对应的布隆过滤器以及用于对目标域名对应的布隆过滤器进行验证的第二验证信息的差异验证信息。
步骤y5,客户端收到DNS响应消息后,根据DNS响应消息进行验证。
具体的,若DNS响应消息中包括区块高度112下的验证相关信息,则步骤y5具体可以包括:客户端可以根据区块高度112下的第二验证信息对第一验证信息进行验证,在验证通过时对区块高度112下的第一验证信息进行保存,并根据验证通过的区块高度112下的第一验证信息对获得的目标域名的所有者信息进行验证。
若DNS响应消息中不包括区块高度112下的验证相关信息,则步骤y5具体可以包括:客户端根据缓存的区块高度110下的第一验证信息对获得的目标域名的所有者信息进行验证。
场景3客户端中缓存有第一验证信息,但是客户端所缓存的第一验证信息不为最新快照保存的第一验证信息
如图13所示,区块链中最新的块高度为122,服务器快照保存有块高度100、110以及120下的第一验证信息和第二验证信息,且客户端中缓存有区块高度110下的第一验证信息。可选的,客户端中还可以缓存有区块高度110下的第二验证信息。
步骤z1,客户端向服务器发送针对目标域名的DNS请求消息,其中,s_ID = 1,且字段3的值等于十进制110,可以表明客户端保存有区块高度110下的目标域名的布隆过滤器。
DNS请求消息中的子字段1的值可以为二进制11,子字段2的值可以为二进制01000000(表示客户端拥有区块高度110下的需要所有验证信息)。
步骤z2,服务器收到该DNS请求消息后,可以检索本地数据库,对比区块高度为122和区块高度为110下的目标域名的所有者信息。
步骤z3,若区块高度122和区块高度110下目标域名的所有者信息相同,则可以将目标域名的IP地址以及区块高度120封装在DNS响应消息中返回给客户端。
DNS响应消息中子字段1的值可以为二进制11,子字段2的值可以为二进制01000000,<L,V>可以为十进制120。其中,子字段2的值可以为二进制01000000,可以表示服务器在额外字段中未添加验证信息。<L,V>为十进制120,可以表示服务器最新快照保存有区块高度120下的验证信息(即,第一验证信息和第二验证信息)。
在步骤z3之后,可以执行如下步骤z4。
步骤z4,客户端接收到DNS响应后,根据缓存的区块高度110下的第一验证信息对获得的目标域名的所有者信息进行验证。
可选的,在步骤z4之后,可以执行如下步骤z5。
步骤z5,客户端接收到DNS响应后,根据区块高度120向服务器请求最新快照保存的块高度下的验证信息,以从服务器获得最新快照保存的块高度下的验证信息。
需要说明的是,步骤z5执行完之后结束。
步骤z6,若区块高度122和区块高度110下目标域名的所有者信息不相同,则可以对比对比区块高度122和区块高度120下目标域名的所有者信息。
步骤z7,若区块高度122和区块高度120下目标域名的所有者信息相同,则可以将目标域名的IP地址以及区块高度120下的验证相关信息封装在DNS响应消息中返回给客户端。
可选的,区块高度120下的验证相关信息可以包括:区块高度为120下目标域名的所有者信息、区块高度为120下目标域名对应的布隆过滤器以及用于对区块高度为120下目标域名对应的布隆过滤器进行验证的第二验证信息。DNS响应消息中子字段1的值可以为二进制11,子字段2的值可以为二进制01111111,<L,V>可以为十进制120。其中,子字段2的值可以为二进制01111111,可以表示客户端缓存的验证信息不可用,服务器返回了第二验证信息中的全部信息以及第一验证信息。<L,V>为十进制120,可以表示服务器返回的验证信息对应的区块高度为120。
或者,区块高度120下的验证相关信息可以包括:区块高度110与区块高度120下目标域名的所有者信息、目标域名对应的布隆过滤器以及用于对目标域名对应的布隆过滤器进行验证的第二验证信息的差异验证信息。
步骤z8,若区块高度122和区块高度120下目标域名的所有者信息不相同,则可以将目标域名的IP地址以及区块高度122下的验证相关信息封装在DNS响应消息中返回给客户端。
可选的,区块高度122下的验证相关信息可以包括:区块高度为122下目标域名的所有者信息、区块高度为122下目标域名对应的布隆过滤器以及用于对区块高度为122下目标域名对应的布隆过滤器进行验证的第二验证信息。DNS响应消息中子字段1的值可以为二进制11,子字段2的值可以为二进制01111111,<L,V>可以为十进制122。其中,子字段2的值可以为二进制01111111,可以表示客户端缓存的验证信息不可用,服务器返回了第二验证信息中的全部信息以及第一验证信息。<L,V>为十进制122,可以表示服务器返回的验证信息对应的区块高度为122。
或者,区块高度122下的验证相关信息可以包括:区块高度110与区块高度122下目标域名的所有者信息、目标域名对应的布隆过滤器以及用于对目标域名对应的布隆过滤器进行验证的第二验证信息的差异验证信息。
需要说明的是,步骤z7或步骤z8执行完之后,可以执行步骤z9。
步骤z9,客户端收到DNS响应消息后,根据DNS响应消息进行验证。
具体的,若DNS响应消息中包括区块高度120下的验证相关信息,则步骤z9具体可以包括:客户端可以根据区块高度120下的第二验证信息对区块高度120下的第一验证信息进行验证,在验证通过时对区块高度120下的第一验证信息进行保存,并根据验证通过的区块高度120下的第一验证信息对获得的目标域名的所有者信息进行验证。
若DNS响应消息中包括区块高度122下的验证相关信息,则步骤z9具体可以包括:客户端可以根据区块高度122下的第二验证信息对区块高度122下的第一验证信息进行验证,在验证通过时对区块高度122下的第一验证信息进行保存,并根据验证通过的区块高度122下的第一验证信息对获得的目标域名的所有者信息进行验证。
图14为本申请一实施例提供的信息验证装置的结构示意图。本实施例提供的信息验证装置1400可以应用于服务器,如图14所示,本实施例的信息验证装置可以包括:接收单元1401和发送单元1402。
接收单元1401,用于接收客户端发送的第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示所述客户端中保存的第一验证信息的状态;所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
发送单元1402,用于根据所述第一消息,向所述客户端发送第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一验证信息由所述客户端根据第二验证信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述发送单元1402具体用于:
根据所述第一消息,判断所述目标域名的第一所有者信息与所述目标域名的第二所有者信息是否相同,所述第一所有者信息为用于生成第二版本的所述第一验证信息的所述目标域名的所有者信息,所述第二所有者信息为用于生成所述第一版本的所述第一验证信息的所述目标域名的所有者信息,所述第二版本为最新的所述第一验证信息的版本;
若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息不相同,则向所述客户端发送所述第二消息,所述第二消息包括:所述第二版本的所述第一验证信息,以及目标第二验证信息;所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本的所述第一验证信息为所述目标第一验证信息;
若所述目标域名的第一所有者信息与所述目标域名的第二所有者信息相同,则向所述客户端发送所述第二消息,所述目标第一验证信息为所述客户端保存的所述第一验证信息。
在一种可能的实现中,所述目标第一验证信息为所述客户端保存的所述第一验证信息,所述第二消息还用于指示所述第二版本的版本号;
所述接收单元1401,还用于接收所述客户端根据所述第二版本的版本号发送的第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
所述发送单元1402,还用于根据所述第三消息向所述客户端发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息;所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息。
在一种可能的实现中,所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述第二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
在一种可能的实现中,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
本实施例提供的信息验证装置,可以用于执行图5所示实施例在服务器侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
图15为本申请另一实施例提供的信息验证装置的结构示意图。本实施例提供的信息验证装置可以应用于客户端,如图15所示,本实施例的信息验证装置1500可以包括:发送单元1501、接收单元1502和验证单元1503。
发送单元1501,用于向服务器发送第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示客户端中保存的第一验证信息的状态;所述第一验证信息是根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
接收单元1502,用于接收所述服务器根据所述第一消息发送的第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证;
验证单元1503,用于根据所述第二消息,对获得的所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一验证信息由所述客户端根据第二验证信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第二消息包括:所述第二版本的所述第一验证信息,以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述验证单元1503具体用于:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第一目标验证信息为所述客户端保存的所述第一验证信息;
所述验证单元1503具体用于:
根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述第二消息还用于指示所述第二版本的版本号;
所述发送单元1501,还用于根据所述第二版本的版本号,向所述服务器发送第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
所述接收单元1502,还用于接收所述服务器根据所述第三消息发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本,并对所述最新的所述第一验证信息的版本进行存储。
在一种可能的实现中,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述验证单元1503具体用于:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
在一种可能的实现中,所述装置还包括:确定单元,用于根据已保存的验证信息,确定向所述服务器请求所述第一验证信息中的部分信息;
所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
在一种可能的实现中,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,且所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护。
在一种可能的实现中,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
本实施例提供的信息验证装置,可以用于执行图5所示实施例在客户端侧的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,应理解以上通信装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元通过软件通过处理元件调用的形式实现,部分单元通过硬件的形式实现。例如,发送单元可以为单独设立的处理元件,也可以集成在通信装置的某一个芯片中实现,此外,也可以以程序的形式存储于通信装置的存储器中,由通信装置的某一个处理元件调用并执行该发送单元的功能。其它单元的实现与之类似。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。此外,以上发送单元是一种控制发送的单元,可以通过通信装置的发送装置,例如天线和射频装置接收信息。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array, FPGA)等。再如,当以上某个单元通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central ProcessingUnit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
图16为本申请实施例提供的信息验证设备的硬件结构示意图。该信息验证设备1600包括至少一个处理器1601,通信总线1602,存储器1603以及至少一个通信接口1604。
处理器1601可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线1602可包括一通路,在上述组件之间传送信息。
通信接口1604,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器1603可以是只读存储器(read-only memory,ROM) 或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM) 或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1603用于存储执行本申请方案的应用程序代码,并由处理器1601来控制执行。处理器1601用于执行存储器1603中存储的应用程序代码,从而实现本申请上述实施例提供的信息验证方法。
或者,可选的,本申请实施例中,也可以是处理器1601执行本申请上述实施例提供的信息验证方法中的处理相关的功能,通信接口1604负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器1601可以包括一个或多个CPU。
在具体实现中,作为一种实施例,信息验证设备1600可以包括多个处理器。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,信息验证设备1600还可以包括输出设备和输入设备。输出设备和处理器1601通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD), 发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT) 显示设备,或投影仪(projector)等。输入设备和处理器1601通信,可以以多种方式接受用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
此外,如上所述,本申请实施例提供的信息验证设备1600可以为芯片,或者客户端,或者服务器,或者有图16中类似结构的设备。本申请实施例不限定信息验证设备1600的类型。
在本实施例中,该信息验证设备1600以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(Application-Specific IntegratedCircuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到信息验证设备1600可以采用图16所示的形式。比如,图14-图15中的接收单元的功能/实现过程可以通过图16的通信接口1604来实现,本申请实施例对此不作任何限制。又比如,图15中的确定单元可以通过由处理器1601来调用存储器1603中存储的应用程序代码来执行,本申请实施例对此不作任何限制。
需要说明的是,图16所示实施例提供的信息验证设备具体可以为图5所示实施例中的服务器,当处理器1601调用存储器1603存储的程序时,可以执行图5所示实施例提供的服务器侧的方法。
需要说明的是,图16所示实施例提供的信息验证设备具体可以为图5所示实施例中的客户端,当处理器1601调用存储器1603存储的程序时,可以执行图5所示实施例提供的客户端侧的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。

Claims (19)

1.一种信息验证方法,其特征在于,包括:
向服务器发送第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示客户端中保存的第一验证信息的状态;所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
接收所述服务器根据所述第一消息发送的第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证;
根据所述第二消息,对获得的所述目标域名的所有者信息进行验证。
2.根据权利要求1所述的方法,其特征在于,所述第一验证信息由所述客户端根据第二验证信息进行验证。
3.根据权利要求2所述的方法,其特征在于,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第二消息包括:第二版本的所述第一验证信息,以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述根据所述第二消息,对所述目标域名的所有者信息进行验证,包括:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
4.根据权利要求2所述的方法,其特征在于,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
第一目标验证信息为所述客户端保存的所述第一验证信息;
所述根据所述第二消息,对所述目标域名的所有者信息进行验证,包括:
根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
5.根据权利要求4所述的方法,其特征在于,所述第二消息还用于指示所述第二版本的版本号;
所述方法还包括:根据第二版本的版本号,向所述服务器发送第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
接收所述服务器根据所述第三消息发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本,并对所述最新的所述第一验证信息的版本进行存储。
6.根据权利要求2所述的方法,其特征在于,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述根据所述第二消息,对所述目标域名的所有者信息进行验证,包括:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
7.根据权利要求3-6任一项所述的方法,其特征在于,所述向服务器发送第一消息之前还包括:
根据已保存的验证信息,确定向所述服务器请求所述第一验证信息中的部分信息;
所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述第二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
8.根据权利要求3-6任一项所述的方法,其特征在于,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
9.根据权利要求2-6任一项所述的方法,其特征在于,所述第二验证信息是所述区块链中的信息。
10.一种信息验证装置,其特征在于,包括:
发送单元,用于向服务器发送第一消息,所述第一消息包括目标域名以及第一指示信息,所述第一指示信息用于指示客户端中保存的第一验证信息的状态;所述第一验证信息是区块链根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,所述第一验证信息用于对所述多个域名的所有者信息进行验证,所述多个域名包括所述目标域名;
接收单元,用于接收所述服务器根据所述第一消息发送的第二消息,所述第二消息用于指示目标第一验证信息,所述目标第一验证信息用于所述客户端对所述目标域名的所有者信息进行验证;
验证单元,用于根据所述第二消息,对获得的所述目标域名的所有者信息进行验证。
11.根据权利要求10所述的装置,其特征在于,所述第一验证信息由所述客户端根据第二验证信息进行验证。
12.根据权利要求11所述的装置,其特征在于,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
所述第二消息包括:第二版本的所述第一验证信息,以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述验证单元具体用于:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
13.根据权利要求11所述的装置,其特征在于,所述第一指示信息具体用于指示所述客户端中保存有所述第一验证信息,且所保存的第一验证信息的版本为第一版本;
第一目标验证信息为所述客户端保存的所述第一验证信息;
所述验证单元具体用于:
根据所述第一版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
14.根据权利要求13所述的装置,其特征在于,所述第二消息还用于指示第二版本的版本号;
所述发送单元,还用于根据所述第二版本的版本号,向所述服务器发送第三消息,所述第三消息用于指示请求最新的所述第一验证信息的版本;
所述接收单元,还用于接收所述服务器根据所述第三消息发送第四消息,所述第四消息中包括最新的所述第一验证信息的版本,并对所述最新的所述第一验证信息的版本进行存储。
15.根据权利要求11所述的装置,其特征在于,所述第一指示信息具体用于指示所述客户端中未保存所述第一验证信息;
所述第二消息包括:第二版本的所述第一验证信息以及目标第二验证信息,所述目标第二验证信息为用于所述客户端对所述第二版本的所述第一验证信息进行验证的第二验证信息,所述第二版本为最新的所述第一验证信息的版本;所述第二版本的所述第一验证信息为所述目标第一验证信息;
所述验证单元具体用于:
根据所述目标第二验证信息对所述第二版本的所述第一验证信息进行验证;
在所述第二版本的所述第一验证信息验证通过之后,根据所述第二版本的所述第一验证信息对所述目标域名的所有者信息进行验证。
16.根据权利要求12-15任一项所述的装置,其特征在于,所述装置还包括:确定单元,用于根据已保存的验证信息,确定向所述服务器请求所述第一验证信息中的部分信息;
所述第一消息还包括:第二指示信息,所述第二指示信息用于指示所述客户端请求所述第二验证信息中的部分信息;
所述第二消息中所述目标第二验证信息具体为:所述目标第二验证信息中的所述部分信息。
17.根据权利要求12-15任一项所述的装置,其特征在于,所述第二版本为最新生成的所述第一验证信息的版本,或者,所述第二版本为本地最新快照保存的所述第一验证信息的版本。
18.根据权利要求11-15任一项所述的装置,其特征在于,所述第一验证信息是区块链节点根据多个域名以及所述多个域名的所有者信息生成的验证信息,所述目标域名的所有者信息由区块链的目标智能合约账户存储和维护,且所述第二验证信息是所述区块链中的信息。
19.一种信息验证设备,包括:处理器、存储器和通信接口;所述处理器控制所述通信接口的收发动作;所述存储器存储程序;所述处理器调用所述存储器存储的程序,以执行权利要求1-9任一项所述的方法。
CN201910251489.2A 2019-03-29 2019-03-29 信息验证方法、装置及设备 Active CN111756678B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910251489.2A CN111756678B (zh) 2019-03-29 2019-03-29 信息验证方法、装置及设备
EP20785173.4A EP3923538A4 (en) 2019-03-29 2020-03-24 METHOD AND APPARATUS FOR VERIFYING INFORMATION AND DEVICE
PCT/CN2020/080894 WO2020199982A1 (zh) 2019-03-29 2020-03-24 信息验证方法、装置及设备
US17/479,931 US20220006817A1 (en) 2019-03-29 2021-09-20 Information Verification Method, Apparatus, And Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910251489.2A CN111756678B (zh) 2019-03-29 2019-03-29 信息验证方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111756678A CN111756678A (zh) 2020-10-09
CN111756678B true CN111756678B (zh) 2023-03-28

Family

ID=72664938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910251489.2A Active CN111756678B (zh) 2019-03-29 2019-03-29 信息验证方法、装置及设备

Country Status (4)

Country Link
US (1) US20220006817A1 (zh)
EP (1) EP3923538A4 (zh)
CN (1) CN111756678B (zh)
WO (1) WO2020199982A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008116416A1 (fr) * 2007-03-26 2008-10-02 Huawei Technologies Co., Ltd. Procédé, dispositif et système pour qu'un système de nom de domaine se mette à jour de façon dynamique
CN108805573A (zh) * 2018-04-21 2018-11-13 深圳市元征科技股份有限公司 一种信息验证方法、服务器及存储介质
CN109450843A (zh) * 2018-09-14 2019-03-08 众安信息技术服务有限公司 一种基于区块链的ssl证书管理方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829242B2 (en) * 1998-06-30 2004-12-07 Cisco Technology, Inc. Method and apparatus for associating PVC identifiers with domain names of home gateways
US20030009694A1 (en) * 2001-02-25 2003-01-09 Storymail, Inc. Hardware architecture, operating system and network transport neutral system, method and computer program product for secure communications and messaging
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US7493403B2 (en) * 2006-03-13 2009-02-17 Markmonitor Inc. Domain name ownership validation
US20110078230A1 (en) * 2009-09-25 2011-03-31 Emilio Sepulveda Method and system for providing a cdn with granular quality of service
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
CN107453900B (zh) * 2017-07-28 2020-09-04 北京富邦智慧物联科技有限公司 一种云解析参数设定管理系统及实现参数设定的方法
US10965472B2 (en) * 2018-11-02 2021-03-30 Hitachi, Ltd. Secure bootstrap for a blockchain network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008116416A1 (fr) * 2007-03-26 2008-10-02 Huawei Technologies Co., Ltd. Procédé, dispositif et système pour qu'un système de nom de domaine se mette à jour de façon dynamique
CN108805573A (zh) * 2018-04-21 2018-11-13 深圳市元征科技股份有限公司 一种信息验证方法、服务器及存储介质
CN109450843A (zh) * 2018-09-14 2019-03-08 众安信息技术服务有限公司 一种基于区块链的ssl证书管理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Distributed Decentralized Domain Name Service;BRENDAN BENSHOOF ET AL;《2016 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS (IPDPSW)》;20160501;1279-1287 *

Also Published As

Publication number Publication date
EP3923538A4 (en) 2022-03-09
US20220006817A1 (en) 2022-01-06
EP3923538A1 (en) 2021-12-15
CN111756678A (zh) 2020-10-09
WO2020199982A1 (zh) 2020-10-08

Similar Documents

Publication Publication Date Title
CN112292704B (zh) 交易处理
US11438139B2 (en) Blockchain based secure naming and update verification
US10073916B2 (en) Method and system for facilitating terminal identifiers
US20210142206A1 (en) Adaptation of machine learning algorithms
US20200366485A1 (en) Method and apparatus for inter-blockchain transmission of authenticable message
US20220329591A1 (en) Method, apparatus and device for generating device fingerprint and storage medium
CN109710695B (zh) 事务请求有效性识别和发起方法、装置、设备和介质
US11108545B2 (en) Creating a blockchain account and verifying blockchain transactions
CN112087502B (zh) 处理请求的方法、装置、设备及存储介质
KR101937188B1 (ko) 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말
US20210158353A1 (en) Methods, systems, apparatuses, and devices for processing request in consortium blockchain
CN113259479B (zh) 一种数据处理方法以及设备
CN106464667B (zh) 一种证书管理方法、设备及系统
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN111506366B (zh) 插件调用方法、装置、电子设备与存储介质
CN111245910B (zh) 一种区块链轻节点多副本的部署方法
CN113329081A (zh) 一种区块链服务接入方法、装置及计算机可读存储介质
CN112311779B (zh) 应用于区块链系统的数据访问控制方法及装置
CN110580305A (zh) 生成标识符的方法、装置、系统和介质
CN111737365A (zh) 存证处理方法、装置、设备和存储介质
KR20190095067A (ko) 블록체인 기반의 머클트리를 이용한 정보 관리 방법, 이를 이용한 서버 및 단말
WO2020114590A1 (en) Method and system for determining a state of an account in a network device running a light client protocol of a distributed ledger technology network
CN111756678B (zh) 信息验证方法、装置及设备
CN112181599A (zh) 模型训练方法、装置及存储介质
JP6233846B2 (ja) 可変長ノンスの生成

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