区块链系统之《基于区块链的PKI数字证书系统》
Posted thefist11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链系统之《基于区块链的PKI数字证书系统》相关的知识,希望对你有一定的参考价值。
摘要 本文提出了一种基于区块链技术构建PKI数字证书系统的方法,利用区块链去中心化、不可篡改等特点,解决了传统PKI技术中存在的单点失败问题以及多CA互信难等问题,可降低传统PKI技术中CA中心建设、运营及维护成本,提高证书申请及配置的效率,提升用户使用体验。该系统作为安全基础设施可以应用于多个领域,如4G小基站设备认证、网络切片认证、多CA互信等。
1. 背景
单点失败问题 :处于核心的 CA 极易遭受攻击,一旦被控制,CA 根证书以及该 CA 已经签发的证书都不再可信。
多 CA 互信难问题 :用户证书只能由所属 CA 的根证书进行验证,不同 CA 之间不能相互验证,现有 CA互信解决方案适用性受限。
在现有的 PKI 实践中,解决 CA 互信问题的方法:
- 权威 CA 列表
对依赖方有较高要求,且权威列表本身的维护代价较高。 - CA 交叉认证
当 CA 数量较少时可以很好地解决CA 互信问题,但大量 CA 两两进行交叉认证时,就会形成复杂的网状结构,且证书策略经过多次映射之后会使证书用途大大受限。 - 桥 CA
该方案类似现实生活中行业协会中介的信任关系,CA 数量较多时可以避免两两交叉认证的弊端,但桥 CA 运营方的选择是个难题,它的可信程度直接决定了互信关系的可靠程度
2. 系统架构
数据存储:区块体中包含若干条记录,每一条记录包括数字证书以及该证书相应操作执行后的证书状态。
2.1 流程
证书申请、证书签发、证书更新、证书吊销、证书验证流程。
2.1.1 证书申请流程
证书用户自己生成一份数字证书,该证书可采用国际标准的 X.509 格式,且在扩展项中增加一个标识,用于标识该证书所属的区块链网络 ;与证书相应的私钥存储于用户侧。
证书用户向区块链网络发起证书申请请求,该请求中包括用户的数字证书,以及验证证书所需的信息。如果证书实体用户申请的是个人匿名证书,则无需提交其他信息 ;如果证书实体用户申请的是个人实名证书,则需提交用于证实其身份的信息。
2.1.2 证书签发流程
验证节点收集用户的证书申请请求,根据用户提交的信息验证证书的合法性 ;
验证节点将当前所有未纳入区块的合法证书信息以及证书状态作为区块链中的记录,使用区块链中的共识机制生成一个新区块 ;
验证节点向区块链网络发布该新区块并同步到其他节点。
2.1.3 证书吊销流程
证书实体用户提交证书吊销请求,该请求中包括用户的证书信息,以及证实用户身份的信息(例如用户的签名信息);
验证节点收集用户的证书吊销请求,根据用户提交的信息验证用户身份 ;
验证节点将当前所有未纳入区块的合法证书信息以及证书状态作为区块链中的记录,生成一个新区块并同步。
2.1.4 证书更新流程
a. 当用户需要更新证书时,用户需要产生一份新的数字证书,该新产生的证书与原有证书具有相同的DN(Distinguished Name)项。
b. 证书用户向区块链网络发起证书更新请求,该请求中包括用户待更新的数字证书,新产生的数字证书,以及验证证书所需的信息。
2.1.5 证书使用流程
在证书使用过程中(例如现有的 TLS、IPSec 等安全协议),证书用户需要将证书提交给依赖方,依赖方接收到证书后,需要检查证书的合法性和有效性。
a. 如果依赖方存储有完整的区块链信息,那么可以在区块链中查找证书以及证书的状态 :若证书最新的状态显示为证书正常,则证书合法。
b. 如果依赖方本地无区块链信息,那么可以向区块链网络发起证书查询请求,请求中包含待查询的证书信息 ;区块链中的节点向依赖方反馈查询结果,查询结果中包含待查证书的最新状态信息
3 应用案例
4G小基站证书申请流程
基于区块链PKI系统的4G小基站认证流程
4. 扩展功能
如果将验证节点限定为特定CA 机构,即以联盟链的方式,由 CA 通过共识完成用户证书的验证工作。经过共识的证书将记录到区块链当中,那么这些证书就被区块链中得所有 CA 认为是可信的证书。
4.1 多CA互信方案示意图
4.2 网络切片认证
切片间通信需要进行安全保护,安全信道的建立可采用数字证书技术实现,但不同运营商的切片通常使用不同 CA签发的证书,在建立 CA 互信之后可以实现相互认证。
参考
【1】“电信工程技术与标准化” Telecom Engineering Technics and Standardization 11-4017.
以上是关于区块链系统之《基于区块链的PKI数字证书系统》的主要内容,如果未能解决你的问题,请参考以下文章