3. BRSKI协议架构
好,咱们进入第三章。这一章我打算把BRSKI的骨架给你拆开看看。说白了,就是搞清楚这个协议到底长什么样,谁跟谁说话,凭什么信任对方,以及那个听起来很玄乎的「安全域」到底是个啥。
我记得刚接触BRSKI的时候,看了好几份草案,脑子里全是浆糊。后来我画了一张图,把所有组件和它们之间的连线画出来,一下子就通了。所以这一章,我也先给你一张图。
3.1 整体架构图:一张图看懂谁在哪儿
先别急着看代码,咱们先看架构。BRSKI的参与者其实就四个角色,我习惯把它们分成「两边的设备」和「中间的平台」。
这张图我建议你多看两眼。四个组件,三条主要交互线,一个安全域边界。嗯,咱们一个一个拆开讲。
3.2 各组件交互关系:谁跟谁说话,说什么
咱们按时间线来捋一遍。一个设备从拆箱到入网,到底经历了什么?
3.2.1 Pledge(入网设备)
Pledge就是那个刚拆封的设备。它脑子里只有两样东西:出厂时烧录的信任锚(MASA的根证书),以及自己的身份证书(由制造商签名)。
它现在处于「失联状态」——没有IP地址,不知道谁是管理员,也不知道该信任谁。它唯一能做的,就是发出一个叫「Join Request」的广播,喊一嗓子:「有人能帮我入网吗?」
3.2.2 Join Proxy(加入代理)
Join Proxy 是个「传话筒」。它本身已经是安全域内的设备了,它的任务就是把 Pledge 的请求转发给 Registrar,再把 Registrar 的响应传回来。
它不做任何安全决策。不验证证书,不检查身份。就是个透明的中继。你想想看,这设计其实挺聪明的——让已经入网的设备帮忙带新人,不需要额外的基础设施。
3.2.3 Registrar(注册官)
Registrar 是安全域的「门卫」。它通常运行在网络控制器或核心交换机上。它负责两件事:
- 验证 Pledge 的身份——通过跟 MASA 通信,确认这个设备确实是合法的
- 给 Pledge 发「本地身份证」——也就是安全域证书,让设备能在域内被信任
Registrar 手里有一份「授权列表」,只有列表里的设备才能入网。这个列表可以是手动配置的,也可以是从 MASA 动态获取的。
3.2.4 MASA(制造商授权服务)
MASA 是云端的「公证处」。它由设备制造商运营,持有所有出厂设备的私钥对应公钥。它的核心职责就一个:验证设备是不是「亲生」的。
当 Registrar 发来一个设备的代金券(Voucher)请求时,MASA 会检查:
- 这个设备的证书是不是我们签发的?
- 这个设备有没有被列入黑名单?
- 这个 Registrar 有没有权限申请这个设备?
如果都通过,MASA 就签发一个「代金券」回来,相当于说:「嗯,这个设备没问题,你可以收编它。」
3.3 信任模型:从「你是谁」到「我信你」
信任模型是 BRSKI 最精妙的部分。我刚开始学的时候,觉得它绕来绕去,后来发现其实就三层信任:
| 信任层级 | 信任依据 | 谁信任谁 | 我的理解 |
|---|---|---|---|
| 第一层:制造商信任 | 设备出厂证书(IEEE 802.1AR) | Registrar → MASA → Pledge | 设备身份由制造商背书 |
| 第二层:域信任 | 本地域证书(由 Registrar 签发) | 域内设备互信 | 入网后设备之间的信任 |
| 第三层:运营信任 | 代金券(Voucher) | Registrar → Pledge | 管理员授权设备入网 |
说白了,BRSKI 的信任模型是「先验明正身,再发本地户口」。设备带着制造商的「出生证明」来,Registrar 找 MASA 核实一下,确认不是冒牌货,然后给设备发一张「本地身份证」。以后设备在域内就用这张身份证活动,不再需要找 MASA 了。
我曾经在部署时遇到过一个坑:设备的出厂证书过期了。嗯,你没听错,IEEE 802.1AR 证书是有有效期的。那台设备在仓库里放了三年,证书已经失效。Registrar 验证时直接拒绝。最后只能联系制造商重新签发证书。所以,采购设备时一定要确认出厂日期,别买到了「库存古董」。
3.4 安全域概念:什么是「域」?
安全域(Domain),是 BRSKI 里一个核心但容易被忽略的概念。我习惯把它理解成「一个统一管理、统一信任的网络边界」。
一个安全域包含:
- 一个 Registrar(或者 Registrar 集群)
- 若干 Join Proxy
- 若干已入网的 Pledge
- 一套共享的信任锚(域根证书)
安全域的特点是:
- 自治性——域内设备之间的通信不需要外部参与
- 统一策略——所有设备遵守相同的入网策略和信任规则
- 边界清晰——设备要么在域内,要么在域外,没有中间状态
你想想看,如果没有安全域的概念,每个设备都要直接跟 MASA 通信,那网络就变成了「星型结构」,所有流量都要经过云端。延迟高不说,万一断网,新设备就永远入不了网。有了安全域,入网流程变成了「本地完成,云端背书」,既安全又高效。