0 引 言
公钥基础设施(public key infrastructure,PKI)是利用公钥理论和技术建立的提供信息安全服务的基础设施,是信息安全基础设施的一个重要组成部分。其核心是通过颁发数字证书来解决信息网络空间中的信任问题,确定信息网络空间中身份的唯一性、真实性和合法性,保护信息网络空间中各种主体的安全利益。但是,每个PKI系统会形成一个封闭的安全域,并且仅接受由系统内核心执行机构——证书授权中心(certificate authority,CA)颁发的证书
[1,2],这造成了严重的信任孤岛问题。因此,在互联网、金融、征信、物联网、医疗等行业场景下,如何实现不同安全域之间的身份互认成为了目前PKI建设亟待解决的问题。由此可见,建设跨域身份认证信任服务体系,构建跨域身份认证信任服务平台至关重要。
由于在跨域认证过程中,各个安全域的CA都是独立且对等的,所以通过中心化节点(如设立信任第三方或由某一CA)主导跨域认证
[3~6]的解决方案通常存在不公平和单点失效等问题
[7,8],甚至会危害其他安全域。区块链技术的分布共识特性为不同安全域间的相互监督和认证提供了解决思路
[9~11]。目前,已经有学者提出了一些可行的基于区块链的身份管理方案,例如:CertCoin
[12],Certchain
[13],CertLedger
[14]以及BCTRT
[15]等。这些方案通过区块链建立不同PKI体系的联盟,利用分布式特性直接共享身份数据和操作数据,以解决不同安全域之间的认证问题。然而这些方案仍然存在许多不足:一方面,响应速度慢。基于区块链的方案都受到区块链低并发问题的限制,例如,比特币的处理速度约为每秒7个事务,而以太坊的处理速度约为每秒10个事务。在面对海量身份数据时,其响应速度是远远不能满足需求的
[16]。另一方面,对用户的隐私保护不足。由于这些方案直接记录了用户的操作,因此恶意的节点可以通过这些信息获悉任意用户任意时间的访问行为,这严重威胁了用户的隐私安全。
为解决上述问题,本文提出了一种云环境下去中心化跨域身份认证方案。在不修改原始PKI体系结构的基础上,该方案将星际文件系统(interplanetary file system,IPFS)
[17]作为存储层,用于存储和共享身份验证信息,并将区块链作为控制层,保证跨域数据的完整性与一致性。针对响应速度慢的问题,设计了一种高效的存储模式,提高了存储效率;针对用户隐私泄露的问题,通过限制存储的数据类型和设计用户主动认证机制,保护跨域认证过程中的用户隐私。
1 跨域身份认证模型
跨域身份认证模型涉及多个有跨域需求的安全域。安全域可以是一个私有网络、部门或公司内网、存在隔离的不同业务网等。每个安全域中包含域内证书授权中心CA、域内用户、IPFS节点、区块链节点等。跨域身份认证模型如
图1所示。
由
图1可知,CA是系统的核心,除了操作身份证书、共享验证数据、向用户签发证书外,还需要按照跨域证书透明度(certificate transparency,CT)
[18]机制在系统内提交和审核证书。在跨域证书透明度机制中,所有的证书都需要被提交到存储层和控制层中供其他CA审计。证书透明度机制可以有效阻止恶意节点签发的虚假证书对PKI系统造成危害,这一点对跨域身份认证是至关重要的。域内用户是指某个安全域内有跨域需求的实际用户,也可以是用户的终端设备(如笔记本、移动电话等)。当需要跨域访问时,用户只需要向服务方发起跨域请求并提供事先申请的跨域身份证书。服务方则通过存储层和控制层获取验证数据,验证跨域证书后即可提供服务。在跨域认证过程中,本方案还利用隐私保护机制保护认证双方的身份和行为隐私。控制层基于区块链实现,提供数据查询、校验和恢复服务,保障跨域数据的一致性。存储层基于IPFS实现,通过标准化和高效的存储模式实现对跨域请求的快速响应。
为了达到去中心化的目的,安全域内的区块链节点和IPFS节点都是由该域的CA担任,每个CA承担的节点数量尽可能相近。
2 跨域身份认证体系架构
虽然区块链技术具有良好的信任分散能力,但其存储效率和响应速度无法满足海量身份数据的需求。而安全性不足的IPFS能够提供高效的查询和存储性能。因此,本文提出的跨域身份认证体系架构通过分离存储层与控制层的方式,集成两项技术,同时兼容了区块链的分散安全特性以及IPFS的高效特性。该架构包含3个层面:存储层、控制层、应用层。存储层使用IPFS,共享跨域数据,为跨域身份验证提供支撑,保证认证的快速响应;控制层采用区块链技术,确保跨域数据的完整性和一致性;应用层向用户提供完整的跨域身份认证服务,并在跨域认证过程中保护用户隐私。跨域身份认证体系架构如
图2所示。
2.1 存储层
在存储层,IPFS不仅存储数据,还要将数据与控制层中对应的区块链地址绑定。由于跨域数据格式和大小不一,本文设计了标准化的存储结构,用于提高存储效率。该结构以JS对象简谱(javascript object notation,JSON)文件的形式存储在IPFS中,其字段包括如下内容:
1) Data:数据字段,表示实际存储的数据。
2) Data type:数据类型字段,用于区分不同的数据,包括CA公钥、证书操作、证书撤销列表等。
3) Timestamp:时间戳字段,指该数据存储的时间。
4) Address:地址字段,指在区块链中对应的数据地址。
5) Check time:校验时间字段,指最新的完整性校验时间。
6) Extension:扩展字段,用于存储其他特殊类型数据。
为了提高跨域认证平台的响应速度,本文在存储层设计了一种高效的存储模式——多默克尔哈希树。该存储模式并没有修改区块链本身的数据结构,而是在将IPFS作为存储层的基础上调整了存储在区块链中的数据。多默克尔哈希树存储模式如
图3所示。
自底向上看(
图3),结构底层是待存储的跨域数据(以证书操作Op为例)。IPFS节点会在一段时间内收集安全域中所有证书操作,以多默克尔哈希树结构打包存储成操作树,并且每个操作树可以包含多个证书操作,该树的树根被存储到区块链的具体事务(Tx)中。区块体则是由多个事务构成的多默克尔哈希树,其树根记录在区块头部的交易树根中。此外,区块头部还记录了上一个区块的哈希值、区块创建时间戳、版本号等信息。
2.2 控制层
控制层用于保障跨域数据的完整性和一致性。它分为三个部分,第一部分为跨域数据查询,第二部分为跨域数据校验,第三部分为跨域数据恢复。跨域数据查询即用户向IPFS节点提交查询请求,获取跨域数据,用于跨域身份认证。在请求提交之后,待共享的数据必须经过跨域数据完整性校验,校验成功的数据才能共享给用户,否则查询失败,执行跨域数据恢复。
其中,跨域数据完整性校验和恢复协议如
图4所示。协议中一共包含3个实体,分别为区块链系统、安全域
F内的IPFS节点IPFS
F 、安全域
N内的IPFS节点IPFS
N。IPFS
F 为完整性验证请求者,IPFS
N 为原数据拥有者。协议流程如下:
1) 当执行跨域数据完整性校验时,首先IPFS F 通过数据对应的Address字段到区块链系统中请求对应数据的校验值。
2) 区块链返回校验值ψ。
3) 收到校验值后,IPFS
F 对本地数据
χ执行哈希运算并对比结果是否与
ψ一致,即判断Hash(
χ)==
ψ?其中,Hash()为哈希算法SHA-256
[19]。如果一致,则更新对应的Check time字段,并向用户共享数据。否则,执行协议的第二部分即跨域数据恢复部分。
4) 对比校验值不一致时,进入此步骤。向IPFS N 节点发起数据恢复请求。
5) IPFS
N 根据请求,返回具有相同Address值的原始数据
χ1,并加密传输
Φ= Enc
pk(
χ1)。其中,Enc
pk()为非对称加密算法RSA-2048
[19],pk表示公钥。
6) IPFS
F 收到加密数据后,进行解密运算并比对第2步中得到的校验值
ψ,即判断Hash(Dec
sk(Φ))==
ψ?若结果一致,则替换本地数据,并向用户提供数据共享服务。其中,sk表示私钥,Dec
sk()为非对称解密算法RSA-2048
[19]。若结果仍不一致,作废该记录,并标记该数据为恶意数据。
2.3 应用层
跨域身份认证架构的应用层用于为安全域内的CA和用户提供服务。其包含两个模块:跨域证书透明度机制和跨域认证与隐私保护机制。
1) 跨域证书透明度机制用于监视和审计不同安全域中CA签发的跨域证书,激励系统中各节点共同参与系统的维护和管理。在该机制中,CA需要共享证书操作、审计证书并签发证书签名时间戳(signed certificate timestamp,SCT),只有包含足够SCT的证书才能被其他域的用户认可。
2) 跨域认证与隐私保护机制用于解决跨域身份认证过程中的用户隐私泄露问题。一方面,优化认证流程,采用用户主动认证的方式,让用户主动批量获取验证数据,减少验证操作的指向性,防止敌手通过验证日志间接窃取用户隐私。另一方面,对IPFS和区块链中的跨域数据类型进行限制,防止包含用户隐私的数据被敌手直接窃取。
3 跨域证书透明度机制
由于分布式身份管理方案的特性,节点被敌手恶意攻击的情况是无法避免的。但是在基于区块链的身份管理系统中,节点是由具体的CA承担的,其核心目标是存储数字证书、实现跨域认证,所以传统的防御机制(如货币奖励等)不再适用。因此,在跨域身份认证架构中实现跨域证书透明度机制至关重要。
跨域证书透明度机制如
图5所示,包含5个实体:安全域
N的证书授权中心CA
N 、IPFS、区块链、其他安全域的证书授权中心(CA
n (
n=1,2,…,
F))、其他利益相关者(如域名拥有者、第三方监视机构等)。该机制具体流程如下:
1) 任意CA在签发跨域证书时都需要共享该签发操作,以证书日志的方式供其他节点审计和监视。首先由CA将日志存储到IPFS上,再由IPFS将日志绑定到区块链上,至此存储完成。
2) 其他安全域CA和利益相关者向存储层IPFS请求跨域证书日志数据。
3) IPFS查询数据并请求区块链执行跨域数据完整性校验。
4) IPFS返回通过校验的日志数据。
5) 证书透明度的审计阶段,CA和其他利益相关者需重点审计证书的有效期、域名等字段,检查是否存在有冒名、重名等问题的不合法证书。此外,CA还可通过审核跨域证书在安全域内的访问行为,检查跨域者是否存在越权访问、非法访问、恶意修改数据等恶意操作行为。
6) 若其他利益相关者监视到异常证书,将向其他安全域CA发出警示。
7) 对存在上述异常情况的证书以及行为审核异常的证书,CA需执行冻结操作,并添加到证书冻结列表中。在跨域认证时,冻结列表中的证书是无效的。通过审计的证书,CA会为其签发SCT,用于跨域身份认证。
流程中的证书冻结列表与证书撤销列表(certificate revocation list,CRL)类似,是一种结构化数据文件。该文件包含了证书颁发机构(CA)已经冻结证书的序列号及其冻结时间。不同之处在于,证书冻结列表针对跨域证书,可用于跨域访问时的权限管理。证书冻结列表是对跨域证书的二次认证,通过证书透明度审计和跨域行为审核,实现对跨域身份的管控,消除恶意跨域访问者对安全域的威胁。
4 跨域认证与隐私保护机制
在跨域认证过程中,为保护用户隐私,本文设计了跨域认证与隐私保护机制。一方面从跨域认证流程上,该机制要求用户以批量的方式主动从IPFS中获取认证所需信息(CA公钥、证书撤销列表、证书冻结列表),再执行跨域身份认证。通过将跨域认证功能由中心节点转移到用户,有效保护了用户的个人隐私。另一方面从数据层面上,该机制明确限制跨域数据必须为可公开的、非指向的,从而防止恶意节点窃取跨域数据中的个人隐私,如电话、住址、年龄等。即使跨域用户的认证操作被系统内的节点记录,由于这些数据的非指向性,攻击者仍然无法从这些记录中解析出用户的访问行为。
在跨域认证过程中包含5个实体:区块链、IPFS、安全域
N的跨域请求用户User
N 、安全域
N的证书授权中心CA
N 、安全域
F的被访问用户User
F。跨域认证与隐私保护机制如
图6所示,具体步骤如下:
1) 在跨域身份认证开始之前,每个安全域的CA都需要共享跨域证书的验证数据,包括CA公钥、证书撤销列表、证书冻结列表。这些数据首先由CA存储到IPFS,再由IPFS绑定到区块链中。
2) User F 向IPFS批量请求用于验证跨域证书的数据,避免用户的操作记录被攻击者获取和分析。
3) IPFS向区块链请求数据完整性校验服务。区块链根据查询数据返回校验值给IPFS,IPFS比对校验值与原数据。
4) IPFS返回通过校验的验证数据。
5) User N 向User F 发起跨域访问请求,并附加User N 的跨域证书用于身份认证。
6) User F 提取跨域证书并使用上一步中的验证数据对跨域证书进行验证。验证步骤包括:
(a) 有效性验证:首先根据CA公钥验证证书的签名,再验证证书是否在有效期内,最后验证证书是否存在于证书撤销列表内。
(b) 透明度验证:截取证书扩展字段中的SCT证明,并对该证明签名验证。
(c) 安全性验证:验证证书是否存在于证书冻结列表内。
7) 通过所有验证后,User F 与User N 才能建立跨域访问连接,否则跨域证书无效,认证失败。
5 方案分析
5.1 安全性分析
安全性分析主要是基于去中心化跨域认证模型,以多种潜在的攻击手段(分裂世界攻击
[14]、冒充攻击
[15]、迂回攻击
[13])为例,分析说明本方案的安全性。
5.1.1 分裂世界攻击
分裂世界攻击
[14]是针对证书透明度机制的一种攻击手段,其核心是让证书透明度机制中的恶意日志服务器向用户和审核者提供不一致的日志数据。恶意日志服务器维护日志的两个版本:正确版本和恶意版本。前者向审核者显示以进行透明度审核,后者(包括恶意证书)向受害用户显示。受害用户无法区分当前接收的日志是否为正确的版本,导致CT机制失效。本方案将日志存储在IPFS中,并由区块链验证。 IPFS和区块链共同构成了一个日志服务器。审核者和用户都可以通过这个唯一的日志服务器获取正确的日志数据。因此,本方案从根本上避免了分裂世界攻击。
5.1.2 冒充攻击
冒充攻击
[15]是指攻击者可以使用类似合法身份的假证书来诱使受害者相信他/她是合法用户。在本方案中,所有跨域证书都需要经过证书透明度审计。没有经过审计的证书CA不会被签发SCT,由于缺少有效的SCT,采用本文方案时该证书最终在跨域身份认证中被视为无效。
5.1.3 迂回攻击
迂回攻击
[13]主要是针对存储层的攻击。攻击者攻击CA后按照传统方式签发跨域证书,使证书不被共享到存储层,从而避免跨域证书透明度机制的审核。在本文优化的身份认证流程中,验证者还需要检查跨域证书中是否嵌入了足够数量的合法SCT。因此,采用本文方案时,该类证书将被标识为无效。
5.2 性能分析
为了检测云环境下去中心化跨域身份认证方案的实际性能,本文实现了一个原型系统,实际验证了该方案在跨域存储、校验、认证等方面的性能。
5.2.1 实验环境
跨域身份认证架构原型系统共实现3个安全域,每个安全域至少包含一个CA和10个用户。CA功能使用OpenSSL(v1.1.1)和Node.js(v8.17.0)实现。控制层区块链系统基于以太坊(v1.8.4)实现,并通过API Web3实现与其他实体的通信。存储层IPFS使用开源版本0.5.0-dev。原型系统中的控制逻辑使用Node.js编写,哈希算法采用SHA-256
[19]。原型系统运行在Ubuntu 16.04操作系统中。
5.2.2 存储效率
以证书为存储数据,将本文设计的高效存储模式——多默克尔哈希树与两种现有的区块链存储模式的存储效率进行对比。两种用以对比的直接存储模式包括:单笔交易中存储证书的原始值(原值单树存储模式)和单笔交易中存储证书的哈希值(哈希单树存储模式)
[20]。存储效率对比结果如
图7所示。
由
图7可知,随着存储数字证书数量的增加,多默克尔哈希树存储模式存储所需的时间是恒定的,约为1.3 s。其他存储模式消耗的时间呈指数增长。显然,相较于直接存储模式,多默克尔哈希树存储模式可以处理更多的证书,并且响应速度更快。
5.2.3 校验效率
首先采用多默克尔哈希树存储模式将足够数量的证书存储到IPFS中,然后不断增加请求校验的证书数量,并记录跨域数据完整性校验的时间消耗,结果如
图8所示。由
图8可知,平均每个证书所需要的校验时间随证书数量呈指数减少。由此可知,分离存储层和控制层的方式并不会影响跨域身份认证的响应速度。
5.2.4 认证效率
将本文与文献[
13~
15]方案的跨域认证效率进行比较。从
表1可知,本文方案首次验证跨域证书耗时13.2 ms,比其他方案验证速度更快;重复认证时,本文认证效率明显较高。这是因为本方案优化了跨域认证流程,采用用户主动获取验证数据的方式在本地验证跨域证书,具有计算资源充足、不受网络延迟影响的优势。在安全性能方面,本方案避免了事实上的中心,具备隐私保护和数据校验恢复的特点。
6 结 语
为解决传统PKI系统下跨域身份认证困难的问题,本文提出了一种与现有PKI和CT系统都兼容的去中心化跨域身份认证架构。与现有基于区块链的身份认证架构不同,本架构兼顾IPFS和区块链技术,实现了海量身份数据的快速响应,并通过用户主动认证和限制跨域数据类型等手段,实现了跨域认证中的用户隐私保护机制。不足之处在于,对于非证书身份的隐私保护受限,未来可从匿名凭证方面切入,实现多种类身份的跨域认证。
国家自然科学基金(61772383)
国家自然科学基金(61702379)
国家自然科学基金(U1836202)
中国博士后科学基金(2019T120685)
装备预研教育部联合基金(6141A02033341)