17-MACSec配置
本章节下载: 17-MACSec配置 (293.38 KB)
目 录
MACsec(Media Access Control Security,MAC安全)定义了基于IEEE 802局域网络的数据安全通信的方法。MACsec可为用户提供安全的MAC层数据发送和接收服务,包括用户数据加密、数据帧完整性检查及数据源真实性校验。
MACsec通常与802.1X认证框架配合使用,工作在802.1X认证过程成功之后,通过识别出已认证设备发送的报文,并使用MKA(MACsec Key Agreement,MACsec密钥协商)协议协商生成的密钥对已认证的用户数据进行加密和完整性检查,避免端口处理未认证设备的报文或者未认证设备篡改的报文。
MACsec包括两种典型组网模式:面向主机模式和面向设备模式。
如图1-1所示,面向主机模式用于保护终端和设备之间的数据帧。
客户端是请求接入局域网的用户终端,由局域网中的接入设备对其进行认证,并执行MACsec密钥协商和报文加密功能。
接入设备控制客户端的接入,通过与认证服务器的交互,对所连接的客户端进行802.1X认证,并执行MACsec密钥协商和报文加密功能。
认证服务器用于对客户端进行认证、授权和计费,通常为RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)服务器。客户端通过认证后,认证服务器为客户端和接入设备分发密钥。
设备暂不支持面向主机模式。面向主机模式中,接入设备上使能MKA协议的端口必须采用基于端口的802.1X认证方式,且必须配置802.1X认证方法为EAP中继方式。
该模式下,无客户端和接入设备之分,也不需要认证服务器,互连的两台设备可以直接使用通过命令行配置的预共享密钥进行MACsec密钥协商和报文加密功能。
CA(Secure Connectivity Association,安全连通集)是两个或两个以上使用相同密钥和密钥算法套件的成员的集合。CA成员称为CA的参与者。CA参与者使用的密钥称为CAK。CAK分为两种类型,一种是成对CAK(Pairwise CAK),另一种是成组CAK(Group CAK)。由两个成员组成CA,它们所拥有的CAK称为成对CAK。由三个或三个以上成员组成CA,它们所拥有的CAK称为成组CAK。目前,MACsec主要应用在点对点组网的环境中,所以主要使用成对CAK。成对CAK可以是802.1X认证过程中生成的CAK,也可以是用户配置的预共享密钥(PSK,Pre-Shared Key)。如两者同时存在,优先使用用户配置的预共享密钥。
SA(Secure Association,安全集)是CA参与者之间用于建立安全通道的安全参数集合,包括对数据进行加密算法套件、进行完整性检查的密钥等。一个安全通道中可包含多个SA,每一个SA拥有一个不同的密钥,这个密钥称为SAK。SAK由CAK根据算法推导产生,用于加密安全通道间传输的数据。MKA对每一个SAK可加密的报文数有所限制。当使用某SAK加密的报文超过限定的数目后,该SAK会被刷新。例如,在10Gbps的链路上,SAK最快300秒刷新一次。
使能了MACsec功能且启动了MACsec保护的端口发送数据帧时,需要对它进行加密;使能了MACsec功能的端口收到经过MACsec封装的数据帧时,需要对它进行解密。加解密所使用的密钥是通过MKA协议协商而来的。
MACsec封装的数据帧会使用CAK推导出的密钥进行ICV(完整性校验值,Integrity Check Value)计算,并附加在MACsec报文的尾部。设备收到MACsec报文时,同样使用MKA协商出的密钥进行完整性检验值计算,然后将计算结果与报文中携带的ICV进行比较。如果比较结果相同,则表示报文合法;如果比较结果不相同,将依据配置的校验模式,决定是否丢弃报文。
MACsec封装的数据帧在网络中传输时,可能出现报文顺序的重排。MACsec重播保护机制允许数据帧有一定的乱序,这些乱序的报文序号在用户指定的窗口范围内可以被合法接收,超出窗口的报文会被丢弃。
如图1-3所示,在客户端和接入设备之间建立安全会话前,客户端首先需要在接入设备的端口上进行802.1X认证。通过认证之后,客户端将开始与接入设备进行会话协商、会话的建立和维护过程。MACsec协议的交互过程主要分为四个阶段:身份认证、会话协商、安全通信和会话终止。
图1-3 面向主机模式的MACsec协议交互过程
在客户端和接入设备之间建立安全会话前,客户端首先需要在接入设备的端口上进行802.1X认证。客户端通过认证后,RADIUS服务器会把生成的CAK分发给客户端和接入设备。
客户端和接入设备有了可用的CAK,使用EAPOL-MKA报文开始协商会话。在协商会话的过程中,客户端和接入设备使用MKA协议向对方通告自身能力和建立会话所需的各种参数(如优先级、是否期望加密会话等)。会话协商时,接入设备会被自动选举为密钥服务器(Key Server)。密钥服务器使用CAK派生出用于加密数据报文的SAK,并把SAK分发给客户端。
会话协商完成后,客户端和接入设备有了可用的SAK,并使用SAK加密数据报文,开始加密通信。
当接入设备收到802.1X客户端的下线请求消息后,立即清除该用户对应的安全会话,避免一个未认证的客户端使用端口上前一个已认证客户端建立的安全会话接入网络。
此外,MKA协议里定义了一个会话保活定时器,如果在超时时间内(6秒),本端没有收到对端的MKA协议报文,则在定时器超时后,本端将清除建立的安全会话。
如图1-4所示,设备间的MACsec协议交互过程无身份认证阶段,直接从会话协商阶段开始。设备之间使用配置的预共享密钥开始协商会话,会话协商结束后开始安全通信。该模式下,会话协商、安全通信和会话终止的具体机制与面向主机模式的MACsec协议交互过程类似。但密钥服务器的选举方式不同,面向设备模式中优先级较高的端口将被选举为密钥服务器,负责生成和分发SAK。
图1-4 面向设备模式的MACsec协议交互过程
设备暂不支持面向主机模式的MACsec运行机制。
与MACsec相关的协议规范有:
l IEEE 802.1X-2010:Port-Based Network Access Control
l IEEE 802.1AE-2006:Media Access Control (MAC) Security
MACsec的配置包括两大部分:
· 接口上的MACsec配置:用于控制接口的MACsec属性参数,以及用于协商会话的MKA协议参数,包括使能接口上的MKA协议、配置预共享密钥、MKA密钥服务器的优先级等。其中,预共享密钥和MKA密钥服务器的优先级的配置主要用于面向设备模式,这些属性可以在二层以太网接口和三层以太网接口上配置。
· MKA策略配置:用于配置一套MACsec属性参数,通过应用在接口上,实现接口上的MACsec属性参数个性化定制,同时也便于多个接口通过应用统一MKA策略来共享相同的MACsec属性参数。该配置属于可选配置。
由于MACsec属性参数既可以在接口上直接配置,又可以使用MKA策略配置,因此由配置顺序决定它们最终的生效情况。如果既在接口上直接配置MACsec属性参数,又在接口上应用了MKA策略,则后执行的配置参数生效。
需要注意的是:
· 仅以下单板的部分端口支持配置MACsec功能:
¡ 下列SE系列接口板上编号为1~8的端口:LSXM1GP44TSSE3、LSXM1GP24TSSE3、LSXM1GT24PTSSE3和LSXM1GT48SE3;
¡ 下列SG系列接口板上编号为1~4的端口:LSXM1TGS48SG3;
· 聚合接口上不支持配置MACsec功能,但聚合组内成员端口上支持配置MACsec功能。
· 如果要使用MACsec功能,规划业务流量时请预留MACsec报文头所占用的38个字节。
表1-1 接口上的MACsec配置任务简介
使能MKA协议 |
|||
配置MACsec保护 |
|||
配置MKA密钥服务器的优先级 |
|||
配置MACsec加密偏移量 |
|||
配置MACsec重播保护功能 |
开启MACsec重播保护功能 |
||
配置MACsec重播保护窗口大小 |
|||
配置MACsec校验 |
表1-2 MKA策略配置任务简介
创建MKA策略 |
||||
配置MKA策略 |
配置MACsec加密偏移量 |
|||
配置MACsec重播保护功能 |
开启MACsec重播保护功能 |
|||
配置MACsec重播保护窗口大小 |
||||
配置MACsec校验 |
||||
应用MKA策略 |
无MACsec能力的接口上,不支持使能MKA协议。
MKA协议负责接口上MACsec安全通道的建立和管理,以及MACsec所使用密钥的协商。
使能MKA协议 |
缺省情况下,接口上的MKA协议处于关闭状态 |
设备期望进行MACsec保护表达了本端对发送的数据帧进行MACsec保护的意愿,但最终本端发送的数据帧是否启用MACsec保护,要由密钥服务器来决策。决策策略是:密钥服务器和它的对端都支持MACsec特性,且至少有一端期望进行MACsec保护。
启用MACsec保护 |
在配置预共享密钥时,需要注意的是,在面向设备模式中,两端设备协商MKA会话使用的CAK通过预共享密钥直接配置。为了保证设备间的MKA会话可以正常建立,必须保证两端设备的接口上配置的预共享密钥一致。
缺省情况下,接口不存在MKA预共享密钥 |
MACsec加密数据报文使用的SAK由密钥服务器生成。在配置MKA密钥服务器的优先级时,需要注意:
· 在面向设备模式中,MKA密钥服务器优先级较高(值较小)的设备端口将被选举为密钥服务器。如果设备端口的优先级相同,则比较设备端口的SCI(MAC地址+端口的ID),SCI值较小的端口将被选举为密钥服务器。
· 优先级为255的设备端口不能被选举为密钥服务器。相互连接的端口不能都配置优先级为255,否则MKA会话选举不出密钥服务器。
表1-6 配置MKA密钥服务器的优先级
配置MKA密钥服务器的优先级 |
缺省情况下,MKA密钥服务器的优先级为0 |
MACsec加密偏移量表示从用户数据帧帧头开始偏移多少字节后开始加密,协议提供0、30、50三个偏移量供用户使用。
需要注意的是,MACsec加密偏移量最终以密钥服务器发布的加密偏移量为准。如果本端不是密钥服务器,则应用密钥服务器发布的加密偏移量;如果本端是密钥服务器,则应用本端配置的加密偏移量。
表1-7 配置MACsec加密偏移量
配置接口上的MACsec加密偏移量 |
缺省情况下,接口上的MACsec加密偏移量为0,表示整个数据帧都要加密 |
MACsec重播保护功能可以防止本端收到乱序或重复的数据帧。MACsec重播保护功能可以单独开启,且仅针对接收到的数据帧。配置的重播保护窗口大小仅在重播保护功能开启的情况下有效。
开启接口上的MACsec重播保护功能 |
缺省情况下,接口上的MACsec重播保护功能处于开启状态 |
|
配置接口上的MACsec重播保护窗口大小 |
缺省情况下,接口上的MACsec重播保护窗口大小为0个数据帧,表示不允许接收乱序或重复的数据帧 |
如果接口开启MACsec校验功能,接口收到报文后,计算报文的ICV,与报文尾部的ICV比较,并根据校验模式,决定报文是否丢弃。MACsec校验模式分三种方式:
l check:检查模式,表示只作校验,但不丢弃非法数据帧。
l strict:严格校验模式,表示校验接收数据帧,并丢弃非法数据帧。
在网络中部署支持MACsec的设备时,为避免两端因密钥协商不一致而造成流量丢失,建议两端均先配置为check模式,在密钥协商成功后,再配置为strict模式。
表1-9 配置MACsec校验模式
配置接口上的MACsec校验模式 |
缺省情况下,接口上的MACsec校验模式是check |
系统中可配置多个MKA策略。其中,缺省MKA策略default-policy不能被删除和修改,它的参数取值均为接口上对应配置的缺省值。
创建一个MKA策略,并进入MKA策略视图 |
缺省情况下,存在一个缺省的MKA策略,名称为default-policy |
MKA策略中包括以下配置项:
· 开启重播保护功能和配置重播保护窗口大小:用于防止收到乱序或重复的数据帧。
· 接收数据帧的校验模式:用于控制是否校验数据帧以及是否丢弃非法数据帧。
进入MKA策略视图 |
|||
配置MACsec加密偏移量 |
|||
配置MACsec重播保护功能 |
开启MACsec重播保护功能 |
缺省情况下,接口上的MACsec重播保护功能处于使能状态 |
|
配置MACsec重播保护窗口大小 |
replay-protection window-size size-value |
缺省情况下,接口上的MACsec重播保护窗口大小为0个数据帧,表示不允许接收乱序或重复的数据帧 |
|
配置MACsec校验模式 |
validation mode { check | strict } |
缺省情况下,MACsec校验模式是check |
一个MKA策略可应用于一个或多个接口。在接口上应用了MKA策略时,需要注意的是:
· 接口上应用的MKA策略中配置的MACsec属性参数(加密偏移、校验模式、重播保护功能和重播保护窗口大小)会覆盖接口上配置的对应的MACsec属性参数。
· 当修改应用到接口上的MKA策略配置时,接口上的相应的配置也会改变。
· 取消接口上应用的指定MKA策略时,接口上的加密偏移、校验模式、重播保护功能和重播保护窗口大小都恢复为缺省情况。
· 当接口应用了一个不存在的MKA策略时,该接口会自动应用缺省MKA策略default-policy。之后,如果该策略被创建,则接口会自动使用配置的MKA策略。
应用MKA策略 |
mka apply policy policy-name |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MACsec的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重建会话和清除统计信息。
表1-13 MACsec显示和维护
Device A和Device B相连,要求两台设备之间的数据通信进行MACsec保护,具体要求如下:
l MACsec加密偏移量为30字节。
l 开启MACsec重播保护功能,重播保护窗口大小为100。
l 开启严格的MACsec校验。
· 两台设备使用的CAK均为静态配置,CKN为E9AC,CAK为09DB3EF1。
l 由Device A作为密钥服务器。
图1-5 面向设备模式MACsec配置组网图
(1) 配置Device A
# 在接口GigabitEthernet1/0/1上配置期望进行MACsec保护。
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] macsec desire
# 配置MKA密钥服务器的优先级为5。(本例中,Device A作为密钥服务器,所以配置的Device A的优先级要比Device B的优先级高)
[DeviceA-GigabitEthernet1/0/1] mka priority 5
# 配置预共享密钥的名称为E9AC,预共享密钥为明文09DB3EF1。
[DeviceA-GigabitEthernet1/0/1] mka psk ckn E9AC cak simple 09DB3EF1
# 配置MACsec加密偏移量为30。
[DeviceA-GigabitEthernet1/0/1] macsec confidentiality-offset 30
# 开启MACsec重播保护功能。
[DeviceA-GigabitEthernet1/0/1] macsec replay-protection enable
# 配置MACsec重播保护窗口大小为100。
[DeviceA-GigabitEthernet1/0/1] macsec replay-protection window-size 100
# 配置严格的MACsec校验模式。
[DeviceA-GigabitEthernet1/0/1] macsec validation mode strict
# 使能MKA协议。
[DeviceA-GigabitEthernet1/0/1] mka enable
[DeviceA-GigabitEthernet1/0/1] quit
(2) 配置Device B
# 进入GigabitEthernet1/0/1接口视图。
[DeviceB] interface gigabitethernet 1/0/1
# 配置期望进行MACsec保护。
[DeviceB-GigabitEthernet1/0/1] macsec desire
# 配置MKA密钥服务器的优先级为10。
[DeviceB-GigabitEthernet1/0/1] mka priority 10
# 配置预共享密钥的名称为E9AC,预共享密钥为明文09DB3EF1。
[DeviceB-GigabitEthernet1/0/1] mka psk ckn E9AC cak simple 09DB3EF1
# 配置MACsec加密偏移量为30。
[DeviceB-GigabitEthernet1/0/1] macsec confidentiality-offset 30
# 开启MACsec重播保护功能。
[DeviceB-GigabitEthernet1/0/1] macsec replay-protection enable
# 配置MACsec重播保护窗口大小为100。
[DeviceB-GigabitEthernet1/0/1] macsec replay-protection window-size 100
# 配置严格的MACsec校验模式。
[DeviceB-GigabitEthernet1/0/1] macsec validation mode strict
# 使能MKA协议。
[DeviceB-GigabitEthernet1/0/1] mka enable
[DeviceB-GigabitEthernet1/0/1] quit
配置完成后,用户可以使用display命令查看设备上MACsec的运行情况。
# 查看DeviceA的MACsec运行信息。
[DeviceA] display macsec interface gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/0/1
Protect frames : Yes
Replay protection : Enabled
Replay window size : 100 frames
Confidentiality offset : 30 bytes
Validation mode : Strict
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
Transmit secure channel:
SCI : 00E00100000A0006
Elapsed time: 00h:05m:00s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : 00E0020000000106
Elapsed time: 00h:03m:18s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 查看DeviceA上的MKA会话信息。
[DeviceA] display mka session interface gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/0/1
Tx-SCI : 00E00100000A0006
Priority : 5
Capability: 3
CKN for participant: E9AC
Key server : Yes
MI (MN) : 85E004AF49934720AC5131D3 (182)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 30 bytes
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : 85E004AF49934720AC5131D300000003 (3)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Priority Capability Rx-SCI
12A1677D59DD211AE86A0128 182 10 3 00E0020000000106
# 查看DeviceB上的MACsec运行信息。
[DeviceB]display macsec interface gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/0/1
Protect frames : Yes
Replay protection : Enabled
Replay window size : 100 frames
Confidentiality offset : 30 bytes
Validation mode : Strict
Included SCI : No
SCI conflict : No
Cipher suite : GCM-AES-128
Transmit secure channel:
SCI : 00E0020000000106
Elapsed time: 00h:05m:36s
Current SA : AN 0 PN 1
Receive secure channels:
SCI : 00E00100000A0006
Elapsed time: 00h:03m:21s
Current SA : AN 0 LPN 1
Previous SA : AN N/A LPN N/A
# 查看DeviceB上的MKA会话信息。
[DeviceB] display mka session interface gigabitethernet 1/0/1 verbose
Interface GigabitEthernet1/0/1
Tx-SCI : 00E0020000000106
Priority : 10
Capability: 3
CKN for participant: E9AC
Key server : No
MI (MN) : 12A1677D59DD211AE86A0128 (1219)
Live peers : 1
Potential peers : 0
Principal actor : Yes
MKA session status : Secured
Confidentiality offset: 30 bytes
Current SAK status : Rx & Tx
Current SAK AN : 0
Current SAK KI (KN) : 85E004AF49934720AC5131D300000003 (3)
Previous SAK status : N/A
Previous SAK AN : N/A
Previous SAK KI (KN) : N/A
Live peer list:
MI MN Priority Capability Rx-SCI
85E004AF49934720AC5131D3 1216 5 3 00E00100000A0006
在链路状态正常且链路两端设备都支持MACsec功能,MACsec安全会话未建立。
l 接口未使能MKA协议。
· 如果接口使用预共享密钥,接口的预共享密钥未配置或配置不一致。
l 进入接口视图下,使用display this命令查看MKA是否使能,如果未使能,请使用mka enable命令使能MKA协议。
· 进入接口视图下,使用display this命令查看是否配置预共享密钥,如果未配置,请使用mka psk命令配置;否则,请检查已有配置的密钥是否一致,不一致,则重新配置一致。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!