APP下载

基于区块链技术的高效跨域认证方案

2018-04-12周致成李立新李作辉

计算机应用 2018年2期
关键词:跨域哈希证书

周致成,李立新,李作辉

(信息工程大学,郑州 450001)(*通信作者电子邮箱alphalilixin@163.com)

0 引言

信息安全已成为信息化发展中不可缺少的技术基础[1]。身份认证是保证信息安全的一种重要安全机制,而基于公钥基础设施(Public Key Infrastructure, PKI)的身份认证是目前较为成熟并取得普遍应用的认证技术[2]。在分布式环境中,各机构为了方便管理用户,设置认证服务器形成相对独立的信任域,然而单个独立的信任域不能提供多种服务,用户需要多域访问,因此出现跨域认证问题。

现有的以传统PKI为基础的认证框架,通常以安全套阶层身份认证协议(Secure sockets layer Authentication Protocol, SAP)实现双向身份认证。这种认证框架比基于对称密钥的认证框架如Kerberos等有了较大进步[3],但由于认证双方通过互发证书或证书链进行通信,证书维护过程如证书状态查询存在计算与通信开销较大的问题。因此,如何提高跨域认证的效率受到国内外学者的广泛关注。文献[5]直接根据各域已有的PKI结构及拓扑关系构建认证路径,但存在认证路径复杂、认证效率较低的问题。文献[6]采用桥证书授权中心(Certificate Authority, CA)的认证方案,建立一个所有域都信任的桥CA模型,该方案需要各域都信任这个可信第三方,实际应用困难,同时还存在如何跨域获取证书状态信息的问题。文献[7]借助虚拟桥CA模型,采用基于门限方案的椭圆曲线密码体制构建企业跨域认证体系,但由于门限方案通过拆分密钥因子造成交互代价比较大,使得成员加入、撤销的可扩展性不强。基于身份的密码体系(Identity-Based Cryptography, IBC)可以解决证书管理和传递开销的问题,但由于计算量与通信量过高,跨域认证效率不高。文献[8]提出一种基于身份的跨域认证方案,用户需要进行多次双线性对运算,计算开销较大,不适用于移动终端。文献[9]利用椭圆曲线加法群提出基于身份的签名算法实现跨域认证,避免了复杂的双线性对运算,计算开销明显减小;但方案只分析了实体与认证中心的认证过程,没有考虑认证中心与本地资源确认对方合法性带来的额外开销。文献[10]提出一种无线网格环境下的跨域认证密钥交换协议,但使用较多对称加密造成大量计算开销。综合以上研究成果,基于证书和基于身份的跨域认证仍存在诸多问题有待解决。

区块链技术最早由化名为“中本聪”的学者在2008年的密码学邮件组发表的关于比特币的论文[11]中提出。作为分布式存储、点对点传输、共识机制、加密算法等技术的集成应用,区块链技术的应用已延伸到物联网、人工智能、身份认证等多个领域。

区块链技术在身份认证领域的研究受到诸多研究机构的重视。文献[12]指出,区块链技术的发展对数字证书的发展和应用有极大的促进作用。文献[13]提出了以比特币区块链系统为框架的去中心化PKI认证体系,使用Certcoin代替CA提供高效密钥查询与身份保留功能,但存在因使用区块链公共总账直接记录用户身份和公钥的绑定造成用户隐私泄漏的问题;文献[14]提出一种改进的Certcoin方案,提出了带隐私保护的PKI认证系统。文献[15]提出使用以太坊区块链平台的基于证书的PKI认证体系,解决了传统PKI证书管理与使用证书撤销列表(Certificate Reveocation List, CRL)和在线证书状态协议(Online Certificate Status Protocol, OCSP)通信量过大的问题。但是这些研究目前均未解决跨域认证问题。

针对以上问题,本文提出基于区块链技术的高效跨域认证方案。在不改变域内PKI认证体系的基础上,将各域的认证服务器和根CA证书服务器设置为区块链节点,域间跨域认证通过代理认证服务器查询验证对方域的根CA证书服务器发布于区块链的无签名证书的哈希值,代替传统PKI互发签名证书并验证签名的方式。本文方案能减少签名验证次数,提高认证效率,解决使用CRL和OCSP证书管理较复杂的问题;而且系统基于联盟链的设计,可扩展性强。

1 区块链技术

1.1 区块链结构

区块链是一种按照时间顺序将数据区块以链条的方式组合而成的特定数据结构,并以密码学方式保证的不可篡改不可伪造的去中心化公共总账[16]。在区块链技术中,数据以区块的形式永久保存。每一个区块按照时间顺序先后生成并通过链式结构连接组成区块链。区块由区块头和区块体组成,如图1所示。

图1 区块链结构Fig. 1 Blockchain structure

如图1所示:区块头内主要有版本号、时间戳,前一区块的哈希值、交易数据总哈希值,以及参与共识机制的有关数据(随机数等,因为区块链平台共识机制的不同设计也有所不同,这里不再赘述)。前一区块的哈希值是对前一区块头的各个模块数据进行哈希运算,区块之间通过这样的哈希值环环相扣依次连接。区块体中记录了自区块链创建以来到生成本区块期间所有的交易数据。以比特币区块链为例,数据通常以Merkle tree的方式,从叶子节点到父节点自下而上两两作哈希运算,最终形成这段时间内数据的总哈希值,存储在区块头内。

1.2 区块链特征

本文方案主要用到区块链技术分布式多中心、集体维护、不易篡改的特点。

1)分布式多中心:区块链系统节点基于分布式点对点结构,每个节点都存有系统内所有的交易数据,任意节点的损坏不影响整个系统的运作,系统冗余度高,具有极好的健壮性。

2)集体维护:区块链构建了一套完整的协议机制,系统中的节点不仅参与记录数据,而且参与验证其他节点记录数据的正确性。只有当大部分节点或者多个关键节点认可数据的正确性时,数据才能被记入到区块当中。现行IBM的超级账本Fabric平台采用两种类型节点:

a)验证节点(Validating Peer,VP)。VP执行数据的读写、查询操作,借助区块链共识算法、一致性协议,维护区块链账本数据库。

b)非验证节点(Nonvalidating Peer,NVP)。NVP用来连接用户和邻近的VP,执行查询验证操作,不执行记入交易数据操作。

3)不易篡改:区块链技术采用哈希算法对记入区块的数据进行完整性保护,以链式结构连接数据区块并存储于系统中的所有节点。如果一个区块被改变,那么之后的每一个区块都将被改变。区块链上数据区块越多,数据越难篡改,因此改变某一区块及区块内的数据几乎是不可能的。以比特币区块链为例,只有对51%的节点攻击才能篡改数据。正是由于区块链技术具有不易篡改的特性,为记录可信凭证提供了可能。

1.3 区块链类型及性能特点

根据区块链的中心化程度的差异,可以将区块链分为公有链、联盟链和私有链,这三种类型区块链的性能特点如表1所述。综合各类型区块链特点,本文方案采用联盟链为原型。采用联盟链为方案原型,一方面符合政府、企业等多域间跨域认证需要,另一方面由于区块链共识算法的不同,联盟链效率较高,系统可扩展性强。

2 基于区块链的跨域认证方案

基于证书的传统PKI跨域认证模型普遍存在认证路径复杂、签名验证次数较多、证书管理困难等问题;而基于身份的密码体系的计算量与通信量较高,跨域认证效率不高,实际应用困难。本章主要设计了区块链CA(Blockchain Certificate Authority,BCCA)信任模型和系统架构,给出了区块链证书格式,并在此基础上完成跨域认证协议。

2.1 BCCA信任模型

信任模型用于描述和分析同一CA管理域内部或不同CA管理域之间的信任关系的建立和传递过程。为解决多个域的跨域认证问题,本文提出了BCCA信任模型。

BCCA信任模型如图2所示,其中:矩形框表示VP,即根CA;空心圆表示域内用户。为实现跨域认证,多个域的信任锚根CA经过许可后,加入联盟链,构成联盟链的VP。在本文方案中,加入联盟链的根CA是可信的,作为VP自生成根CA区块链证书,并将证书的哈希值记入不易篡改的区块链内,作为各域的信任凭证。如果一个域不再有跨域需要,或者该域不再可信,对加入联盟链的许可进行撤销,实现盟员的退出。

表1 区块链类型及性能特点Tab. 1 Type and performance characteristics of different blockchains

图2 BCCA信任模型Fig. 2 Trust model of BCCA

2.2 系统架构

如图3所示,多个域的根CA作为联盟链VP,通过自生成区块链证书,并把证书的哈希值记入区块链作为各域的信任凭证。为了实现多域信任凭证的传递与确认,本文方案添加代理认证服务器作为区块链系统的NVP,通过NVP查询验证存储在区块链上的信任凭证,实现跨域认证。加入NVP,一方面可发挥代理认证服务的功能,另一方面也解决了在仅有VP的联盟链框架下用户与VP交互时因通信量过大造成的阻塞。

图3 系统架构Fig. 3 System structure

2.3 区块链证书

本文设计一种区块链证书,由许可加入联盟链的多个域的根CA自生成,并记入区块链,作为不可篡改的信任凭证。X.509证书与本文设计的区块链证书如图4所示。

与传统X.509数字证书比较,主要有以下改进:

1)本文方案在数字证书中添加了使用者域与生成者域的名称。该证书不仅作为域间跨域认证的信任凭证,在用户实现跨域认证之后,认证域的根CA对请求认证的用户生成跨域证书,传给用户,并以哈希值的形式记入区块链,方便用户再次访问时提供快速认证。

2)本文方案在数字证书中省去了签名与签名算法模块。传统PKI通过使用数字签名判断证书是否被篡改,使数字证书具有防伪性,保证数字证书中身份和公钥的绑定值得可信。由于区块链天然的具有不易篡改的特性,可信域的根CA(VP)生成区块链证书并将证书的哈希值记入区块链作为多域信任凭证,代替CA对证书的签名过程;认证服务器(NVP)通过在区块链内查验多个域的可信凭证,代替对证书的签名验证的过程。

3)本文方案设计的数字证书没有证书撤销检查服务的URL模块。即在区块链上发布的证书没有CRL与OCSP管理服务。区块链不能更改已经写入的数据,只能在写入时附加数据的状态。文献[17]定义写入区块链的接口为put(action,data),action表明用户对数据的处理意图,可以是create、insert、update或delete。本文方案把证书写入区块链的接口定义为put(action,Hash(Cert)),参数action定义为本证书当前状态,分为issue或revoke两种状态。区块链查询接口定义为query(condition),参数condition表示用户查询的条件,可以是交易的哈希值或块的哈希值[17],也可以是待查询有关数据的主键。

图4 X.509数字证书与区块链证书Fig. 4 X.509 digital certificate and blockchain certificate

2.4 基于区块链的跨域认证协议

根据上述信任模型、系统架构和区块链证书,本文提出基于区块链的跨域认证协议。假定经许可加入联盟链的域是可信的,跨域认证协议开始之前,各个域的根CA区块链证书的哈希值和写入状态已经保存在区块链的区块中。

以A域和B域作跨域认证为例,基于区块链的跨域认证方案由用户、信任锚根CA证书服务器、代理认证服务器组成。信任锚根CA证书服务器、代理认证服务器作为区块链节点,分别执行生成证书并记入区块链和查询区块链验证证书的任务。表2为协议中用到的符号说明,协议流程如图5所示。

表2 协议符号说明Tab. 2 Description of the protocol symbol

图5 本文协议流程Fig. 5 Flow chart of the proposed protocol

具体协议如下:

1)UA→ASB

A域用户UA请求访问B域认证服务器ASB。

2)ASB→UA:{N1}

B域认证服务器ASB收到用户UA的请求后,响应请求并向A域用户UA发送随机数N1。

3)UA→ASB:{CertUA,SignskUA(N1),N1}

(i)A域用户UA收到B域认证服务器ASB的响应,使用用户UA的私钥skUA对随机数N1签名生成SignskUA(N1);

(ii)A域用户UA响应B域认证服务器ASB的请求,把用户证书CertUA、签名SignskUA(N1)、随机数N1作为消息发送给B域认证服务器ASB。

4)ASB→ASA:{N2}

(i)B域认证服务器ASB收到消息,检查随机数N1是否有效;

(ii)使用CertUA、N1验证SignskUA(N1)是否正确,解析证书,查看证书有效期,通过证书或证书链确定A域信任锚CAA;

(iii)B域认证服务器ASB向A域认证服务器ASA发送请求申请得到A域信任锚CAA的区块链证书BCertCAA,并发送随机数N2。

5)ASA→ASB:{BCertCAA,N2}

A域证书认证服务器ASA收到请求及随机数N2,将A域信任锚CAA的区块链证书BCertCAA、随机数N2作为消息发给B域认证服务器ASB。

6)ASB→CAB:CertUA

(i)B域认证服务器ASB收到消息后,检查随机数N2是否有效;

(ii)解析BCertCAA查看有效期,根据区块链使用的哈希算法把BCertCAA作哈希运算得到Hash(BCertCAA);

(iii)B域认证服务器ASB使用Hash(BCertCAA)查询区块链,得到在区块链上查询的结果:

(a)若无查询结果,则由于A域认证服务器提供了不正确的信任锚CAA区块链证书,认证失败;

(b)若查询结果为issue和revoke,则由于A域信任锚CAA的区块链证书已为撤销状态,认证失败;

(c)若查询结果仅有issue,则A域信任锚CAA的区块链证书为已发布状态,认证成功。

(iv)认证成功后,B域认证服务器ASB向B域信任锚CAB发送用户UA证书CertUA。

7)CAB→ASB:BCertUA,CAB

B域信任锚CAB收到用户UA证书CertUA后,解析用户UA证书,生成跨域区块链证书BCertUA,CAB,并记入区块链,同时反馈给ASB。

8)ASB→UA:BCertUA,CAB

B域证书认证服务器ASB发给用户UA跨域区块链证书BCertUA,CAB。

9)同理使用1)~8)实现A域对B域的反向认证。

10)由1)~9)实现A、B两域的双向认证。

重认证:

再次认证时,A域用户UA直接把跨域区块链证书BCertUA,CAB发给B域认证服务器ASB,由ASB作哈希运算,并查询区块链,验证证书有效性即可。

3 方案分析

3.1 安全性分析

3.1.1证书存在性与所有权

本文方案将各个域与用户的证书文件进行哈希运算,再将证书的哈希值存入在区块链中。哈希函数具有以下特性:

性质1单向性:给定h,根据hash(m)=h,计算m是不可行的;

性质2抗碰撞性:给定算法hash(),要找到两个不同的消息x1≠x2,使其哈希值hash(x1)=hash(x2)是计算不可行的。

哈希函数的单向性与抗碰撞性能够使任何区块链节点匿名和安全地存储信任凭证。通过在区块链上存放文件的密码学哈希值,以及提交该文件哈希值至区块链中的时间信息,来证明证书文件的存在性与所有权。

3.1.2双向实体认证

在每个信任域内,通过域内原有的认证方式实现用户和认证服务器的认证。在多域间联盟链的框架下,认证服务器通过请求获得待认证域的根CA区块链证书,作哈希运算后查询区块链内已保存的信任凭证,确认信任关系,实现用户与对方域的服务器的认证。凭借本域用户与对方域服务器的认证,对方域服务器与对方域用户的认证,实现两个域间用户的双向实体的认证。

3.1.3防止重放攻击

本协议使用了询问-应答的握手方式,在传递消息的同时添加随机数。这个随机数保存在询问服务器内,验证反馈信息之前,首先验证随机数,通过验证随机数和原服务器保存的一样,起到防止重放攻击的效果。

3.1.4抵抗分布式拒绝服务(DDoS)攻击

区块链的分布式架构天然地拥有点对点、多冗余特性,即使一个节点失效,其他节点也不受影响,因此不存在单点失效问题。它对拒绝服务攻击的方式比中心化系统灵活很多,一旦节点失效,与失效节点连接的用户即无法进入系统。

3.2 效率分析

如图3所示,本节对协议的计算开销进行分析,并与文献[7]方案和文献[9]方案作比较。特别说明的是,为保证方案顺利实现,又与其他文献方案处于平等复杂程度,不失一般性,设置本文方案与文献[7]方案盟员数均为2。表3为三个方案的效率比较,单位为运算次数,其中公钥加密与解密、数字签名与验证两栏计算的是分步次数的总和。

表3 计算开销对比Tab. 3 Comparison of computation overhead

与文献[9]方案相比,本文方案减少了8次数字签名与验证次数。文献[9]基于门限方案,数字签名与验证的次数会随着盟员数量的增加呈倍数增长;而本文方案基于分布式联盟链,不受盟员的增加而导致两方跨域认证时使用公钥算法次数的增加,但客观上会出现由于区块链集体维护账本导致的哈希运算次数的增加。因此本文方案使用的公钥算法的次数远小于文献[9]方案。由于哈希算法的效率远高于公钥算法,因此本文方案在多域联盟下的跨域认证具有明显优势。

与文献[7]方案相比,本文方案减少了2次公钥加密与解密,数字签名与验证次数相同,因此本文方案使用公钥算法的次数少于文献[7]方案。在盟员数为2的情况下,本文方案使用哈希算法次数也少于文献[7]方案;但随着盟员数的增长,本文方案使用哈希运算次数随之增加。在同等配置的机器上测试,RSA-1 024的耗时约为ECDSA-192的1/2,SHA-256的计算耗时约为RSA-1 024的1/10,所以哈希算法的计算速度远高于公钥算法,速度甚至超过几十倍。所以即使在多域联盟环境下,与仅有两域相比,本文方案实现跨域认证的效率与承载力还是可观的。

3.3 可行性分析

在计算方面,方案基于联盟区块链架构进行设计。目前已知联盟链平台每秒可并行处理几千到几万笔交易,满足跨域认证的功能需要。

在存储方面,因为区块链存储数据是永久性的,把大量原数据直接存储在区块链上是不妥的。所以区块链通常采用SHA256哈希函数,将任意长度的交易数据经过哈希运算后转换为长度为32字节的二进制数,然后通过Merkle树的记录方法,计算出一个Merkle根哈希值,作为交易数据的总哈希值存储在区块头内。采用Merkle树的好处是,如果一个交易数据没有后续交易产生,可以删除这个交易数据,只保留Merkle树中这个交易数据的Hash值即可。这样,对整个区块来说,不仅没有改变它的密码学安全性和完整性,数据量也可以大大减小。

在部署成本方面,方案不改变原有各域信任体系的认证方式,将各域的信任锚加入区块链社区,即联盟链的环境中,以实现多域间的跨域认证,因此,系统的可扩展性强。

4 结语

本文提出了基于区块链的跨域认证方案。该方案在不改变域内PKI认证模型的前提下,将经过许可的域加入联盟链,实现双向实体跨域认证,并提供快速重认证。与已有跨域认证方案相比,本文方案在保证安全的基础上,通过减少签名与验证签名的次数,能有效提升跨域认证的效率;而且系统基于联盟链的设计,可扩展性强。

参考文献:

[1]荆继武,林璟锵,冯登国.PKI技术[M].北京:科学出版社,2008:6. (JING J W, LIN J Q, FENG D G. PKI Technology [M]. Beijing: Science Press, 2008: 6.)

[2]关振胜.公钥基础设施PKI及其应用[M].北京:电子工业出版社,2008:14-16. (GUAN Z S. Public Key Infrastructure PKI and Its Application [J]. Beijing: Publishing House of Electronics Industry, 2008: 14-16.)

[3]路晓明,冯登国.一种基于身份的多信任域网格认证模型[J].电子学报,2006,34(4):577-582. (LU X M, FENG D G. An identity-based authentication model for multi-domain grids [J]. Acta Electronica Sinica, 2006, 34(4): 577-582.)

[4]BUTLER R, WELCH V, ENGERT D, et al. A national-scale authentication infrastructure [J]. IEEE Computer, 2000, 33(12): 60-66.

[5]ROUIBAH K, OULD-ALI S. Dynamic data sharing and security in a collaborative product definition management system [J]. Robotics and Computer-Integrated Manufacturing, 2007, 23(2): 217-233.

[7]张文芳,王小敏,郭伟,等.基于椭圆曲线密码体制的高效虚拟企业跨域认证方案[J].电子学报,2014,42(6):1095-1102. (ZHANG W F, WANG X M, GUO W, et al. An efficient inter-enterprise authentication scheme for VE based on the elliptic curve cryptosystem [J]. Acta Electronica Sinica, 2014, 42(6): 1095-1102.)

[8]彭华熹.一种基于身份的多信任域认证模型[J].计算机学报,2006,29(8):1271-1281. (PENG H X. An identity-based authentication model for multi-domain [J]. Chinese Journal of Computers, 2006, 29(8): 1271-1281.)

[9]罗长远,霍士伟,邢洪智.普适环境中基于身份的跨域认证方案[J]. 通信学报,2011,32(9):111-115. (LUO C Y, HUO S W, XING H Z. Identity-based cross-domain authentication scheme in pervasive computing environments [J]. Journal on Communications, 2011, 32(9): 111-115.)

[10]LI Y, CHEN W, CAI Z, et al. CAKA: a novel certificateless-based cross-domain authenticated key agreement protocol for wireless mesh networks [J]. Wireless Networks, 2016, 22(8): 2523-2535.

[11]NAKAMOTO S. Bitcoin: a peer-to-peer electronic cash system [EB/OL]. [2017- 03- 22]. http://tmtfree.hd.free.fr/albums/files/TMTisFree/Documents/Economy/Bitcoin.%20A%20Peer-to-Peer%20Electronic%20Cash%20System.pdf.

[12]工信部.中国区块链技术和应用发展白皮书[R]. 北京: 工信部,2016: 23. (Ministry of Industry and Information Technology. White paper for Chinese blockchain technology and application development [R]. Beijing: Ministry of Industry and Information Technology. White paper, 2016: 23.)

[13]FROMKNECHT C, VELICANU D, YAKOUBOV S. CertCoin: a namecoin based decentralized authentication system [R/OL]. (2014- 05- 14) [2017- 05- 08]. http://courses.csail.mit.edu/6.857/2014/files/19-fromknecht-velicann-yakoubov-certcoin.pdf

[14]AXON L. Privacy-awareness in blockchain-based PKI, CDT technical paper series 21/15 [R/OL]. [2017- 05- 08]. https://ora.ox.ac.uk/objects/uuid:f8377b69-599b-4cae-8df0-f0cded53e63b.

[15]LEWISON K, CORELLA F. Backing rich credentials with a blockchain PKI[EB/OL]. [2017- 04- 12]. https://pomcor.com/techreports/BlockchainPKI.pdf.

[16]袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(4):481-494. (YUAN Y, WANG F Y. Blockchain: the state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494.)

[17]蔡维德,郁莲,王荣,等.基于区块链的应用系统开发方法研究[J].软件学报,2017,28(6):1474-1487. (CAI W D, YU L, WANG R, et al. Blockchain application development techniques [J]. Journal of Software, 2017, 28(6): 1474-1487.)

猜你喜欢

跨域哈希证书
基于多标签协同学习的跨域行人重识别
WJCI 收录证书
CSCD收录证书
为群众办实事,崂山区打出“跨域通办”组合拳
混合跨域神经网络的草图检索算法
收录证书
基于特征选择的局部敏感哈希位选择算法
G-SRv6 Policy在跨域端到端组网中的应用
哈希值处理 功能全面更易用
文件哈希值处理一条龙