【论文阅读】TACAN:控制器局域网中基于隐蔽通道的发送器认证

摘要

如今,汽车系统与现代数字设备的互联为驾驶员提供了先进的用户体验。电子控制单元(ecu)在汽车信息物理系统(cps)中使用不安全的控制器局域网(CAN)总线执行大量操作。因此,危险的攻击,如失灵的刹车,是可能的,乘客的安全处于危险之中。在本文中,我们提出了TACAN (CAN中的发送器认证),它通过利用隐蔽通道提供ecu的安全认证,而不引入CAN协议修改或流量开销(即不使用额外的比特或消息)。TACAN颠覆了最初恶意的隐蔽通道概念,并利用它建立了一种有效的防御技术,通过可信的监控节点促进发射器身份验证。TACAN由三种不同的ECU认证隐蔽通道组成:1)基于到达间时间(IAT),利用CAN消息的IAT;2)基于偏移量,利用CAN报文的时钟偏移量;3)基于LSB (Least Significant Bit),将认证消息隐藏到正常CAN数据的LSB中。

我们在华盛顿大学(UW)的EcoCAR测试台上实现了隐蔽通道,并通过大量的实验评估了它们的性能。我们演示了TACAN的可行性,强调没有交通开销,并证明了ecu的正常功能。特别是,基于IAT的隐蔽信道和基于偏移量的隐蔽信道的误码率分别在0.1%和0.42%以内。此外,基于LSB隐蔽通道的误码率等于普通CAN总线的误码率,为3.1 × 10−7%

一、引言

控制器局域网(CAN)使封闭车载网络中的电子控制单元(ecu)之间能够通信[2,16]。CAN总线的安全性对于当今汽车和未来自动驾驶汽车的功能和安全性至关重要[1,34]。由于CAN总线是一种无需身份验证的广播媒体,因此受损的ECU可以通过发送带有伪造消息ID的消息来伪装成任何目标ECU(伪装攻击[3])。具有蜂窝、Wi-Fi或蓝牙等附加连接接口的现代外部可访问ecu打破了封闭车载网络的假设。因此,CAN总线已被证明容易受到网络攻击,如禁用刹车[3]和远程控制转向[30]

使用诸如消息身份验证之类的加密原语是防御CAN总线上的攻击(特别是伪装攻击)的一种方法。然而,由于can协议的低吞吐量和紧张的位预算,在实践中可能具有挑战性,并且目前的解决方案,如[14,20,26,33]需要修改协议或引入流量开销。另一种选择是部署基于异常的入侵检测系统(ids),而不修改CAN协议[5 - 7,25],包括基于定时基于电压的入侵检测系统。[5]中基于时间的IDS利用CAN消息的周期性来估计时钟偏差,作为检测伪装攻击的唯一指纹。然而,后来证明它对修改传输时间间隔以模拟目标ECU的时钟偏差的隐形攻击无效[28,35]。基于电压的ids[6,7,17,24]试图通过电压信号特征来识别攻击者。然而,如果攻击者使用的是被攻破的ECU在正常情况下允许使用的id,那么攻击将不会被检测到。
在这里插入图片描述

图1:TACAN的示意图。TACAN的图示。合法的ECUs通过提议的隐蔽通道方法,将唯一的认证信息嵌入到正常的CAN消息(例如,A1,B2和C3)的时序和LSBs中。监视节点通过验证接收到的认证信息来认证发送的ECUs。如果被妥协的ECUs不能生成有效的认证信息,那么攻击将被监视节点检测到。

在这项工作中,我们开发了TACAN,允许可信监控节点(MN)验证传输ECU的真实性并检测CAN总线异常,如图1所示。在TACAN中,主密钥在ECU和MN之间共享,用于生成共享会话密钥。与[14,26,33]一致,我们假设密钥存储在安全模块(如可信平台模块(TPM))[12]的防篡改内存中。每个ECU将唯一的认证消息嵌入到CAN消息中,并通过隐蔽通道连续传输,这些消息可以被MN接收和验证。

因此,如果攻击者无法访问目标ECU的TPM,则无法入侵ECU或无法让外部设备生成有效的认证消息,从而导致验证失败并触发MN侧告警(理解:一句话,就是攻击者的消息访问不符合规则而引起的监控节点验证失败报警)。此外,TACAN将检测攻击(例如,拒绝服务(DoS)攻击),这些攻击会中断用于嵌入认证消息的CAN消息的传输。为TACAN使用隐蔽通道的主要好处是它们不会引入协议修改或流量开销(即额外的比特或消息)。此外,通过要求 ECU 传输认证消息的频率远低于每条消息认证方案,TACAN可以显著减少资源受限的 ECU 的计算负担。一句话,就是隐蔽通信的底开销

在本文中,我们做出了以下贡献:

  • 我们识别和利用隐蔽通道,以方便在CAN总线上的ECU认证。因此,隐蔽通道用于安全而不是恶意通信。
  • 我们提出了TACAN,它由一套用于传输认证消息的三个隐蔽通道组成,包括两个基于时间的隐蔽通道,它们修改CAN消息的传输间隔时间,以影响MN观察到的到达间隔时间(IATs)和偏移量,以及一个基于存储的隐蔽通道,该隐蔽通道将信息隐藏在正常CAN消息的数据负载的lbs中。
  • 我们在真实的车辆试验台(UW EcoCAR[10])中实现了TACAN的隐蔽通道。我们还进行了大量的实验来证明这种隐蔽通道的可行性,使用两个真实的CAN交通数据集,公开可用的丰田数据集[8]和EcoCAR数据集。我们的研究结果表明,基于IAT和基于偏移量的隐蔽信道的误码率分别在0.1%和0.42%以内。LSB隐蔽通道的误码率为3.1×10−7%,为正常CAN总线的误码率。

章节组织
第2节 相关工作。
第3节介绍了我们的系统和对立模型。
第4节介绍了TACAN。
第5节提供了关于TACAN的安全性讨论。
第6节 实验评价。
第七部分 总结。

二、相关工作

最近的实验研究表明,攻击者能够物理或远程渗透到车载ecu中,并发动网络攻击,通过使刹车失灵或控制转向,造成潜在的危及生命的后果[3,22]。保护CAN总线的一种方法是部署基于异常的IDS,该IDS可基于流量分析(例如,定时/频率[15])、熵[25]或物理不变量(如时钟偏差[5,28]和信号特性[6,7,17,24])。虽然基于电压的ids对正在进行的伪装攻击者有效,但它们无法在攻击发起之前检测到受损的ECU(例如,隐形攻击者可能在汽车进入驾驶模式之前不会发起攻击)。此外,最近在[27]中显示,基于电压的ids所需的额外导线可能会引入新的攻击。

研究人员还尝试在CAN总线上添加消息认证码(MAC)等加密原语,包括CANAuth[33]、LCAP[14]、CaCAN[20]和LeiA[26]。由于CAN的比特预算紧张,吞吐量低,认证信息通常嵌入到现有的CAN消息中(即ID或数据字段),并通过额外的CAN消息传输,从而引入流量开销或增加总线负载[14,20,26]。在这项工作中,我们将重点放在发送器身份验证(验证ECU呗,是被入侵的ECU还是说是正常的ECU)而不是每条消息身份验证上,以避免此类流量开销这项工作的关键新颖之处在于使用隐蔽通道,这是一种众所周知的恶意技术,可转换为用于身份验证目的的防御应用程序。与以前的认证方案相比,我们的方案不需要修改协议,也不需要引入额外的比特或CAN消息。

在文献中,隐蔽信道主要有两类:基于时间的和基于存储的。在基于时间的隐蔽信道中,仅修改事件或流量的时间以在双方之间共享信息,而数据流的内容保持不变。基于存储的隐蔽通道将数据隐藏在共享资源中,而该共享资源的设计不是为了传输数据而设计,例如,通过利用数据包中保留或使用的字段或在有效载荷中隐藏数据。与需要某种形式的内容作为掩护的隐写技术相比,隐蔽通道利用网络协议作为载体[36]。在[32]中,Taylor等人提出了一种利用隐蔽信道增强工业控制系统应用中Modbus/TCP协议安全性的方法。据我们所知,这是第一篇探讨汽车CAN总线隐蔽通道的论文。

表1:常用的符号。
在这里插入图片描述

三、系统和对手模型

在本节中,我们将介绍CAN总线的系统(第3.1节)和对手(第3.2节)模型。表1列出了常用的记号。

3.1 系统模型

CAN总线。作为一种广播媒介,CAN总线将所有ECU连接到同一条共享总线上,并允许它们向任何ECU传输任何消息,并观察所有正在进行的传输。每个CAN帧(或消息)都有一组预定义的字段,包括仲裁字段(包括消息ID)和数据字段(最多8个字节)。有关CAN框架结构的更多细节请参见附录A.1。
如果两个(或两个以上)ECU试图同时发送消息,则采用基于优先级(消息ID越小优先级越高)的仲裁方案来确定哪个ECU先发送消息CAN消息没有传输时间戳,也不支持加密或身份验证

时钟脉冲相位差。在汽车CAN中,大多数消息都是按照发送ECUs的本地时钟周期性传输的。由于ecu之间不存在时钟同步,本地时钟的频率由于时钟偏差而不同,时钟偏差是由时钟硬件晶体变化引起的物理特性。
设 CA(t) 为时钟 A 报告的时间,Ctrue(t) = t为真实时间。根据网络时间协议(NTP)[23],时钟A的时钟偏移量定义为 OA(t) = CA(t)−Ctrue(t),时钟偏差是时钟偏移量的一阶导数,即SA(t) = OA(t) = CA(t)−1,通常以微秒每秒(μs/s)或百万分之一(ppm)来测量。在没有真时钟的情况下,相对时钟偏移和相对时钟偏差可以根据参考时钟来定义。

时间模型。如图2所示,我们设 ti 为消息 i 的发送时间(假设 t0 = 0), Δti = t i − t i − 1为根据发送方时钟的发送间隔时间。如果消息每 T 秒传输一次,我们有 Δti = T 和 ti = iT。接收方时钟作为参考时钟。在实际操作中,发射机的时钟相对于参考时钟存在时钟偏差,这在两个时钟之间引入了偏移量Oi。因此,根据参考时钟,实际传输时间为 t'i = ti − Oi
在这里插入图片描述
在这里插入图片描述
图2:时序模型的说明。

虽然时钟偏差可能由于温度等因素而缓慢变化,但时钟偏差在短时间内几乎是恒定的。给定恒定的时钟偏差S,发送端经过的时间 ti 与接收端经过的时间 t'i 之间的关系为 S = (ti - t'i ) / t'i 。因此,我们有 t'i = ti / (1 +S) 和 Oi = ti - t'i = (S / (1+S)) ti。为了解释由于抖动引起的偏移偏差,我们对实际时钟偏移Oi = (S / (1+S)) ti + ϵi 进行建模,其中 ϵi 被假设为 i.i.d 零均值随机变量。
经过网络延迟 di (由于消息的传输、传播、仲裁和接收)和零均值量化噪声 ni [37]后,消息 i 的到达时间戳为
在这里插入图片描述
其中 ηi = - ϵi + di + ni 为总噪声。由于周期性 CAN 消息的数据长度随时间的变化是恒定的,因此可以合理地假设网络延迟为恒定均值,即E[di] = d。因此,ηi's可以建模为 i.i.d 随机变量,其均值为 d,方差为 σ2η

3.2 对手模型

我们考虑一个对手,能在渗透CAN总线并在不被发现的情况下发动隐形攻击。我们假设对手可以被动地监视和观察所有正在进行的can传输。此外,它完全了解已部署的隐蔽通道,还可以观察正在传输的所有身份验证消息。实际上,通常有两种方法可以获得对CAN总线的未经授权的访问:1)物理或远程破坏车载ECU[3],或者2)将外部设备(恶意ECU)插入CAN总线[18]。我们假设攻击者无法访问存储在受损ECU和其他合法ECU的TPM中的密钥。
在这里插入图片描述
图3:CAN总线上的三种典型攻击

攻击者可以使用受损(妥协的)或恶意的ECU执行三种基本攻击:1)暂停,2)注入,和3)伪装攻击,如[5,21,28]所考虑的。如图3(a)所示,暂停攻击者阻止受损ECU传输某些消息,而注入攻击者可以伪造并注入任意选择消息ID、内容和时间的can消息,如图3(b)所示。注入攻击可以导致更复杂的攻击,如DoS攻击[15]和bus-off攻击[4]。在(隐形)伪装攻击中,对手需要妥协两个ecu——一个是弱妥协(充当只能发动暂停攻击的强攻击者),另一个是完全妥协(充当既能发动暂停攻击又能发动注入攻击的强攻击者)。在图3©的示例中,攻击者暂停弱受损的ECU2传输消息0xB2,并使用完全受损的ECU1注入声称来自ECU2的消息0xB2。与暂停和注入攻击相比,隐形伪装攻击的检测难度要大得多

四、TACAN

在本节中,我们将在(第4.1节)详细介绍TACAN架构,并在(第4.2节)介绍发送器身份验证协议。然后,我们提出了三种传输身份验证消息的隐蔽通道:1)基于IAT(第4.3节),2)基于偏移量(第4.4节),以及 3)基于LBS(第4.5节)。

4.1 TACAN 架构

如图4所示,TACAN由车载 ECU 连接到同一 CAN 总线的可信MN组成。我们假设 MN 是由制造商在生产过程中预先安装的,并且需要授权方(例如,授权维修店)直接进行物理访问,以防止潜在的篡改和妥协。我们进一步假设部署的隐蔽通道在生产期间预配置或在维护期间重新配置,因此可以成功建立从 ECU 到 MN 的身份验证信息的单向通信。

与[14,26,33]类似,假设主密钥(MK)在每个 ECU 和 MN 之间是预共享的,主密钥存储在 TPM 中。更新 MK (例如,当添加或更换ECU时)应再次要求授权方直接访问所涉及的ECU。 密钥更新的过程不在本文的讨论范围之内在操作过程中,每个 ECU 将从 MK 和全局计数器生成一个会话密钥(SK),并进一步使用它来生成认证消息。我们将在下一节中更详细地描述发送器身份验证协议。

下图的描述太清楚了,当
在这里插入图片描述图4:TACAN体系结构和发送者身份验证协议的说明

4.2 发送方认证协议

受[26](LeiA)中工作的启发,MN 对每个发送ECU进行单向认证。TACAN 对 n 个 ECU 使用的参数汇总如下:

  • 主密钥 MKi,其中i∈{1,…,n}是 ECUi 和 MN 之间的预共享密钥,安全存储在双方的 TMPs 中。

  • 会话密钥 SKi,其中i∈{1,…,n}用于生成 ECUi 的鉴权消息

    鉴权消息是指在计算机网络通信中用于验证身份和权限的消息。在网络通信中,当一个实体(如用户、设备或系统)需要访问另一个实体的资源或服务时,通常需要进行身份验证和权限验证,以确保只有合法的用户或实体可以进行访问。

    鉴权消息通常包含有关发送者身份的信息,以及用于验证身份和权限的凭证或密钥。接收方会对收到的鉴权消息进行验证,以确定发送者是否具有访问权限。如果验证成功,发送者将被授权访问所需的资源或服务。

    在网络安全领域,鉴权消息是确保通信安全性和保护资源免受未经授权访问的重要手段之一。通过有效的鉴权消息机制,可以防止未经授权的用户或实体访问敏感信息或资源,从而提高系统的安全性和可靠性。

  • 本地计数器 li, i∈{1,…,n}是一个增量值,用于存储 ECUi 发送的认证消息数。该值包含在身份验证消息中。

  • 全局计数器 gi,其中i∈{1,…,n}表示在特定情况下(例如,汽车点火,li 溢出)更新的值,并用于生成 SKi

我们假设 SKi 和 gi 都存储在 TPM 中,这样攻击者就无法篡改它们并发起重放攻击。一句话,因为这些东西是变化且无法访问的

会话密钥生成。每个 ECUi 存储自己的主密钥 MKi, MN 存储所有 ECU 的主密钥。n 个 ecu 的会话密钥通过 MKi 和 gi 生成,如下所示:
在这里插入图片描述
其中 HMAC(·)为基于哈希的消息验证码算法[19]。可以为 HMAC 使用不同的哈希算法(例如,HMAC- sha256)来满足期望的安全要求。
每次 SKi 更新时,li 将重置为零。在接收端,MN 使用相同的 MKi 和 gi 为 ECUi 计算相应的 SKi。当 gi 值增加时,执行计数器同步。由于计数器的非同步可能引起身份验证消息验证失败,因此可以执行重新同步过程。更多细节见[26](LeiA)。

认证消息生成。ECUi 首先增加 li,然后计算认证消息 Am,如下所示:
在这里插入图片描述

其中“||”表示位字符串连接。对于我们的工作范围,我们假设为 TACAN 设想的所有参数(键和计数器)都是二进制值。正如我们所看到的,Am 与任何正常的can消息无关,只是作为 ECUi 的标识符

至于 li,即使在每条消息验证中,对于一条10毫秒的消息,一个24位计数器也可以持续46个小时以上,这对于我们以更小的频率传输 Am 的发送器验证协议来说已经足够了。TACAN 的实现可以自由地使用 HMAC 的散列算法和被认为足够强的密钥大小。发送者可以将每个 digest 截断为几个比特来减少传输时间,而不是传输通常长达数百位的整个 digest (例如,使用最低有效的8位或将所有字节 XORing 在一起,以创建浓缩的8位 digest 版本,如[20,31])。

1 毫秒(ms) = 1,000 微秒(μs) 1 微秒(μs) = 1,000 纳秒(ns)
1s = 103 ms = 106 μs = 109 ns
在实际应用中,毫秒通常用于描述较长时间间隔,微秒用于描述中等时间间隔,而纳秒用于描述非常短的时间间隔,例如在计算机系统中的处理速度或通信延迟等。

在信息安全领域,digest通常指的是消息摘要,它是一个固定长度的二进制字符串,通常用来表示对消息的加密哈希值。消息摘要通常由哈希函数计算得出,用于验证数据的完整性和一致性。在信息安全中,消息摘要可用于验证数据的完整性,以及防止数据被篡改。

4.3 基于IAT的隐蔽通道

图5 展示了用于周期性CAN消息的两个基于时间的隐蔽通道,其中传输 ECU 将认证消息嵌入到 CAN消息的 ITT(传输时间间隔) 中,后者可以由 MN 从 ITT 或偏移量中提取。通过验证接收到的身份验证消息,MN 可以对发送方进行身份验证。在本节中,我们介绍基于 IAT 的隐蔽信道。
在这里插入图片描述
图5:基于时序的隐蔽通道示意图

实验观察。根据Eq.(1)中的时序模型,观察到的消息 (i−1) 与 i 之间的IAT为
在这里插入图片描述
由于几乎所有CAN消息都是周期性的(如:Δti = T),因此 IAT 的平均值为E[ Δai ] = T /(1+S),方差为Var(Δai) = 2σ2η。在实践中,时钟偏差通常非常小(大约100s ppm)。因此,我们有κ = E[ Δai ]≈T,其中 κ 被认为是 IATs2 的参考水平。

从式(2)中可以看出,ITTs 中 δ 的偏差量会导致 IATs 中 δ/(1+S) 的相应变化,当 IATs 的方差较小时,接收器很容易观察到这一点。在 IATs 方差较大的情况下,接收机可以计算运行平均值来平滑噪声,即:
在这里插入图片描述
其中L为窗口长度。通过运行平均值,IATs 的方差可以通过 L2 因子显著减小。请注意,由于括号中存在1/L,为了保持观测到的 IATs 的相同变化水平,需要将偏离量 δ 添加到 L 个连续的 ITTs 中。

作为示例,我们在图6中绘制了来自丰田数据集[8]的消息0x020 (T = 0.01秒)的 IAT 分布。当 δ = 0.02T = 2·10−4 秒被加到或从IATs中减去时(为了模拟在假定可忽略时钟偏差影响的发射机操作),三个簇(代表比特0或比特1或两者都不是)不能彼此分离(图6(a)),这可能导致接收端出现比特错误。相比之下,当运行平均值为L = 4时,聚类可清晰区分(图6(b)),可以通过阈值分割进行分离。上述观察激发了我们设计基于 IAT 的隐蔽通道。
在这里插入图片描述
图6:来自Toyota数据集的消息ID=0x020的IAT分布示例(a)没有运行平均值(L = 1), (b)有运行平均值(L = 4)。

Am 嵌入到 ITTs 中。给定 nm 位的 Am ,发送端首先通过在 Am 前后插入ns/2 个沉默位来构造一个认证帧。沉默位(设置δ = 0)的主要目的是维持 IAT 的参考电平,并表示 Am 的开始和结束。因此,Af 的总长度为 nf = nm + ns 。例如,如果Am = 0101, ns = 2,我们有 Af = _0101 _ 。每个比特 i 被调制成 L 个连续的 ITTs,如下所示:
在这里插入图片描述
其中 j∈[iL, (i + 1)L)。

从 IATs 中提取 Am。在接收端,MN 记录目标消息的到达时间戳并计算 IAT。然后使用正确选择的 L 执行运行平均,得到 Δ a ˉ [ i ] \Delta \bar{a}[i] Δaˉ[i] 。由于每个比特在 L 个连续的 ITT 中重复,接收器需要对 Δ a ˉ [ i ] \Delta \bar{a}[i] Δaˉ[i] 的每个 L 值进行采样。设采样偏移量为 τ ,第 j 个样本为 Δ a ˉ [ j L + τ ] \Delta \bar{a}[jL+τ] Δaˉ[jL+τ]如果正确选择 τ,则每个调制样本与参考电平(κ)之间的总距离应最大化,即
在这里插入图片描述
然后接收端通过阈值处理将采样值转换为位,步骤如下
在这里插入图片描述
其中Γl = κ − δ/2、Γu = κ + δ/2 分别为下阈值和上阈值,κ≈T,“_”为沉默位。之后,将输出位连接起来,然后在沉默位处分割以获得 Am

请注意,为了建立一个可靠的基于 IAT 的隐蔽通道,如3.1节所述,需要在发送 ECU 和 MN 之间预共享包括 L 和 δ 在内的参数。我们将在线估计 MN 侧的隐蔽信道参数作为未来的工作。

4.4 基于偏移的隐蔽通道(本节公式格式暂未整理)

基于偏移量的隐蔽通道的思想与基于 IAT 的隐蔽通道非常相似(图5)。主要区别在于前者对 IAT 执行平均(包括添加的偏差)以平滑噪声,而后者旨在累积偏差以区分调制样本和噪声。我们对时钟偏移的观察如下。

观察结果。根据3.1节中的时序模型和Eq.(1),我们得到 t i   =   ∑ j = 1 i Δ t j t_{i}\ =\ \sum_{j=1}^{i}\Delta t_{j} ti = j=1iΔtj   a 0     =   η 0 ~a_{0}{\,}\ ={\,}\eta_{0}{\nonumber}  a0 =η0,并且 a i   =   t i / ( 1 + S ) + η 0 \textstyle a_{i}\ =\ t_{i}/(1+S)+\eta_{0} ai = ti/(1+S)+η0。由于接收方只知道目标消息的标准周期(T),因此它将观察到的时钟偏移量计算为发送方期望经过的时间(直到消息i)与接收方实际经过的时间之间的差,即:
在这里插入图片描述
我们可以看到,如果发射机对 L 个连续的 ITTs 加上δ ( Δ t j    =    T    +    δ    f o r    j    =    1 , … , L ) (\Delta t_{j}\;=\;T\;+ \; \delta\;\mathrm{for}\;j\;=\;1,\ldots,L) (Δtj=T+δforj=1,,L)会累积,导致δL/(1 + S)减小。因此,通过监测 O ^ i \hat{O}_i O^i的变化,接收器可以确定发送的位并从时钟偏移中提取Am。上述观察激发了我们设计基于偏移的隐蔽信道。

将我嵌入到ITTs中。与基于 IAT 的隐蔽信道(第4.3节)不同,发射器将 Af 的每一位嵌入到 L 个连续的 ITT 中,如下所示:
在这里插入图片描述

对于 j ∈ [ i L , ( i + 1 ) L ) j\in\left[i L,(i+1)L\right) j[iL,(i+1)L),和
在这里插入图片描述
对于 j∈[iL+L/2, (i+1)L),其中假定L为偶数。换句话说,为了传输一个比特0/1,发射机在第一个 L/2 个 ITTs 上加上 - δ/δ ,然后在接下来的 L/2 ITTs 上减去 - δ/δ,以便在每个比特传输后观测到的时钟偏移量返回到参考电平。

从偏移中提取Am。在接收端,监控节点记录到达时间戳,并批量处理iat。由于每个 Af 有 nf 位,每个位被调制成 L 个连续的 ITT,因此同一 Af 共有 N = nf L个连续的 ITT ,其中 N 表示批大小。
记 k 批中的第 i 个 IAT 为 Δak,i,其中 1 ≤ i ≤ N 。然后,观察到的相对于当前批开始到第 i 个 IAT 的时钟偏移量为
在这里插入图片描述
κ   =   ( max ⁡ ( O ^ k [ i ] ) + min ⁡ ( O ^ k [ i ] ) ) / 2 \kappa\,=\,(\operatorname*{max}(\hat{O}_{k}[i])+\operatorname*{min}(\hat{O}_{k}[i]))/2 κ=(max(O^k[i])+min(O^k[i]))/2 为中点(假设至少传输了一个0和一个1),作为时钟偏移的参考电平。由于时钟偏差通常非常小(百万分之100),并且我们计算的是批处理时钟偏移量,因此时钟偏差的影响很小,因此我们假设在批处理的持续时间内 κ 是恒定的 3。由于每个比特都会影响 L 的值,接收器需要以采样偏移量 τ 对每个 L 值进行 { O ^ k [ i ] \hat{O}_k[i] O^k[i]} 采样,得到第j个样本为 O ^ k [ j L + τ ] \hat{O}_{k}[j L+\tau] O^k[jL+τ]。如果正确选择 τ ,则每个样本与参考水平之间的总距离应最大,即:
在这里插入图片描述
然后,接收器通过以下基于阈值的方案将采样值转换为位:
在这里插入图片描述
其中 Γ l   =   κ   −   1 4 δ L \Gamma_{l}\,=\,\kappa\,-\,{\bf\frac{1}{4}}\delta L Γl=κ41δL Γ u   =   κ   +   1 4   δ L {\Gamma}_{u}\,=\,\kappa\,+\,\frac{1}{4}\,\delta L Γu=κ+41δL 分别为下阈值和上阈值,“_”为沉默位。 1 4 δ L \textstyle{\frac{1}{4}}\delta L 41δL 项是由于 δ 是在 L/2 个连续的 ITTs 上加上(或减去)的,因此最大总偏差为 ± 1 2 δ L \pm{\frac{1}{2}}\delta L ±21δL。选取 κ \kappa κ κ ± 1 2 δ L \kappa\pm{\frac{1}{2}}\delta L κ±21δL 之间的中点作为阈值。最终,通过连接所有已解码的比特并在沉默比特处分割它们来提取 Am

对CAN总线可调度性的影响。正如我们所示,在基于 IAT 和基于偏移量的隐蔽信道中,一定数量的偏差被添加到 ITT 中。因此,它可能会增加 CAN 消息的最坏情况响应时间,这被定义为从初始事件(将消息放入传输队列)发生到需要它的节点接收消息的最长时间。 如果我们将[9]中的可调度性分析应用于TACAN,我们可以发现,TACAN的效果相当于将阻塞延迟增加一个恒定的时间(数百μs),并将消息传输时间增加一个小百分比。因此,为了实现隐蔽信道的有效利用,需要在部署前通过实验获得TACAN参数并进行微调,以确保CAN总线的可调度性。附录A.2提供了更详细的讨论。

4.5 基于LSB的隐蔽通道

在本节中,我们将介绍一种基于存储的隐蔽通道,它将身份验证消息嵌入到ECU传输的正常CAN消息的数据有效负载的 LSB 中,称为基于 LSB 的隐蔽通道(图7)。与基于定时的隐蔽通道不同,基于 LSB 的隐蔽通道可以应用于非周期性CAN消息。对于这项工作的范围,我们使用CAN数据帧来开发我们的方法。
在这里插入图片描述
图7:基于 LSB 的隐蔽通道示意图。发送ECU将认证消息嵌入到多个正常CAN消息(具有相同ID)的 LSBs 中供Monitor Node提取并验证

实验观察。为了在CAN总线上传输认证消息,通常利用CAN消息的现有字段,如数据字段13,14,20和扩展ID字段[14],或者简单地引入额外的CAN消息[13,14]。然而,在实践中,如果数据字段中的所有字节都已被使用,或者CAN总线已经负载过重,那么利用CAN消息的现有方法可能会破坏ECU的功能或增加仲裁延迟。
在这里插入图片描述
与现有的试图对消息进行身份验证的方案不同,我们的发送方身份验证方案旨在对发送方而不是每条消息进行身份验证。因此,身份验证消息的传输频率要低得多,这意味着身份验证位可以分布在多个CAN消息中,每个CAN消息只使用几个位。此外,已经意识到某些CAN消息用于携带传感器值,其中大多数是浮点数,我们可以使用L LSB(例如,L = 1或2)用于身份验证目的,而不会导致精度的显着降低。以丰田凯美瑞(Toyota Camry)为例,42条消息中至少有7条消息携带传感器值(例如,轮速、发动机转速、车速、里程表、制动压力、转向角)[8]。我们期望在更新的汽车中有更多的CAN信息携带传感器值。上述观察启发了我们设计基于 LSB 的隐蔽通道。

将 Am 嵌入到 LSBs。嵌入过程是作为应用层和数据链路层之间的子层实现的。对于每个消息 Am (加上一个已知的前导来指示Am的开始和结束),它用 Am 中的下一组 L 个位替换 CAN 消息中最不重要的 L 个位。如果L位恰好相同,则不需要修改

从 LSBs 中提取 Am。在接收端,MN 从接收到的 CAN 消息中提取 LSBs,并重新构造认证消息。如果 MN 验证验证消息失败,则会发出警告,表明可能是发送ECU的妥协或恶意利用CAN总线。
与基于时间的隐蔽通道的情况一样,我们假设在生产期间每个 ECU 和 MN 之间预共享基于 LSB 的隐蔽通道的设置,并在必要时在维护期间更新。有关嵌入和提取过程的更多细节见附录A.3。

五、安全性讨论

与现有的消息认证方案[14, 20, 26, 33]相比,这些方案试图验证每条消息的真实性,TACAN提取并验证嵌入在正常消息的时间或最低有效位(LSBs)中的认证消息,以验证发送的ECU,并且也用于入侵检测。因此,TACAN可以检测到中断正常CAN消息传输的攻击(例如,悬挂、注入和DoS攻击),以及攻击者未能生成有效认证消息的攻击(例如,伪造、重放和伪装攻击)。TACAN提供的上述安全属性独立于CAN协议和CAN消息的内容。

安全特性。我们总结了TACAN提供的一系列特性如下:1)TACAN在ECU的TPM中安全存储了主密钥和会话密钥,以防止被对手窃取,2)TACAN采用单调计数器为每个ECU生成会话密钥和认证消息,以及3)TACAN要求每个ECU持续传输唯一的认证消息以实现实时发射器认证请注意,由于第三特性,如果攻击者侵入了车载ECU但不打算欺骗TACAN(即,停止生成认证消息),它将中断认证消息的连续传输,因此将被立即检测到。此外,由于基本的攻击如悬挂、注入和DoS攻击可以轻易被检测到,我们在本节的其余部分专注于更复杂的攻击,这些攻击积极尝试规避TACAN,包括伪造攻击、重放攻击和伪装攻击。

检测伪造攻击。在伪造攻击中,对手已经侵入了由TACAN保护的车载ECU,并试图生成能够被MN验证的有效认证消息,以逃避TACAN的检测。由于我们的对手模型(第3.2节)假设攻击者无法访问被侵入ECU的TPM,攻击者必须在没有会话密钥的情况下为每个本地计数器值伪造一个有效的摘要。对于一个M位的压缩摘要,成功伪造的概率是1/2M。例如,当M=8时,这个概率是1/28≈0.4%。由于使用了单调计数器,重复的伪造将被阻止
检测重放攻击。重放攻击者已经渗透到CAN总线,并试图重放目标ECU之前传输的认证消息,希望能够通过MN的验证过程。很明显,由于使用了单调计数器,这样的尝试将被TACAN检测到
检测伪装攻击。正如第3.2节所述,伪装攻击(包括更复杂的隐形攻击[28])需要车载ECU被部分或完全侵入。因此,TACAN将迫使攻击者不仅对被侵入的ECU本身进行伪造或重放攻击,还要对攻击者试图伪装的ECU进行伪造或重放攻击。因此,伪装攻击将被TACAN检测到。伪装攻击的前提是需要同时进行前两种攻击(伪造攻击和重放攻击)

六、评估

在这一部分,我们在测试平台上实现了所提出的隐蔽通道,并使用从两辆真实汽车中收集的数据集报告了它们在吞吐量和比特错误率方面的性能,这两辆汽车分别是2010年款丰田凯美瑞[8]和2016年款雪佛兰科迈罗(华盛顿大学EcoCAR)[10]。

  1. 测试平台验证在第6.1节
  2. 基于IAT、基于偏移量和基于LSB的隐蔽通道评估分别在第6.2节、第6.3节和第6.4节。

6.1 实验验证

如图8所示,我们的 EcoCAR 测试平台由 UW EcoCAR 和两个测试平台 ECUs 组成,它们通过车载诊断(OBD-II)端口连接。UW EcoCAR主机上有8个库存 ECus 和两个实验性 ECUs 。在CAN总线上,每秒交换超过2500条使用89种不同消息ID的消息。每个ECU由一个 Raspberry Pi 3 和一个 PiCAN 2 板组成(使用 MCP2515 CAN 控制器和 MCP2551 CAN 收发器)。SocketCAN [29]库用于启用添加的 ECUs 与 UW EcoCAR 之间的交互。
在这里插入图片描述
图8:EcoCAR测试平台。两个基于Raspberry pi的ecu连接到EcoCAR背面的OBD-II端口,一个作为发送器,另一个作为接收器。

为了展示所提出的隐蔽通道,我们在Python中实现了它们在发射端的应用,并使用接收器收集了CAN数据跟踪。由于基于LSB的隐蔽通道预期具有非常小的误码率,我们专注于基于时间(IAT-based和offset-based)的隐蔽通道。作为一个例子,我们设置了 nm = 36位(认证消息的长度),交替位值和 ns = 4位(沉默位数)。因此,每个认证帧的长度为 nf = 40位。为了避免与现有消息发生任何冲突,我们选择了一个不存在的消息ID 0x180,并设置消息周期 T = 10 毫秒和 δ = 0.2 毫秒(T的2%)。虽然在我们的实验中使用了一个不存在的消息ID,但我们假设基于树莓派的ECU作为一个库存ECU,它传输ID=0x180的消息,并且能够修改消息ITTs的时间。我们想强调的是,TACAN不需要新的消息ID或额外的CAN消息来实现所提出的隐蔽通道

图9 提供了一个在 IAT-based 隐蔽通道中观察到的 IATs 的例子。我们可以看到,没有运行平均值,调制的 IATs 是嘈杂的,接收端的阈值可能导致许多可能的位错误(图9(a))。相比之下,运行平均过程可以有效减少IAT变化,使调制的 IATs 的峰值和谷值清晰突出,这表明误码概率较小(图9(b))。

图10 提供了在 offset-based 隐蔽通道中观察到的偏移量的例子。我们可以看到,与 IAT-based 隐蔽通道不同,增加L在 offset-based 隐蔽通道中有效地增加了接收端偏移量的累积偏差量,从而降低了误码概率。在本节的其余部分,我们将更详细地评估每个隐蔽通道。

在这里插入图片描述
图9:在基于 IAT 的隐蔽通道中观察到的 IATs 示例(a)没有运行平均(L = 4), (b)有运行平均(L = 4)。

在这里插入图片描述
图10:在(a) L = 4和(b) L = 8的基于偏移量的隐蔽通道中观察到的偏移量示例。

6.2 基于IAT的隐蔽信道评估

在本节中,我们从吞吐量和误码率方面评估了基于 IAT 的隐蔽信道的性能。

吞吐量。给定 Am 的 nm 比特,ns 静默比特,以及窗口长度 L,CAN消息在周期 T 内传输认证帧 Af 所需的时间是 T f = ( n m + n s ) L T T_{f} = (n_{m} + n_{s})LT Tf=(nm+ns)LT,它随 L 和 T 线性增加。因此,传输 Am的吞吐量或速率为 r m = n m / T f r_{m} = n_{m}/T_{f} rm=nm/Tf 比特每秒(bps)。例如,假设 n m = 36 n_{m} = 36 nm=36 n s = 4 n_{s} = 4 ns=4,且 L = 4 L = 4 L=4。那么对于 T = 0.01 T = 0.01 T=0.01 秒,我们有 T f = 1.6 T_{f} = 1.6 Tf=1.6 秒,且 r m = 36 / 1.6 = 22.5 r_{m} = 36/1.6 = 22.5 rm=36/1.6=22.5 bps。

误码率。误码率定义为在给定时间间隔内发生错误的比特数除以传输的总比特数。为了评估基于 IAT 的隐蔽通道在实际车辆上的误码率,我们从丰田凯美瑞[8]和 UW EcoCAR [10]收集了六条代表性消息(包括从测试台 ECU 发送的消息0x180)的数据,这些消息具有不同的 ID 级别、周期和噪声水平,如表2所示。相同的 EcoCAR 数据集在[35]中使用。请注意,IAT 噪声是以标准偏差(通过周期标准化)和范围(最大 IAT 与最小 IAT 之差,通过周期标准化)来量化的。

在这里插入图片描述
在这个实验中,我们首先对每条消息的数据轨迹进行预处理,以填补任何缺失的消息。我们设定 nm = 36位和 ns = 4位,因此每个帧长为40位。请注意,这里 nm 和 ns 的选择并不关键,因为我们关注的是比特错误率而不是帧错误率。在100个帧(总共100 nm位)中,记录比特错误的数量 ( b ^ j ≠ b j \hat{b}_{j} \neq bj b^j=bj) 并除以传输的比特数以获得比特错误率。偏差量 δ 固定为消息周期 (T) 的2%。由于时钟偏差很小,我们直接将 δ 加到 IATs 上,以模拟在发射端增加相同数量到 ITTs 的效果。

如图11所示,基于 IAT 的隐蔽通道的性能在不同消息之间有很大差异,这取决于它们的噪声水平。总体而言,当 L = 1 时,比特错误率非常高,但随着 L 的增加,所有消息的错误率都迅速降至 0,这证明了移动平均法的有效性。此外,我们观察到,具有较大 IAT 范围的消息(例如,0x180, 0x0D1和0x185)往往需要较大的 L 值来建立一个可靠的基于 IAT 的隐蔽通道。当 L = 6 时,所有消息的比特错误率均低于0.1%。

在这里插入图片描述
图11:不同CAN报文的基于 IAT 的隐蔽信道误码率随窗口长度 (L) 的函数。

6.3 基于偏移量的隐蔽信道评估

由于基于偏移量的隐通道的吞吐量分析与基于IAT的隐通道相同,我们在实验中关注使用第6节中相同设置的误码性能。结果在图12中提供。
在这里插入图片描述
图12:不同CAN报文的基于偏移的隐蔽信道误码率随窗口长度(L)的函数。

正如我们所见,基于偏移量的隐通道的性能再次取决于各个消息的特性。当 L = 4 时,对于消息0x224、0x185和0x22A,误码率低于1%。随着L的增加,接收方累积了更多的偏差,从而有效地降低了误码率。当 L = 8 时,所有消息的误码率已降至不到 0.42% 。与基于 IAT 的隐通道相比,基于偏移量的隐通道效率较低,需要更大的 L 值。这主要是因为它只向 L 连续 ITTs 的前半部分添加偏差,而后半部分仅用于维持时钟偏移的参考水平,这对区分调制样本和噪声的贡献很小。

6.4 基于 LSB 隐蔽信道的评价

在本节中,我们从吞吐量、误码率和精度损失方面评估了基于 LSB 的隐蔽信道的性能。

吞吐量。给定 Am为 nm位,起始序列为 ns 位,使用 L 个 LSBs 的 CAN 消息传输认证帧 Af 所需的时间为 Tf = nf T /L = (nm + ns)T /L秒,其中周期为 T。因此,传输 Af 和 Am 的吞吐量分别为 rf = nf /Tf和 rm = nm/Tf。例如,假设 ns = 36,ns = 4,T = 0.01秒,L = 2。那么我们有 Tf = 0.2秒,rf = 40/0.2 = 200 bps,以及 rm = 36/0.2 = 180 bps。

误码率。由于基于LSB的隐通道将认证消息嵌入到正常CAN消息的数据负载中,其误码率将与CAN总线本身的误码率一样小。根据[11],在正常环境(工厂生产线)和恶劣环境(距离高频电弧焊机两米远)下,CAN的误码率分别为3.1 × 10−7%和2.6 × 10−5%。

准确性损失。由于基于 LSB(最低有效位) 的隐蔽通道修改了 CAN 数据帧的数据字段中的 LSB,这种修改将导致传感器值的准确性损失。当一个 LSB 发生变化(L = 1)时,准确性损失与该传感器值的分辨率(或离散化误差)相当。增加L将导致更大的吞吐量和准确性损失。因此,制造商需要评估 CAN 数据中准确性损失对功能性和安全性的影响,并在部署基于 LSB 的隐蔽通道时权衡准确性损失与吞吐量之间的关系。需要强调的是,对于不能容忍准确性损失的周期性消息,制造商可能会部署基于 IAT(信息时间间隔) 和基于偏移的隐蔽通道。
为了证明所提出的基于 LSB 的隐蔽通道的可行性,我们考虑了两条 CAN 消息:1)基于公开可获得的丰田数据集[8]的车轮速度值;2)通过逆向工程从 EcoCAR 数据集[10]中识别出来的发动机冷却液温度值。在我们的实验中,我们将 L 设置为 1 或 2 ,并以最大误差(使用原始值作为基准)来量化准确性损失。请注意,我们故意保持 L≤2,以避免对底层传感器值造成显著失真或危及接收 ECU 的功能。
如图13所示,并在放大框中标出,对车轮速度引入的最大误差为 L=1 时的 0.01 km/h 和 L=2 时的 0.03 km/h,这非常微不足道。至于发动机冷却液温度,如图14所示,L=1 时的最大误差为1°C, L=2 时为 3°C,这仍然算是适度的。
在这里插入图片描述
图13:验证消息嵌入到 L = 1 和 L = 2 的丰田车轮速度数据中。

在这里插入图片描述
图14:当 L = 1 和 L = 2 时,嵌入在 EcoCAR 发动机冷却液温度数据中的认证信息。

七、结论与未来工作

在本文中,我们介绍了 TACAN ,这是一种使用 CAN 总线的隐通道的发射器认证方案,它允许 MN 验证发射 ECU 的真实性。我们开发了基于 IAT 、基于偏移和基于 LSB 的隐通道,以在 ECU 和 MN 之间传递认证信息,而无需引入协议修改或流量开销。我们对 TACAN 进行了安全讨论,并通过测试台验证和实验评估演示了所提出的隐通道。我们未来的工作将包括在针对 CAN 总线的各种攻击下对 TACAN 进行实验评估。此外,我们还将提高所提出隐通道的吞吐量,并探索混合隐通道方案。

  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值