华为智简园区交换机 MACsec技术白皮书前言摘要MACsec(802.1AE)提供同一个局域网内,设备端口MAC 层之间的安全通信服务,主要包含以下方面:数据机密性、数据完整性、数据来源真实性以及重放保护。
关键词MACsec 802.1AE目录前言 (ii)1概述 (4)2MACsec 技术原理 (5)2.1 MACsec 典型组网模式 (5)2.1.1面向主机点到点模式 (5)2.1.2面向设备点到点模式 (6)2.2 MACsec 基本概念 (6)2.3 MACsec 运行机制 (8)2.4 MACsec 密钥体系 (10)2.4.1密钥体系结构 (10)2.4.2密钥派生关系 (11)2.5 MKA 密钥协商交互流程 (12)2.6 MACsec 数据加解密转发 (13)3典型组网应用 (15)3.1 局域网MACsec 典型组网 (15)3.2 中间有传输设备MACsec 典型组网 (15)4 附录 (17)1 概述MACsec(Media Access Control Security)定义了基于IEEE 802 局域网络的数据安全通信的方法。
MACsec 可为用户提供安全的MAC 层数据发送和接收服务,包括用户数据加密(C o n fid e n tia l ity)、数据帧完整性检查(D a ta in te g rit y)、数据源真实性校验(D a t a o rigin a u th e n tic it y)及重放保护(Re p l ay p r o te c tio n)。
MACsec 主要涉及IEEE802.1AE 和802.1X 两个协议规范:IEEE802.1AE-2006 定义了数据封装、加密和认证的帧格式;802.1X-2010 中的MKA(MACsec Key Agreement)定义了密钥管理协议,提供了Peer-to-Peer 方式或Group 方式的密钥建立机制,使用MKA 协议协商生成的密钥对已认证的用户数据进行加密和完整性检查,可以避免端口处理未认证设备的报文或者未认证设备篡改的报文。
MACsec 不是对现有端到端IPSec、TLS 等三层安全技术的替代,而是它们的互补技术。
MACsec 使用二层加密技术,提供逐跳设备的数据安全传输,适用于政府、军队、金融等对数据机密性要求较高的场合,如局域网两台交换机设备之间经过光传输设备,通过MACsec 加密技术可保证数据在中间传输设备上安全传输。
2 MACsec 技术原理2.1 MACsec 典型组网模式MACsec 常用的组网模式有:面向主机点到点模式、面向设备点到点模式。
2.1.1面向主机点到点模式如图2-1 所示,面向主机点到点模式用于保护Client 主机和设备之间的数据帧传输。
图2-1 面向主机点到点模式该组网模式包括以下三个组成元素:●客户端(Client)客户端是请求接入局域网的用户终端,由局域网中接入设备对其进行认证,并执行MACsec 密钥协商和报文加密功能。
●接入设备(Device)接入设备控制客户端的接入,通过与认证服务器的交互,对连接的客户端进行802.1X认证,并执行MACsec 密钥协商和报文加密功能。
●认证服务器(Authentication Server)认证服务器通常是AAA 服务器,用于对客户端进行Radius 认证、授权和计费。
客户端通过认证后,认证服务器为客户端和接入设备分发密钥,用于后续的MACsec 密钥协商。
2.1.2面向设备点到点模式如图2-2 所示,面向设备点到点模式用于保护两台设备之间的数据帧传输。
该模式下,无客户端和接入设备角色之分,可以不需要认证服务器,互连的两台设备可直接通过命令行配置CAK 密钥进行MACsec 密钥协商和报文加密功能。
图2-2 面向设备点到点模式☛说明华为交换机MACsec 暂不支持面向主机点到点模式,支持面向设备点到点模式,本文后续主要介绍该模式原理。
2.2 MACsec 基本概念➢MKAMKA(MACsec Key Agreement protocol)用于MACsec 数据加密密钥的协商协议。
➢CACA(Secure Connectivity Association,安全连接关联)指通过一个LAN 互连的支持MACsec 的全连接的端口集合。
CA 由MKA 创建和维护,CA 成员称为CA 的参与者。
➢CAKCAK(Secure Connectivity Association Key,安全连接关联密钥)不直接用于数据报文的加密,由它和其他参数派生出数据报文的加密密钥。
CAK 可以在802.1X 认证过程中下发,也可以由用户直接静态配置。
➢CKNCKN(Secure Connectivity Association Key Name,安全连接关联密钥名称)是对应CAK 的名称。
➢SCSC(Secure Channel,安全通道)是CA 参与者之间用于传输MAC 安全数据的安全通道。
每个SC 提供单向点到点或点到多点的通信。
如对于点对点的两台设备A 和设备B,A到B 单向数据转发链路可认为一个SC(a) ,B 到A 单向数据转发链路可认为另外一个SC(b) 。
➢SCISCI(Secure Channel Identifier,安全通道标识符)是由6 字节的MAC 地址和2 字节的Port Identifier 组成,唯一标识系统内的安全通道。
➢SASA(Secure Association,安全关联)是SC 安全通道的安全参数集合。
包括对数据进行加密算法套件、进行完整性检查的密钥等。
一个安全通道中可包含多个SA,每一个SA 拥有一个不同的密钥,这个密钥称为SAK。
➢SAKSAK(Secure Association Key,安全关联密钥)由CAK 根据算法推导产生,用于加密安全通道间传输的数据。
MKA 对每一个SAK 可加密的报文数目有所限制,当使用某SAK 加密的PN 耗尽,该SAK 会被刷新。
例如,在10Gbps 的链路上,SAK 最快4.8 分钟刷新一次。
➢ICVICV(Integrity Check Value,完整性校验值)是报文完整性检验值,在报文发送端,通过某种算法对报文数据单元计算产生一个检验值,将此检验值放在报文的尾部,报文接收端通过相同算法得到ICV 值与报文携带的ICV 进行比对,如果这两个ICV 相同说明报文没有被修改,否则该报文被丢弃,保证了报文的数据完整性。
➢ICKICK(ICV Key,ICK 密钥)由CAK 根据算法推导产生,只用于计算MKA 协议层面报文的ICV 值,而数据层面没有专门的ICK。
➢KEKKEK(Key Encrypting Key,密钥加密密钥)由CAK 根据算法推导产生,用于加密SAK,通过MKA 密钥协议报文将SAK 密钥发送给同一个CA 内的参与者,防止用于数据加密的SAK 在传输过程中被窃取。
➢PNPN(Packet Number,报文编号)对应SECTAG 中的一个字段,发送方发报文每次按1 递增,用于接收方进行重放保护,当SA 的PN 达到0xFFFFFFFF 时,SAK 必须要进行切换,以10GE 链路为例,最快4.8 分钟PN 就会耗尽,一般PN 即将耗尽时(假设PN达到0xC0000000),也可以对SA K进行切换。
➢Key ServerKey Server 决定加密方案和进行密钥分发的MKA 实体。
➢Supplicant选举出Key Server 之后,Supplicant 是确定为非Key Server 的实体。
➢Confidentiality Offset指加密偏移,取值{0, 30, o r 50},S E CT A G后面的C o n fid e n t ia l i ty O ff se t个字节不加密,目的是为了适应某些需要识别IPv4/v6 头的应用(比如负载均衡)。
➢MACsec Mode指加密模式,包含No n e(即不加密,不校验,不封装)、No r m a l(即既加密又校验),In te g ri ty-o n l y(只做完整性验证、不加密),默认为No n e。
2.3 MACsec 运行机制MACsec 运行机制主要分为三个阶段:CAK 获取、MKA 密钥协商、MACsec 数据加解密。
如图2-3 所示,面向设备点到点MACsec 组网运行机制,网络管理员在两台设备上通过命令行预配置相同的CAK,两台设备会通过MKA 协议选举出一个Key Server,KeyServer 决定加密方案,Key Server 会根据CAK 等参数使用某种加密算法生成SAK 数据密钥,由Key Server 将SAK 分发给对端设备,这样两台设备拥有相同的SAK 数据密钥,可以进行后续MACsec 数据报文加解密收发。
图2-3 面向设备点到点MACsec 运行机制图如图2-4 所示,面向主机点到点MACsec 组网运行机制,用户终端做802.1X 接入认证,接入交换机做认证设备,在用户终端通过认证之后,由认证服务器给接入设备和用户终端下发CAK,后续过程同面向设备点到点MACsec 模式。
图2-4 面向主机点到点MACsec 运行机制图2.4 MACsec 密钥体系2.4.1密钥体系结构图2-5 基于静态CAK 的MACsec 密钥体系结构图:如图2-5 所示,基于静态CAK 的MACsec 密钥体系结构,生成SAK 密钥流程如下:1、在同一个安全链接关联CA 成员CA(a)和CA(b)上,用户静态配置相同的(CKN,CAK)产生的(ICK,KEK)是一样的,用于后续发布SAK 对其本身进行加密,防止SAK 明文传递过程中泄密;2、在Key Server 基于用户配置的(CKN,CAK)会生成SAK,并且在本地安装SAK,用于Key Server 端收发数据报文的加解密;3、Key Server 将SAK 发布给对端Supplicant 时,通过KEK 加密SAK 密钥本身,由ICK 通过某种算法生成ICVs 用于校验报文的完整性,在Key Server 上将ICVs 值放在MKA 协议报文尾部,将经过KEK 加密的SAK 一起通过MKA 协议报文发送给Supplicant;4、Supplicant 接收到MKA 协议报文时,根据其中的CKN 查找CAK 和ICK,如果没有查找到则认为不是来自相同的CA 并丢弃,查找到之后对MKA 报文主体进行ICV 计算得到ICVc,如果与报文中的ICVs 不相同,则认为报文被修改(MKA 报文中的CKN 和I CV s没有经过KE K加密);5、经过ICV 校验通过之后,使用KEK 解密出SAK,Supplicant 进行SAK 安装,用于Supplicant 端收发数据报文的加解密。