20-MACSec配置
本章节下载: 20-MACSec配置 (322.89 KB)
目 录
MACsec(Media Access Control Security,MAC安全)定义了基于IEEE 802局域网络的数据安全通信的方法。MACsec可为用户提供安全的MAC层数据发送和接收服务,包括用户数据加密、数据帧完整性检查及数据源真实性校验。MACsec通常与802.1X认证框架配合使用,通过使用MKA(MACsec Key Agreement,MACsec密钥协商)协议协商生成的密钥对已认证的用户数据进行加密和完整性检查,避免端口处理未认证设备的报文或者经过篡改的报文。
CA(Connectivity Association,安全连通集)是两个或两个以上使用相同密钥和密钥算法套件的成员的集合。CA成员称为CA的参与者。CA参与者使用的密钥称为CAK。CAK分为以下两种类型:
· 成对CAK(Pairwise CAK),即由两个成员组成CA,它们所拥有的CAK称为成对CAK。
· 成组CAK(Group CAK),即由三个或三个以上成员组成CA,它们所拥有的CAK称为成组CAK。
CAK可以是802.1X认证过程中生成的CAK,也可以是用户配置的预共享密钥(PSK,Pre-Shared Key)。如两者同时存在,优先使用用户配置的预共享密钥。目前设备仅支持PSK。
目前,MACsec主要应用在点对点组网的环境中,所以主要使用成对CAK。
SA(Security Association,安全联盟)是CA参与者之间用于建立安全通道的安全参数集合,包括对数据进行加密算法套件、进行完整性检查的密钥等。
一个安全通道中可包含多个SA,每一个SA拥有一个不同的密钥,这个密钥称为SAK。SAK由CAK根据算法推导产生,用于加密安全通道间传输的数据。
MKA对每一个SAK可加密的报文数有所限制。当使用某SAK加密的报文超过限定的数目后,该SAK会被刷新。例如,在10Gbps的链路上,SAK最快300秒刷新一次。
MACsec安全通道建立后,两端设备会通过交互MKA协议报文确认连接的存在。
当设备收到对端的MKA协议报文后,启动MKA会话超时定时器。如果设备在该定时器设置的超时时间(缺省为6秒)内未再次收到对端的MKA协议报文,则认为该连接已不安全,清除建立的安全会话。
开启了MACsec功能且启动了MACsec保护的端口发送数据帧时,需要对它进行加密;开启了MACsec功能的端口收到经过MACsec封装的数据帧时,需要对它进行解密。加解密所使用的密钥是通过MKA协议协商而来的。
MACsec封装的数据帧会使用CAK推导出的密钥进行ICV(完整性校验值,Integrity Check Value)计算,并附加在MACsec报文的尾部。设备收到MACsec报文时,同样使用MKA协商出的密钥进行完整性检验值计算,然后将计算结果与报文中携带的ICV进行比较。如果比较结果相同,则表示报文合法;如果比较结果不相同,将依据配置的校验模式,决定是否丢弃报文。
MACsec有如下几种校验模式:
· check:检查模式,表示只作校验,但不丢弃非法数据帧。
· strict:严格校验模式,表示校验接收数据帧,并丢弃非法数据帧。
MACsec封装的数据帧在网络中传输时,可能出现报文顺序的重排。MACsec重播保护机制允许数据帧有一定的乱序,这些乱序的报文序号在用户指定的窗口范围内可以被合法接收,超出窗口的报文会被丢弃。
目前,设备仅支持面向设备的组网模式。
如图1-1所示,面向设备模式用于保护设备之间的数据帧。
该模式下,互连的两台设备直接使用通过命令行配置的预共享密钥进行MACsec密钥协商和报文加密功能。
如图1-2所示,设备之间使用配置的预共享密钥开始协商会话,会话协商结束后开始安全通信。MACsec协议的交互过程主要分为三个阶段:会话协商、安全通信和会话终止。
图1-2 面向设备模式的MACsec协议交互过程
(1) 会话协商
设备之间使用配置的预共享密钥(PSK,Pre-Shared Key)作为CAK,通过EAPOL-MKA报文开始协商会话。设备间优先级较高的端口将被选举为密钥服务器(Key Server),负责生成和分发SAK,设备之间通过MKA协议向对方通告自身能力和建立会话所需的各种参数(如优先级、是否期望加密会话等)。
(2) 安全通信
会话协商完成后,各设备有了可用的SAK,并使用SAK加密数据报文,开始加密通信。
(3) 会话终止
¡ 当设备收到对方的下线请求消息后,立即清除该用户对应的安全会话。
¡ MKA会话超时定时器(缺省为6秒,可配置)超时后,本端仍然没有收到对端的MKA协议报文,则清除该用户对应的安全会话。
与MACsec相关的协议规范有:
· IEEE 802.1AE-2006:Media Access Control (MAC) Security
· S12500F-AF系列交换机的LSXM1TGS24QGMODHB0单板上安装如下接口模块扩展卡时,接口上的部分端口支持MACsec功能:
¡ LSWM124XG2Q0接口模块扩展卡上的24个SFP+口支持MACsec功能。
¡ LSWM18CQMSEC接口模块扩展卡上的8个QSFP28口支持MACsec功能。
· 若交换机安装有接口模块扩展卡,且该扩展卡上的接口具有MACsec能力,则开启了MACsec功能的接口模块扩展卡不支持热插拔。
· 无MACsec能力的接口上,不支持开启MKA协议。
MACsec配置任务如下:
(1) 开启MACsec协议
(2) 配置MACsec保护
(3) 配置MACsec使用的加密套件
仅面向设备模式下需要配置加密套件。
(4) 配置预共享密钥
(5) (可选)配置MKA密钥服务器的优先级
(6) (可选)配置MKA会话超时时间
仅面向设备模式下需要配置MKA会话超时时间。
(7) (可选)配置MACsec属性参数
请选择以下一项任务进行配置:
(8) (可选)配置MKA会话的日志信息功能
MKA协议负责接口上MACsec安全通道的建立和管理,以及MACsec所使用密钥的协商。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启MKA协议。
mka enable
缺省情况下,接口上的MKA协议处于关闭状态。
设备期望进行MACsec保护表达了本端对发送的数据帧进行MACsec保护的意愿,但最终本端发送的数据帧是否启用MACsec保护,要由密钥服务器来决策。决策策略是:密钥服务器和它的对端都支持MACsec特性,且至少有一端期望进行MACsec保护。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MACsec保护。
macsec desire
缺省情况下,接口上不需要对发送的数据帧进行MACsec保护。
MACsec使用的加密套件是一组用来加密、校验和恢复被保护数据帧的算法,目前支持的加密套件为GCM-AES-128和GCM-AES-256。
仅H3C LSWM18CQMSEC接口模块扩展卡支持配置本功能。
仅面向设备模式下需要配置MACsec加密套件,且配置该功能的端口上不能开启802.1X功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MACsec使用的加密套件。
macsec cipher-suite { gcm-aes-128 | gcm-aes-256 }
缺省情况下,MACsec使用的加密套件为GCM-AES-128。
在面向设备模式中,两端设备协商MKA会话使用的CAK通过预共享密钥直接配置。为了保证设备间的MKA会话可以正常建立,必须保证两端设备的接口上配置的预共享密钥一致。
本端设备和对端设备建立MACsec连接时,请保证只有建立连接的两个端口上配置相同的CKN,两端设备的其它端口上都不能配置与此相同的CKN,以免一个端口学习到多个邻居而导致MACsec功能不能正常建立。
MACsec使用不同的加密算法套件时,CKN、CAK的取值长度有所不同,具体要求如下:
· GCM-AES-128加密套件要求所使用的CKN、CAK的长度都必须为32个字符。在运行GCM-AES-128加密套件时,对于长度不足32个字符的CKN、CAK,系统会自动在其后补零,使其满足32个字符;对于长度大于32个字符的CKN、CAK,系统只获取其前32个字符。
· GCM-AES-256加密套件要求使用的CKN、CAK的长度都必须为64个字符。在运行GCM-AES-256 加密套件时,对于长度不足64个字符的CKN、CAK,系统会自动在其后补零,使其满足64个字符。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置预共享密钥。
mka psk ckn name cak { cipher | simple } string
缺省情况下,接口不存在MKA预共享密钥。
配置MKA密钥服务器的优先级时,请遵循以下配置限制和指导:
· 在面向客户端模式中,接入设备的端口被自动选举为密钥服务器,不需要配置MKA密钥服务器的优先级。
· 在面向设备模式中,MKA密钥服务器优先级较高(值较小)的设备端口将被选举为密钥服务器。如果设备端口的优先级相同,则比较设备端口的SCI(MAC地址+端口的ID),SCI值较小的端口将被选举为密钥服务器。
· 优先级为255的设备端口不能被选举为密钥服务器。相互连接的端口不能都配置优先级为255,否则MKA会话选举不出密钥服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MKA密钥服务器的优先级。
mka priority priority-value
缺省情况下,MKA密钥服务器的优先级为0。
仅面向设备模式下需要配置本功能,且两端设备上配置的会话超时时间必须相同。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置MKA会话超时时间。
mka timer mka-life seconds
缺省情况下,MKA会话超时时间为6秒。
MACsec有如下属性参数:
· MACsec加密偏移量:从用户数据帧帧头开始偏移多少字节后开始加密,协议提供0、30、50三个偏移量供用户使用。
· MACsec重播保护功能:可以防止本端收到乱序或重复的数据帧。
· MACsec校验:接口收到报文后,计算报文的ICV,与报文尾部的ICV比较,并根据校验模式,决定报文是否丢弃。
MACsec属性参数既可以在接口上配置,也可以通过MKA策略配置。当需要在多个接口上配置同样的属性参数,则可以采用配置和应用MKA策略实现。
如果既在接口上直接配置MACsec属性参数,又在接口上应用了MKA策略,则后执行的配置参数生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口上的MACsec加密偏移量。
macsec confidentiality-offset offset-value
缺省情况下,接口上的MACsec加密偏移量为0,表示整个数据帧都要加密。
如果本端不是密钥服务器,则应用密钥服务器发布的加密偏移量;如果本端是密钥服务器,则应用本端配置的加密偏移量,并将该值发布给对端。
(4) 为接口接收到的数据帧配置MACsec重播保护功能。
macsec replay-protection enable
缺省情况下,接口上的MACsec重播保护功能处于开启状态。
b. 配置接口上的MACsec重播保护窗口大小。
macsec replay-protection window-size size-value
缺省情况下,接口上的MACsec重播保护窗口大小为0个数据帧,表示不允许接收乱序或重复的数据帧。
配置的重播保护窗口大小仅在重播保护功能开启的情况下有效。
macsec validation mode { check | strict }
缺省情况下,接口上的MACsec校验模式是check。
在网络中部署支持MACsec的设备时,为避免两端因密钥协商不一致而造成流量丢失,建议两端均先配置为check模式,在密钥协商成功后,再配置为strict模式。
参数 |
说明 |
check |
检查模式,表示只作校验,但不丢弃非法数据帧 |
strict |
严格校验模式,表示校验接收数据帧,并丢弃非法数据帧 |
一个MKA策略可应用于一个或多个接口。在接口上应用了MKA策略时,需要注意的是:
· 接口上应用的MKA策略中配置的MACsec属性参数(加密偏移、校验模式、重播保护功能和重播保护窗口大小)会覆盖接口上配置的对应的MACsec属性参数。
· 当修改应用到接口上的MKA策略配置时,接口上的相应的配置也会改变。
· 取消接口上应用的指定MKA策略时,接口上的加密偏移、校验模式、重播保护功能和重播保护窗口大小都恢复为缺省情况。
· 当接口应用了一个不存在的MKA策略时,该接口会自动应用缺省MKA策略default-policy。之后,如果该策略被创建,则接口会自动使用配置的MKA策略。
(1) 进入系统视图。
system-view
(2) 创建一个MKA策略,并进入MKA策略视图。
mka policy policy-name
缺省情况下,存在一个缺省的MKA策略,名称为default-policy ,参数取值均为接口上对应的缺省值,且该策略不能被删除和修改。
系统中可配置多个MKA策略。
(3) 配置MACsec加密偏移量。
confidentiality-offset offset-value
缺省情况下,加密偏移为0,表示整个数据帧都要加密。
如果本端不是密钥服务器,则应用密钥服务器发布的加密偏移量;如果本端是密钥服务器,则应用本端配置的加密偏移量,并将该值发布给对端。
a. 开启MACsec重播保护功能。
replay-protection enable
缺省情况下,接口上的MACsec重播保护功能处于开启状态。
b. 配置MACsec重播保护窗口大小。
replay-protection window-size size-value
缺省情况下,接口上的MACsec重播保护窗口大小为0个数据帧,表示不允许接收乱序或重复的数据帧。
(5) 配置MACsec校验模式。
validation mode { check | strict }
缺省情况下,MACsec校验模式是check。
参数 |
说明 |
check |
检查模式,表示只作校验,但不丢弃非法数据帧 |
strict |
严格校验模式,表示校验接收数据帧,并丢弃非法数据帧 |
a. 退回用户视图。
quit
b. 进入接口视图
interface interface-type interface-number
c. 在接口上应用MKA策略。
mka apply policy policy-name
缺省情况下,接口上没有应用MKA策略。
MKA会话的日志信息是为了满足网络管理员维护的需要,对用户的接入信息(如对端老化、SAK更新)进行记录。设备生成的MKA会话的日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
为了防止设备输出过多的MKA会话的日志信息,一般情况下建议关闭此功能。
(1) 进入系统视图。
system-view
(2) 开启MKA会话的日志信息功能。
macsec mka-session log enable
缺省情况下,MKA会话的日志信息功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后MACsec的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重建会话和清除统计信息。
表1-1 MACsec显示和维护
操作 |
命令 |
显示接口上的MACsec运行信息 |
display macsec [ interface interface-type interface-number ] [ verbose ] |
显示MKA策略相关信息 |
display mka { default-policy | policy [ name policy-name ] } |
显示MKA会话信息 |
display mka session [ interface interface-type interface-number | local-sci sci-id ] [ verbose ] |
显示接口上的MKA统计信息 |
display mka statistics [ interface interface-type interface-number ] |
重建接口上的MKA会话 |
reset mka session [ interface interface-type interface-number ] |
清除接口上的MKA统计信息 |
reset mka statistics [ interface interface-type interface-number ] |
Device A和Device B相连,要求两台设备之间的数据通信进行MACsec保护,具体要求如下:
· MACsec加密偏移量为30字节。
· 开启MACsec重播保护功能,重播保护窗口大小为100。
· 开启严格的MACsec校验。
· 两台设备使用的CAK均为静态配置,CKN为E9AC,CAK为09DB3EF1。
· 由Device A作为密钥服务器。
图1-3 面向设备模式MACsec配置组网图
缺省情况下,本设备的接口处于ADM(Administratively Down)状态,请根据实际需要在对应接口视图下使用undo shutdown命令开启接口。
(1) 配置Device A
<DeviceA> system-view
# 在接口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
<DeviceB> system-view
# 进入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
MKA life time : 6 seconds
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
MKA life time : 6 seconds
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安全会话未建立。
可能的原因有:
· 接口未开启MKA协议。
· 如果接口使用预共享密钥,接口的预共享密钥未配置或配置不一致。
· 进入接口视图下,使用display this命令查看MKA是否开启,如果未开启,请使用mka enable命令开启MKA协议。
· 进入接口视图下,使用display this命令查看是否配置预共享密钥,如果未配置,请使用mka psk命令配置;否则,请检查已有配置的密钥是否一致,不一致,则重新配置一致。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!