APP下载

基于群签名的联盟链跨链身份隐私保护技术*

2022-03-01徐鹤语马兆丰叶可可段鹏飞罗守山

信息安全与通信保密 2022年10期
关键词:背书私钥中继

徐鹤语,马兆丰,叶可可,段鹏飞,罗守山

(1.北京邮电大学 网络空间安全学院,北京 100876;2.中移动信息技术有限公司 研发创新中心,北京 102200)

0 引言

随着区块链技术的不断发展,区块链能够提供的服务也越来越丰富。区块链具有去中心化、防篡改等特点,这使其成为一种信任体系构造技术,有利于破除传统互联网架构下的数据孤岛问题,也有利于优化金融供应生产关系。然而,随着区块链技术的不断成熟,以及与医疗、金融、数字版权等领域的融合,领域交叉应用对区块链跨链和跨链身份隐私保护的需求日益增长[1-7]。

白杰等人[8]指出,由于区块链之间缺少统一的通信,大多数公司间无法互相协同。同时,跨链合约的执行较为困难。现实世界的资产流动尤其是数字版权,需要多方参与,执行担保监督等工作,而局限于一个链的合约无法完全完成这些工作。许永鑫、郭子彦等人[9-10]指出,区块链在优化供应链金融中扮演了非常重要的角色。区块链可以很好地解决供应链金融中的凭证信任问题,但同时也存在信息共享困难的问题,不同链之间无法直接实现信息共享。

传统联盟链的身份管理系统大多基于公钥基础设施(Public Key Infrastructure,PKI)进行证书颁发和身份认证。但每条链独立存在,没有一个统一的身份管理系统,无法进行跨链的身份认证,形成了身份管理的信息孤岛[11]。身份缺失的同时也导致在进行跨链信息交换时无法确认信息是否可信。如何在跨链网络中为不同的链提供统一的身份标识以解决跨链交易中的认证问题,以及如何保护应用链在跨链交易网络中的身份信息,是区块链跨链应用进一步扩大需要解决的问题。因此,本文提出了一种基于群签名的可监管的身份隐私保护跨链交易模型,其与中继链跨链网络相结合,在不改变应用链架构与中继链架构的基础上实现对跨链交易信息的身份匿名化,为避免匿名的滥用,该模型支持管理员对匿名消息的去匿名化,实现了跨链交易的监管。

1 背景知识和相关介绍

1.1 区块链技术

区块链作为一种新型互联网技术,具有高度去中心化、高信赖的特征,是一种数据网络存储技术。其是分布式网络技术与加密技术相结合的技术产物。区块链的概念源于中本聪[12]在2008年发表的论文,其提出了一种加密数字货币——比特币,可以满足无监管的不可信双方的交易需求。之后开发者引入了智能合约的概念,实现了区块链的可编程特性。区块链技术是一系列计算机和加密技术的结合,结合了密码学、对等网络通信、共识机制、智能合约编程等技术手段。从数据结构来看,区块链是一条按时间顺序将包含可信交易的数据区块连接起来的链,由密码学算法保证其不可篡改伪造,通过对等网络和共识机制来生成和更新数据。

随着应用的增加,区块链网络根据是否具有控制访问权限机制以及是否集中化拥有控制权主体,将区块链系统分为公有链(如以太坊)、联盟链(如Hyperledger、趣链)和私有链3种类型[13]。其中,公有链完全公开透明,无任何身份认证授权;联盟链需要身份授权准入机制,记录维护由事先预备的节点负责;私有链由单一的节点参与网络维护。

1.2 跨链技术架构

跨链(Cross-Chain)是容许加密货币资产跨越不同的区块链使用和保存。跨链技术的关键在于执行智能合约,设计共同的通信协议,完成共同的跨链接入接口,从而实现多个独立运行的区块链之间的信息及资产的原子性转移或互换。目前,跨链的架构方案如下:公证人机制、侧链/中继、哈希锁定和分布式私钥控制。其中,公证人架构中存在中心化的风险,哈希时间锁和分布式私钥控制方式存在应用的局限性,而侧链增加了网络的复杂度,也存在新的安全风险[14]。相较之下,中继链架构下的操作应用场景广,且可拓展性强,能适用于大部分跨链要求。

1.3 群签名

群签名是数字签名的一种,其目的在于允许成员代表群签名消息,同时不泄露身份。换而言之,看到签名的人可以用公钥验证该消息是否是合法群成员签署的,但无法得知实名身份。同时,群成员无法滥用这种匿名机制,因为群签名支持群管理员使用秘密信息来打开签名,证实身份。

一个完善的群签名方案需要满足以下几个要求:

(1)群特性。只有群中成员能够代表群体签名。

(2)验证简洁。接收者可以用公钥完成签名验证。

(3)匿名保护。接收者不能得知签名者在群体中的实名身份。

(4)可追踪。群体中的成员或可信赖机构可以根据秘密信息打开签名。

知名的群签名方案包括由Camenisch等人[15]于1997年提出的CS97群签名方案。CS97以离散对数作为理论基础。而本文采用的是Boneh等人[16]于2004年提出的BBS短群签名方案。BBS短群签名基于强DH假设,即SDH(Strong Diffie-Hellman,SDH)和线性决策假设。

1.4 研究现状

当前基于联盟链的身份信息管理研究主要集中在链内的去中心化身份认证和跨链的身份认证管理方面。在提供匿名化身份认证方面还有所欠缺。

1.4.1 身份管理研究现状

Cachin[17]针对以fabric为代表的联盟链架构,提出了一种新的联盟链身份认证机制以改进联盟链的交易背书。主要创新在于对注册和交易分开授权,实现了一定的匿名性,但同时大量的交易证书带来了存储和维护的瓶颈。Liang等人[18]提出一种组签名与证书授权中心(Certificate Authority,CA)机构相结合的满足匿名的跨链身份认证协议。主CA提供身份认证证书,授权应用链加入中继链。在应用链系统中,所有节点具有唯一身份标识ECERT。应用链中指定的组管理节点根据ECERT给要进行跨链的节点颁发组成员证书GCERT。需要进行跨链事务的节点根据自己的ECERT向组管理节点申请TCERT,并用GCERT进行签名保证身份信息。该跨链交易协议虽然可以保证交易过程中的身份匿名,但多个证书的交互与管理使得系统面临证书管理上的瓶颈。王洒洒等人[19]也针对异构应用链的跨链问题提出了一种跨链系统的身份标识认证模型。不过该模型解决的是同一个应用链需加入多个跨链系统中的重复认证问题,与本文关注的跨链中的身份隐私有所不同。

Axon等人[20]针对区块链PKI架构不关注隐私的问题,设计了一种满足隐私感知的PKI架构,使得公钥与身份不关联。Conti等人[21]针对信息中心网络(Information Centric Networking,ICN)中身份认证负担较大的问题,提出了一种轻量级的实现方式。利用区块链构造了一种高效轻量级分布移动生产者认证协议,用于ICN中的安全移动管理,解决了移动网络和BC中易受网络攻击的问题。Zhang等人[22]主要利用区块链的安全特性,提出了一种完全分布式的用户认证框架,利用智能合约进行访问权限控制,智能合约保证了权限的授予。王姝爽等人[23]对应用链接入跨链时的安全过程和跨链中的身份标识做了相关研究,给出了一种轻量级的身份标识方案,但同样是基于证书与公私密钥对,没有关注跨链中的身份隐私问题。

1.4.2 跨链身份授权研究现状

Wang等人[24]提出了一种去中心化身份(Decentralized Identifier,DID)与 可 信 证 书(Verifiable Credentials,VC)相结合的跨链可信资产转移流程。其中,链内用户身份通过唯一DID进行身份标识,完整的身份信息存储在中继链上,包含多个公钥,可以简化同一个用户参与多链的流程。但同时中继链需要维护所有应用链及其用户的身份元信息和完整信息。随着业务的增长,中继链的存储负担过重。Shao等人[25]针对物联网身份认证和跨链通信,基于身份加密(Identity-Based Encryption,IBE)协议,设计了物联网区块链中的跨链通信机制。其通过在每个区块链上设置代理节点,代理节点需与链公证员通信获得私钥。区块链上的每个节点可通过代理节点进行跨链,代理节点之间可以直接跨链通信。该机制虽保证了跨链的身份认证,但是公证员机制的跨链方案存在第三方是否可信以及性能瓶颈的问题。Jiang等人[26]利用联盟链与公证人相结合的方式,把若干物联网区块链集合到一个财团区块链控制站中,所有跨车联网子集的访问必须经由控制站成员审查。Wang等人[27]利用区块链优化应用的跨域认证。所有认证通过根CA执行,设计了一个跨域证书认证协议。虽然实现了证书的分布式,但认证过程依旧依赖于CA的可靠性和性能。

综上,目前跨链的身份管理存在以下不足。

首先,跨链的身份管理大多需要中继链进行统一身份的存储,如果涉及多链交互,还需要存储多个密钥对。其一定程度上统一了异构链的身份标识问题,但也存在中继链负荷过大的瓶颈。其次,大多数跨链身份认证策略未考虑在匿名跨链事务中如何完成身份信任。并且能够满足匿名需求的认证方案存在多个需要管理的证书,需要通过频繁交互来完成证书颁发和身份认证,其存储开销较大且流程不够简洁。

因此,本文提出一种基于群签名的中继链跨链身份信息保护方案。能够实现应用链间的信息共享,同时保护身份信息,允许管理员进行监管,以解决区块链间信息孤岛的问题。

2 跨链监管下的身份标识架构

2.1 跨链模型的分层架构

针对多应用链用户在跨链互操作间存在的信任传递、跨链访问、身份隐私保护等问题,提出了一种面向跨链系统中的身份认证方案,既能满足跨链中的身份信任要求,又能满足用户对身份隐私保护的要求,实现可控的匿名认证。首先介绍跨链系统的分层架构模型,跨链采用不需要可信第三方的中继模式进行。跨链模型分层架构中的角色符号与表示如表1所示。

表1 分层架构角色表示

由中继链R系统负责身份注册、身份认证、身份维护管理以及跨链交易的验证和转发等。在中继架构模型中,中继模块提供身份注册合约、身份认证合约,以及交易所需的认证合约。根据跨链传输协议(Inter Blockchain Transfer Protocol,IBTP)包解析出链类型和交易证明等信息,交易的验证,存证交易。确保交易的合法性,保障交易安全。

应用链A,B间的跨链交易通过与跨链网关交互,执行对应的跨链合约,完成跨链交易。应用链是需要通过跨链架构连接的区块链主体,通过完成中继链上的身份注册和认证,可以加入跨链网络中,拥有在跨链网络中的唯一身份标识,与跨链网络中其他应用链进行跨链交互。

跨链合约是部署在应用链上的智能合约,负责跨链事件的执行。为了方便管理,跨链合约分为broker和其他业务合约。业务合约在broker上注册后方可生效。

Pier跨链网关负责完成跨链中的监听、路由、代理转发等工作,同时把跨链事务转换成IBTP通信协议的格式,并提交到中继链上。Pier中的分层与功能对应关系如表2所示。

表2 Pier分层架构

2.2 应用链数字身份注册与身份标识

为了保证跨链事务的安全性和隐私性,每一个进行交互的应用链需要拥有在跨链联盟链中的唯一身份标识,身份标识可以通过执行身份注册合约获得。DID身份标识架构如图1所示。

图1 DID身份标识架构

注册接口由应用链插件开发实现。数字身份满足Web3的DID标准。DID作为一种新型的可验证、分布式的数字身份标识,相比于证书具有更强的身份隐私保护[28-29],可以由用户控制其身份属性的披露。据Web3标准指出,DID标准由DID和DID文档组成。DID是一个简单的文本字符串,包含方案标识符、DID方法标识符和DID方法的特定标识符结构。DID实例可以解释为一个DID文档,DID文档包含与DID相关的信息,例如以加密的方式对DID控制器进行身份验证的方法。

跨链的身份标识通常采用DID身份标识, 应用链的身份标识结构如下:id:{did identification: relay chain identifier:application chain name:},例如did:relaychain:chain_test:为一个链的DID标识。用户DID的身份标识结构如下:id:{did ID:relaychain ID:userchain ID:ueserchain address:},例如{did:relaychain:chain_test:0x111111111:}为一个用户的DID标识。应用链的身份注册流程如图2所示。

图2 应用链的身份注册流程

应用链的公私钥对和交易地址等信息由注册合约执行结果返回。注册提案经中继链管理节点投票通过后生效。应用链及其应用节点获得唯一身份标识,可以参与跨链事务。

3 可监管的身份隐私保护跨链交易模型

3.1 跨链交易身份可控匿名认证方案

目前主流的联盟链在跨链事务的身份认证中依旧采用基于数字证书的实名认证方案,通过向交易方提供实名的数字证书来证实合法身份。这满足了交易的安全性,但是没法为需要匿名交易的用户提供服务。为了符合跨链身份隐私保护的要求,需要提供一种可控匿名身份隐私保护模型,能够做到验证证书与实名身份的剥离,同时允许管理员监管,保证匿名不被滥用。

在现有的中继链跨链架构上对该方案进行改进。由中继链管理节点作为群管理员,联盟链以唯一身份标识作为加入群的凭证,以群签名代替数字证书认证身份的合法性,最终实现匿名的身份认证。此方案包括群的创建、群成员加入、签名消息、验证消息和打开身份。方案各个部分的关系如图3所示。

图3 方案内容

由中继链管理员完成群的创建,生成群公钥、群管理员私钥和一系列的群成员私钥,并向所有群成员公开群公钥,保密群管理员私钥以及成员私钥。应用链凭借在中继链中的唯一身份标识,可以向中继链管理员请求一组群成员证书,并获得群成员私钥。应用链在进行匿名的跨链事务时可以用群签名代替数字证书签名。同在群中的其他跨链成员可根据群公钥完成对签名的验证,从而实现身份认证。

该方案的主要步骤如下文所述。

(1)群的创建。由中继链管理节点执行,首先考虑满足双线性映射的两个群G1和G2,其各自的生成元为g1和g2,且SDH假设成立于(G1,G2),决策线性假设成立于G1。

Step1 选择一个随机数n作为群成员数量。

Step4 群 公 钥gpk=(g1,g2,h,u,v,w), 群 管 理 员 私 钥gmsk= (ξ1,ξ2),群 成 员 私 钥gsk= (A,x)。

(2)签名。由应用链完成消息签名,作为对消息的背书,证明消息来源的可信。

Step1 给出(gpk,gsk,M),其中M为待签名消息。

Step3 计算两个辅助值ς1=xα和ς2=xβ。

Step4 从Zp中随机选择5个随机数rα,rβ,rx,rς1,rς2。

Step5 计算5个中间值R1,R2,R3,R4,R5:

生成挑战c:hash(M,T1,T2,T3,R1,R2,R3,R4,R5)。

Step6 计算响应sα,sβ,sx,sς1,sς2:

式中:c为生成的hash挑战;x为签名成员私钥。其余为上述步骤选择的随机数和计算的辅助值。

给出签名σ← (T1,T2,T3,c,sα,sβ,sx,sς1,sς2)。

(3)验证。所有参与到中继链群中的应用链都可充当验证者,验证该条消息是否来自合法的群成员。

Step2 其中

式中:g1,g2,h,u,v,w由公开的群公钥gpk=(g1,g2,h,u,v,w)得出。其余计算参数由收到的签名σ给出。

(4)打开。中继链管理节点可使用其拥有的私钥打开对消息的签名,查看实名身份,监督匿名的使用。

Step1 首先判断σ是否为合法签名。

3.2 基于群签名的跨链交易背书策略

跨链交易的执行一般由跨链合约进行维护。由跨链协议规范跨链请求需要包含的字段,为保证认证的灵活性,跨链协议包含一段proof证明字段,该字段提供中继链验证所需的信息。中继链会根据事先部署的验证策略对交易合法性进行验证。传统的验证策略如fabric联盟链采用背书策略,签名基于实名数字证书。当验证方进行验证时必须知道签名者的数字证书和公钥,否则无法满足匿名认证要求。

本节结合3.1节提出的可控匿名认证方案,对联盟链交易的背书策略进行改进,实现中继链对跨链交易的认证。首先,应用链凭借注册获得的唯一身份标识申请加入群,中继链核验应用链身份后为其分配群成员私钥,应用链中所有可以充当背书节点的用户都知晓群成员私钥信息。其次,在收到交易提案后,用群私钥对交易执行结果进行签名,完成背书。背书策略的模型与跨链交易流程如图4所示。

图4 可控匿名跨链交易背书模型

(1)应用链加入群。已在中继链中注册过的应用链需要从中继链群管理员生成的成员私钥组中选择一组私钥,作为签名密钥。

Step1 应用链A请求加入群。

Step2 中继链验证是否是已注册的应用链。

Step3 通过验证,中继链从(0,n− 1)中随机选择一个数i。

Step4 私钥组gsk(i)为此应用链的群成员私钥。

Step5 以A的公钥加密gsk(i)结果。

(2)基于群签名的背书。获得签名私钥的应用链成员,可以对交易进行群签名并完成背书。此背书具有匿名性,保护用户身份隐私。

Step1 应用节点进行交易提案,触发执行交易对应的链码,提交给背书节点。

Step2 检查签名提案的消息格式和签名是否正确,包括通道头、签名头等。

Step3 检查交易的ID是否唯一,检查是否有权限,查找需要满足的验证策略。

Step4 模拟执行提交的交易链码,记录结果。

Step5 对提案响应执行群签名,构造响应消息返回背书结果。

Step6 应用节点收集到足够的背书后,经由跨链网关打包消息发至中继链。

Step7 中继链执行验证策略,验证背书签名,无误后交易信息上链。

在该背书策略下,所有加入中继链的节点都可以看到交易信息,以及对交易信息的可信背书,无法得知信息提供者的身份。既实现了信息的共享,也实现了对身份的保护。

4 安全性分析

本节主要分析上述跨链交易可控匿名身份隐私保护模型在身份隐私保护方面的有效性。

由模型结构可知,身份隐私的保护依赖于群签名方案。在进行跨链信息交换时,上链对交换信息的群签名而非信息本身,既能证明链上信息的真实合法,又能不泄露信息提供者的身份。即只要群签名方案是安全的,此可控匿名身份隐私保护模型就是有效的。由第3节可知,群签名方案的主要环节为对私钥和成员证书的知识签名。下面证明知识签名的安全性。

4.1 签名验证和打开的正确性

签名验证的正确性要求一个不合法的签名不可能使等式成立。对于诚实的签名而言, 验证者进行的等式运算必然成立。若证明由验证步骤计算的与签名 者结算的中间变量R1,R2,R3,R4,R5是 相等的,则验证者计算的就和签名者计算的挑战是相等的,即验证等式是正确的。

证明验证算法中5个验证等式的成立。

证明:

式中:计算所需参数由签名σ←(T1,T2,T3,c,sα,sβ,与公开的群公钥gpk=(g1,g2,h,u,v,w)给出。

Step3

式中:计算所需参数由签名σ←(T1,T2,T3,c,sα,sβ,s与公开的群公钥gpk=(g1,g2,h,u,v,w)给出。

Step5

式中:计算所需参数由签名σ←(T1,T2,T3,c,sα,sβ,与公开的群公钥gpk= (g1,g2,h,u,v,w)给出。

Step6 由Step5可知:

式中:计算所需参数由签名σ←(T1,T2,T3,c,sα,sβ,s与公开的群公钥gpk=(g1,g2,h,u,v,w)给出。

综上,只要签名者是诚实的签名者,其将严 格按照签名生成算法进行运算,验证者的验证等式成立。

正确的群签名需要保证打开的正确性,即合 法的签名一定能通过管理员私钥恢复得到群成员的私钥组,从而获得群成员身份查询响应。

证明:诚实签名者给出签名σ←(T1,T2,T3,c,sα,sβ,sx,sς1,sς2) 的 前3个 分 量 值T1,T2,T3, 是成员私钥gsk= (A,x)中的A在群公钥gpk=(g1,g2,h,u,v,w)中(u,v,h)下的线性加密。根据群初始化算法,存在成立,所以群管理员一定可以通过私钥,经由恢复身份。

4.2 签名的完全匿名性

在不知道群管理员私钥的情况下,要恢复出用户成员私钥组是不可能的。

概念1:SDH假设

如果在群 (G1,G2)上没有一个t时间的算法,在求解q-SDH问题时有ε优势,则认为(q,t,ε)−SDH假设成立,Shoup[30]证明了此假设在一般群组中成立。

概念2:决策线性假设

如果在G1上没有一个t时间的算法,在解决G1的决策线性问题时有ε优势,则认为在G1上,(t,ε)决策线性假设成立。BBS[16]证明了决策线性假设在一般双线性群中成立。

证明:由签名算法得知,生成签名的两个群应满足SDH假设和决策线性假设,找不出在固定时间内有优势的破解算法。根据BBS[16]证明可知,如果线性加密在群G1上是(t”,ε”)语义安全的,那么SDH群签名(t,qH,ε)是符合CPA完全匿名的。其中ε”=ε,且t=t”−qHo(1),qH为对手进行哈希函数查询的数量。

4.3 模型安全性分析

本节主要从群成员私钥安全管理和安全分发两个维度对模型进行安全性分析。证明此模型具有不可伪造性和可监督性。

首先,群成员私钥的管理和产生是安全的。由3.1节介绍的方案可知,群成员私钥由管理员在计算群公钥时一并计算给出,形成群成员私钥池。群管理员由跨链分层架构中的中继联盟链管理员担任。管理员不参与一般跨链事务,属于中继链治理模块中的节点。一般的应用链节点无法从管理员处获得不属于自己的信息,即无法伪造群签名。

其次,群私钥的分发也是安全的。群私钥由应用链节点向中继链发起加入群的提案,通过身份审查后由中继管理员分发私钥。由3.2节介绍的策略可知,中继链在传输群私钥时使用应用链身份标识对应的公钥进行加密传输,保证了群私钥分发的安全性。

最后,该模型的可监督性由群签名打开算法的正确性进行保证,由4.1节可知,拥有秘密信息的管理员可以打开诚实的签名。

5 实验结论

本文实验均在虚拟机环境中执行,采用的虚拟机是VMware Workstation Pro 15。虚拟机的环境配置为Ubuntu20.04操作系统。采用Hyperledger Fabric1.4作为应用联盟链的底层框架,跨链使用bitxhub v1.6.2系统提供的跨链网关和中继链进行,并安装go1.16.2、Docker20.10.12等配套环境。签名算法开发采用go语言并配合PBC密码库进行实现。实验的性能测试包括:背书签名在不同消息大小下,签名和验证的时间效率以及采用了本文的背书策略后链上验证的耗时。

由表3可以看出,群签名算法的时间开销随文件大小的增长变化稳定。虽然签名需要产生的辅助变量和计算的等式较多,但大部分可以在收到消息前做预计算,从而节省时间效率。

表3 签名时间开销

由表4可以看出,验证签名时的时间开销随文件大小的增长变化稳定。由验证算法可知,验证中进行的计算比较都已由收到的签名给出,不需要从基本参数开始计算,为验证提高了时间效率。

表4 验证时间开销

在测试链上验证性能时,统一选择1 024 Byte的消息进行签名,测试跨链节点个数对背书验证时间的影响。

由表5可以看出,链上验证的性能主要受发起验证的应用链与存储签名的中继块链之间的传递事务所影响,当网络环境良好时,传输通畅,链上开销可能更小。因此,在单机环境下模拟测试的测试结果同时还受CPU性能影响。综上,链上验证的吞吐量与网络环境、服务器性能都有较大关系。

表5 链上验证开销

6 结语

综上,群签名在保护消息的匿名性和不可追踪性方面能够满足对身份隐私敏感的应用链的隐私要求。群签名上链的跨链模型对以信息共享和需要信息认证的跨链服务适应良好。同时利用中继链联盟链的治理模式,由治理节点充当群管理员,保证了群管理员私钥安全性的同时,满足了中继链上应用链的验证需求。

猜你喜欢

背书私钥中继
比特币的安全性到底有多高
背书是写作的基本功
基于改进ECC 算法的网络信息私钥变换优化方法
背书
一种基于虚拟私钥的OpenSSL与CSP交互方案
面向5G的缓存辅助多天线中继策略
背书
中继测控链路动态分析与计算方法研究
Nakagami-m衰落下AF部分中继选择系统性能研究
背书连续性若干问题探析