1. 汽车二层安全
在当今的车载网络 (IVN) 中,许多传感器、执行器和控制单元相互连接,每秒产生大量数据。此外,所有这些传感器都需要以严格的最小延迟相互通信。车辆中的不同组件需要不同的带宽和延迟,并且随着汽车中使用的 ECU 数量的增加,复杂性也在不断增加。今天的车辆很容易拥有 45 个但有时甚至超过 120 个嵌入式 ECU。因此,不同的网络技术被用于成本效率和灵活性,以最适合技术和经济。但是它们有一个共同点,那就是安全性的弱点,网络技术无论内容如何,都会传输它从上层获得的信息。
可以在系统中的开放系统互连 (OSI) 模型的不同位置添加安全性。今天的安全主要用于其中的四个来保护通信。与车载通信最相关的是在第 2 层到第 4 层之间进行调整。TLS 和 SecOC 用于传输层,IPsec 用于网络层,MACsec 和 CANsec 用于数据链路层。一般来说,通信层级的上升会让信号延迟上升,这对于前面提到的关键任务应用程序来说可能是一个挑战。
LIN 或 CAN 等经典汽车协议对帧使用的有效载荷非常短;这使得很难包含额外的安全信息。以太网和 CAN-XL 可以处理具有更大负载的帧,这使它们有资格进行安全通信。在这篇博客中,我们将关注第 2 层安全,我们不会考虑更高安全层,如 SecOC 或 IPsec。
第 2 层安全性提供了强大的安全性,并且只需要少量的额外开销,这使得该协议适合硬件实现。然后可以确保通信帧的完整性、机密性和真实性。当在硬件中实现时,它可以卸载 CPU。
2.MACsec
MACsec 架构包括两个组件。IEEE 802.1X 中定义的 MACsec 密钥协商 (MKA) 协议不属于本博客的一部分,它指定了经过身份验证的密钥的交换和安全通道的建立。第二个组成部分是 IEEE 802.1AE 标准,它为媒体访问独立协议的数据机密性和完整性提供基于第 2 层的加密。MACsec 最初是为 LAN(局域网)安全而开发的。然而,如今通过使用 VLAN 标签,MACsec 可以用于更广泛的网络,例如 WAN(广域网)。这样它就可以支持纯点对点(P2P)安全以及端到端(E2E)安全。在 P2P 模式下,网络链路上的所有流量都是安全的,但在交换机内部没有安全通信,还需要仔细定义网络,以防止通信路径上出现不安全的链接。在 E2E 模式中,边缘节点之间的完整路径是独立于网络配置的。图 2 描绘了一个网络拓扑,说明了不同的安全链路 P2P 和 E2E。
图 2 网络拓扑
MACsec 数据包由以太网帧通过添加安全标签 (SecTAG) 和完整性校验值 (ICV) 形成,如图 3 所示。
图3 MACsec帧格式
ETYPE ——MACsec Ethertype 是 2 字节长,与普通的 Ethertype 字段一样。但它有一个固定值 0x88e5 表示这个帧是一个 MACsec 帧
TCI – 是一个 1 字节的 TAG 控制信息 (TCI) 字段,包含几条信息。版本号 (V)、终端站 (ES)、存在 SCI (SC)、单副本广播 (SCB)、加密有效负载 (E)、更改文本 (C) 和关联编号 (AN)
SL – 表示短帧; 该字段长度为 6 位,如果该数字小于 48,则指示 SecTAG 的最后一个字节和 ICV 的第一个字节之间的字节。否则,SL 设置为零。该字节的第 7 位和第 8 位始终为零。
PN– Packet Number(4byte)主要用于防止重放攻击。在每个 MACsec 帧中,PN 是唯一的,通常是递增的。PN 也用作密码套件的初始值 (IV)。
SCI – 8 字节的安全通道标识符可用于识别流量属于哪个安全关联。
ICV – 完整性检查值附加到每个 MACsec 帧并确保数据的完整性。ICV 的长度取决于密码套件,介于 8 到 16 个字节之间。
如图 3 所示,IEEE 802.1Q VLAN 是加密有效负载的一部分。为了支持端到端应用,VLAN 必须保持未加密状态,因此 VLAN 可以选择位于加密标头之外。启用此选项允许客户配置 VLAN (802.1Q) 标记以绕过 MACsec 加密;但请注意,在这种情况下,VLAN 标记也不是身份验证的一部分。
图 4 VLAN 感知 MACsec 帧格式
MACsec 在两个或多个受信任主机之间生成安全连接关联 (CA)。图 6 描绘了连接到共享媒体 LAN(例如 10BASE-T1S)的四个站。三台主机 A、B 和 C 之间的安全 CA 由 MACsec 密钥协商协议 (MKA) 创建。每个 CA 都由单向安全通道 (SC) 支持,每个 SC 都支持使用对称密钥加密的帧安全传输。每个 SC 都由重叠的安全关联 (SA) 序列支持。每个 SA 使用新的安全关联密钥 (SAK) 来提供 MACsec 服务。如图 5 所示,主机 D 被排除在此 CA 之外,它可以与其他主机通信,但不安全。它没有允许它参与当前支持 SCA、SCB 或 SCC 的任何安全关联 (SA) 的安全关联密钥 (SAK);因此,D 不能损害由 A、B 和 C 交换的任何帧的完整性、机密性或来源。主机也可以使用多个 SC,例如主机上的每个应用程序都有一个不同的 SC。然后,它还在同一主机上保护应用程序之间的安全。每个 SC 由一个安全通道标识符 (SCI) 标识,该标识符由一个 48 位 MAC 地址和一个 16 位端口标识符连接而成。
像
图 6 MACsec 连接关联
图 5 MACsec 安全通道
MACsec 使用 AES-128 对称块的 Galois/Counter 操作模式作为默认密码套件。此外,它还支持 256 位的 GCM-AES 和 128 位和 256 位的 GCM-AES-XPN。
3. CANsec
CANsec 是 CAN in Automation (CiA) 正在开发的新标准 CiA613-2,作为新开发的 CAN XL 协议的扩展,支持 CAN 物理层的更高带宽和更长的有效载荷。它指定了第 2 层 CAN 安全协议,旨在保护基于 CAN 的网络中数据的完整性、新鲜度、来源真实性和机密性。该标准的重点是数据链路层。该规范不包括密钥协议,与 MACsec 一样。CANsec 专注于 CAN XL 网络,但工作组正在考虑选择性地将其扩展到 CAN FD 网络。CANsec 帧格式类似于 MACsec 帧格式:在有效负载之前添加 CANsec 标头,在有效负载末尾插入完整性校验值 (ICV)。图 7 显示了抽象帧格式。
图 7 CANsec 帧格式
CCI – 密码控制信息,这 11 位由以下子字段组成
VN – CANsec 版本号
CM – 密码模式,它指定了两种可用的安全操作之一
0 认证方式
1 带有关联数据的认证加密 (AEAD)
res——保留位
CSCI – CAN 安全通道标识符
SCI – 安全通道标识符 16 位
AN – 关联编号 1bit
FV——新鲜度值,64位新鲜度计数器的截断值
CANsec 有所谓的安全区 (SZ),它是一组可以安全通信的节点。SZ 在逻辑上与 MACsec 的 CA 相当。它是节点物理网络上的逻辑覆盖,可以覆盖两个或多个物理 CAN 链路。SZ 由更高层协议定义。图 9 显示了一个具有四个节点的 SZ 示例。节点 A 到 D 可以一起通信,它们都连接到同一个物理 CAN 网络。节点 A、B 和 C 被配置为属于同一个 SZ,它们可以安全地通信。节点 D 不属于同一个 SZ。节点 D 无法验证任何接收到的安全帧,并且如果接收到的安全帧被加密,则无法解密它。
对于使用安全通道 (SC) 的节点 CANsec 之间的通信,这不区分单播、多播或广播数据传输。一个连接结合了不同的独特SC。图 8 显示了带有 SCA 的 SZ,用于在多播数据传输中将安全帧从节点 A 传输到节点 B 和 C。节点 B 使用 SCB 和节点 C 分别使用 SCC 来传输安全帧。SC 由安全通道标识符 (SCI) 标识。SCI 在所有 SZ 中都是独一无二的。
图 9 CANsec 安全区
图 8 CANsec 安全通道
除了伽罗瓦/计数器模式密码套件 AES-GCM-128 和 AES-GCM-256 之外,CANsec 还支持基于密码的消息验证码 (CMAC) AES-CMAC-128 和 AES-CMAC-256。
四、比较与结论
第 2 层安全可以保护网络上的所有通信,这对于 IPSec 等其他安全概念是不可能的。IPSec 只能保护 IP 流量,但不能保护 ARP 或 gPTP 等其他流量。第 2 层安全性不限于最初定义的点对点安全性;它支持当今有限的端到端安全性。这没有为 CANsec 明确定义(截至今天,标准化工作仍在进行中),但根据 CANsec 实施,应该可以绕过流量到下一层,以实现简单的桥接功能,无需对帧进行解密和加密。第 2 层安全无法防止来自更高层的恶意第 3 层流量。但是在这种情况下,ECU已经被黑客超越了。
尽管如此,第 2 层安全性只需要很小的软件开销,并且延迟非常小(线速安全性)。为了获得最佳性能,第 2 层安全需要硬件支持,这会增加额外成本。因此,过去它不是主流,但安全门槛越来越高。IPsec 或 SecOC 等更高层的安全协议正在窃取系统的应用程序性能。这就是如今第 2 层安全在汽车领域变得有趣的原因。
表 1 MACsec 与 CANsec 比较
全部0条评论
快来发表一下你的评论吧 !