MACsec技术白皮书
Copyright © 2021 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
以太网诞生之初,是一个没有任何接入控制措施的网络,安全性很差。802.1X协议的出现,解决了网络的受控接入的问题,802.1X协议是以太网发展史上一个重要的里程碑。但是,由于802.1X的数据平面还是使用明文传输的方式,因此存在以下安全风险:
· 通常,我们认为跨越Internet的链路或者跨广域网的链路是不安全的,会对这类链路进行加密以提高传输的安全性。但是随着BYOD(Bring Your Own Device)解决方案的兴起,以及园区网内部接入角色的多样化,园区网的传统边界已经被打破,数据传输的安全风险逐渐上升。
· 另外,对于园区网来说,部分场景下的网络布线不可避免的要穿越不受控制的公共区域。例如,企业办公园区内一定距离的两栋楼之间使用光纤互联,光纤穿越的地方属于公共区域,该区域内的数据暴露风险较大。而目前已经出现了一些价格低廉、操作简便的光纤侦听设备,可以对光纤传输内容进行完整还原和窃听。
· 更加令人担忧的是,已经有相关技术能够利用网线中传输码流时电磁场的变化,不用破坏原有布线即可实现通过电磁感应的原理还原网线中传输的内容。
对于以上安全风险,802.1X协议无能为力,因为它只控制用户的接入,而接入之后在网络中传输的用户报文都是明文的,理论上任何一条链路上的报文都存在被窃听的风险。虽然我们可以使用传统的IPsec等三层的加密技术来解决此问题,但这些技术不能实现线速转发,也不能保护二层帧头后的所有数据,不适合园区网;若使用外部专门的加密机来实现数据加密,一是成本太高,二是园区网设备的单端口吞吐能力高达10G级别,加密机的性能无法满足转发性能的要求。在这样的紧迫情形之下,MACsec应运而生。
MACsec(Media Access Control Security,MAC安全)定义了基于IEEE 802局域网络的数据安全通信方法,可为用户提供安全的MAC层数据发送和接收服务,包括用户数据加密、数据帧完整性检查及数据源真实性校验。MACsec通常与802.1X认证框架配合使用,通过使用MKA(MACsec Key Agreement,MACsec密钥协商)协议协商生成的密钥对已认证的用户数据进行加密和完整性检查,避免端口处理未认证设备的报文或者经过篡改的报文。
MACsec使用二层加密技术,提供逐跳设备的数据安全传输,通过对以太网数据帧进行保护,降低数据泄漏和遭受恶意网络攻击的风险,适用于政府、金融等对数据机密性要求较高的场合。
MACsec的优势在于:
· 设备上的MACsec基于硬件实现,可以实现报文的线速转发;
· 可以结合802.1X一起部署,比较适合于园区网络。
· 报文从应用了MACsec的端口接收以后即被解密为明文,设备可以继续对其执行其它的策略控制,平滑兼容已有策略部署。
MACsec包括两种典型组网模式:面向客户端模式和面向设备模式。
如图1所示,面向客户端模式用于保护客户端和设备之间的数据帧。
该模式包括以下三个组成元素:
· 客户端:可以是请求接入局域网的用户终端,也可以是支持802.1X Client功能的设备,由局域网中的接入设备对其进行认证,并执行MACsec密钥协商和报文加密功能。
· 接入设备:控制客户端的接入,通过与认证服务器的交互,对所连接的客户端进行802.1X认证,并执行MACsec密钥协商和报文加密功能。
· 认证服务器:用于对客户端进行认证、授权和计费,通常为RADIUS(Remote Authentication Dial-In User Service,远程认证拨号用户服务)服务器。客户端通过认证后,认证服务器为客户端和接入设备分发密钥。
当使用支持802.1X Client功能的设备作为客户端时,接入设备上使能MKA协议的端口必须采用基于端口的802.1X认证方式,且采用的802.1X认证方法必须为EAP中继方式。
如图2所示,面向设备模式用于保护设备之间的数据帧。
该模式下,互连的两台设备直接使用通过命令行配置的预共享密钥进行MACsec密钥协商和报文加密功能,两台设备之间无需802.1X认证。
开启了MACsec功能且启动了MACsec保护的端口发送数据帧时,需要对它进行加密;开启了MACsec功能的端口收到经过MACsec封装的数据帧时,需要对它进行解密。加解密所使用的密钥是通过MKA协议协商而来的。
发送端会对MACsec封装的报文使用某种算法计算出一个校验值,并附加在MACsec加密报文的尾部。对端设备收到MACsec加密报文时,使用相同的算法得到一个检验值,然后将计算结果与报文中携带的校验值进行比较。如果比较结果相同,则表示报文合法;如果比较结果不相同,将依据配置的校验模式,决定是否丢弃报文。
MACsec支持如下几种校验模式:
· 检查模式:表示只作校验,但不丢弃非法数据帧。
· 不校验模式:表示不对接收到的数据帧进行MACsec校验。
· 严格校验模式:表示校验接收到的数据帧,并丢弃非法数据帧。
MACsec封装的数据帧在网络中传输时,可能出现乱序。MACsec重播保护机制允许数据帧有一定的乱序。如果乱序报文的序号在用户指定的窗口范围内,则该报文可以被合法接收;否则,该报文会被丢弃。
MKA协议负责MACsec安全通道的建立和管理,以及MACsec所使用密钥的协商。MKA协议运行过程中涉及到的基本概念如下:
· CA(Connectivity Association,安全连通集):两个或两个以上使用相同密钥和密钥算法套件的成员的集合。CA成员称为CA的参与者。
· CAK(Secure Connectivity Association Key,安全连接集密钥):CA参与者使用的密钥。在面向客户端模式中,两端设备使用的CAK在802.1X认证过程中生成;在面向设备模式中,两端设备使用的CAK通过预共享密钥直接配置。
CAK分为以下两种类型:
¡ 成对CAK(Pairwise CAK),即由两个成员组成CA,它们所拥有的CAK称为成对CAK。
¡ 成组CAK(Group CAK),即由三个或三个以上成员组成CA,它们所拥有的CAK称为成组CAK。
目前,MACsec主要应用在点对点组网的环境中,所以主要使用成对CAK。
· SC(Secure Channel,安全通道):一个点到多点的单向接收或者发送报文的安全传输通道。
· SA(Security Association,安全联盟):CA参与者之间用于建立安全通道的安全参数集合,包括对数据进行加密的算法套件、进行完整性检查的密钥等。
· SAK(Security Association Key,安全联盟密钥):由CAK根据算法推导产生,用于加密安全通道间传输的数据。每一个SA拥有一个不同的SAK。MKA对每一个SAK可加密的报文数有所限制。当使用某SAK加密的报文超过限定的数目后,该SAK会被刷新。例如,在10Gbps的链路上,SAK最快300秒刷新一次。
· ICV(Integrity Check Value,完整性校验值):在报文的发送端,通过某种算法对报文的数据单元计算得出的校验值,附在报文尾部发送,并在接收端被重新计算和比较,用于保证报文的数据完整性。
· MKA会话:持有相同SAK的CA成员之间的安全连接。每个SC通道下,会连续创建多个MKA会话。
· MKA会话超时时间:每个MKA会话建立后,两端设备会通过交互MKA协议报文确认当前会话的存在。当设备收到对端的MKA协议报文后,启动MKA会话超时定时器。如果设备在该定时器设置的超时时间(缺省为6秒)内未再次收到对端的MKA协议报文,则认为该会话已不安全,需要立即清除。
CA成员之间完成SAK密钥协商和安装之后,将使用协商的密钥进行数据报文的转发:
· 在数据报文的发送端,采用SAK和加密算法对原始数据报文的MSDU(MAC Service Data Unit)部分进行加密形成密文(Secure Data),采用SAK和校验算法对源/目的MAC、SecTAG和密文部分进行计算输出ICV放置在报文的尾部,然后组装成一个完整的MACsec加密报文发送给对端。
· 在数据报文的接收端,采用SAK和解密算法对密文计算得到明文,同时采用校验算法计算出ICV后与报文携带的ICV进行比较,如果一致表明报文没有被修改。
图3 MACsec报文加密示意图
MACsec报文中的关键字段涵义如下:
· DA/SA:报文的目的/源MAC地址,各6字节。
· SecTAG:安全标签,长度为8或者16字节,具体解释见下文。
· Secure Data:经过MACsec加密之后的报文载荷。按照协议规定,加密的起点可以从ET字段之后偏移0、30或者50个字节。
· ICV:完整性校验值,8~16字节。若报文被篡改,ICV值会发生变化,以此来保护报文不被恶意修改。
图4 SecTAG字段示意图
· ET(Ethertype):2字节,表示MACsec协议的以太网类型,值为0x88E5。
· TCI(TAG control information):6比特,用于提供MACsec版本号、报文是否经过加密、是否经过完整性计算、以及末尾是否携带ICV字段等状态信息。
· AN(Association Number):2比特,标识发送该报文的安全通道中的SA编号。一个安全通道中可以包含4个SA。
· SL(Short Length):1字节,如果SecureData长度小于48字节,则该值为SecureData长度,否则为零。
· PN(Packet Number):4字节,表示报文编号。发送端每发送一个报文,该字段就加1,用于防重放攻击。
· SCI(Secure Channel Identifier):8字节,安全通道的标识,由6字节的MAC地址与2字节的端口号拼接而成。
如图5所示,在客户端和接入设备之间建立安全会话前,客户端首先需要在接入设备的端口上进行802.1X认证。通过认证之后,客户端将开始与接入设备进行会话协商、会话的建立和维护过程。MACsec协议的交互过程主要分为四个阶段:身份认证、会话协商、安全通信和会话终止。
图5 面向客户端模式的MACsec运行机制图
(1) 身份认证
接入设备对客户端进行802.1X认证。客户端通过认证后,RADIUS服务器会把生成的CAK分发给客户端和接入设备。
(2) 会话协商
客户端和接入设备有了可用的CAK,使用EAPOL-MKA报文开始协商会话。在协商会话的过程中,客户端和接入设备使用MKA协议向对方通告自身能力和建立会话所需的各种参数(如优先级、是否期望加密会话等)。会话协商时,接入设备会被自动选举为密钥服务器(Key Server)。密钥服务器使用CAK派生出用于加密数据报文的SAK,并把SAK分发给客户端。
(3) 安全通信
会话协商完成后,客户端和接入设备有了可用的SAK,并使用SAK加密数据报文,开始加密通信。
(4) 会话终止
当接入设备收到802.1X客户端的下线请求消息后,立即清除该用户对应的安全会话,避免一个未认证的客户端使用端口上前一个已认证客户端建立的安全会话接入网络。MKA会话超时定时器(默认时间6秒)超时后,本端仍然没有收到对端的MKA协议报文,则清除该用户对应的安全会话。
如图6所示,设备之间使用配置的预共享密钥协商会话,会话协商结束后开始安全通信。MACsec协议的交互过程主要分为三个阶段:会话协商、安全通信和会话终止。
图6 面向设备模式的MACsec运行机制图
(1) 会话协商
设备之间使用配置的预共享密钥(PSK,Pre-Shared Key)作为CAK,通过EAPOL-MKA报文协商会话。设备间优先级较高的端口将被选举为密钥服务器(Key Server),负责生成和分发SAK,设备之间通过MKA协议向对方通告自身能力和建立会话所需的各种参数(如优先级、是否期望加密会话等)。
(2) 安全通信
会话协商完成后,各设备有了可用的SAK,并使用SAK加密数据报文,开始加密通信。
(3) 会话终止
当设备收到对方的下线请求消息后,立即清除该用户对应的安全会话。MKA会话超时定时器(缺省为6秒,可配置)超时后,本端仍然没有收到对端的MKA协议报文,则清除该用户对应的安全会话。
MACsec使用的加密套件是一组用来加密、校验和解密被保护数据帧的算法,目前支持的加密套件为GCM-AES-128和GCM-AES-256。GCM-AES(Galois Counter Mode-Advanced Encryption Standard,伽罗瓦计数器模式-高级加密标准)是当前公认的安全快速的对称加密算法。
GCM-AES-128和GCM-AES-256加密套件主要有两点差异:
· 密钥长度不同:GCM-AES-128密钥长度为128bits,GCM-AES-256密钥长度为256bits;
· 加密轮数不同:GCM-AES-128加密轮数为10,GCM-AES-128加密轮数为14。
GCM-AES密钥越长、加密轮数越多,安全性越高。因此,GCM-AES-256的安全强度高于GCM-AES-128。
· 并非所有类型的接口都具备MACsec能力,接口的MACsec能力与产品的实际情况有关,请以设备的实际情况为准。
· 无MACsec能力的接口上,不支持开启MKA协议。
· 支持MACsec加密套件功能的设备中,仅部分子卡能够配置MACsec加密套件,请以设备的实际情况为准。仅面向设备模式下需要在设备上配置MACsec加密套件,且配置该功能的端口上不能开启802.1X功能。
如图7所示,在一些网络接入设备数量比较多、分布比较分散、安全管理隐患比较大的园区网络中,需要对网络进行端到端的安全防护,这部分设备之间可以采用端到端的MACsec安全保护,同时采用802.1X等认证方法对接入用户进行安全接入控制。
图7 园区网MACsec典型应用组网图
如图8所示,两个远距离数据中心网络之间使用光纤互联,光纤穿越的地方属于公共区域,该区域内的数据暴露风险较大。为了防止数据在中间传输过程中被窃取或修改,可在两个网络边缘设备出端口上采用MACsec对数据传输进行安全保护。
图8 数据中心间MACesc典型组网应用
· IEEE 802.1X-2010:Port-Based Network Access Control
· IEEE 802.1AE-2006:Media Access Control (MAC) Security