掌桥专利:专业的专利平台
掌桥专利
首页

一种面向联盟链跨链的身份认证方法

文献发布时间:2024-04-18 20:00:50


一种面向联盟链跨链的身份认证方法

技术领域

本发明涉及区块链技术与应用、大数据环境下政府信息化管理领域,具体应用于面向金融、通信、能源、物流等行业的区块链应用监管领域。

背景技术

近年来,联盟链技术以其分布式部署、数据不可篡改、交易可追溯的特点被广泛用于关系国计民生的行业,比如金融、物流、医疗等。出于利益的关系,行业内的大小组织往往会结成多个联盟并构建多条联盟链。由于行业内的数据被割裂地保存在不同联盟链上,这些数据孤岛成为了行业内业务协同与信息交流的阻碍。针对这一严重现象,实现联盟链间的跨链数据访问成为业界与学界共同关注的问题。

如果联盟链A上的一位用户要访问联盟链B上的数据,那么链B如何验证这位用户的身份是实现安全的跨链数据访问首先需要解决的问题。当前,一些研究者已经关注到这一问题,并且尝试将已有的身份认证方法应用于跨链数据访问场景。然而,他们并没有全面地考虑三个关键问题。

首先,身份认证方案必须克服联盟链实现技术的差异,具备完全兼容性。一些研究只针对同构链的跨链数据访问提出了身份认证方案,没有考虑异构链的复杂情况。另一些研究针对异构链的跨链数据访问,提出所有参与跨链的节点与用户都必须修改密码学设置以满足统一的要求。这种做法不仅会造成大量重新设置的开销,还会增加用户与节点管理多套密钥的负担。完全兼容即让联盟链的节点与用户使用已有密码设置就能够完成跨链身份认证。

其次,身份认证方案必须在保护用户隐私的同时具备身份追溯能力,实现条件匿名。一些针对跨链资产交易的研究仅考虑了对交易信息的隐私保护,未涉及用户身份的隐私保护。一些研究虽然提出了用户身份的匿名化方法,但这些方法未提供追溯能力。具体而言,条件匿名要求在整个跨链过程中,其他所有节点都不能获取用户的真实身份,而只有审计节点可以追溯用户的真实身份。

最后,身份认证方案必须抵御基于链上记录的链接攻击,以保护用户的身份隐私,达成不可链接性。联盟链上的所有节点共同维护一份账本,攻击者可能入侵并控制一些节点进而读取账本中的所有记录。攻击者能够通过链接多条记录分析用户的行为模式,进而推测用户的身份。目前,已有研究实现了对用户身份的匿名化,但无法抵御链接攻击。因此,跨链身份认证方案应具有不可链接性。

针对上述问题,本发明提出了一种面向联盟链跨链的身份认证方法。通过部署一条中继链来适配所有联盟链的密码学设置,用户可沿用其已有密码配置发起跨链事务,从而实现完全兼容性;通过同态加密和审计者公钥为用户生成假名,仅审计者可追溯真实身份,从而实现条件匿名性;允许用户自行生成公私钥对,用户假名随公钥而更新,从而实现不可链接性。本发明解决了联盟链跨链中的用户身份认证需求,有助于区块链行业的健康发展。

发明内容

本发明针对当前联盟链跨链身份认证中存在的难题,深入分析相关跨链技术与认证方案,在此基础上提出了面向联盟链跨链的身份认证方法,以满足联盟链跨链认证过程中的完全兼容、条件匿名和不可链接需求。本方法分为构建基于中继链的联盟链跨链系统和设计隐私保护的跨链认证协议两个主要步骤。

S1:构建基于中继链的联盟链跨链系统。为了实现联盟链跨链的安全访问,构建一个基于中继链的跨链系统。如图1所示,该系统包含一条中继链和若干平行链,系统构建的具体过程可以分成以下2个步骤:构建中继链和接入平行链。

S11:构建中继链。如图1所示,中继链是跨链系统的核心部分,负责跨链事务的验证与转发。构建中继链的具体过程可分为以下5个步骤:

(1)构建全局可信机构。在构建中继链之前,首先需要选定一个全局可信机构(GTA)作为信任锚点。参与中继链构建的多个组织进行投票,共同选定一个完全可信的GTA。GTA对外提供注册接口,为中继链与平行链提供注册服务。

(2)部署中继链节点。中继链节点分为验证节点和审计节点(AD)两类,其中验证节点是普通节点,负责跨链事务的验证和转发,AD则是中继链上的特权节点,负责追溯匿名跨链事务发起者的身份。首先,由监管者部署一个AD节点。然后,参与构建中继链的多个组织根据跨链系统的安全性和可扩展性需求,确定验证节点个数并共同部署。接着,验证节点和审计节点均在本地生成公私钥对并向GTA发送证书颁发请求。最后,GTA完成节点身份的注册,并为其颁发数字证书。

(3)构建中继链网络。利用步骤(2)获得的中继链节点证书信息,在所有中继链节点上配置中继链的网络信息,保证中继链节点之间的网络通信。

(4)启动中继链网络。为中继链网络配置启动环境,初始化中继链网络。

(5)生成并发布跨链系统公开参数。作为中继链上的特权节点,AD负责生成跨链系统的参数并将其公开发布。首先,AD生成一对Paillier同态公私钥

S12:接入平行链。在完成中继链的构建后,需要将若干条联盟链作为平行链接入到中继链,以构成跨链系统。此时,待接入的平行链已经具备完整的联盟链生态,已配置满足业务需求的密码学组件,且链上节点和用户均拥有所属身份管理机构(IMA)颁发的身份凭证。本步骤完成平行链接入到中继链。具体过程分为以下4个步骤:

(1)平行链选取校验节点。在接入跨链系统前,平行链需要选取若干校验节点。根据平行链的安全性需求,设定校验节点数量为N,根据平行链节点标识随机选取N个节点作为校验节点。

(2)平行链发起注册请求。平行链管理员通过GTA的注册接口提出平行链注册请求,包含平行链的基本信息以及密码学配置信息,其中基本信息包括平行链业务信息、节点数量、所属IMA公钥pk

(3)中继链完成注册操作。分为以下4个步骤:

a)GTA为待接入平行链生成唯一标识CID,并将平行链标识CID和所属IMA公钥pk

b)GTA将平行链所用的签名算法、哈希算法等密码学配置存储到中继链中,中继链上的验证节点需要配置相关密码学组件,以保证平行链上所使用的密码学算法在中继链上均可实现。

c)GTA查询验证节点当前分配情况,选择负载最低的验证节点,为其存储平行链标识CID、校验节点IP地址及其公钥,用于后续与该平行链的通信。

d)GTA将平行链标识CID以及校验节点IP地址发送给被分配验证节点,返回平行链标识CID以及被分配验证节点IP地址至平行链。

(4)平行链完成接入连接。平行链收到注册结果后,校验节点将被分配验证节点的通信信息存储在本地,并在平行链内发布CID。最后,平行链上的校验节点与中继链上对应的验证节点建立连接。

S2:设计隐私保护的完全跨链认证协议。为实现跨链过程中的完全兼容性、条件匿名性和不可链接性,设计一种隐私保护的完全跨链认证协议。具体过程分为以下4个步骤:平行链用户跨链注册、跨链身份验证、用户假名更新和用户身份追溯。

S21:平行链用户跨链注册。平行链上的用户只有在跨链系统中完成注册,才可以发起跨链事务。用户跨链注册的过程分为以下7个步骤:

(1)用户发起跨链注册请求。平行链上用户向所属IMA发送一条跨链注册的请求消息Msg

Msg

(2)IMA处理注册请求。IMA收到消息Msg

Msg

(3)GTA验证注册请求。GTA收到请求消息Msg

(4)GTA拒绝注册请求。GTA向IMA返回一条拒绝用户注册消息Msg

(5)GTA生成跨链身份信息。GTA为用户生成跨链身份信息,包含k个令牌Token以及假名生成器Psg。

a)GTA为用户身份标识ID生成k个掩码。随机选择k个随机数m

b)GTA为用户生成一个随机数

c)GTA为用户构造假名生成器,根据公式(4),计算Psg。

d)GTA用用户公钥加密B得到密文cipher,向IMA返回用户注册结果Msg

Msg

(6)IMA处理跨链身份信息。IMA收到消息Msg

Msg

(7)用户接收并保存跨链身份信息。用户收到消息Msg

S22:跨链身份验证。为了保证联盟链跨链的安全性,需要对发起跨链事务的用户进行身份认证。身份认证的过程贯穿于跨链事务的流转过程,具体过程分为以下6个步骤:

(1)用户发起跨链事务。用户向所在平行链发起一个跨链事务的请求消息Msg

Msg

(2)校验节点转发跨链事务。校验节点捕获Msg

Msg

(3)验证节点广播跨链事务。收到Msg

(4)验证节点验证跨链事务。其他验证节点收到广播的消息Msg

a)验证公钥合法性。首先,验证节点根据跨链事务中用户身份信息的bid

b)验证事务签名。首先,验证节点根据消息中的平行链标识CID在中继链上检索得到该平行链所用的签名算法、哈希算法。然后,使用获取的签名算法及哈希算法以及用户公钥pk验证事务签名σ

(5)跨链事务转发。验证节点对跨链事务达成共识后,将其打包存储上链,并将有效事务广播给目的平行链的校验节点。

(6)跨链事务执行。目的平行链的校验节点验证消息来源后,向目的平行链广播该事务。目的平行链执行跨链事务。

S23:用户假名更新。为了实现用户身份的不可链接性,需要对用户假名进行更新,具体流程分为以下5个步骤:

(1)用户生成公私钥对。用户使用原密码学算法自行生成新的公私钥对,秘密存储sk′。

(2)用户发起假名更新请求。平行链上用户向所属IMA发起假名更新请求Msg

Msg

(3)IMA验证假名更新请求。首先,IMA验证用户证书的有效性。然后,IMA从用户证书中提取出原公钥pk,验证用户签名的有效性。若均验证成功,则进入步骤(4),否则返回拒绝更新。

(4)IMA更新用户假名。首先,IMA计算用户身份标识ID,在本地检索得到用户假名生成器Psg。然后,IMA为用户生成新假名,计算

(5)用户存储新假名。用户收到返回的新假名PS′,将其存储在本地,用于下次跨链事务。

S24:用户身份追溯。当检测到异常跨链事务时,审计节点可以根据事务标识在中继链上追溯异常跨链事务的发起者身份。具体流程分为以下2个步骤:

(1)解析异常跨链事务。审计节点根据事务标识从中继链上获取异常跨链事务,从中解析获取相关身份信息,包括用户公钥pk、用户假名PS以及区块地址bid

(2)揭露用户身份。仅审计节点可使用自己的私钥sk

相对于现有技术,本发明的优点如下:

本发明提出了一种面向联盟链跨链的身份认证方法,包括构建基于中继链的跨链系统和设计隐私保护的完全跨链认证协议两个主要步骤。与当前联盟链跨链身份认证方法相比,本方法的优点在于:

(1)构建基于中继链的联盟链跨链系统。在S1中,将所有平行链的密码学配置信息都存储在中继链上,并由中继链负责跨链事务的验证,避免了在受访链上进行身份认证出现密码学配置不支持的问题。在S1中,实现了中继链节点的职责分离。中继链上设有GTA、验证节点和审计节点,分别负责用户身份的注册、验证和追溯,三种服务互不相干,避免了权利的集中和滥用,提高了跨链系统的安全性。

(2)设计隐私保护的完全跨链认证协议。在S2中,利用审计节点的公钥与同态加密为用户生成假名,从而保证在对用户身份匿名化的同时审计者依然能够用其私钥追溯用户的真实身份。在S2中,不仅让用户的假名随其公钥的改变而更新,还利用同态加密降低了更新成本。用户通过采用不同的假名进行跨链访问,能够抵御链接攻击,防止暴露自己的身份。

附图说明

图1基于中继链的跨链系统结构图;

图2跨链系统部署架构图;

图3平行链用户跨链注册交互示意图;

图4跨链身份验证流程图;

图5用户假名更新过程示意图。

具体实施方式

下面结合本发明附图,对实施例中的技术方案进行详细描述。显然,以下文字所描述的实施例仅仅是本发明方法的一个实施例,而不是全部实施例。基于以下实施例,本领域普通技术人员在未做出创造性劳动前提下所获得的所有其它实施例,均属于本发明保护的范围。

实施例1:

在介绍本发明实施例之前,需要先介绍实施例中平行链的架构,实施例中的两条平行链需要接入到中继链上实现跨链访问。以一条平行链构造为例,平行链上部署有4个Peer节点,分别隶属于两个不同组织Org1及Org2。每个组织对应现实中的一个企业或单位机构。每个组织拥有2个Peer节点。平行链上的所有节点都加入Hyperledger Fabric网络中的一个通道Channel1,维护同一个业务账本。在密码学配置方面,该平行链采用PKI认证体制,使用RSA算法作为签名算法以及SHA1函数作为哈希函数。此外,平行链还拥有一个IMA程序,运行在独立服务器上,在承担CA工作的同时,还参与用户跨链注册和用户假名更新。

S1:构建基于中继链的联盟链跨链系统。跨链系统的部署架构如图2所示。具体可以分为以下2个步骤:中继链搭建和平行链接入。

S11:搭建中继链。具体流程可以分为以下5个步骤:

(1)构建全局可信机构。基于openssl和pbc库编写全局可信机构(GTA)程序,在独立服务器上运行,对外提供三类基本功能接口,包括中继链节点注册relaynode_reg()、平行链注册parachain_reg()以及平行链用户注册parauser_reg()。

(2)部署中继链节点。在中继链上配置4个peer节点,分别记为peer0、peer1、peer2和peer3。其中peer0节点为审计者,其他节点为验证者。中继链节点利用ssh-keygen生成非对称密钥对,并基于该密钥对利用openssh构建证书身份请求csr文件。最后,利用csr文件调用GTA的relaynode_reg()接口注册中继链节点身份,中继链节点保存自身的身份证书。

(3)构建中继链网络。将步骤(2)生成的中继链节点证书存放到crypto-config/peerOrganizations//msp文件夹下。配置core.yaml文件,包括peer节点占用的端口、存储区块链账本的地址、身份证书存放地址等。此外,为每个验证节点安装跨链代理程序,使其具备与其他链节点通信的能力。

(4)启动中继链网络。配置docker-compose.yaml文件,包括环境变量、创世块生成文件存放地址、中继链节点参数等。利用docker-compose up命令启动中继链网络。

(5)生成并发布跨链系统公开参数。审计节点(AD)在本地调用PBC库执行大数运算。为了保证80bit安全级别,AD首先调用mpz_urandomb()函数和mpz_nextprime()函数生成两个512bit的大素数p和q,然后调用mpz_mul()函数计算n=p·q。接下来,调用mpz_lcm()函数计算λ=lcm(p-1,q-1)。为方便计算,选取g=n+1。最后,调用mpz_inverse()函数计算μ=L(g

S12:接入平行链。具体流程可以分为以下4个步骤:

(1)平行链选取校验节点。设定校验节点数量为1,选取peer0.org1节点作为校验节点,为其安装跨链代理程序。

(2)平行链发起注册请求。平行链管理员调用GTA的parachain_reg()接口,输入参数param

(3)中继链完成注册操作。分为以下4个步骤:

a)GTA为平行链计算唯一标识CID=sha256(param

b)GTA通过调用区块链SDK将存储到中继链上。

c)GTA调用函数select_miniload()函数选择负载最低的验证节点,选取peer1节点,peer1节点存储

d)将平行链标识CID和peer1节点IP地址vldIpAddr返回到接口。

(4)平行链完成接入连接。校验节点在本地存储(CID,vldIpAddr),检验节点和对应验证节点通过跨链代理程序建立socket连接。

S2:实现隐私保护的完全跨链认证协议。具体流程分为平行链用户跨链注册、跨链身份验证、用户假名更新和用户身份追溯4个步骤。

S21:平行链用户跨链注册。具体交互过程如图3所示,分为以下7个步骤:

(1)用户发起跨链注册请求。用户向所属IMA发起跨链注册请求RegReq={cert,tst

(2)IMA处理注册请求。IMA验证用户签名的有效性,通过MSP验证用户出示证书的合法性,并查询证书吊销列表判断证书是否被吊销。若验证失败,返回注册失败消息FailRegResp={InvalidRequest}。IMA为用户生成唯一身份标识,计算ID=sha256(cert||CID)。IMA调用GTA的接口parauser_reg(),输入参数为param={ID,cert,CID,Sig_ima(*)}。

(3)GTA验证注册请求。GTA根据CID在中继链中检索得到该链使用RSA签名算法和SHA1哈希函数,在本地检索得到键值对

(4)GTA拒绝注册请求。GTA拒绝注册响应内容为RegResp={InvalidID},IMA向用户返回注册失败消息FailRegResp={InvalidRequest}。

(5)GTA生成跨链身份信息。GTA为用户生成10个令牌以及1个假名生成器。

a)调用pbc_mpz_random()函数生成10个小于n的随机数{m

b)调用mpz_mul()和mpz_powm()函数计算

c)GTA调用mpz_mul()和mpz_powm()函数为用户生成假名生成器,计算Psg=g

d)GTA从用户证书cert中提取出用户公钥pk,计算cipher=E

(6)IMA处理跨链身份信息。IMA从API接口获取到注册响应,将键值对存储在本地。接下来,IMA同样从用户证书cert中提取出用户公钥pk,调用mpz_mul()和mpz_powm()为用户生成假名,计算

(7)用户接收并保存跨链身份信息。用户用自己的私钥sk解密cipher得到B=D

S22:跨链身份验证。跨链身份验证流程如图4所示,具体可以分为以下6个步骤:

(1)用户发起跨链事务。用户向平行链网络发起一个跨链事务请求crossTxReq={desCID,desSourId,PS,pk,bid

(2)校验节点转发跨链事务。校验节点在平行链上捕获跨链事务请求,使用基于RSA的门限签名算法对(crossTxReq||CID)签名得到σ′。校验节点通过跨链代理程序与中继链上的peer1节点建立socket连接,发送userCrossTxReq={crossTxReq,CID,σ′}。

(3)验证节点广播跨链事务。中继链上的peer1节点收到userCrossTxReq后,根据CID在本地检索得到cltPk,使用cltPk验证σ′是否有效。若验证成功,则将广播toBeVerifiedReq={crossTxReq,CID}给参与共识的所有验证节点,否则丢弃。

(4)验证节点验证跨链事务。其他验证节点收到跨链事务后,对其进行验证。

a)验证公钥合法性。首先,验证节点从消息toBeVerifiedReq中获取身份信息{PS,pk,bid

b)验证事务签名。首先,验证节点根据CID在中继链中检索得到该平行链使用rsa签名算法和sha1哈希函数,调用rsa签名验证函数和pk验证σ是否有效。若验证通过,则进入步骤(5),否则,判定事务无效。

(5)跨链事务转发。验证节点对跨链事务达成共识后,将其打包上链存储,并根据事务中的目的链标识desCID转发到目的平行链的入口,这里实现为peer3节点。中继链上的peer3节点与目的平行链上的校验节点通过跨链代理程序建立socket连接,转发跨链事务。

(6)跨链事务执行。目的平行链上的校验节点向目的平行链广播该事务,目的平行链执行跨链事务。

S23:用户假名更新。具体过程如图5所示,可以分为以下5个步骤:

(1)用户生成公私钥对。使用cryptogen工具和crypto-config.yaml文件生成新的公私钥对,在子目录crypto-config下找到新公私钥对

(2)用户发起假名更新请求。用户向所属IMA发起假名更新请求UpdReq={cert,pk′,tst

(3)IMA验证假名更新请求。首先,IMA调用MSP验证证书合法性。然后,IMA从cert中提取中用户原公钥pk,验证签名是否有效、是否与pk相匹配。接下来,IMA查询证书吊销列表判定证书是否被吊销。若均验证成功,则进入步骤(4),否则返回拒绝更新响应FailUpdResp={InvalidRequest}。

(4)IMA更新用户假名。首先,IMA计算用户身份标识ID=sha256(cert||CID),在本地检索得到键值对。然后,IMA调用mpz_mul()函数和mpz_powm()函数,计算

(5)用户存储新假名。用户将(PS′,pk′)存储在本地,用于下次跨链事务。

S24:用户身份追溯。具体流程可以分为以下2个步骤:

(1)解析异常跨链事务。审计节点从中继链上获取异常跨链事务,从事务请求中获取{PS,pk,bid

(2)揭露用户身份。首先,审计节点根据区块地址bid

相关技术
  • 一种带有浮沉机构的潜水排污泵
  • 一种油藏净化污水携砂充填防砂方法及防砂管柱
  • 一种含有防砂功能的潜水排污泵
  • 一种含有防砂功能的潜水排污泵
技术分类

06120116540810