赵 平,王 赜,李 芳,孙士民
天津工业大学 计算机科学与技术学院,天津 300384
数据作为第四次工业革命中的“新时代的石油”,已经成为生产、生活不可或缺的部分。由于数据需求不断增加,用户所处的单一信任域难以满足,需要建立与其他信任域间的联系,获取更广泛的数据。跨域身份认证技术是用户在多个信任域之间完成一致的身份验证的过程,能够保证多域信任关系建立的可信性、高效认证的可用性和认证过程的可靠性,实现多信任域内认证系统对有效用户及时统一认证和即时管理[1]。因此,研究一种安全、高效的跨域身份认证方案,在不同信任域间建立信任通信关系,从而获取所需数据,成为相关学者关注的重点。
目前常见的跨域身份认证方案主要在以下三种密码体制的信任域间,进行认证方案的设计和改进。其中结构最稳定、体系最成熟的是公钥基础设施(public key infrastructure,PKI)[2],用户使用证书验证身份的合法性,实现数据的保密性和安全性,但存在证书管理负担重,计算量、通信开销大和单点失效等问题[3]。为此,Shamir提出基于身份的公钥密码体制(identity based cryptography,IBC)[4],解决了证书管理开销大问题,具有易于维护等优点,但仍然存在效率较低、密钥托管和单点故障问题。Al-Riyami等提出了无证书公钥密码系统(certificateless public key cryptography,CL-PKC)[5],用户的密钥分为两部分,可信的密钥生成中心(key generation center,KGC)为用户生成部分密钥,另一部分密钥由用户选择的秘密值自行生成,KGC无法得知用户全部私钥,提高了密钥安全性。此方法虽然解决了证书管理困难和密钥托管问题,但仍然存在匿名性等问题。
本文在主从区块链跨域身份认证结构和分层拜占庭容错算法(hierarchical Byzantine fault tolerance,HBFT)基础上,在PKI体制和CL-PKC体制的异构信任域间建立了双向跨域认证方案,主要贡献如下:
(1)设计了与主从区块链结构匹配的分层拜占庭容错算法,通过主从链分步共识,减少共识参与节点数量,通过算法分阶段共识,降低每次共识的计算开销,保证系统活性,增强算法扩展性。
(2)将PKI体制与CL-PKC体制内特有功能节点与主从链节点相对应,在不改变原有信任域节点功能的前提下,采用区块链证书、链上链下混合存储、组合加密和分层ID树等结构实现异构跨域身份认证。
(3)对共识方案进行了攻击模型分析和消息复杂度分析,对认证方案进行了安全属性分析、博弈论模型分析、仿真实验验证和计算开销对比分析,结果表明方案在保证较高安全性和容错性的同时,减少了计算开销。
目前进行的跨域身份认证研究对于安全、高效传递不同信任域的数据具有重要的意义,但不同的设计方案也有各自的优缺点。文献[6]使用代理重签名技术,实现了基于PKI体制的同构跨域认证,但方案无法摆脱体制固有的系统开销大的问题。并且大型网络中,难免会遇到不同体制信任域间的认证问题。对此,文献[7]设计了PKI和IBC体制间异构域间密钥协商,实现等级信任域之间的跨域认证,但用户端的计算量较大。文献[8]基于盲签名技术实现了PKI和CL-PKC体制异构信任域间的跨域身份认证。文献[9]使用代理重签名技术,同样实现了异构域环境下不同信任域之间的访问控制。上述方案虽然实现了跨域身份认证,但均无法抵制中心化身份方案存在的因单点崩溃造成的用户隐私泄露的风险。
随着区块链技术的发展,其在身份认证领域的应用近年来愈发受到重视,凭借其去中心化、不可篡改等优势,有效保护了数据隐私,改善了单点失效、主体信任和证书管理等问题。文献[10]基于区块链技术,设计了身份认证模型,在同构信任域间成功建立连接路径,但没有考虑异构信任域之间的跨域访问问题。文献[11]结合区块链技术,实现了异构环境下物联网设备间相互认证,但存在链上账本记录交易公开造成的隐私泄露问题。文献[12]利用区块链分布式账本,实现了网络环境中用户的跨域认证,但是认证过程较复杂,计算开销大。文献[13]在提出的基于区块链的跨域认证方案中引入了区块链证书,但主要针对的是PKI域同构认证,并且单链结构在运行时效率相对较低,计算量较大。文献[14]在PKI域和IBC域间设计了一种基于多层区块链的异构跨域认证方案,但是认证过程复杂,总体计算开销相对较大。
基于以上对使用中心化模式和区块链模式的身份认证方案的研究,为提升方案效率和安全性,本文设计了主从区块链结构。跨域认证方案模型中,各信任域内节点组成从链,选出执行超时轮换机制的代表节点,起到身份认证、传递共识和数据存储功能;每个代表节点对应的主链节点共同组成一条主链,通过对区块链进行证书颁发、共识传递和验证,并且进行链际信任传递和数据存储,简化传统身份认证中信任传递过程。针对集中式攻击风险和整链共识效率低等问题,主从区块链结构为异构跨域认证带来的优化主要表现在以下两方面:
一方面,将整条区块链拆分为一条主链和多条从链,把不同体制的信任域内不同功能的节点在主从链中进行功能匹配。由于区块链本身去中心化特性,可降低集中式风险,再使用区别于以往整链共识的局部共识,仅需在认证相关从链和主链进行共识即可完成数据共识共享,有效地减少了共识参与节点数量,提高了认证效率。同时主从链结构可扩展性更强,任何新的信任域的加入,对其他从链信任域无影响,只需将信任域内节点与从链节点功能进行匹配,在主链增加本信任域的主链节点,新加入的信任域会通过主链共识,将主链原有信任凭证共识到新主链节点的本地,至此即获得了以往共识的全部数据和信任凭证。
另一方面,针对不同体制的分布式异构信任域,在不改变原有信任域内部组织结构和节点功能的前提下,设计了同样分布式的从链模型进行对应,提高了应用的匹配度。主链、从链在链间、链际对信任凭证等部分数据进行传输时,区别于传统中心化信任发布和点对点数据传输,采用代表节点动态变化的分阶段、分层共识,进行数据共享和信任传递,既简化了认证交互流程,又可以有效利用区块链不可篡改和可追溯的特点,结合链下存储原数据、链上存储数据哈希值的方法,所有参与共识的节点共同记录数据和操作,若出现问题,可以进行有效追溯,对信任凭证进行有效保护,提高了凭证可信度。
如图1所示,本节设计了与主从链结构匹配的分层拜占庭容错算法(HBFT)。算法整体分为三个步骤:发起链共识、主链共识和目标链共识。每次共识又根据节点安全性不同,分别执行HBFT算法中速度快、开销小的简化共识算法(simplified consensus algorithm,SCA)[15]和开销较大、容错能力强的拜占庭容错算法(practical Byzantine fault tolerance,PBFT)。通过采用开销和容错能力不同的共识方法,实现共识机制的动态调整,以达到HBFT共识算法效率的最优化,从而为跨域身份认证过程建立可通信基础。
算法为保证消息传输准确性和安全性,消息中包含了数字签名、消息认证码等。其中m表示消息,k表示节点序号,传递的消息为{Sigskk(H(m))|m}。算法定义共识过程中非共识发起节点总数为N,共识做出正确决策结果需要的最少响应消息数为Q,未响应的节点数为R,错误节点数为f,要求满足N≥3f+1,Q≥2f+1,R≤f。进行如下解释:
不响应的节点不一定是恶意节点,也有可能是通信问题导致未响应;响应的节点不一定是正确节点,也有可能是恶意节点冒充。系统中至多f个错误节点,可能分布在不响应的正确节点和响应的恶意节点中。做极端的假设:这f个不响应的节点都是正确节点,但因通信故障无法响应,则收到响应节点中还有f个错误节点是恶意节点,进行了错误响应。为了让共识成立,需要正确节点数大于错误节点数,响应的节点中至少需要f+1个正确节点。因此为了保证共识正常进行,需要非共识发起节点数量N≥f+f+(f+1),即N≥3f+1;Q≥f+(f+1),即Q≥2f+1。
以共识发起从链A向共识目标链B进行共识为例,具体流程描述如图2所示。
2.2.1 发起从链共识阶段
步骤1Request0阶段:共识发起节点UA向代表点SCA发布共识请求{m|SigUA(Request,t,UA,H(m))},其中t为时间戳,Request为共识请求标识。
步骤2Commit0阶段:SCA判断Request正确性,验证请求签名,检查时间戳t,为请求消息编号,向包括本身在内的N个非共识请求发起节点转发共识请求。
步骤3Reply0阶段:SCA和副本节点Ai收到请求消息后,进行本地处理,对计算的摘要进行签名,向UA反馈,并进行算法转换判断。
若UA收到了N个节点结果相同的响应消息,则说明系统无错误节点,共识成功,进入Response0阶段。若收到的响应数不足N个,或响应中存在不一致结果,说明系统中存在错误节点,则跳转至Panic0阶段,继续执行共识过程。
步骤4 Response0阶段:UA将所有签名后的响应打包,发给N个非共识发起节点,节点收到消息后验证,保存共识结果。至此SCA共识阶段完成,共识成功。
步骤5 Panic0阶段:进入节点超时等待机制,UA对请求作出失败判断,尝试重新发起共识请求。
步骤6 Abort1阶段:若重复请求仍失败,节点执行回滚操作,进行共识算法切换,进入PBFT共识算法。
步骤7 Request1阶段:UA向SCA发送新共识请求。
步骤8 Pre-prepare1阶段:SCA为请求消息编号n,向N个非共识发起节点广播一条预准备消息{SigUA(Preprepare,v,n,h(m),m)}。预准备消息作为一种证明手段,明确请求已在视图v中得到编号n,在因代表节点变更造成视图转换时,便于寻找。
步骤9 Prepare1阶段:Ai向非共识发起节点广播准备消息{SigUA(Pre-prepare,v,n,h(m))},节点接收广播消息后,检查签名、视图号v正确性。
由于N≥3f+1,除去至多f个未反馈的节点和1个代表节点,剩余2f个节点在步骤9收到至少2f条消息,节点在步骤8收到1条消息,因此两个阶段共计至少2f+1条消息保存到本地。
步骤10 Commit1阶段:非共识发起节点相互广播确认消息SigSCAorAi(Commit,v,n,h(m)),节点验证签名和视图号正确性后,将消息写入到本地。若节点收到Q条消息,则共识达成。
因为Q≥f+(f+1),其中错误节点数小于f,即非错误节点数至少为f+1个,所以可满足完成正确共识。
步骤11 Reply1阶段:N个非共识发起节点将签名后的响应发送至共识发起节点UA。
步骤12 Response1阶段:UA将收到的所有响应打包发给N个非共识发起节点,至此HBFT过程完成。
2.2.2 主链共识阶段
共识发起从链代表节点SCA将共识结果发至对应的主链节点MA后,由MA作为主链共识发起节点,在主链范围内将消息向其余从链代表节点对应的主链节点进行共识,流程与从链共识大致相同。区别在于主链共识中在发现任何节点错误时,系统均会指定其对应的从链进入代表节点超时轮换机制和延迟逐级增加机制,更换正确代表节点,直至HBFT共识完成,这保证了其他从链的代表节点正确性,进而保证了后续传递的共识内容正确性。
2.2.3 目标从链共识阶段
以共识目标从链B为例,MB在主链共识过程已经获取了共识数据,即可作为共识发起节点,发布正确的共识请求,在对应从链代表节点SCB的协助下完成链内HBFT共识,至此完成整个共识过程,数据通过共识进行了正确共享。此阶段有较强扩展性,在主链达成共识后,任何从链接入网络,查询主链已有共识数据作为目标从链共识消息,进行从链内共识即可进行跨域通信。
本文在设计的主从区块链结构和分层拜占庭容错算法基础上,实现了基于PKI体制和CL-PKC体制异构信任域间的双向身份认证方案。所有节点上链后将自身公钥共识公开,方案中传递的所有消息均采用对称加密和非对称加密结合的方式,使用对称加密算法快速加密数据,使用非对称加密算法加密对称加密的密钥,因此同时具备了对称加密的高效性和非对称加密的安全性。模型由以下4类实体组成,方案中符号含义如表1所示。
表1符号说明Table 1 Symbol description
(1)从链节点UN:从链中认证发起和目标节点,可以提出域内和跨域身份认证请求。
(2)从链代表节点SCN:从链内认证节点,由从链所有节点选举产生,履行代表节点超时轮换机制和延迟逐级增加机制,参与节点身份生成、跨域认证和相关数据存储。代表节点在CL-PKC信任域中具备KGC生成部分密钥的功能;在PKI信任域中具备RA身份审核和更新证书等功能。
(3)主链节点MN:SCN在主链的对应节点,当新节点通过访问控制加入从链时,为其生成根证书CertA,并将根证书的哈希值写入区块内,通过主链共识,传递到其他从链中,作为身份认证过程中的信任凭证。在PKI信任域中起到CA分发证书的功能。
(4)副本节点Ni:从链中的验证节点,对共识发起者提出的共识进行验证。
方案根据X.509数字证书[16]设计了区块链证书。节点上链后,主链节点为其生成根证书,并写入区块链,作为信任间不可篡改的信任凭证。本方案将链上的证书写入接口定义为write(action,Hash(Cert)),其中参数action定义为根证书当前处理的状态参数,包括发布issue或撤销revoke两种状态。将链上的查询接口定义为query(Hash(Cert)),使用交易证书的哈希值Hash(Cert)作为用户查询的条件,利用证书哈希值,在链上高效查询证书的状态action[17]。
利用分层ID树结构能够较好地解决身份唯一性问题[18]的优点,构造UN的真实身份。分层ID树结构的根节点是SCN的身份标识DNN,叶子节点是UN的身份标识DNUN,UN的真实身份为IDUN=DNSCN||DNUN。具体密钥生成过程如下:
(1)UN→SCN:{Req,DNUN,ru,TIDUN,T11}
UN选取随机值α作为部分私钥,计算自身公钥PKUN;根据UN的真实身份IDUN和选取的随机数ru计算出临时身份TIDUN=Hash2(IDUN||ru),读取时间戳T11,向SCN发送加密后的身份注册请求消息,Req为身份注册请求标识。
(2)SCN→UN:{Res,PSKUN,CertUN,T12}
SCN解密消息,根据消息中DNUN和持有的DNSCN计算UN真实身份IDUN,并结合ru验证TIDUN正确性。若均通过,则计算UN的部分私钥PSKUN,获取区块链证书CertUN,读取T12,生成注册响应标识Res,向UN返回加密消息。在用户注册列表保存{IDUN,TIDUN,CertUN,ru}。
(3)UN解密消息,得到部分私钥PSKUN,结合自身持有的另一部分私钥α,共同计算自身完整私钥SKUN,并在本地保存{CertUN,SKUN}。
以信任域A中节点UA请求访问异构信任域B的资源为例,构造首次异构跨域身份认证方案。方案模型如图3所示。
(1)UA→SCB:{PKUA,SigSKUA(ReqUA,X′,NUA,CertUA,T21)}
UA向SCB提出跨域访问请求,加密消息:跨域访问请求标识ReqUA,根据随机秘密值x和私钥SKUA计算的密钥协商参数X′=gx,随机参数标识NUA等。
(2)SCB→MB:{PKSCB,SigSKSCB(ReqCertUA,CertUA,unknow,T22)}
SCB解密消息,验证签名确认UA身份,明确UA所在信任域,验证标识ReqUA。若均成功,则向MB提出证书状态查询,加密内容:证书状态查询请求ReqCertUA,访问资格未知状态unknow等。本地保存{CertUA,X′,NUA}。
(3)MB→SCB:{PKMB,SigSKMB(ResCertUA,continue,expireCertUA,T23)}
MB解密消息,验证签名确认SCB身份,确认ReqCertUA,检查T22。若均成功,执行证书状态查询,SCB用Hash(CertUA)在主链查询,得到以下可能结果:若无查询结果,则认定UA无法提供或者提供了错误CertUA,认证失败;若结果为issue和revoke两种状态,则CertUA已过期,或已从发布状态转为撤销状态,认证失败;若只有状态issue,则CertUA当前在有效期内,且为已发布状态,可以进行访问,访问资格状态由未知unknow改为可进行continue。
MA向SCB返回认证成功响应,加密内容包括证书状态查询响应标识ResCertUA、节点身份失效时间expireCertUA等。本地保存{CertA,continue,expireCertUA}。
(4)SCB→UA:{PKSCB,SigSKSCB(ResUA,continue,expireCertUA,W′,NUA,T24)}
SCB解密消息,验证签名确认MB身份,检查响应标识ResCertUA、时间戳T23和失效时间expireCertUA,查看证书当前状态,若为continue,则SCB向UA发送请求成功响应,加密消息包括根据随机秘密值w计算的密钥协商参数W′=gw、响应标识ResUA等。本地保存数据{W′,CertUA,continue,expireCertUA},计算与UA的会话密钥KSCB→UA=(PKUA)SKSCB(X′)w。
(5)UA解密消息,验证签名确认SCB的身份,验证响应标识ResUA,检查T24,判断响应消息中NUA与认证请求消息中的是否一致,若均成功,则将{continue,expireCertUA,W′}保存至本地。计算与SCB会话密钥KUA→SCB=(PKSCB)SKUA(W′)x。
至此,认证发起从链A中节点UA与认证目标从链B代表节点SCB间成功建立起资源访问连接,流程如图4所示。
以A链内认证发起节点UA向共识目标链B的代表节点SCB发起跨域访问重认证为例,描述此阶段的模型如图5所示。
UA与SCB在建立首次跨域身份认证连接后,SCB已将UA的身份信息记录在本地列表中。通过以下三种验证方式,判断重认证是否成功:区块链证书认证状态是否为continue;身份失效时间expireCertUA是否在有效范围内;注册列表中是否存在前后一致的会话密钥,若均通过,则重认证成功。避免了重复完整通信过程,可以高效、安全地进行双向跨域身份重认证。
为确保方案的安全性,本文在共识过程中,首先通过SCA共识算法进行错误节点查找。若存在错误节点,则通过回滚操作进行算法切换,进入PBFT共识过程,当节点满足N≥3f+1,Q≥2f+1时,确保方案安全性。以下描述了不同节点出现错误时的攻击模型。
(1)若UN为发起恶意共识的攻击者,对多个数据量巨大的消息或对异常权限变更操作发起共识,造成类似DoS攻击,恶意消耗攻击对象资源,达到拒绝其他节点共识服务,或非常规权限变更的目的。由于PBFT算法不能解决因共识发起者失效带来的影响,需要引入访问控制方法解决分层权限变更问题。联盟链通过审核共识发起者权限和阻止产生无权操作等方式,降低节点失效造成的风险。任何对权限的操作,所有节点均通过共识可见,起到了节点行为群体监督功能,也提供了一种从失效节点攻击中恢复的机制。
(2)当SCN是攻击者时,通过不响应或响应错误消息的方式影响共识过程,造成消息出现丢失、延迟或乱序等情况。共识过程第二阶段,利用PBFT算法的代表超时轮换机制和延迟逐级增加机制解决此问题。当SCN失效时,进入延迟等待环节,设置阈值限定延迟等待时间,当系统判定等待时间超过阈值,则更换下一个节点为代表节点,同时增加延迟时间。若仍无法达成共识则,则继续更换代表节点并增加延时,直至网络响应。因此,可以保证在延迟不是无限的情况下,防止无期限地等待请求执行的情况发生,确保方案保持活性。
(3)当Ni是错误节点时,同样存在不响应或反馈错误消息,扰乱共识顺序,破坏共识结果。对此,执行容错共识算法,当满足N≥3f+1,Q≥2f+1时,排除错误节点对共识结果的干扰。
当从链完成正确共识,正确的结果经由该链代表节点SCN发送至主链节点MN,这保证了主链共识请求的正确性。由于非共识发起链的代表节点的正确性未知,主链共识过程仍进行完整HBFT共识算法,一旦发现错误节点,则该节点对应的从链进入代表超时轮换机制和延迟逐级增加机制,更换节点,增加延时,直至完成共识。
方案针对跨域身份认证过程中可能存在的攻击形式进行安全性分析。如表2所示,本文方案对比了近几年的传统跨域认证方案和引入区块链结构的跨域认证方案,从双向实体认证和抗重放攻击等五方面进行安全属性比较。结果表明本文方案在抵抗认证过程的攻击时有较高的安全性。表中“√”表示该方案具备该性能,“×”表示不具备该性能。
4.2.1 双向实体认证
如图6双向实体认证模型所示,本文方案与文献[7,19]相比,实现了双向实体认证。实体认证主要经历了四部分:主链节点MA在信任域内向UA分发证书;域内认证改变证书状态为issue;主链共识将证书状态issue向其他从链对应的主链节点传递共识消息;跨域认证过程改变节点的认证权限。信任传递过程分为11个步骤,完成了从证书状态issue到节点认证权限可执行continue的转变。方案进行了节点间的双向认证通信,并且每个步骤节点对应的本地存储设备均保存了通信相关数据,便于在未来的反向认证过程中高效实现认证。
表2不同方案安全性比较Table 2 Comparison of scheme security attributes
4.2.2 抗重放攻击
如图7抗重放攻击模型所示,如果攻击者通过窃听等方式截获消息,运用非法手段获取了此条认证消息的功能,则攻击者无需知道消息具体内容是什么,通过重新发送该消息的方式,非法获取对应权限。因此,本文节点在通信前,首先进行时间同步,保证时间戳选取有效,然后节点在认证过程传递的每条消息均加入了时间戳T,用来保持消息新鲜性。当目标节点收到消息后,会对时间戳T进行验证,若消息中的时间戳T超出有效期,则认定受到了重放攻击,认证失败。因此本方案能有效抵抗重放性攻击。
4.2.3 抵抗中间人攻击
如图8抗中间人攻击模型所示,本文方案与文献[13,20]对比,在进行异构资源跨域交互过程中,通信双方均使用自身私钥进行签名,使用对方公钥对消息进行加密。即使攻击者成功截获消息,但只要私钥安全性得到保障,则加密和签名即可保证安全。因而,敌手无法通过解密获取明文,无法伪造签名,通过接收方的验证,方案能抵抗中间人攻击。
4.2.4 身份追踪
与文献[7,13,17,19-20]对比,通过以下方式判断节点合法性:SCN对UN发来的消息解密,得到了{DNUN,ru,TIDUN1};由公式IDUN=DNSCN||DNUN,SCN,通过自身持有的DNSCN和解密得到的DNUN共同计算,获取UN的真实身份IDUN;再使用ru通过公式TIDUN=Hash2(IDUN||ru)计算UN的临时身份TIDUN2,与UN发送的消息中的临时身份TIDUN1进行对比,若两个临时身份不同,则该节点为非法节点。通过计算IDUN追踪非法节点身份,因此本方案可进行身份追踪。
4.2.5 抵抗分布式拒绝服务(DDoS)攻击
与文献[7,9]相比,本文方案引入区块链结构,利用其分布式架构下无中心、可追溯等特点,即使一个或者多个节点失效,只要有效节点数量支持完成正确的共识算法HBFT,则整体方案最终结果不受影响,因此可以解决DDoS攻击造成的单点失效问题。
以下根据博弈论机制[21]证明方案的安全性。假设X给Y发送消息,CE为通信环境,Z为攻击者,P代表参与者集合,记作P={X,Y,Z,CE}且P′=P/{CE}。假设Y确定消息发出者是X的概率为α,X确定只有Y获得消息的概率为β,Z获得消息的概率为γ。根据博弈论机制,各个参与者理性选择策略达到自身利益最大化。从图9中可见,博弈最佳结果(α,β,γ)的纳什均衡为q1q2q3q4q5q7q9,显然安全通信阶段的密码算法直接影响博弈结果。
由表3可知,本文的跨域认证方案同时使用加密算法和签名算法,满足安全协议的博弈论机制下对协议的安全性要求。
如图10所示,本文使用安全协议自动验证工具AVISPA,对首次跨域认证方案的安全性进行仿真实验。方案代码详细描述了认证发起节点UA、从链代表节点SCB和主链节点MB的角色规范,同时对协议环境、会话和保密性目标进行了定义。分别在CL-AtSe和OFMC自动后端分析模型下执行仿真实验,结果均为SAFT。由此证明,本文方案在抗重放攻击和抗中间人攻击时有较高安全性。
当系统无错误节点,只进行SCA算法进行共识。过程中UN在Request0阶段发送1条请求信息,在Response0阶段发送N条响应信息。SCN在Commit0阶段转发N次请求,在Reply0阶段发送1次响应请求。其他副本节点在Reply0阶段反馈N-1条响应信息,因此SCA阶段算法一共需要传递的消息总数如式(1)所示:
即算法的消息复杂度为线性阶O(n)。算法性能接近链上性能最弱的节点的消息处理能力上限。因此在系统安全环境下,本方案共识算法较大程度降低了完成正确共识所需要的开销,高效完成正确共识。
当系统出现错误节点,进行共识算法切换的步骤也仅需增加回滚操作产生的至多N条消息,消息复杂度仍为O(n)。
当切换到PBFT容错算法后,UN在Request1阶段发布1条请求消息,在Response1阶段发布N条共识消息。SCN在Pre-prepare1和Prepare1阶段发布了2N条消息。副本节点在Prepare1阶段发送了N(N-R-1)条消息,在Commit1阶段发送了N(N-R)条消息,在Reply1阶段反馈N-R条消息。因此本阶段算法共需要传递消息综述如式(2)所示:
即算法的消息复杂度达到了平方阶O(n2)。虽然性能相对SCA较低,并且吞吐量会随N的增加明显降低,但PBFT能够在系统节点满足N≥3f+1,Q≥2f+1时,忽略错误节点对共识结果的影响,提高了系统容错能力,获得此阶段共识安全性的提高。
在HBFT应用到异构跨域认证方案时,系统有别于传统区块链所有节点进行数据共识,只在认证发起从链、主链和认证目标从链三条链内进行共识,减少了共识过程的资源消耗,因此HPFT的模式更有利于在规模庞大的系统中使用。
本文与其他跨域认证方案进行了计算开销的对比,忽略与跨域认证无关的因素影响,从加解密次数、签名与验证次数、双线性运算次数、哈希运算次数和交互消息数五方面进行具体比较,结果如图11所示。
假设本文方案与文献[7,14,22]方案中加解密算法、签名算法计算开销均相同,则可以通过对比不同类型运算的次数的形式,反映各种方案的计算开销。本文方案与使用传统异构跨域方法的文献[7]对比,引入了区块链证书结构,优化了认证过程,较少了交互消息数,从而在计算开销较大的加解密运算上,减少为文献[7]方案的一半;与文献[14]在物联网分布式设备间使用区块链技术的身份认证方案对比,虽然在使用加解密次数上没有明显优势,但方案通过减少签名与验证次数,省去了多次复杂的双线性运算过程,计算开销明显降低;与同样使用区块链技术的文献[22]方案对比,优化了认证过程,减少了加解密运算次数、哈希运算次数和交互消息数,在保证安全性的前提下,降低了方案开销。
使用区块链技术的优势解决传统数据安全问题,是十分具有研究前景的方向。本文遵循此原则,在熟练掌握区块链知识后,对传统跨域身份认证问题进行了剖析,最终得到了问题解决思路。设计了动态执行的分层拜占庭容错算法和主从链节点相互合作的主从区块链结构,用以改进传统的异构跨域身份认证问题。研究结果表明,方案在安全性和高效性间寻求了一种平衡,并且在认证过程中起到一定容错效果。接下来的研究工作,将继续深入发掘跨域身份认证在实际应用中存在的问题,并使用区块链技术进行解决。