微软|区块链在网络信任体系中的应用研究( 六 )



图3 基于区块链的证书/撤销透明度方案模型网络实体拥有两对密钥:一对是证书中包含的公私钥对 , 记为证书密钥;一对是用于发布证书的密钥对 , 记为发布密钥 。 方案包含两种证书交易类型:一种是网络实体用自己的发布密钥对签名的交易 , 用于定期发布证书;另一种是用于初始化和重置发布密钥对的交易 。 具体的用户注册、证书颁发、证书更新、证书验证、证书撤销过程如下 。
(1)用户注册:新用户发布注册交易Tx_0 , 声明自己的发布密钥 。 新用户需要委托其信任的、一定数量的、已经加入网络的实体对自己的发布密钥进行签名 。
(2)证书颁发:注册完成后 , 用户在链下向其信任的CA发送证书请求 , 经CA审查后为其制作证书Cert_0 。 为了进一步削弱CA对于证书的控制权 , 制作好的证书由网络实体自己以交易的形式发布到区块链上 , 附带完整的证书链 , 并用其发布密钥对交易进行签名 。
(3)证书更新:同样由CA在链下更新网络实体的证书 , 再由网络实体自己向区块链提交证书更新交易Tx_2来完成 。 交易中需包含旧证书Cert_0摘要和新证书Cert_1 。
(4)证书撤销:过期的证书或者因遭受攻击而颁发的欺诈性证书需要进行证书撤销 , 同样由CA在链下进行撤销 , 并由网络实体以交易的形式发起 。 证书撤销交易Tx_3需包含用户ID、待撤销的证书哈希值、最近一次该用户证书日志交易的摘要以及交易的签名 。
【微软|区块链在网络信任体系中的应用研究】(5)证书验证:在建立网络通信连接时 , 证书依赖方需要验证与其通信的网络实体的证书是否合法 , 通过智能合约来实现 。
此外 , 一些研究尝试改造区块链 , 更好地实现对PKI证书日志的优化 。 CertChain采用Ouroboros区块链中的共识协议 , 从而消除PoW共识的安全问题 , 并且利用激励机制奖励CA和记账者的诚实行为 , 强化证书日志管理的安全性 。 KORGAN通过基于动态门限签名优化PBFT共识协议 , 进而简化证书验证过程 。 CertLedger是一种基于公有链的PKI证书透明度框架 , 所有的证书验证、存储、完整的撤销过程均在CertLedger和可信CA证书管理系统中进行 。 CertLedger方案中设置了一个可信组织 , 通过门限机制来管理受信CA 。
尽管多项研究成果提出采用区块链技术优化证书透明度、强化PKI证书日志的安全性 , 但是这一系列方案仍然面临仅能被动查验、审计恶意行为 , 诚实节点被污染或破坏后难以发现和处理 , 密钥丢失、被窃取或遭到破坏后难以恢复和更新等问题 。
3.4 基于区块链的跨域认证
在大型网络中通常采用PKI建立实体之间的信任关系 。 但是 , 不同终端实体的证书由不同的CA颁发 , 这就为跨根CA信任互联增加了难度 。 为了解决这一问题 , 基于联盟链的跨域认证模型相继出现 。 不同的根CA将各自信任域内的证书状态变更信息提交到区块链上 , 经共识节点验证通过后被记录在区块链上 , 其一般框架如图4所示 。

图4 基于联盟链的跨域认证模型在传统模式下 , 实体A与实体B进行身份认证需要寻找一条证书链 。 若采用交叉互认方式 , 证书链包含7个证书;若采用桥CA方法 , 证书链包含9个证书 。 而采用联盟链的方式 , 实体A请求验证实体B的身份 , 只需要在联盟链上查找实体B的当前证书状态 , 避免了复杂的证书路径寻找过程 , 减少验签次数 , 提高证书验证效率 。
除了在PKI体系内的跨域认证 , 区块链还为实现跨异构域认证提供了解决思路 。 目前 , 这类方案尚处于理论阶段 , 研究成果主要集中在将区块链应用于PKI域和IBC域之间的跨域认证 , 力求实现更加完全的跨域认证方案 。