区块链底层平台FISCO BCOS的证书机制

2023-11-17

FISCO BCOS是完全开源的联盟区块链底层技术平台,由金融区块链合作联盟(深圳)(简称金链盟)成立开源工作组通力打造。开源工作组成员包括博彦科技、华为、深证通、神州数码、四方精创、腾讯、微众银行、亦笔科技和越秀金科等金链盟成员机构。

代码仓库:https://github.com/FISCO-BCOS

19db62a1f8860031202e3801b76b109c640.jpg

作者语

联盟链中,链上的多方参与是一种协作关系;联盟链向授权的组织或机构开放,有准入机制。在准入机制中,证书是各参与方互相认证身份的重要凭证;可以说,证书机制是联盟链网络安全的基石。

 

Part1:FISCO BCOS 证书结构

FISCO BCOS网络采用面向CA的准入机制,使用x509协议的证书格式,支持任意多级的证书结构,保障信息保密性、认证性、完整性及不可抵赖性。根据现有业务场景,FISCO BCOS默认采用三级的证书结构,自上而下分别为链证书、机构证书、节点证书。

3ed0ddd3ff53b86423229c86e78b32aa7be.jpg

证书内容包括了证书版本号、序列号、证书的签名算法、消息摘要算法等生成信息;同时包括了证书的颁发者、有效期、使用者、公钥信息、SSL通信需要用到的密码套件等信息。

节点通过加载证书,在接受数据包时,根据证书规定的密码套件和其消息字段,对数据包中携带的证书进行验证。

 

Part2:角色定义

FISCO BCOS的证书结构中有4种角色,分别是联盟链委员会、联盟链成员机构、联盟链参与方(节点和SDK)。

 

1. 联盟链委员会

联盟链委员会拥有联盟链的根证书ca.crt和私钥ca.key,通过使用ca.key对联盟链成员机构签发机构证书,负责完成联盟链成员机构的准入、剔除等操作。

 

2. 联盟链成员机构

联盟链成员机构为经过联盟链委员会许可,加入到联盟链的机构。联盟链成员机构拥有机构私钥agency.key和经过根私钥ca.key签发的机构证书agency.crt。联盟链成员机构可以通过机构私钥签发节点证书,从而配置本机构的节点和SDK。

 

3. 联盟链参与方

联盟链参与方可以通过运行节点或SDK联盟链交互,拥有与其他节点进行通信的节点证书node.crt和私钥node.key。联盟链参与方运行节点或SDK时,需要加载根证书ca.crt和相应的节点证书node.crt和私钥node.key;与其他成员进行网络通信时,使用预先加载的证书进行身份认证。

 

Part3:证书生成流程

 

1.联盟链委员会初始化根证书ca.crt

  • 本地生成私钥ca.key;

866e1e20596b59c5c12c22b6f31fc5a8207.jpg

  • 自签生成根证书ca.crt。

 

2.联盟链成员机构获取机构证书agency.crt

  • 本地生成私钥agency.key;

  • 由本地私钥生成证书请求文件agency.csr;

  • 将证书请求文件agency.csr发送至联盟链委员会;

  • 联盟链委员会使用ca.key对证书请求文件agency.csr进行签发,得到联盟链成员机构证书agency.crt;

  • 联盟链委员会将联盟链成员机构证书agency.crt发送至对应成员。

517753c674c92950f64f06266c384cd0f4d.jpg

 

3.节点/SDK获取证书node.crt

f1f70a3242ffc563039c4903cf027391968.jpg

  • 本地生成私钥node.key;

  • 由本地私钥生成证书请求文件node.csr;

  • 将证书请求文件node.csr发送至联盟链成员机构;

  • 联盟链成员机构使用agency.key对证书请求文件node.csr进行签发,得到节点/SDK证书node.crt;

  • 联盟链成员机构将节点证书node.crt发送至对应实体。

2f561330b89e7e9e6c45725316fc99749f0.jpg

 

Part4:证书生成实例

以生成联盟链成员机构机构证书为例:

 

1.机构首先在本地使用机构私钥agency.key生成证书请求文件agency.csr;

openssl req -new -sha256 -subj "/CN=$name/O=fisco-bcos/OU=agency" -key ./agency.key -config ./cert.cnf -out ./agency.csr

 

2.联盟链委员会根据证书请求文件生成机构证书agency.crt;

openssl x509 -req -days 3650 -sha256 -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -in ./agency.csr -out ./agency.crt  -extensions v4_req -extfile ./cert.cnf
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

上述过程中的cert.cnf为证书信息配置项,可以采用默认设置。

 

Part5:小结及参考文档

本文介绍了FISCO BCOS采用的相关证书说明和其对应的层级架构;在后续文章中,我们会具体讲解SSL握手过程中如何使用这些数字证书。

 

参考资料

证书说明:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/certificates.html

权限控制:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html

节点准入:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/node_management.html

 


 

我们鼓励机构成员、开发者等社区伙伴参与开源共建事业,有你在一起,会更了不起。多样参与方式:

1 进入微信社群,随时随地与圈内最活跃、最顶尖的团队畅聊技术话题(进群请添加小助手微信,微信ID:fiscobcosfan);

2 订阅我们的公众号:“FISCO BCOS开源社区”,我们为你准备了开发资料库、最新FISCO BCOS动态、活动、大赛等信息;

3 来Meetup与开发团队面对面交流,FISCO BCOS正在全国举办巡回Meetup,深圳、北京、上海、成都……欢迎您公众号在菜单栏【找活动】中找到附近的Meetup,前往结识技术大咖,畅聊硬核技术;

4 参与代码贡献,您可以在Github提交Issue进行问题交流,欢迎向FISCO BCOS提交Pull Request,包括但不限于文档修改、修复发现的bug、提交新的功能特性。

代码贡献指引:

https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/docs/CONTRIBUTING_CN.md

 

本文首发于公众号【FISCO BCOS开源社区】,如转载请注明出处,原创不易,谢谢珍惜

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链底层平台FISCO BCOS的证书机制 的相关文章

  • 小程序支付完整过程。足够详细!

    1 注册小程序 拿到App id 和 AppSecret 小程序密钥 取得商户的微信支付商户号 MCHID 和 微信支付密钥 APIKEY 2 流程 微信用户在微信端选商品下单 后台响应下单生成单号 产生第一次签名数据 提交微信统一支付接口
  • IDA工具介绍

    往期推荐 IDA工具安装 分享 ARM处理器寻址方式 ARM指令集 ARM汇编语言程序结构 昨天给大家概括性的了解了IDA工具 今天分享IDA工具的实际应用 一 IDA打开so文件 1 首先打开IDA工具 进入选项界面 直接选中Go选项 如
  • 初识 libcurl multi:实现一个 http 请求处理客户端,一个线程玩命发一个线程吐血收

    一 引言 最近在工作中 遇到了这么一个需求 我们希望拥有一个高性能的 http 请求处理客户端程序 这个客户端要求有这样的架构 它拥有两个线程 一个线程接收业务程序通过消息队列发来的批量的 http 请求信息 进行批量的 http 请求 另
  • 深入了解scratch中的“移动10步”和(你真的了解scratch吗?scratch初学者值得一看)

    scratch中的 移动10步 是scratch运动类积木中的第一个积木 也是大多数初学者使用scratch的时候用到的第一个积木命令 当我们运行 移动10步 积木时 小猫会向右移动10步 目测其实也就一点点距离 那么 移动10步 究竟在s

随机推荐

  • 正交多项式-勒让德多项式,两类切比雪夫多项式及零点,拉盖尔多项式,埃尔米特多项式

    1 正交多项式 设 n x 是 a
  • Linux 云服务器运维(操作及命令)

    1 什么是linux服务器load average Load是用来度量服务器工作量的大小 即计算机cpu任务执行队列的长度 值越大 表明包括正在运行和待运行的进程数越多 2 如何查看linux服务器负载 可以通过w top uptime p
  • Tomcat多实例部署

    文章目录 一 Tomcat多实例的操作步骤 1 关闭防火墙 将安装 Tomcat 所需软件包传到 opt目录下 2 安装JDK 3 安装 tomcat 4 配置 tomcat 环境变量 5 修改 tomcat2 中的 server xml
  • Qt设计模式与运行界面有偏差 Qt自适应高清屏

    原因Qt对高分辨率屏幕支持的问题 设置下属性 注意在应用程序实例之前设置 int main int argc char argv if QT VERSION gt QT VERSION CHECK 5 9 0 QApplication se
  • 安装NVIDIA CUDA失败最简单详细解决方法

    针对于这样的情况直接下载显卡驱动卸载工具 进入网站 点击下载 网页下拉 会出现如下图所示的内容 点击官方下载 下载软件 运行程序 下载完之后是一个压缩包的形式 解压缩 之后点击运行 如果不是最新版本会跳出如下弹出框 程序是否为最新版本没有影
  • 服务器怎么修改mac,服务器如何修改MAC地址

    服务器如何修改MAC地址 内容精选 换一换 如果要自定义裸金属服务器的DNS服务器信息 需要将裸金属服务器网络设置为静态IP 若将动态DHCP改为静态IP设置 IP和网关等网络信息必须和裸金属服务器下发时保持一致 否则可能会引起网络不通 以
  • Flask框架学习整理——从零开始入门Flask

    文章目录 Flask框架 一 简介 二 概要 三 知识点 附代码 1 Flask基础入门 1 路由route的创建 2 endpoint的作用 3 request对象的使用 4 请求钩子before after request 5 redi
  • Day6:浅谈useState

    目标 持续输出 每日分享关于web前端常见知识 面试题 性能优化 新技术等方面的内容 Day6 今日话题 谈谈react hooks中的useState 将从以下七个角度介绍 用法 参数 返回值 作用 工作原理 优缺点 注意点 用法 use
  • Map BSTMap映射代码(java)

    public interface Map
  • DDR3学习总结(一)

    简介 DDR3 SDRAM常 简称 DDR3 是当今较为常见的一种储存器 在计算机及嵌入式产品中得到广泛应用 特别是应用在涉及到大量数据交互的场合 比如电脑的内存条 对DDR3的读写操作大都借助IP核来完成 本次实验将采用 Xilinx公司
  • 报错 blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];ElasticSearch 报错

    报错 Caused by org elasticsearch cluster block ClusterBlockException blocked by FORBIDDEN 12 index read only allow delete
  • Kali Linux 从入门到精通(一)-概论

    Kali Linux 从入门到精通 一 概论 欢迎关注 https github com Wheeeeeeeeels 基本介绍 1 安全目标 先于攻击者发现和防止漏洞出现 攻击型安全 防护型安全 2 渗透测试 尝试挫败安全防御机制 发现系统
  • 好像还挺好玩的GAN重制版2——Keras搭建SRGAN平台进行图片超分辨率提升

    好像还挺好玩的GAN重制版2 Keras搭建SRGAN平台进行图片超分辨率提升 学习前言 源码下载地址 网络构建 一 什么是SRGAN 二 生成网络的构建 三 判别网络的构建 训练思路 一 判别器的训练 二 生成器的训练 利用SRGAN生成
  • Deep Learning(深度学习)之(三)Deep Learning的常用模型或者方法

    九 Deep Learning的常用模型或者方法 9 1 AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点 人工神经网络 ANN 本身就是具有层次结构的系统 如果给定一个神经网络 我们假设
  • 用单例模式封装实现一个数据库类

    使用单例模式的出发点 1 php的应用主要在于数据库应用 所以一个应用中会存在大量的数据库操作 使用单例模式 则可以避免大量的new 操作消耗的资源 2 如果系统中需要有一个类来全局控制某些配置信息 那么使用单例模式可以很方便的实现 这个可
  • 【PTA】念数字

    输入一个整数 输出每个数字对应的拼音 当整数为负数时 先输出fu字 十个数字对应的拼音如下 0 ling 1 yi 2 er 3 san 4 si 5 wu 6 liu 7 qi 8 ba 9 jiu 输入格式 输入在一行中给出一个整数 如
  • TCP的拥塞控制算法:慢启动、拥塞避免、快重传、快恢复

    TCP的拥塞控制 一 前言 什么是拥塞 什么是拥塞控制 拥塞 随着网络中的主机增加其发送速率并使网络变得十分拥挤 此时会经常发生丢包现象 导致网络的传输效率急剧降低 分组的超时重传通常被作为网络拥塞的标志 如果不对网络拥塞进行控制 整个网络
  • 评测报告的结论如何写?

    背景 最近组内同学开始编写评测报告 报告中的结论中存在以下几种情况 1 结论是一大段文字 像散文一样 2 评测数据结果中存在多个数据维度 将所有的数据结果都罗列到结论中 主要信息不突出 3 只是将评测数据罗列到结论中 没有根据数据推理出结论
  • 局部变量与成员变量的·区别!

    局部变量与成员变量的不同 1 定义的位置不同 重要 局部变量 在方法的内部 成员变量 在方法外部 直接写在类当中 2 作用范围不一样 局部变量 只有在方法体内才有效 出了方法就不能在用了 成员变量 整个类都可以用 3 默认还是不一样的 局部
  • 区块链底层平台FISCO BCOS的证书机制

    FISCO BCOS是完全开源的联盟区块链底层技术平台 由金融区块链合作联盟 深圳 简称金链盟 成立开源工作组通力打造 开源工作组成员包括博彦科技 华为 深证通 神州数码 四方精创 腾讯 微众银行 亦笔科技和越秀金科等金链盟成员机构 代码仓