配置高级 MACsec 功能
媒体访问控制安全 (MACsec) 是一种行业标准的安全技术,为以太网链路上几乎所有类型的流量提供安全通信。MACsec 在直接连接的节点之间提供以太网链路的点对点安全,能够识别和阻止大多数安全威胁,包括拒绝服务、入侵、中间人攻击、伪装、被动窃听和回放攻击。MACsec 在 IEEE 802.1AE 中实现标准化。
配置加密选项
分配加密算法
您可以使用以下任一 MACsec 加密算法对进入或离开接口的所有信息流进行加密:
-
gcm-aes-128 — GCM-AES-128 密码套件,不带扩展数据包编号 (XPN) 模式
-
gcm-aes-256 — 不带 XPN 的 GCM-AES-256 密码套件
-
gcm-aes-xpn-128 — 采用 XPN 模式的 GCM-AES-XPN_128 密码套件
-
gcm-aes-xpn-256 — 采用 XPN 模式的 GCM-AES-XPN_256 密码套件
如果启用了 MACsec 加密,并且未指定加密算法,则不使用 XPN 模式即可使用默认 (gcm-aes-128) 加密算法。
强烈建议在 40G 和 100G 链路上使用 MACsec 时使用 XPN。
-
MX 系列 MPC7E-10G 路由器不支持具有 XPN 模式的加密算法。
-
MIC-3D-20GE-SFP-E 和 MIC-3D-20GE-SFP-EH 仅支持 GCM-AES-128。
[edit security macsec connectivity-association <varname>connectivity-association-name</varname>] user@host# set cipher-suite (gcm-aes-128 | gcm-aes-256 | gcm-aes-xpn-128 | gcm-aes-xpn-256)
例如,如果您想使用连接关联中的 GCM-AES-XPN-128 算法进行加密,该算法名为 ca1
:
[edit security macsec connectivity-association ca1] user@host# set cipher-suite gcm-aes-xpn-128
禁用加密
MACsec 的默认行为是加密通过链路的信息流。如果仅想使用 MACsec 来验证端点并保证链路的完整性,则可以禁用加密。这称为仅限完整性模式。如果您需要在多个跃点上承载 MACsec 时能够看到未加密的有效负载,则仅完整性模式很有用。
禁用加密时,流量将通过以太网链路以明文转发。监控链路时,您可以在遍历链路的以太网帧中查看未加密的数据。但是,MACsec 标头仍然应用于帧,并且所有 MACsec 数据完整性检查均在链路的两端运行,以确保链路上发送或接收的信息流不会被篡改,也不会代表安全威胁。
要禁用加密,请使用以下命令:
[edit security macsec connectivity-association connectivity-association-name] user@host# set no-encryption
配置偏移
偏移在完全分段和不加密之间提供选项。配置偏移以暴露一组有效负载字节并加密其余的字节。对于交换机到主机链路,这可用于中间负载平衡或在主机上进行负载分配。
默认偏移为 0。启用 offset
加密且未设置加密时,连接关联中的所有信息流均已加密。
将偏移设置为 30 时,IPv4 标头和 TCP/UDP 标头在加密其余流量时不加密。将偏移设置为 50 时,IPv6 标头和 TCP/UDP 标头在加密其余流量时不加密。
如果需要在八位位组中查看数据以执行功能,则通常会使用前 30 个或 50 个八位位组转发信息流,但除此之外,您更愿意对遍历链路的帧中的剩余数据进行加密。特别是负载平衡功能,通常需要在前 30 或 50 个八位位组中看到 IP 和 TCP/UDP 标头,以便合理地平衡流量。
要配置偏移,请使用以下命令:
[edit security macsec connectivity-association connectivity-association-name] user@host# set offset (0 | 30 | 50)
例如,如果要将偏移设置为连接关联中的 30,名为 ca1
:
[edit security macsec connectivity-association ca1] user@host# set offset 30
在故障开放模式下配置 MACsec 关键协议协议
您可以为 MACsec 配置故障开放模式,以防止在 MKA 会话处于非活动状态时信息流被丢弃。建议服务提供商将网络可用性优先于信息安全。
MACsec 通过将 MACsec 标头附加到在 MACsec 安全链路上传输的以太网帧来维护数据完整性。当 MKA 会话处于活动状态时,链路上仅允许带 MACsec 标头的帧信息流。当 MKA 会话处于非活动状态时,帧将不会收到 MACsec 标头。所有流量(包括入口和出口)都将被丢弃。唯一例外是 EAPoL 流量。
您可以使用 should-secure
CLI 语句配置故障开放模式。即使 MKA 会话处于非活动状态,也允许在 MACsec 安全链路上进行流量。信息流以明文方式传输,无需 MACsec 标头。
要在故障开放模式下配置 MKA 协议:
[edit security macsec connectivity-association connectivity-association-name] user@host# set mka should-secure;
配置重放保护
MACsec 将 ID 编号分配给 MACsec 安全链路上的每个数据包。启用重放保护后,接收接口将检查通过 MACsec 安全链路的所有数据包的 ID 编号。如果数据包不按顺序到达,并且数据包编号之间的差异超过重放保护窗口大小,则接收接口将丢弃数据包。
例如,如果回放保护窗口大小设置为 5,而分配的 1006 ID 的数据包在分配给 1000 的 ID 后立即到达接收链路,则带有 ID 1006 的数据包将因其不在重放保护窗口之外而丢弃。
重放保护对于对抗中间人攻击很有用。由以太网链路上的中间人攻击者重放的数据包将按顺序到达接收链路,因此重放保护有助于确保回放的数据包被丢弃,而不是通过网络转发。
通过将回放窗口大小设置为 0,可以要求所有数据包按顺序到达。如果数据包预计无法得到订单,则不应启用重放保护。
要启用重播保护,请使用以下命令:
[edit security macsec connectivity-association connectivity-association-name] user@host# set replay-protect replay-window-size number-of-packets
例如,要在连接关联 ca1
上以五个窗口大小启用回放保护:
[edit security macsec connectivity-association ca1] user@host# set replay-protect replay-window-size 5
配置边界延迟保护
您可以配置受限的延迟保护,以确保媒体访问控制安全 (MACsec) 帧在延迟两秒或更短后不会交付。这可确保中间人攻击导致的 MACsec 帧延迟不会被检测到。
配置绑定延迟保护时,还必须配置重放保护。这是允许重复和重放数据包的窗口。绑定延迟优先于重放保护。您可以为窗口大小配置较低的值,从而提高受限延迟保护的有效性。
配置绑定延迟保护之前,必须配置重放保护。请参阅 配置重放保护。
要配置绑定延迟保护,请使用以下命令:
[edit security macsec connectivity-association connectivity-association-name mka] user@host# set bounded-delay
受限的延迟会影响 CPU 利用率,从而降低性能。我们只建议在绝对需要的接口上配置绑定延迟。
使用回退 PSK 配置 MACsec
使用静态 CAK 安全模式启用 MACsec 时,会在点对点以太网链路每端的设备之间交换预共享密钥 (PSK)。PSK 包括连接关联名称 (CKN) 和连接关联密钥 (CAK)。PSK 必须跨设备匹配,才能建立 MACsec 会话。如果存在不匹配,将无法建立会话,并且将丢弃所有数据包。
如果主 PSK 未能建立连接,您可以配置回退 PSK 以防止流量丢失。当主密钥与初始 MACsec 协商不匹配时,将使用回退 PSK。
如果已建立 MACsec 会话,并且主 PSK 在一台设备上更改,但未更改另一个设备,则由此产生的不匹配将通过使用旧的主 PSK 来解决。较旧的主 PSK 是称为前述 PSK 的临时密钥。
配置了回退 PSK 后,可使用以下一个密钥保护 MACsec 会话:
主 PSK(可配置)— 首选密钥。
回退 PSK(可配置)—在主要 PSK 无法建立 MACsec 会话时使用。
前方 PSK(不可配置)—配置新主 PSK 时,旧的主 PSK 将成为前述 PSK。
每个密钥的 CAK 状态可以是实时的、有效的,也可以是在进行中。有关每个状态的说明,请参阅 表 1 。
CAK 状态 | 说明 |
---|---|
住 |
|
积极 |
|
正在进行中 |
|
如果在 MACsec 链路的一侧配置了新 PSK,另一侧的密钥配置不当或未使用新密钥配置,则会出现密钥不匹配。回退行为取决于 PSK 的哪些组件已更改(CAK、CKN 或两者兼有)。每个不匹配场景均如下所述:
如果 CAK 已更改,并且 CKN 保持不变,则现有 MACsec 会话将断开连接。将使用旧 CKN 和新 CAK 值启动新会话。
如果 CKN 已更改,并且 CAK 保持不变,则与现有 CAK 配对的旧 CKN 将成为之前的 PSK,并且会话将与之前的 PSK 配合使用。新会话由新创建的 CKN 和 CAK 启动,这将在进行中,直至对等节点也使用相同的 CKN 配置。
如果同时更改了 CAK 和 CKN,则旧的 CAK+CKN 对将成为之前的 PSK,并且会话将与前面的 PSK 配合使用。新会话由新 CAK+CKN 对启动,将在对等节点使用同一 CAK+CKN 配置对等节点之前继续进行。
前面的 PSK 优先于回退 PSK,因此如果会话与前面的 PSK 配合使用,则回退 PSK 将不会生效。如果您希望该会话与回退 PSK 配合使用,则必须配置该 disable-preceding-key
语句。
预共享密钥链支持回退 PSK。您可以配置回退 PSK 以及预共享密钥或预共享密钥链。预共享密钥和预共享密钥链是相互排斥的。
如果只配置了回退 PSK,并且没有主 PSK,则两台设备都尝试与回退 PSK 建立会话。如果会话出现,从回退 PSK 派生出的 SAK 用于数据流量加密。如果已建立的会话中断,设备将继续尝试重新建立会话,并在重新建立会话之前丢弃流量。
回退 PSK 配置为连接关联 (CA) 的一部分。CA 可为所有接口或每个接口进行全局配置,从而允许不同接口的不同回退密钥。
要配置回退 PSK,请将 CAK 和 CKN 配置为 CA 的一部分:
[edit security macsec connectivity-association ca-name] user@switch# set fallback-key cak key user@switch# set fallback-key ckn key-name
以下限制适用于回退 PSK 配置:
回退 CAK 和 CKN 不应与在同一 CA 下密钥链中配置的预共享密钥 CKN 和 CAK 或任何密钥匹配。
必须存在安全模式配置才能配置回退密钥。
配置的密码套件的关键长度限制适用于回退 CAK 和 CKN。