| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 区块链证书管理组件:区块链世界的“身份证\" -> 正文阅读 |
|
[区块链]区块链证书管理组件:区块链世界的“身份证\" |
区块链历经10余年的发展,基础技术框架逐渐完善,链上承载的业务越来越丰富,参与方越来越多。多方协作能否顺畅进行、业务摩擦能否得到有效解决、既往治理策略和实践能否满足日后高速发展的需求……行业关注的重点逐步聚焦到这些更具挑战性的难题上。 2021年1月,微众银行区块链在多年技术研究和应用实践的基础上,重磅发布了《面向区块链的多方协作治理框架》白皮书,即MCGF(Multilateral Collaborative Governance Framework)。作为区块链治理的参考架构,MCGF全面覆盖区块链治理的设计规范、参与角色、核心系统架构、功能流程及应用场景等领域。 区块链多方协作治理组件(WeBankBlockchain-Governance)MCGF框架的实做基础和原子性构件,可复用、可定制,由私钥管理组件(Governance-Key)、账户治理组件(Governance-Account)、权限治理组件(Governance-Authority)、证书管理组件(Governance-Cert)等子组件构成。它们嵌入和运行在整个MCGF大框架的各部分,宛如高速行驶的汽车上的车轮、齿轮、传动组、传感器,协同助力构建治理框架和提升开发效率。 我们通过系列文章,抽丝剥茧地解析每一个子组件的关键特性和使用方式。本篇文章是区块链多方协作治理组件系列文章的最后一篇,介绍证书管理组件(Governance-Cert),欢迎大家积极体验并将使用诉求或优化建议反馈给我们。 ??Governance-Cert介绍 CA(Certificate Authority)是互联网及企业级应用的重要安全基础支撑。CA是负责发放和管理数字证书的权威机构,且是交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。 在联盟链中,多采用面向CA的准入机制,通过证书来验证身份信息,保证信息的保密性、可认证性、完整性和不可抵赖性。如FISCO BCOS使用X509协议的证书格式,支持任意多级的证书结构。 证书内容包括了证书版本号、序列号、证书的签名算法、消息摘要算法等生成信息;同时包括了证书的颁发者、有效期、使用者、公钥信息、SSL通信需要用到的密码套件等信息。区块链节点通过加载证书,在接受数据包时,根据证书规定的密码套件和其消息字段,对数据包中携带的证书进行验证。 但在现有的联盟链应用实践中,证书的管理仍存在着一定的痛点。例如:
为了提升证书签发和使用的效率,我们开发了WeBankBlockchain-Governance-Cert组件,该组件提供了证书生命周期管理的解决方案,规范证书签发流程,支持证书托管,支持多种签名算法,有效提升个人和企业用户的使用体验。 ??关键特性 覆盖证书的全生命周期为了助力用户方便地使用证书,Governance-Cert提供了证书生成、证书托管、证书使用等一系列功能,覆盖了整个证书的生命周期,尽可能满足使用者的各项需求。 支持多种密钥和签名算法不仅支持RSA,EC等密钥算法,还支持SM2等国密算法。 在签名算法方面,除了支持SHA256WITHRSA、SHA256WITHECDSA,还支持SM3WITHSM2等国密签名算法。 支持证书托管支持将证书和子证书请求持久化在数据库中。同时,证书相关的私钥也会被安全保存。此外,提供了统一的平台,来对证书信息统一管理。最后,支持对证书进行多维度查询,并支持证书的多格式导出。 支持多级证书签发证书可进行多级签发,可选择上级证书并请求签发,生成证书链,使用方便,操作便捷。 支持证书吊销、重置 支持对证书进行吊销、重置等操作。重置信息包括有效时间、证书用途等。 ??设计概要 Governance-Cert包含两个模块,cert-toolkit和cert-mgr。cert-toolkit作为证书生成工具,可作为独立工具包使用,cert-mgr则基于cert-toolkit工具包,更进一步提供了证书的托管能力,并支持证书的生命周期管理,统一规范了签发流程。 cert-toolkit工具包提供了证书签发的多种接口,包括根证书生成、子证书请求生成、子证书签发等接口,并提供多种入参方式,可按需调用。 证书签发的基本流程为:
另外,在证书读写方面,cert-toolkit中提供了对证书crt和pfx格式文件的读写。在证书管理上,提供证书验证、吊销的接口。 cert-mgr借助cert-toolkit工具包和数据库,完成了对证书全生命周期的管理,其中通过数据库构建对应的存储模型来实现对证书的持久化和托管。存储模型包括证书表、子证书请求表和用户私钥表,表结构和关系如下: 其中证书表用来保存管理证书信息,包括签发用户、证书数据,颁发时间等信息。证书请求信息表保存了子证书的申请信息,包括申请用户、所有者数据等信息。用户表则用来保存用户ID和私钥等信息。上述模型实现了对证书的托管和生命周期的管理。 ??应用场景 根证书管理 链上节点证书的签发统一由Governance-Cert来完成。Governance-Cert可以被集成或者独立部署,并由权威机构进行管理服务。从根证书到所有子证书,均由权威机构统一管理和托管存储。 在链初始化时,可由部署者调用接口完成根证书的生成。新增机构或节点可以通过Governance-Cert提供的查询接口,来查询根证书,并提交子证书请求。根证书管理者可从查询请求列表,来获取准入请求,并选择签发子证书。子证书签发完成,下一级证书采取同样逻辑处理。 通过Governance-Cert对于证书的管理,可以规范流程,提升效率,并保证证书安全。 多级证书托管 当集团或机构的参与者需要为旗下多个分支机构签发、存储、管理和重置私钥等。 在这种场景中,Governance-Cert提供了开箱可用的服务。集团或机构的参与者可以使用Governance-Cert来搭建一个集团或机构内部统一的证书托管平台,集中管理集团或机构内部所有的证书。当分支机构需要申请签发证书时,可以向集团或机构提出专有的证书管理服务请求。 证书工具包 Governance-Cert中cert-toolkit可作为独立的Java工具包在Java项目中被引用,代替命令行完成证书的生成和签发。企业或个人项目可集成Governance-Cert作为证书签发工具包。通过SDK的形式,开发者可在自己的Java项目中,扩展和定制个性化的需求功能,灵活满足各种证书相关的场景。 ??即刻使用 文档地址:? https://governance-doc.readthedocs.io/zh_CN/latest/docs/WeBankBlockchain-Governance-Cert/index.html GitHub代码库地址: https://github.com/WeBankBlockchain/Governance-Cert gitee代码库地址: https://gitee.com/WeBankBlockchain/Governance-Cert? 欢迎参与WeBankBlockchain的社区建设:
如需咨询技术问题,欢迎关注本公众号,对话框回复【小助手】进技术交流群。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 18:34:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |