CA黑白名单介绍

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

名词解释

CA黑名单

CA白名单

CA黑、白名单所属的配置类型

模块架构

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

模块架构

核心流程

底层实现SSL双向验证。节点在handshake过程中,通过对方提供的证书获取对方节点的nodeID,检查该nodeID与节点配置的黑、白名单是否有关系。如果根据黑、白名单的配置,拒绝该关闭的connection,继续后续流程。

拒绝逻辑

优先级

黑名单的优先级高于白名单。例如,白名单里配置了A,B,C,会拒绝掉D的连接,若黑名单里同时配了A,则A也会被拒绝连接。

影响范围

配置格式

黑名单

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

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

白名单

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

[certificate_whitelist]
    cal.0=4d9752efbb1de1253d1d463a934d34230398e787b3112805728525ed5b9d2ba29e4ad92c6fcde5156ede8baa5aca372a209f94dc8f283c8a4fa63e3787c338a4
    cal.1=af57c506be9ae60df8a4a16823fa948a68550a9b6a5624df44afcd3f75ce3afc6bb1416bcb7018e1a22c5ecbd016a80ffa57b4a73adc1aeaff4508666c9b633a