摘 要:面对当前联盟链系统身份管理机制不完善的问题,提出一种联盟链分布式证书管理解决方案。将区块链的系统链与证书管理链进行融合设计,基于证书准入机制,结合智能合约和共识算法技术,构建联盟链分布式 CA 协同管理机制,联盟链参与组织自签生成组织根证书,并通过各自 CA 系统管理组织内的节点和用户,组织之间通过证书管理链共享根证书、撤销列表等数据,实现组织间互信互通、节点用户跨组织的身份认证和授权。
区块链技术自 2008 年诞生到现在,越来越多的企业机构跻身于该研究领域,其基础技术框架已基本完善。区块链系统根据身份管理机制的不同,可大致分为两类:一种是以比特币为代表的公有链系统,采用私钥钱包机制,其身份由随机生成的公私钥进行标识,可根据具体需要生成多个交易地址。在这种区块链系统中,任何节点及用户均可随意接入和退出,区块链网络中的数据公开透明,任何节点和用户均可随意访问并获取全量数据,安全不托底且 交 易 难 以 监 管。另 一 种 是 以 Fabric 为 代 表的联盟链系统,具有身份接入许可机制 ,采用数字证书标识身份,链上各参与方之间是一种协作关系,网络仅对授权的合法节点和用户开放。
目前,国内关注及发展的重点主要聚焦于联盟链,旨在通过多方协同共建数字经济的安全可信基础设施。证书管理机制作为联盟链系统的关键安全保障,对联盟链技术及应用发展具有非常重要的研究意义。然而,现在业内关于联盟链证书管理技术的研究,尚不足以支撑大规模的应用落地,具体表现在以下 3 个方面。
(1)联盟链证书管理技术发展不成体系。联盟链发展至今,被普遍认为是下一个重构信任社会的重要风口,众多企业机构纷纷跻身区块链领域,抢夺行业红利,技术乱象严重,缺乏统一的安全管理规范。各家企业研究重点范畴基本集中在基础平台及应用,尚未有完整的、成体系的联盟链证书管理技术机制或相关产品出现,仅有的一些也只是传统密码管理技术的简单组合应用。区块链作为一种新型技术体系,其本质架构和传统系统存在较大差异,管理理念和模式也存在很大的不同,需要设计专门的、更具针对性的证书管理技术机制,保障联盟链平台安全、可靠运行。
(2)联盟链管理与传统树形管理机制存在较大差异。联盟链系统与传统中心式系统在管理机制方面存在较大差异,传统中心式系统多采用树形管理结构,证书管理节点多级部署,纵向形成上下级之间的通报关系,而联盟链管理核心是分布式、多中心,模式为分布式自管理、跨主体信任协同。需将传统中心式系统树形管理和联盟链分布式管理机制进行融合,设计可兼容传统管理机制的联盟链分布式证书管理体系。
(3)联盟链证书管理缺乏组件化支持。联盟链应用需求繁杂且各不相同,针对不同场景需求要配置不同的密码算法和管理参数,同时,也需要根据应用实际需求实现密码算法的快速升级更新。然而,目前尚未有成熟的、组件化的联盟链证书管理相关产品,需要进一步研究组件化联盟链证书管理技术组件,以增强联盟链系统的实用性和可扩展性。
本文针对以上问题,研究提出符合联盟链分布式管理特点、兼容传统中心式证书管理机制,且支持组件化设计的联盟链管理解决方案,有助于构建分布式可靠信任源,实现跨域用户的身份、属性全局同步和互认,为联盟链系统及其应用提供重要的安全保障。
1
证书管理现状分析
区块链作为一种以密码技术为核心,集成了数学、计算机科学、经济学的组合式创新技术,其本质架构和传统系统存在较大差异,密码管理理念和模式也存在很大的不同。目前尚没有统一的安全管理规范,业内研究方向现多聚焦于基础平台建设及应用开发,还没有完整的、成体系的区块链平台密码管理技术机制或相关产品出现,仅有的一些也只是传统密码管理技术的简单组合应用。而传统树形管理机制与区块链管理机制在管理模式上存在较大差异,传统树形管理机制的核心是“纵向管控、横向协同”,区块链管理机制的核心是“扁平化自管理、分布式可信协同”。可以依托现有树形“纵向管控、横向协同”的管理机制,以区块链“扁平化自管理、分布式可信协同”为原则,研究“核心把控、管理下放”的区块链证书管理技术,构建符合国家证书管理标准、兼容传统管理机制的区块链证书管理机制。
Hyperledger Fabric 和 FISCO BCOS 是当前较有代表性的两类开源联盟链系统,其证书管理机制存在很多问题,具体表现在以下两点:
(1)以 Hyperledger Fabric 为代表的联盟链系统,采用成员身份服务(Membership Service Provider,MSP),管理区块链节点和用户 ,以保障区块链交易的隐私性和可审计性,但无法实现多组织节点证书撤销状态的同步管理。
(2)以 FISCO BCOS 为代表的联盟链系统,采用链证书、组织证书、节点证书三级证书结构管理区块链网络准入验证,但其假定有一个权威机构存在,机构证书需要权威机构基于链证书生成,这种类似传统中心式的管理模式减弱了区块链本身分布式、去信任的技术优势,且证书管理复杂度较高。
2
联盟链分布式证书管理方案设计
2.1 设计原则
融合传统中心式系统“纵向管控、横向协同”的管理机制,以区块链“扁平化自管理、分布式可信协同”为原则,研究“核心把控、管理下放”的联盟链证书管理技术,证书管理设计原则如图 1 所示,从而实现联盟链组织机构、节点、用户证书的全生命周期及使用过程的安全管理。
(1)兼容模式。对接现有树形证书管理系统,获取联盟链系统节点及用户等主体证书,本方案系统提供证书导入和管理功能。
图 1 证书管理设计原则
(2)创新模式。基于证书准入机制,构建分布式协同证书授权(Certificate Authority,CA)管理体系,各组织自签组织证书,并通过组织内 CA 管理系统管理组织节点和用户,有效控制资源实体的认证、授权、撤销等身份权限操作,实现联盟组织身份自治。联盟组织间通过将共享组织证书、管理员证书、撤销列表等数据上链,实现组织互信互通,组织内部的节点或用户可跨组织身份认证和授权。
2.2 业务模型
本方案基于公开密钥基础设施(Public Key Infrastructure,PKI)的证书准入机制,多信任源组织结构以证书作为互相认证身份的重要凭证,组建链上多方参与协作关系,联盟链只向授权的组织或机构开放。采用分布式 CA 协同管理模式,如图 2 所示,联盟组织可通过本地 CA 系统管理本组织内部的节点和用户,通过共享组织证书、撤销列表等数据,实现组织互信互通,节点用户跨组织身份认证和授权。
图 2 证书管理业务模型
2.3 方案设计
联盟链证书管理将系统链与证书管理链进行融合设计,由联盟链运营组织创建,所有参与组织加入并共同维护,该链实时同步全网证书状态信息,实现联盟链成员管理、组织证书查询、节点证书撤销、全网撤销状态同步等功能。
2.3.1 角色定义
证书管理结构中有 5 种角色,分别是组织CA 系统、组织、管理员、节点、客户端软件开发工具包(Software Development Kit,SDK)。各角色定义如下:
(1)CA 系统。证书颁发系统,负责颁发组织节点和组织成员的证书。联盟成员组织通过组织私钥签发节点证书,配置本组织的节点和 SDK。
(2)组织。联盟成员机构,经过联盟委员会许可,加入联盟的机构拥有组织根私钥和经过根私钥自签发的组织证书。
(3)管理员。组织管理员用户,负责组织系统的管理和运维。
(4)节点。代表一组拥有共同信任的组织证书的成员节点,拥有组织证书和经过组织根私钥签发的节点证书。同一个组织的成员节点在网络中可以被认为是同一个身份,代表组织进行签名。
(5)SDK。代表与区块链网络交互的用户实体,必须连接到节点才可以访问区块链。客户端主要用于创建和提交交易,并且将交易打包发送给共识排序节点。
2.3.2 证书格式及结构
(1)证书格式。方案采用分布式 PKI 准入模式,支持任意多级的证书结构,保障信息保密性、认证性、完整性及不可抵赖性。
证书内容包括:版本号、证书序列号、签名算法标识符、颁发者名称、有效期(此日期前无效、此日期后无效)、主体名称、主体公钥信息、颁发者唯一身份信息(可选项)、主体唯一身份信息(可选项)、扩展项(可选项)、颁发者签名。
(2)证书结构。根据现有业务场景,本系统采用两级的证书结构,自上而下分别为机构证书、节点 /SDK 证书。
①机构证书。机构私钥由机构管理员持有,可以对机构下属节点签发节点证书。
②节点 /SDK 证书。节点证书是节点身份的凭证,用于与其他持有合法证书的节点建立安全套接层协议(Secure Socket Layer,SSL)链接,并进行加密通信;SDK 证书是 SDK 与节点通信的凭证,机构生成 SDK 证书,允许 SDK 与节点进行通信。
2.3.3 算法类型
支持 SHA256WithRSA、SHA256WithECDSA、SM3WithSM2 等多种密码算法,同时面向具体应用需求提供算法模块化替换。
2.4 管理流程
2.4.1 分布式证书链创建
分布式证书链由联盟链的创始组织创建,后续邀请其他组织加入到证书链并共同维护,证书链组织间通过证书链共享组织证书、节点证书管理信息、撤销列表等数据,实现组织互信互通、节点用户跨组织身份认证及授权。
(1)创始组织证书生成。
①组织证书生成。联盟链创始组织自签生成组织证书,初始化组织 CA 系统。组织获取组织证书 org.crt,如图 3 所示。具体过程包括:组织管理员生成根私钥 org.sk 和证书请求文件 .csr,并通过自签工具生成组织证书 org.crt。
图 3 组织证书生成
②组织证书导入。兼容现有树形密码管理体制,组织证书由管理中心统一生成并下发。系统提供证书导入功能,如图 4 所示,导入证书作为组织证书,并基于组织证书实现组织内节点、用户等子级证书的签发、下载、更新、查询、验证、撤销等功能。具体过程包括:组织运维人员基于证书信息,配置 OrgCA;OrgCA 加载组织证书,并配置管理员信息;OrgCA 启动完成。
图 4 组织证书导入
(2)区块链网络构建。
①创世节点生成。生成区块链创世节点,即共识排序节点。创世节点生成过程包括节点信息注册、节点证书生成、节点证书签发。节点证书的生成过程如图 5 所示。具体包括:基于组织证书签发排序节点证书,在节点生成目录下,会有组织证书的副本;返回排序节点证书。
②排序服务初始化。具体过程包括:创世区块生成(排序服务创世区块包括:排序节点信息、证书信息、组织信息、组织证书、共识算法类型、区块配置信息、访问控制策略等);启动排序节点。
③通道配置创世区块生成。具体过程包括:基于创始组织证书信息生成通道配置区块,即通道创世区块;通道创世区块包括证书信息、组织信息、组织证书、通道配置信息、访问控制策略等。
④区块链网络启动。具体过程包括:创建通道是指基于通道配置创世区块创建通道;节点入网是指节点 ID、节点名称、节点机构、证书序列号写入通道的创世块配置,通过创世块将新加入的节点信息同步到通道内所有节点;节点连接是指节点间连接时,需要验证所有向自己连接的节点身份及权限。
⑤证书链创建。基于创始组织证书生成证书链配置文件,创建证书链,如图 6 所示,对应的组织可加入并访问证书链。具体过程包括:组织管理员生成证书链配置交易,配置交易包括组织信息、组织证书、访问控制策略、撤销列表等;Order 节点生成证书链创世区块;Order节点创建证书管理通道;启动证书链网络。
图 6 证书链创建
2.4.2 新组织加入
证书链管理整个区块链网络的联盟组织证书信息,实现联盟成员的添加或移除。
(1)组织证书生成。组织初始化 CA 系统,生成组织证书,组织证书生成过程与节点证书生成过程相同,如图 5 节点证书生成。
(2)加入区块链网络。具体过程描述如下:
①组织提交组织证书,加入请求至运营系统并完成信息审核;②运营管理员发送配置交易至区块链网络,更新区块链配置文件,组织加入区块链网络;③返回组织加入结果。
(3)加入证书链。组织管理员(运营组织)生成一条证书链配置交易,配置交易包含新加入组织信息及组织证书;证书链通过增加配置区块的方式添加新组织入链,如图 7 所示,加入成功即可访问证书链。具体过程描述如下:①运营系统完成新加入组织的信息审核,获取组织证书;②更新链参与成员信息,并发送至证书管理链;③证书管理链增加链配置区块,增加新组织信息;④返回组织添加结果。
图 7 添加新组织
2.4.3 多信任源证书签发
基于组织证书签发二级节点 /SDK 证书,节点 /SDK 获取证书。节点的生成需要组织的参与,在节点生成目录下,会有组织证书的副本;另外,组织可以封装 SDK,为客户端提供 SDK 支持。
(1)证书签发请求。节点 /SDK 证书签发请求过程如图 8 所示。具体描述如下:①组织管理员登记节点信息;②通过系统调用密钥管理模块接口,获取节点私钥;③基于节点信息及节点私钥,生成节点证书请求文件;④通过系统发送节点证书请求文件至 OrgCA,请求签发证书;⑤ OrgCA 对证书序列号进行唯一性鉴别;⑥鉴别通过,读取节点 ID、证书序列号,准备发布上链。
图 8 节点 /SDK 证书签发请求
(2)节点证书上链。联盟链参与组织将组织内所有节点证书信息发布上链,如图 9 所示,获取链上标识 TxID。具体过程描述如下:①组织管理员通过证书链准入验证后,访问证书链;②发送证书发布请求,请求包括主体 ID、证书序列号、所属组织等信息;③证书链对发布证书进行唯一性鉴别,鉴别通过后写入证书链;④返回证书发布结果及链上标识 TxID。
图 9 节点证书上链
(3)节点证书签发。节点证书签发如图10 所示。具体过程描述如下:① OrgCA 将链上标识 TxID 添加至证书请求文件的扩展字段;② OrgCA 使用组织根私钥对证书请求文件进行签名,生成并颁发证书。
图 10 节点证书签发
2.4.4 节点证书撤销
(1)撤销请求登记。撤销请求登记过程如图11 所示。具体描述如下:①组织管理员进入组织管理系统,访问证书管理模块;②选取目标证书,通过系统发送证书撤销请求给 OrgCA;③ OrgCA登记证书撤销请求(不做实际撤销处理)。
图 11 撤销请求登记
(2)证书链上撤销。联盟链各参与组织将各自在该阶段内登记的待撤销证书信息上链。证书链上撤销过程如图 12 所示。具体描述如下:
① OrgCA 为待撤销证书生成证书撤销请求文件,撤销请求文件包括证书序列号、证书主体、证书签发机构、节点加入通道信息及各通道当前的出块信息、撤销时间等;② OrgCA 发送证书撤销文件至证书管理链;③证书管理链更新链上撤销列表;④返回上链结果。
图 12 证书链上撤销
(3)应用链上撤销。应用链上撤销过程如图 13 所示。具体描述如下:①管理员查询撤销节点当前所在的应用通道;②将节点证书撤销消息推送至所有应用链;③应用链生成配置交易,更新应用链配置区块,撤销节点证书。
图 13 应用链上撤销
2.4.5 证书查询验证
节点证书验证。节点证书验证过程如图 14所示。具体描述如下:①发送目标证书至 OrgCA,发起证书验证请求;②根据证书签发的有效期,以及当前的系统时间对证书进行检测,根据证书撤销列表,验证证书的有效性;③查询链上组织证书,基于组织证书验证节点 /SDK 证书的可信性;④根据证书规定的密码套件和其消息字段,对证书的完整性进行验证。
图 14 节点证书验证
3
联盟链分布式证书管理方案的优势
(1)联盟链分布式证书管理机制提供多信任源证书的签发和协同管理,避免了传统中心式 CA 单一信任源存在的风险,并基于智能合约和共识机制实现跨组织、跨信任源的密码资源管理与状态同步,为推动联盟链应用发展提供核心基础理论和技术支撑,提升联盟链密码服务能力,可为各类区块链系统及应用提供安全管理保障。
(2)对于具有灵活扩展性的联盟链网络,节点可动态加入或退出。新加入网络的节点需要同步链所有区块,并对所有区块交易进行验证,而在本方法设计的全网撤销状态同步机制中,链上撤销列表包含每一个撤销证书的证书序列号、证书主体、证书签发机构、节点撤销前加入通道信息及各通道的出块信息、撤销日期,有效保障每一笔历史交易的正确验证。
4
结 语
证书管理技术作为联盟链的重要安全保障,对联盟链技术及区块链应用发展具有重要的研究意义。目前国内外对联盟链证书管理技术的研究不全面,对基于传统中心式系统的树形管理机制支持较弱,本方案的提出对推动联盟链技术在各行业领域的应用实施具有重大价值。
引用格式:李亚荣 , 杨艳梅 , 白健 , 等 . 联盟链分布式证书管理解决方案 [J]. 信息安全与通信保密 ,2023(7):100-109.
作者简介 >>>
选自《信息安全与通信保密》2023年第7期(为便于排版,已省去原文参考文献)
商务合作 | 开白转载 | 媒体交流 | 理事服务
请联系:15710013727(微信同号)
《信息安全与通信保密》杂志投稿
联系电话:13391516229(微信同号)
《通信技术》杂志投稿
联系电话:15198220331(微信同号)
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...