CA黑名单介绍

本文档对黑名单进行介绍性说明,实践方法参见《CA黑名单操作手册》

名词解释

CA黑名单,别称证书拒绝列表(certificate blacklist,简称CBL)。CA黑名单基于config.ini文件中[certificate_blacklist]配置的NodeID进行判断,拒绝此NodeID节点发起的连接。

CA黑名单所属的配置类型:

  • 基于作用范围(网络配置/账本配置)维度可划分为网络配置,影响整个网络的节点连接建立过程;
  • 基于是否可改(可改配置/固定配置)维度可划分为可改配置,内容可改,重启后生效;
  • 基于存放位置(本地存储/链上存储)维度可划分为本地存储,内容记录在本地,不存于链上。

模块架构

下图表示CA黑名单所涉及的模块及其关系。图例A->B表示B模块依赖A模块的数据,同时B模块晚于A模块初始化。

../../../_images/architecture3.png

模块架构

核心流程

底层实现SSL双向验证。节点在handshake过程中,通过对方提供的证书获取对方节点的nodeID,检查该nodeID是否在自身的CA黑名单。如果在,关闭该connection,继续后续流程。

影响范围

  • CA黑名单对网络层的P2P节点连接及AMOP功能有显著影响,使之失效
  • 对账本层的共识和同步功能有潜在影响,影响共识及同步消息/数据的转发

配置格式

节点config.ini配置中增加[certificate_blacklist]路径([certificate_blacklist]在配置中可选)。CA黑名单内容为节点NodeID列表,node.X为本节点拒绝连接的对方节点NodeID。CA黑名单的配置格式示例如下。

  1. [certificate_blacklist]
  2. crl.0=4d9752efbb1de1253d1d463a934d34230398e787b3112805728525ed5b9d2ba29e4ad92c6fcde5156ede8baa5aca372a209f94dc8f283c8a4fa63e3787c338a4
  3. crl.1=af57c506be9ae60df8a4a16823fa948a68550a9b6a5624df44afcd3f75ce3afc6bb1416bcb7018e1a22c5ecbd016a80ffa57b4a73adc1aeaff4508666c9b633a

功能展望

  • CA黑名单目前为修改后重启生效,后续可实现动态加载,修改实时生效;
  • CA黑名单目前实现了基于节点的黑名单,后续可考虑基于机构的黑名单。