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


受到Namecoin的启发 , 普林斯顿大学的学者于2016年提出一种DNS与PKI融合的系统Blockstack , 并在比特币区块链上部署实现 。 为了应对区块链的容量限制 , Blockstack将控制层和数据层分开 。 区块链上仅保存最小化的身份信息和状态转移的元数据 , 完整的数据存储在链下的数据库中 。 控制层包含注册可读性名字、创建名字与摘要的绑定信息、创建绑定信息与密钥对的映射关系 。
基于区块链的去中心化域名管理方案的核心思想是将域名信息以“name-value”键值对的形式记录在区块链上 , 通过共识机制确保全网所有节点持有一致的域名状态库 , 并实现对域名全生命周期的维护和管理 。 尽管后续方案在数据存储容量、安全性等角度进行了优化 , 但是 , 基于区块链的去中心化域名管理方案仍然面临与传统DNS系统难兼容等现实问题 。
3.2 基于区块链的去中心化 PKI
随着应用研究的深入 , 区块链技术在网络信任体系建设中的技术优势也初步显现 。 继DNS之后 , PKI作为构建网络信任体系的重要技术基础设施 , 逐渐成为学术界探索区块链应用的重要研究热点 , 也出现了许多技术方案 。
2014年5月 , 麻省理工学者在Namecoin的基础上 , 提出了一种基于区块链的分布式PKI方案——Certcoin 。 Certcoin 是区块链在PKI领域的首次应用 , 方案吸纳了透明证书和信任网络(Web of Trust , WoT)的优势 , 将区块链作为一个公开的账本 , 实现域名与公钥之间的绑定 , 支持完全的公开审计 , 基本架构如图2所示 。 Certcoin包含线上和线下两对密钥对 。 线上密钥对直接与身份绑定 , 用于证书认证 , 实现注册密钥、查询、验证和撤销 。 线下密钥用于撤销线上密钥对 , 通过旧私钥对包含新公钥的消息进行签名来实现密钥的更新 。

图2 Certcoin 区块链基本架构随后 , 基于区块链进行隐私保护的PKI方案 , 即PB-PKI在Certcoin方案的基础上用线下密钥对线上密钥进行保护 , 但没有将身份与公钥直接关联 , 从而提升隐私性 。 PB-PKI提供短期密钥更新和用户可控的公开功能 , 使用户可以自行选择公开公钥或者由参与共识的大多数节点来公开 。
但是 , 在不依赖于CA的完全去中心化的网络信任框架下 , 对于首次加入系统注册的网络实体无法进行有效验证 , 也没有密钥丢失、被窃取后的补救方案 , 无法进行身份回收 。 另外 , 每个网络实体选择信任锚的方式也非常主观 , 存在一定安全风险 。 因此 , 一些研究通过计算信誉函数来优化基于区块链的身份系统 , 通过合理定义和选择信誉函数 , 保证信任评估的公平性和安全性 。
3.3 基于区块链的证书日志管理
为了更好地与现有的PKI体系相结合 , 一些研究也尝试利用区块链技术优势对以CA为核心的PKI体系进行优化 。 其中一个重要的研究方向是将区块链融入基于日志的PKI体系中 , 由信任单一日志节点转向依靠分布式证书日志管理 , 从而优化证书日志 , 强化PKI日志安全 。 一方面 , 在基于日志的PKI体系中 , 区块链技术的引入可以解决证书日志服务器的单点故障问题;另一方面 , 借助区块链技术构建信任网络 , 可以降低对CA机构的绝对依赖 , 增强证书日志服务的健壮性和可审计性 。
在基于证书透明度的Web PKI方案基础上 , 基于区块链的证书/撤销透明度方案被提出 , 可以兼容X.509证书 。 证书由CA签名 , 证书的注销状态信息由网络实体以交易的形式发布到区块链上 , 记账者将验证通过的交易提交到一个全球证书区块链中 。 证书区块链作为一种只增不减的公共日志来监视CA证书的签发和注销 , 并授予网络实体对其证书的控制权限 , 以削弱CA机构对证书的绝对控制 。 区块链中的证书交易结构如图3所示 。