CN108768966B - 区块链平台和成员节点以及节点身份认证方法 - Google Patents
区块链平台和成员节点以及节点身份认证方法 Download PDFInfo
- Publication number
- CN108768966B CN108768966B CN201810456381.2A CN201810456381A CN108768966B CN 108768966 B CN108768966 B CN 108768966B CN 201810456381 A CN201810456381 A CN 201810456381A CN 108768966 B CN108768966 B CN 108768966B
- Authority
- CN
- China
- Prior art keywords
- node
- bloom filter
- group
- mark
- identity
- 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
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/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
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- 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
-
- 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
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)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区块链平台和成员节点以及节点身份认证方法,所述方法包括:节点A使用区块链平台的成员组中的节点B的公钥KB,将包括本节点A的布隆过滤器值SA的特征信息加密成密文后,将所述密文与通信数据封装成数据包后发送给节点B;节点B接收到数据包后,用私钥KB’解密密文,将SA映射到布隆过滤器FS;并根据映射结果认证所述节点A为所述成员组的节点后,处理所述数据包中的通信数据。应用本发明可以利用布隆过滤器替代数字证书实现身份认证功能,解决体积过大的数字证书作为身份凭证在多节点多交互的区块链环境中造成大量通信资源浪费的问题。
Description
技术领域
本发明涉及区块链技术领域,特别是指一种区块链平台和成员节点以及节点身份认证方法。
背景技术
随着近年来比特币的大热以及各种层出不同的新型区块链应用的诞生,区块链渐渐成为了当下最热门的技术之一。
中心化网络结构的认证、管理机制明确统一,运作简单,所以在过去的网络技术中被大量应用。然而管理与仲裁的集中处理使得工作庞杂,一旦中心机构出现故障,更是会使整个网络暂时崩溃。因此,近年来分布式网络技术开始快速发展,分布式网络中每一节点都是独立的个体,不依附任何其他节点,可独立完成工作,使得整个网络的灵活性大大提高。区块链技术就是这样的一项分布式网络技术,它具有分布式数据库、点对点通信技术、分布式共识技术等核心优势。以这些技术为基础,区块链实现了一个去中心化的系统架构,并应用到了金融、医疗、物联网、版权等各个产业领域。
区块链是指在去中心化的网络结构中各个独立节点通过分布式数据存储,点对点传输,共识机制以及加密技术等计算机技术组成的一个新型网络系统,其本质上是一个分布式数据库,分布式网络中的每个节点都储存着同一条区块链。区块是指一串使用密码学方法相关联产生的数据块,其中记录着一项交易(网络成员共同完成的一项工作)的信息(包括交易价值量、交易双方信息及发生时间等)以及相关的防伪信息,每一区块的生成都必须通过各成员之间的共识过程,得到所有成员的合法承认才可被记录到链上。链是指各个区块按顺序首尾相连所形成的链式数据结构,每一区块都有唯一的ID,而某一区块又会记录着上一区块ID的hash值,这使得链上的各个区块不断衔接形成不能更改的链式结构。
区块链中的某次交易示例如下:A需要通过转账从B获得10价值量,发起交易请求。区块链所有成员(包括A与B)在链上逐块查阅区块查阅最新一条与B相关的交易,查询B是否具有10价值量。每个成员将自己的查询结果(“1”交易合法或“0”交易不合法)通知其他链上成员,经过多次交互确认后,当判别结果为“1”的成员数量超过当前共识算法的判别阈值(不同的共识算法有不同的阈值)则各成员承认这笔交易合法,形成关于这笔交易的新的区块记录到自己储存的链上,交易完成。
区块链成员中并没有中心化机构,为了确保每一项交易都是合法且准确的,需要所有链上成员通过多次与其他成员交互确认得出一个达成共识的判别结果,所有成员都承认这一共识结果,从而达到去中心化网络中节点互信的目的。
然而,随着区块链技术的快速发展,这项新兴技术也逐渐暴露出一些问题,其中用作身份认证的数字证书占用通信资源过大的问题开始困扰着人们。在大型的公有链项目(如比特币)中,由于全球任一网络成员都能接入,身份合法问题极其重要,目前的其他技术仍难以取代功能完备的数字证书。但在一些小型的区块链项目中(联盟链或私有链),节点数量有限且易于管理,数字证书中的大部分功能并不必要,体积过大的数字证书显得十分累赘。
例如,在IBM的区块链平台中,成员节点通过数字证书进行身份认证。成员在组网时需要通过证书认证机构(CA)签发一对密钥,并由CA向其颁发数字证书。数字证书内容可能包括版本、序列号、签名算法类型、签发者信息、有效期、被签发人、签发的公开密钥、CA数字签名、其它信息等等,一般使用最广泛的标准为ITU和ISO联合制定的X.509规范。在通信中需要验证消息来源身份合法性时,节点可以通过收到的数字证书得到合法的签发公钥,再利用公钥打开被加密的信息。
具体的组网与身份认证流程包括如下步骤:
步骤一:组网节点在组网前先通过CA生成证书与一对密钥K与K’,并得到能解开CA证书的证书公钥KC(用于解密证书,所有取得合法证书的成员都拥有此公钥)。
步骤二:组网后节点需要发送消息,利用自己的私钥K’加密消息内容并以CA颁发的数字证书作为消息头封装成数据包发出。
步骤三:接收方收到数据包后,利用证书公钥KC对数字证书进行解密,核对证书的真伪,确定证书的合法性后取得通信发起方的签发公钥K,再利用K对消息内容进行解密,处理消息。
在这种身份认证体系中,数字证书含有多项身份安全信息,保证了非对称加密中所生成公钥不能被修改,是一套较为完整的身份认证体系。
然而在应用数字证书进行节点间通信时,数据包所携带的数字证书体积较大,同时区块链成员节点间通信主要集中在共识过程中,节点交互的次数频繁且携带的有用数据内容体积比数字证书小得多。这样的情况导致了在通信交互中大量的通信资源被耗费在数字证书上,通信效率较低。
发明内容
有鉴于此,本发明的目的在于提出一种区块链平台和成员节点以及节点身份认证方法,利用布隆过滤器替代数字证书实现身份认证功能,解决体积过大的数字证书作为身份凭证在多节点多交互的区块链环境中造成大量通信资源浪费的问题。
基于上述目的本发明提供一种节点身份认证方法,包括:
节点A使用区块链平台的成员组中的节点B的公钥KB,将包括本节点A的布隆过滤器值SA的特征信息加密成密文后,将所述密文作为消息头与通信数据封装成数据包后发送给节点B;
所述节点B接收到所述数据包后,用本节点B的私钥KB’解密所述密文,将SA映射到布隆过滤器FS;并根据映射结果认证所述节点A为所述成员组的节点后,处理所述数据包中的通信数据;
其中,所述布隆过滤器值SA以及所述成员组中各节点的公钥为所述节点A注册到所述成员组时从所述区块链平台的注册节点获取的;所述布隆过滤器FS是由所述注册节点发送给所述成员组中各节点的。
较佳地,所述特征信息还包括:所述节点A与节点B的会话的发送序列号;以及
在所述将所述密文作为消息头与通信数据封装成数据包后发送给节点B后,所述方法还包括:所述节点A还将所述发送序列号加1;以及
在所述处理所述数据包中的通信数据之前,所述方法还包括:
所述节点B从解密的密文中获取发送序列号,将获取的发送序列号与本地存储的节点A与节点B的会话的接收序列号进行比较;
若两者一致,则所述节点A的身份得到初步认证,所述节点B将所述接收序列号加1;
否则,所述节点A的身份认证不通过。
其中,所述由所述注册节点发送给所述成员组中各节点的布隆过滤器FS是根据如下方法构建的:
所述注册节点接收所有请求入网的节点发送的入网请求消息;其中,所述节点发送的入网请求消息中包括该节点的标识、身份证明材料以及由该节点产生的一对密钥中的公钥;
所述注册节点根据接收的身份材料进行核验,将身份核验成功的节点注册到区块链平台的成员组,并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值;其中,所述集合S中的元素个数N不小于所述成员组的预估成员最大数;
所述注册节点用各节点的公钥分别加密各节点的身份核验结果后返回给对应的节点;其中,返回给节点的身份核验成功结果中包括:所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及根据集合S构建的布隆过滤器FS,构建FS时所用的哈希函数。
进一步,在所述为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值后,还包括:
所述注册节点将所述集合S中未分配的布隆过滤器值作为闲置布隆过滤器值进行存储。
进一步,所述方法还包括:
所述注册节点接收到新的节点发送的入网请求消息,并根据该入网请求消息中的身份材料对该节点身份核验成功后,将该新的节点注册到所述成员组,并为该新的节点分配一个闲置布隆过滤器值;
所述注册节点向该节点返回用该节点的公钥加密的身份核验结果,其中包括所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及布隆过滤器FS和构建FS时所用的哈希函数。
进一步,所述方法还包括:
所述注册节点接收到节点离开请求后,从所述节点离开请求的明文中获取发送该请求的节点的标识;
所述注册节点根据获取的节点的标识,使用该节点的公钥解密所述节点离开请求的密文后,获取离开节点的标识;
所述注册节点根据离开节点的标识,将对应节点的布隆过滤器值归为闲置布隆过滤器值。
进一步,在所述获取离开节点的标识后,还包括:
所述注册节点向所述成员组中其它节点发送节点离去通知;其中,发送给一个节点的节点离去通知是经该节点的公钥加密的,其中加密的内容包括:所述离开节点的标识;
接收到节点离去通知的节点利用本节点的私钥解密节点离去通知后,获取所述离开节点的标识,并根据所述离开节点的标识删除为对应节点创建的会话及会话中的数据。
本发明还提供一种成员节点,包括:
数据包发送模块,用于使用区块链平台的成员组中对端节点的公钥KB,将包括本节点的布隆过滤器值的特征信息加密成密文后,将所述密文作为消息头与通信数据封装成数据包后发送给所述对端节点;
数据包接收模块,用于接收到对端节点发送的数据包后,用本节点的私钥解密所述数据包的密文,将从所述密文中获取的布隆过滤器值映射到布隆过滤器;并根据映射结果认证所述对端节点为所述成员组的节点后,处理所述数据包中的通信数据;
其中,所述布隆过滤器值以及所述成员组中各节点的公钥为本节点注册到所述成员组时从所述区块链平台的注册节点获取的;所述布隆过滤器是由所述注册节点发送给所述成员组中各节点的。
本发明还提供一种区块链平台,包括:注册节点以及如上所述的成员节点;其中,所述注册节点包括:
请求消息接收模块,用于接收所有请求入网的节点发送的入网请求消息;其中,所述节点发送的入网请求消息中包括该节点的标识、身份证明材料以及由该节点产生的一对密钥中的公钥;
布隆过滤器构建模块,用于生成布隆过滤器值集合S,其中,所述集合S中的元素个数N不小于所述区块链平台的成员组的预估成员最大数;并根据所述集合S使用哈希函数构建布隆过滤器FS;
身份核验模块,用于根据接收的身份材料进行核验,将身份核验成功的节点注册到区块链平台的成员组,并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值;
核验结果返回模块,用于针对每个注册到所述成员组中的节点,用该节点的公钥分别加密该节点的身份核验结果后返回给该节点;其中,返回给该节点的身份核验结果中包括:所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及根据集合S构建的布隆过滤器FS,构建FS时所用的哈希函数。
本发明实施例的技术方案中,利用布隆过滤器值与布隆过滤器之间的映射关系可判别一个元素是否属于所表示的集合的功能,来实现认证节点是否属于成员组的功能。由于数据包中携带的用于进行身份认证的布隆过滤器值,体积比传统数字证书要小得多,将其用作节点间通信的身份认证媒介能大大降低消耗在身份认证上的通信开销,从而解决了体积过大的数字证书作为身份凭证在多节点多交互的区块链环境中造成大量通信资源浪费的问题。
此外,注册节点生成的布隆过滤器值集合S中的元素个数N不小于所述成员组的预估成员最大数,因此,集合S中有充分的未分配的布隆过滤器值作为闲置布隆过滤器值,可以用作分配给后续注册到成员组中的节点,且将新节点的相关信息发送给成员组中的原成员节点,从而实现组内成员的动态管理,解决了布隆过滤器一旦构建便不能再变化的问题。
进一步,节点间的通信携带会话的发送序列号,节点在进行身份认证之前通过判别序列号的一致性即可判断消息是否为拒绝服务攻击,从而避免了大量的计算资源耗费在攻击消息的身份认证上。
附图说明
图1为本发明实施例提供的元素映射到布隆过滤器的示意图;
图2为本发明实施例提供的一种节点注册方法流程图;
图3为本发明实施例提供的另一种节点注册方法流程图;
图4为本发明实施例提供的一种节点身份认证方法流程图;
图5a为本发明实施例提供的一种节点离开区块链平台的方法流程图;
图5b为本发明实施例提供的另一种节点离开区块链平台的方法流程图;
图6为本发明实施例提供的一种注册节点的内部结构示意图;
图7为本发明实施例提供的一种成员节点的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明的发明人考虑到,利用布隆过滤器替代传统数字证书在区块链平台中实现身份认证功能。
布隆过滤器是一个具有一定长度的二进制位数组与一系列hash(哈希)函数的结合应用。布隆过滤器能通过多次hash运算映射判断出任一元素是否存在于它所表示的集合当中,不能通过所有hash运算映射的绝不会是集合内的元素,达到了“过滤”的目的。
下面介绍布隆过滤器的具体工作原理:首先,生成一个m位的二进制位数组,每位初始化为0;进而,为了构建出表示集合S={S1,S2,…,Sn}的布隆过滤器,用k次相互独立的hash函数分别对集合S中的n个元素进行运算,映射到位数组中并置为1,多次置1仍为1。所有元素映射完之后得到的新的位数组就是能表示集合S的布隆过滤器,如图1所示。
当需要判断一个元素y是否属于集合S时,就要对y进行同样的k次hash运算,映射到布隆过滤器中与数组中的值进行对比。如图1中的y1映射到一个值为0的位,那么y1就不属于该集合,而y2映射的每一位都为1,所以y2属于该集合或者是一个小概率的错判。这里说的错判是指由于hash函数的性质,布隆过滤器有可能将一个不属于该集合的元素判别为集合内元素,这种错判的概率可以根据需求通过位数组的长度m和hash运算次数k进行调整,可调整到10-20数量级甚至更低,几乎可以忽略不计。
因此,本发明提出了一个基于布隆过滤器的区块链身份认证方法。整体思路是利用布隆过滤器能简易判别一个元素是否属于集合这一特点替代数字证书在区块链分布式环境中实现身份认证的功能,解决了体积过大的数字证书作为身份凭证在多节点多交互的区块链环境中造成大量通信资源浪费的问题。
此外,本发明还通过为节点通信创建会话来实现区块链成员节点的动态管理,解决了布隆过滤器一旦创建便难以增删成员的问题,并在成员节点间的通信中加入了两对双方共同维护的序列号,通过核对序列号来提前判别消息是否攻击。
下面结合附图详细说明本发明实施例的技术方案。
本发明的技术方案中,区块链平台的成员节点在通信交互时利用布隆过滤器进行身份认证过程之前,需经由区块链平台的注册节点进行身份核验方能注册到区块链平台的成员组中,成为区块链平台的成员节点。
在区块链平台的成员组构建之前,注册节点可以核验所有请求入网的节点的身份材料,为合法成员创建成员组并为其构建布隆过滤器。具体地,本发明实施例提供的一种在创建区块链平台的成员组时实现节点注册的方法,流程如图2所示,包括如下步骤:
步骤S201:请求入网的节点向区块链平台的注册节点发送入网请求消息。
本步骤中,请求入网的节点可以是多个;所述节点发送的入网请求消息中可以包括该节点的标识ID、身份证明材料以及由该节点产生的一对密钥中的公钥。
步骤S202:注册节点接收所有请求入网的节点发送的入网请求消息后,根据接收的身份材料进行核验,将身份核验成功的节点注册到新创建的区块链平台的成员组中,并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值。
本步骤中,注册节点根据接收的身份材料进行核验,将身份核验成功的节点注册到区块链平台的成员组,成为成员组中的成员节点;并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值,备份每个成员节点的资料以及分配给它们的布隆过滤器值,剩余没被分配的布隆过滤器值作为闲置布隆过滤器值存储于闲置值集合中。
其中,布隆过滤器值集合S中的元素个数N不小于所述成员组的预估成员最大数;布隆过滤器值集合S中的元素可以是注册节点生成的N个8位十六进制的随机数SA、SB、…、SN;其中,随机数的长度可根据需求进行调整。N个随机数组成布隆过滤器值集合S={SA,SB,…,SN};注册节点对S中的元素进行k次hash(哈希)函数映射,从而构建出表示集合S的布隆过滤器FS。其中,k为自然数,本领域技术人员可以根据实际情况设置。
步骤S203:所述注册节点用各节点的公钥分别加密各节点的身份核验结果后返回给对应的节点。
本步骤中,注册节点用各节点的公钥分别加密各节点的身份核验结果后返回给对应的节点。其中,对于身份核验成功的节点,注册节点返回身份核验成功结果;对于身份核验失败的节点,注册节点返回身份核验失败结果。核验失败的节点如要重新入网可以在区块链平台的成员组创建完成后重新申请加入,后续将详细介绍具体流程。
在注册节点返回给节点的身份核验成功结果中包括:所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及根据集合S构建的布隆过滤器FS,构建FS时所用的哈希函数。
步骤S204:所述成员组中的节点接收到身份核验结果后,解密并存储身份核验结果中的信息。
本步骤中,所述成员组中的节点接收到身份核验结果(为身份核验成功结果)后,用本节点的私钥解密所述身份核验结果,将其中携带的所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及布隆过滤器FS和构建FS时所用的哈希函数进行存储。
更优地,所述成员组中的节点接收到身份核验结果后,进而可以为所述成员组中的每个节点创建一个会话,对应每个会话存储该会话涉及的节点的标识与公钥,并为每个会话设置一个初始值为0的发送序列号和接收序列号。例如,如下表1所示,成员组中的节点A、B、C的标识分别为IDA、IDB、IDC,则节点A接收到身份核验成功结果后,分别为节点B、C……创建会话,并针对节点B、C……分别存储它们的公钥KB、KC……,将每个会话的发送序列号和接收序列号都设置为初始值0。
表1
会话 | 公钥 | 发送序列号 | 接收序列号 |
ID<sub>B</sub> | K<sub>B</sub> | Seq<sub>AB</sub>=0 | Seq<sub>BA</sub>=0 |
ID<sub>C</sub> | K<sub>C</sub> | Seq<sub>AC</sub>=0 | Seq<sub>CA</sub>=0 |
… | … | ... | … |
在根据如图2所示的方法流程创建区块链平台的成员组后,若有新的节点需要继续加入该成员组,或者之前核验失败、需重新申请加入的节点,则可以根据如下方法注册到成员组,流程如图3所示,包括如下步骤:
步骤S300:新的节点向注册节点发送入网请求消息。
其中,入网请求消息中可以包括该节点的标识ID、身份证明材料以及由该节点产生的一对密钥中的公钥。
步骤S301:注册节点接收到新的节点发送的入网请求消息后,根据该入网请求消息中的身份材料对该节点身份核验。
步骤S302:注册节点对该节点身份核验成功后,将该新的节点注册到所述成员组,并为该新的节点分配一个闲置布隆过滤器值。
本步骤中,注册节点对该节点身份核验成功后,将该新的节点注册到所述成员组,并为该新的节点分配一个闲置布隆过滤器值;之后,将该布隆过滤器值记录为已分配的布隆过滤器值,从闲置值集合中删除。若核验失败则向该节点返回身份核验失败结果。
步骤S303:注册节点向新的节点返回身份核验成功结果,并向所述成员组中的其它节点发送成员更新消息。
具体地,注册节点向新的节点返回用该节点的公钥加密的、包括所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及布隆过滤器FS和构建FS时所用的哈希函数的身份核验结果(即身份核验成功结果);
并且,注册节点还向所述成员组中的其它节点(原成员节点)发送成员更新消息。发送给一个节点的成员更新消息是经该节点的公钥加密的,其中成员更新消息包括:新注册到成员组的节点的标识与公钥。
步骤S304:接收到身份核验结果的节点,解密身份核验结果并存储身份核验结果中的信息。
本步骤中,接收到身份核验结果的节点,用本节点的私钥解密所述身份核验结果;若身份核验结果为身份核验成功结果,则将其中携带的所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及布隆过滤器FS和构建FS时所用的哈希函数进行存储。
更优地,所述成员组中的节点接收到身份核验结果后,进而可以为所述成员组中的每个节点创建一个会话,对应每个会话存储该会话涉及的节点的标识与公钥,并为每个会话设置一个初始值为0的发送序列号和接收序列号。
步骤S305:接收到成员更新消息的节点,解密、存储成员更新消息,并为该新注册到成员组的节点创建一个会话,并设置该会话的发送序列号和接收序列号的初始值为0。例如,新注册到成员组的节点标识为IDE,则更新后的数据库如表2所示。
表2
会话 | 公钥 | 发送序列号 | 接收序列号 |
ID<sub>B</sub> | K<sub>B</sub> | Seq<sub>AB</sub>=72 | Seq<sub>BA</sub>=51 |
… | … | ... | … |
ID<sub>E</sub> | K<sub>E</sub> | Seq<sub>AE</sub>=0 | Seq<sub>EA</sub>=0 |
通过上述的节点注册方法,节点完成入网注册过程,成为区块链平台的成员组中的成员节点,获得布隆过滤器以及标识本节点身份的布隆过滤器值。
在成员组中的各成员节点经过注册节点的核验,并获得布隆过滤器以及标识本节点身份的布隆过滤器值后,成员节点在通信交互时则可利用布隆过滤器进行身份认证。
本发明实施例提供的一种成员节点在通信交互时进行身份认证的方法(以节点A向节点B发送数据为例),流程如图4所示,包括如下步骤:
步骤S401:节点A使用区块链平台的成员组中的节点B的公钥KB,将包括本节点A的布隆过滤器值SA的特征信息加密成密文。
其中,所述布隆过滤器值SA以及所述成员组中各节点的公钥为所述节点A注册到所述成员组时从所述区块链平台的注册节点获取的;具体过程可参考上述图2或3所示的流程中的方法。
更优地,加密到所述密文中的特征信息还可以包括:节点A与节点B的会话的发送序列号。若节点A是首次给节点B发送数据,则发送序列号为初始值0。
此外,所述特征信息中还可以包括节点A的标识IDA等其它信息。
步骤S402:节点A将所述密文作为消息头与通信数据封装成数据包后发送给节点B。
更优地,对于特征信息中还包括节点A与节点B的会话的发送序列号的情况,节点A将所述密文作为消息头与通信数据封装成数据包后发送给节点B后,节点A还将上述的发送序列号加1。
步骤S403:节点B接收到所述数据包后,用本节点B的私钥KB’解密所述密文。
其中,节点B的私钥KB’是在注册到成员组时生成的一对密钥中的私钥。
步骤S404:节点B根据布隆过滤器FS对节点A进行身份认证。
本步骤中,节点B将SA映射到布隆过滤器FS;并根据映射结果认证所述节点A为所述成员组的节点后,处理所述数据包中的通信数据;其中,所述布隆过滤器FS是由所述注册节点发送给所述成员组中各节点的,具体过程可参考上述图2或3所示的流程中的方法。
更优地,针对特征信息中还携带节点A与节点B的会话的发送序列号的情况,则节点B可以在根据布隆过滤器FS对节点A进行身份认证前,先根据发送序列号对节点A进行身份的初步认证:
节点B从解密的密文中获取发送序列号,将获取的发送序列号与本地存储的节点A与节点B的会话的接收序列号进行比较;若两者一致,则所述节点A的身份得到初步认证,所述节点B将所述接收序列号加1;否则,所述节点A的身份认证不通过。
所述节点B在所述节点A的身份得到初步认证后,将SA映射到布隆过滤器FS,根据映射结果认证所述节点A为所述成员组的节点后,再处理所述数据包中的通信数据。
这样,节点在进行身份认证之前通过判别序列号的一致性即可判断消息是否为拒绝服务攻击,从而避免了大量的计算资源耗费在攻击消息的身份认证上。
当区块链平台的成员组中的成员节点需要离开区块链平台,不再参与平台工作时,其离开可以分为两种情况:第一种为需离去的节点主动向注册节点申请离开;另一种为节点不再参与区块链平台工作,直接离开。
第一种情况的节点离开区块链平台的方法流程如图5a所示,包括如下步骤S501~S505:
步骤S501:需要离去的成员节点(比如为节点F)向注册节点发送节点离去请求。
本步骤中,需要离去的成员节点F向注册节点发送的节点离去请求中包括本节点的标识ID以及利用本节点的私钥加密本节点的标识后得到的密文。
步骤S502:注册节点解密节点离去请求中的密文,获知需要离去的节点的标识。
本步骤中,注册节点从节点离去请求的明文中获取发送该请求的节点的标识,并根据获取的节点的标识,使用该节点的公钥(即节点F的公钥)解密所述节点离开请求的密文后,获取离开节点的标识(即节点F的标识)。
步骤S503:注册节点将分配给离开节点的布隆过滤器值归为闲置布隆过滤器值。
本步骤中,注册节点根据离开节点的标识,将对应节点的布隆过滤器值(即节点F的布隆过滤器值)归为闲置布隆过滤器值,进一步还可删除该节点的备份资料。
步骤S504:注册节点向成员组其它成员节点发送节点离去通知。
本步骤中,注册节点向区块链平台成员组其它成员节点发送节点离去通知;其中,发送给一个成员节点的节点离去通知是经该节点的公钥加密的,其中加密的内容包括:离开节点的标识(即节点F的标识)。
步骤S505:接收到节点离去通知的成员节点,解密节点离去通知,并删除对应节点的会话。
具体地,接收到节点离去通知的成员节点利用本节点的私钥解密节点离去通知后,获取离开节点(即节点F的标识);根据离开节点的标识删除为对应节点创建的会话及会话中的数据(即为节点F创建的会话及会话中的数据)。
第二种情况的节点离开区块链平台的方法流程如图5b所示,包括如下步骤S511~S515:
步骤S511:区块链平台的成员组中的一个成员节点(比如节点A)发现一个节点(比如为节点F)已离去,则向注册节点发送节点离去请求。
本步骤中,区块链平台的成员组中的一个成员节点(节点A)若发现一个节点(节点F)缺席共识工作的次数大于设定阈值,则向注册节点发送节点离去请求,该节点离去请求中包括本节点的标识ID(节点A的标识)以及利用本节点的私钥(节点A的私钥)加密的被发现已离去的节点的标识(节点F的标识)。
步骤S512:注册节点解密节点离去请求中的密文,获知被发现已离去的节点的标识。
本步骤中,注册节点从节点离去请求的明文中获取发送该请求的节点的标识(节点A的标识),并根据获取的节点的标识,使用该节点的公钥(即节点A的公钥)解密所述节点离开请求的密文后,获取离开节点的标识(即节点F的标识)。
步骤S513:注册节点将分配给离开节点的布隆过滤器值归为闲置布隆过滤器值。
本步骤中,注册节点根据离开节点的标识,将对应节点的布隆过滤器值(即节点F的布隆过滤器值)归为闲置布隆过滤器值,进一步还可删除该节点的备份资料。
步骤S504:注册节点向成员组其它成员节点发送节点离去通知。
本步骤中,注册节点向区块链平台成员组其它成员节点发送节点离去通知;其中,发送给一个成员节点的节点离去通知是经该节点的公钥加密的,其中加密的内容包括:离开节点的标识(即节点F的标识)。
步骤S505:接收到节点离去通知的成员节点,解密节点离去通知,并删除对应节点的会话。
具体地,接收到节点离去通知的成员节点利用本节点的私钥解密节点离去通知后,获取离开节点的标识(即节点F的标识);根据离开节点的标识删除为对应节点创建的会话及会话中的数据(即为节点F创建的会话及会话中的数据)。
基于上述的节点注册方法,本发明实施例提供的一种注册节点,内部结构如图5所示,包括:请求消息接收模块601、布隆过滤器构建模块602、身份核验模块603、核验结果返回模块604。
其中,请求消息接收模块601用于接收所有请求入网的节点发送的入网请求消息;其中,所述节点发送的入网请求消息中包括该节点的标识、身份证明材料以及由该节点产生的一对密钥中的公钥;
布隆过滤器构建模块602用于生成布隆过滤器值集合S,其中,所述集合S中的元素个数N不小于所述成员组的预估成员最大数;并根据所述集合S使用哈希函数构建布隆过滤器FS;
身份核验模块603用于根据接收的身份材料进行核验,将身份核验成功的节点注册到区块链平台的成员组,并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值。
核验结果返回模块604用于针对每个注册到所述成员组中的节点,用该节点的公钥分别加密该节点的身份核验结果后返回给该节点;其中,返回给该节点的身份核验结果中包括:所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及根据集合S构建的布隆过滤器FS,构建FS时所用的哈希函数。
进一步,身份核验模块603还可将所述集合S中未分配的布隆过滤器值作为闲置布隆过滤器值进行存储;之后,在根据身份核验模块603针对新的节点的入网请求消息中的身份材料对该节点身份核验成功后,将该新的节点注册到所述成员组,并为该新的节点分配一个闲置布隆过滤器值。
进一步,本发明实施例提供的注册节点还可包括:成员更新消息发送模块605。
成员更新消息发送模块605用于根据身份核验模块603针对新的节点的入网请求消息中的身份材料对该节点身份核验成功后,向所述成员组中其它节点发送成员更新消息;其中,发送给一个节点的成员更新消息是经该节点的公钥加密的,所述成员更新消息中包括:所述新的节点的标识与公钥。
进一步,本发明实施例提供的注册节点还可包括:节点删除模块(图中未标)。
节点删除模块用于接收到节点离开请求后,从所述节点离开请求的明文中获取发送该请求的节点的标识;根据获取的节点的标识,使用该节点的公钥解密所述节点离开请求的密文后,获取离开节点的标识;根据离开节点的标识,将对应节点的布隆过滤器值归为闲置布隆过滤器值。
进一步,节点删除模块还可用于向所述成员组中其它节点发送节点离去通知;其中,发送给一个节点的节点离去通知是经该节点的公钥加密的,其中加密的内容包括:所述离开节点的标识。
基于上述的成员节点在通信交互时的身份认证方法以及节点注册方法,本发明实施例提供的一种成员节点,内部结构如图6所示,包括:数据包发送模块701、数据包接收模块702。
数据包发送模块701用于使用区块链平台的成员组中对端节点的公钥KB,将包括本节点的布隆过滤器值的特征信息加密成密文后,将所述密文作为消息头与通信数据封装成数据包后发送给所述对端节点;其中所述特征信息还可包括:本节点与对端节点的会话的发送序列号,以及本节点的标识。
进一步,数据包发送模块701还可用于在所述将所述密文作为消息头与通信数据封装成数据包后发送给对端节点后,将所述发送序列号加1。
数据包接收模块702用于接收到对端节点发送的数据包后,用本节点的私钥解密所述数据包的密文,将从所述密文中获取的布隆过滤器值映射到布隆过滤器;并根据映射结果认证所述对端节点为所述成员组的节点后,处理所述数据包中的通信数据;其中,所述布隆过滤器值以及所述成员组中各节点的公钥为本节点注册到所述成员组时从所述区块链平台的注册节点获取的;所述布隆过滤器是由所述注册节点发送给所述成员组中各节点的。
具体地,数据包接收模块702用于接收到对端节点发送的数据包后,用本节点的私钥解密所述数据包的密文,从解密的密文中获取发送序列号,将获取的发送序列号与本地存储的本节点与节对端节点的会话的接收序列号进行比较;若两者一致,则所述对端节点的身份得到初步认证,将所述接收序列号加1;否则,所述对端节点的身份认证不通过;在对端节点的身份得到初步认证后,将从所述密文中获取的布隆过滤器值映射到布隆过滤器;并根据映射结果认证所述对端节点为所述成员组的节点后,处理所述数据包中的通信数据。
进一步,本发明实施例提供的成员节点中还可包括:注册模块703。
注册模块703用于向所述区块链平台的注册节点发送入网请求消息;其中,所述入网请求消息中包括本节点的标识、身份证明材料以及由本节点产生的一对密钥中的公钥;并接收到所述注册节点返回的身份核验结果后,用本节点的私钥解密所述身份核验结果,将其中携带的所有节点的标识及公钥、为该节点分配的布隆过滤器值,以及布隆过滤器和构建所述布隆过滤器时所用的哈希函数进行存储。
进一步,所述注册模块703还用于在接收到所述注册节点返回的身份核验结果后,为所述成员组中的每个节点创建一个会话,对应每个会话存储该会话涉及的节点的标识与公钥,并为每个会话设置一个初始值为0的发送序列号和接收序列号。
此外,本发明实施例提供的成员节点中还可包括:成员信息更新模块704。
成员信息更新模块704用于接收到由所述注册节点加密、发送的包括新注册到所述成员组的节点的标识与公钥的成员更新消息后,用本节点的私钥解密所述成员更新消息,并为所述新注册到所述成员组的节点创建一个会话,并设置该会话的发送序列号和接收序列号的初始值为0;其中,所述成员更新消息是所述注册节点使用本节点的公钥加密的。
进一步,本发明实施例提供的成员节点中还可包括:节点离开处理模块(图中未标)。
节点离开处理模块用于向注册节点发送节点离去通知;所述节点离去通知中的明文中包括本节点的标识,用本节点的私钥加密的所述节点离去通知中的密文中包括离开节点的标识;其中,所述离开节点为本节点所述成员组中的其它节点。
进一步,节点离开处理模块还可用于接收到节点离去通知后,利用本节点的私钥解密节点离去通知后,获取所述离开节点的标识,并根据所述离开节点的标识删除为对应节点创建的会话及会话中的数据。
本发明实施例的技术方案中,利用布隆过滤器值与布隆过滤器之间的映射关系可判别一个元素是否属于所表示的集合的功能,来实现认证节点是否属于成员组的功能。由于数据包中携带的用于进行身份认证的布隆过滤器值,体积比传统数字证书要小得多,将其用作节点间通信的身份认证媒介能大大降低消耗在身份认证上的通信开销,从而解决了体积过大的数字证书作为身份凭证在多节点多交互的区块链环境中造成大量通信资源浪费的问题。
此外,注册节点生成的布隆过滤器值集合S中的元素个数N不小于所述成员组的预估成员最大数,因此,集合S中有充分的未分配的布隆过滤器值作为闲置布隆过滤器值,可以用作分配给后续注册到成员组中的节点,且将新节点的相关信息发送给成员组中的原成员节点,从而实现组内成员的动态管理,解决了布隆过滤器一旦构建便不能再变化的问题。
进一步,节点间的通信携带会话的发送序列号,节点在进行身份认证之前通过判别序列号的一致性即可判断消息是否为拒绝服务攻击,从而避免了大量的计算资源耗费在攻击消息的身份认证上。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (23)
1.一种节点身份认证方法,包括:
节点A使用区块链平台的成员组中的节点B的公钥KB,将包括本节点A的布隆过滤器值SA的特征信息加密成密文后,将所述密文作为消息头与通信数据封装成数据包后发送给节点B;
所述节点B接收到所述数据包后,用本节点B的私钥KB’解密所述密文,将SA映射到布隆过滤器FS;并根据映射结果认证所述节点A为所述成员组的节点后,处理所述数据包中的通信数据;
其中,所述布隆过滤器值SA以及所述成员组中各节点的公钥为所述节点A注册到所述成员组时从所述区块链平台的注册节点获取的;所述布隆过滤器FS是由所述注册节点发送给所述成员组中各节点的。
2.根据权利要求1所述的方法,其特征在于,所述特征信息还包括:所述节点A与节点B的会话的发送序列号;以及
在所述将所述密文作为消息头与通信数据封装成数据包后发送给节点B后,所述方法还包括:所述节点A还将所述发送序列号加1;以及
在所述处理所述数据包中的通信数据之前,所述方法还包括:
所述节点B从解密的密文中获取发送序列号,将获取的发送序列号与本地存储的节点A与节点B的会话的接收序列号进行比较;
若两者一致,则所述节点A的身份得到初步认证,所述节点B将所述接收序列号加1;
否则,所述节点A的身份认证不通过。
3.根据权利要求2所述的方法,其特征在于,所述将SA映射到布隆过滤器FS,具体为:
所述节点B在所述节点A的身份得到初步认证后,将SA映射到布隆过滤器FS。
4.根据权利要求1所述的方法,其特征在于,所述由所述注册节点发送给所述成员组中各节点的布隆过滤器FS是根据如下方法构建的:
所述注册节点接收所有请求入网的节点发送的入网请求消息;其中,所述节点发送的入网请求消息中包括该节点的标识、身份证明材料以及由该节点产生的一对密钥中的公钥;
所述注册节点根据接收的身份材料进行核验,将身份核验成功的节点注册到区块链平台的成员组,并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值;其中,所述集合S中的元素个数N不小于所述成员组的预估成员最大数;
所述注册节点用各节点的公钥分别加密各节点的身份核验结果后返回给对应的节点;其中,返回给节点的身份核验成功结果中包括:所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及根据集合S构建的布隆过滤器FS,构建FS时所用的哈希函数。
5.根据权利要求4所述的方法,其特征在于,在所述为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值后,还包括:
所述注册节点将所述集合S中未分配的布隆过滤器值作为闲置布隆过滤器值进行存储。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述注册节点接收到新的节点发送的入网请求消息,并根据该入网请求消息中的身份材料对该节点身份核验成功后,将该新的节点注册到所述成员组,并为该新的节点分配一个闲置布隆过滤器值;
所述注册节点向该节点返回用该节点的公钥加密的身份核验结果,其中包括所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及布隆过滤器FS和构建FS时所用的哈希函数。
7.根据权利要求4-6任一所述的方法,其特征在于,还包括:
所述成员组中的节点接收到身份核验结果后,用本节点的私钥解密所述身份核验结果,将其中携带的所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及布隆过滤器FS和构建FS时所用的哈希函数进行存储;并
为所述成员组中的每个节点创建一个会话,对应每个会话存储该会话涉及的节点的标识与公钥,并为每个会话设置一个初始值为0的发送序列号和接收序列号。
8.根据权利要求7所述的方法,其特征在于,在所述注册节点接收到新的节点发送的入网请求消息,并根据该入网请求消息中的身份材料对该节点身份核验成功后,还包括:
所述注册节点向所述成员组中其它节点发送成员更新消息;其中,发送给一个节点的成员更新消息是经该节点的公钥加密的,所述成员更新消息中包括:所述新的节点的标识与公钥。
9.根据权利要求8所述的方法,其特征在于,还包括:
接收到所述成员更新消息的节点,解密、存储成员更新消息,并为所述新的节点的创建一个会话,并设置该会话的发送序列号和接收序列号的初始值为0。
10.根据权利要求4所述的方法,其特征在于,还包括:
所述注册节点接收到节点离开请求后,从所述节点离开请求的明文中获取发送该请求的节点的标识;
所述注册节点根据获取的节点的标识,使用该节点的公钥解密所述节点离开请求的密文后,获取离开节点的标识;
所述注册节点根据离开节点的标识,将对应节点的布隆过滤器值归为闲置布隆过滤器值。
11.根据权利要求10所述的方法,其特征在于,在所述获取离开节点的标识后,还包括:
所述注册节点向所述成员组中其它节点发送节点离去通知;其中,发送给一个节点的节点离去通知是经该节点的公钥加密的,其中加密的内容包括:所述离开节点的标识;
接收到节点离去通知的节点利用本节点的私钥解密节点离去通知后,获取所述离开节点的标识,并根据所述离开节点的标识删除为对应节点创建的会话及会话中的数据。
12.一种成员节点,包括:
数据包发送模块,用于使用区块链平台的成员组中对端节点的公钥KB,将包括本节点的布隆过滤器值的特征信息加密成密文后,将所述密文作为消息头与通信数据封装成数据包后发送给所述对端节点;
数据包接收模块,用于接收到对端节点发送的数据包后,用本节点的私钥解密所述数据包的密文,将从所述密文中获取的布隆过滤器值映射到布隆过滤器;并根据映射结果认证所述对端节点为所述成员组的节点后,处理所述数据包中的通信数据;
其中,所述布隆过滤器值以及所述成员组中各节点的公钥为本节点注册到所述成员组时从所述区块链平台的注册节点获取的;所述布隆过滤器是由所述注册节点发送给所述成员组中各节点的。
13.根据权利要求12所述的成员节点,其特征在于,所述特征信息还包括:本节点与对端节点的会话的发送序列号;以及
所述数据包发送模块还用于在所述将所述密文作为消息头与通信数据封装成数据包后发送给对端节点后,将所述发送序列号加1;以及
所述数据包接收模块具体用于接收到对端节点发送的数据包后,用本节点的私钥解密所述数据包的密文,从解密的密文中获取发送序列号,将获取的发送序列号与本地存储的本节点与节对端节点的会话的接收序列号进行比较;若两者一致,则所述对端节点的身份得到初步认证,将所述接收序列号加1;否则,所述对端节点的身份认证不通过;在对端节点的身份得到初步认证后,将从所述密文中获取的布隆过滤器值映射到布隆过滤器;并根据映射结果认证所述对端节点为所述成员组的节点后,处理所述数据包中的通信数据。
14.根据权利要求12或13所述的成员节点,其特征在于,还包括:
注册模块,用于向所述区块链平台的注册节点发送入网请求消息;其中,所述入网请求消息中包括本节点的标识、身份证明材料以及由本节点产生的一对密钥中的公钥;并接收到所述注册节点返回的身份核验结果后,用本节点的私钥解密所述身份核验结果,将其中携带的所有节点的标识及公钥、为该节点分配的布隆过滤器值,以及布隆过滤器和构建所述布隆过滤器时所用的哈希函数进行存储。
15.根据权利要求14所述的成员节点,其特征在于,
所述注册模块还用于在接收到所述注册节点返回的身份核验结果后,为所述成员组中的每个节点创建一个会话,对应每个会话存储该会话涉及的节点的标识与公钥,并为每个会话设置一个初始值为0的发送序列号和接收序列号。
16.根据权利要求15所述的成员节点,其特征在于,还包括:
成员信息更新模块,用于接收到由所述注册节点加密、发送的包括新注册到所述成员组的节点的标识与公钥的成员更新消息后,用本节点的私钥解密所述成员更新消息,并为所述新注册到所述成员组的节点创建一个会话,并设置该会话的发送序列号和接收序列号的初始值为0;其中,所述成员更新消息是所述注册节点使用本节点的公钥加密的。
17.根据权利要求12所述的成员节点,其特征在于,还包括:
节点离开处理模块,用于向注册节点发送节点离去通知;所述节点离去通知中的明文中包括本节点的标识,用本节点的私钥加密的所述节点离去通知中的密文中包括离开节点的标识;其中,所述离开节点为本节点所述成员组中的其它节点。
18.根据权利要求17所述的成员节点,其特征在于,
所述节点离开处理模块还用于接收到节点离去通知后,利用本节点的私钥解密节点离去通知后,获取所述离开节点的标识,并根据所述离开节点的标识删除为对应节点创建的会话及会话中的数据。
19.一种区块链平台,包括:注册节点以及如权利要求12-18所述的成员节点;其中,所述注册节点包括:
请求消息接收模块,用于接收所有请求入网的节点发送的入网请求消息;其中,所述节点发送的入网请求消息中包括该节点的标识、身份证明材料以及由该节点产生的一对密钥中的公钥;
布隆过滤器构建模块,用于生成布隆过滤器值集合S,其中,所述集合S中的元素个数N不小于所述区块链平台的成员组的预估成员最大数;并根据所述集合S使用哈希函数构建布隆过滤器FS;
身份核验模块,用于根据接收的身份材料进行核验,将身份核验成功的节点注册到区块链平台的成员组,并为所述成员组中的每个节点从布隆过滤器值集合S中分配一个布隆过滤器值;
核验结果返回模块,用于针对每个注册到所述成员组中的节点,用该节点的公钥分别加密该节点的身份核验结果后返回给该节点;其中,返回给该节点的身份核验结果中包括:所述成员组中所有节点的标识及公钥K、为该节点分配的布隆过滤器值,以及根据集合S构建的布隆过滤器FS,构建FS时所用的哈希函数。
20.根据权利要求19所述的区块链平台,其特征在于,
所述身份核验模块还用于将所述集合S中未分配的布隆过滤器值作为闲置布隆过滤器值进行存储;之后,在根据新的节点的入网请求消息中的身份材料对该节点身份核验成功后,将该新的节点注册到所述成员组,并为该新的节点分配一个闲置布隆过滤器值。
21.根据权利要求20所述的区块链平台,其特征在于,所述注册节点还包括:
成员更新消息发送模块,用于向所述成员组中其它节点发送成员更新消息;其中,发送给一个节点的成员更新消息是经该节点的公钥加密的,所述成员更新消息中包括:所述新的节点的标识与公钥。
22.根据权利要求19-21任一所述的区块链平台,其特征在于,所述注册节点还包括:
节点删除模块,用于接收到节点离开请求后,从所述节点离开请求的明文中获取发送该请求的节点的标识;根据获取的节点的标识,使用该节点的公钥解密所述节点离开请求的密文后,获取离开节点的标识;根据离开节点的标识,将对应节点的布隆过滤器值归为闲置布隆过滤器值。
23.根据权利要求22所述的区块链平台,其特征在于,
所述节点删除模块还用于向所述成员组中其它节点发送节点离去通知;其中,发送给一个节点的节点离去通知是经该节点的公钥加密的,其中加密的内容包括:所述离开节点的标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810456381.2A CN108768966B (zh) | 2018-05-14 | 2018-05-14 | 区块链平台和成员节点以及节点身份认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810456381.2A CN108768966B (zh) | 2018-05-14 | 2018-05-14 | 区块链平台和成员节点以及节点身份认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108768966A CN108768966A (zh) | 2018-11-06 |
CN108768966B true CN108768966B (zh) | 2019-05-03 |
Family
ID=64010445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810456381.2A Active CN108768966B (zh) | 2018-05-14 | 2018-05-14 | 区块链平台和成员节点以及节点身份认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108768966B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7209518B2 (ja) * | 2018-12-03 | 2023-01-20 | 富士通株式会社 | 通信装置、通信方法、および通信プログラム |
CN109862136A (zh) * | 2019-03-19 | 2019-06-07 | 全链通有限公司 | 基于域名区块链的群组通信方法、区块链节点及介质 |
CN110445627B (zh) * | 2019-08-12 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 群组更新方法、装置、计算机设备以及计算机存储介质 |
CN111429198A (zh) * | 2019-12-24 | 2020-07-17 | 中国航天系统科学与工程研究院 | 一种航天试验数据交易方法 |
CN112417424A (zh) * | 2020-12-02 | 2021-02-26 | 中国电力科学研究院有限公司 | 一种电力终端的认证方法及系统 |
CN113037864B (zh) * | 2021-04-07 | 2022-11-29 | 郑州师范学院 | 一种数据存储系统及一种数据存储方法 |
CN112950211B (zh) * | 2021-05-14 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 一种交易验重方法、装置、设备以及介质 |
CN114626831A (zh) * | 2022-04-01 | 2022-06-14 | 中国工商银行股份有限公司 | 基于区块链的项目管理方法、装置、存储介质和电子设备 |
CN114780769B (zh) * | 2022-06-13 | 2022-09-13 | 杭州合众数据技术有限公司 | 基于布隆过滤器的人员核查方法 |
CN115208669B (zh) * | 2022-07-16 | 2023-11-07 | 中软航科数据科技(珠海横琴)有限公司 | 一种基于区块链技术的分布式身份认证方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855787A (zh) * | 2005-04-19 | 2006-11-01 | 武汉烽火网络有限责任公司 | 数据传输设备和方法及数据环网系统 |
CN102612035A (zh) * | 2012-04-13 | 2012-07-25 | 北京工业大学 | 多级分簇无线传感器网络中能量高效的身份认证方法 |
CN106503981A (zh) * | 2016-10-19 | 2017-03-15 | 江苏通付盾科技有限公司 | 简单支付验证节点交易查询方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120287934A1 (en) * | 2010-01-29 | 2012-11-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Packet Routing in a Network by Modifying In-Packet Bloom Filter |
CN103188674A (zh) * | 2011-12-29 | 2013-07-03 | 无锡南理工科技发展有限公司 | 移动栅格互联环境下的地面网络操作控制中心和卫星间可信认证系统 |
CN104052600A (zh) * | 2013-03-15 | 2014-09-17 | 南京理工大学常熟研究院有限公司 | 社会公共安全视频监控中心和多网融合节点可信认证系统 |
-
2018
- 2018-05-14 CN CN201810456381.2A patent/CN108768966B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1855787A (zh) * | 2005-04-19 | 2006-11-01 | 武汉烽火网络有限责任公司 | 数据传输设备和方法及数据环网系统 |
CN102612035A (zh) * | 2012-04-13 | 2012-07-25 | 北京工业大学 | 多级分簇无线传感器网络中能量高效的身份认证方法 |
CN106503981A (zh) * | 2016-10-19 | 2017-03-15 | 江苏通付盾科技有限公司 | 简单支付验证节点交易查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108768966A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768966B (zh) | 区块链平台和成员节点以及节点身份认证方法 | |
CN106357396B (zh) | 数字签名方法和系统以及量子密钥卡 | |
CN103354498B (zh) | 一种基于身份的文件加密传输方法 | |
CN110046521A (zh) | 去中心化隐私保护方法 | |
Fan et al. | TraceChain: A blockchain‐based scheme to protect data confidentiality and traceability | |
CN106339639A (zh) | 基于区块链的学分成绩管理方法及系统 | |
WO2015072203A1 (ja) | 情報配信システム | |
US10742426B2 (en) | Public key infrastructure and method of distribution | |
CN106452739A (zh) | 一种量子网络服务站以及量子通信网络 | |
US8806206B2 (en) | Cooperation method and system of hardware secure units, and application device | |
CN110959163A (zh) | 能够在多个存储节点上安全存储大型区块链的计算机实现的系统和方法 | |
CN108964896B (zh) | 一种基于群组密钥池的Kerberos身份认证系统和方法 | |
CN101814991A (zh) | 基于身份的双向认证方法及系统 | |
Shen et al. | Quantum dialogue with authentication based on Bell states | |
CN114884698B (zh) | 基于联盟链的Kerberos与IBC安全域间跨域认证方法 | |
CN103634788A (zh) | 前向安全的无证书多代理签密方法 | |
CN110098922A (zh) | 一种量子密钥与经典密钥的一体式融合加密装置及方法 | |
CN112382376A (zh) | 基于区块链的医疗器械管理追溯系统 | |
CN111416712B (zh) | 基于多个移动设备的量子保密通信身份认证系统及方法 | |
CN101562519B (zh) | 用户分组通信网络的数字证书管理方法和用于接入用户分组通信网络中的用户终端 | |
CN102612035B (zh) | 多级分簇无线传感器网络中能量高效的身份认证方法 | |
CN109889329A (zh) | 基于量子密钥卡的抗量子计算智能家庭量子通信方法和系统 | |
CN109743162A (zh) | 一种利用理想格操作进行身份属性匹配的加密方法 | |
CN110572788B (zh) | 基于非对称密钥池和隐式证书的无线传感器通信方法和系统 | |
CN104915689B (zh) | 一种智能卡信息处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |