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

文章目录

  • 摘要
  • 一、引言
  • 二、相关工作
  • 三、系统和对手模型
    • 3.1 系统模型
    • 对手模型
  • 四、TACAN
    • 4.1 TACAN 架构
    • 4.2 发送方认证协议
    • 4.3 基于IAT的隐蔽通道
    • 4.4 基于偏移的隐蔽通道(本节公式格式暂未整理)
    • 4.5 基于LSB的隐蔽通道

摘要

如今,汽车系统与现代数字设备的互联为驾驶员提供了先进的用户体验。电子控制单元(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的示意图。合法ecu传输唯一的身份验证消息,这些消息嵌入到正常CAN消息(例如,A1, B2和C3)的定时和LSB中,使用建议的隐蔽通道方法。Monitor Node通过验证接收到的认证消息对发送ecu进行认证。如果被入侵的ecu无法生成有效的身份验证消息,则该攻击将被监控节点检测到。

在这项工作中,我们开发了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]。在这项工作中,我们将重点放在发送器身份验证而不是每条消息身份验证上,以避免此类流量开销这项工作的关键新颖之处在于使用隐蔽通道,这是一种众所周知的恶意技术,可转换为用于身份验证目的的防御应用程序。与以前的认证方案相比,我们的方案不需要修改协议,也不需要引入额外的比特或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η

对手模型

我们考虑一个对手,能在渗透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]中工作的启发,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]。

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

其中“||”表示位字符串连接。对于我们的工作范围,我们假设为 TACAN 设想的所有参数(键和计数器)都是二进制值。正如我们所看到的,Am 与任何正常的can消息无关,只是作为 ECUi 的标识符
在这里插入图片描述
图5:基于时序的隐蔽通道示意图

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

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

4.3 基于IAT的隐蔽通道

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

Observations。根据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]}。由于每个比特在 L 个连续的 ITT 中重复,接收器需要对 {Δa¯[i]} 的每个L值进行采样。设采样偏移量为 τ ,第j个样本为 Δa¯[jL+τ] 。如果正确选择 τ,则每个调制样本与参考电平(κ)之间的总距离应最大化,即
在这里插入图片描述
然后接收端通过阈值处理将采样值转换为位,步骤如下
在这里插入图片描述
其中Γl = κ − δ/2、Γu = κ + δ/2 分别为下阈值和上阈值,κ≈T,“_”为沉默位。之后,将输出位连接起来,然后在沉默位处分割以获得 Am

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

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

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

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

将我嵌入到ITTs中。与基于att的隐蔽信道(第4.3节)不同,发射器将Af的每一位嵌入到L个连续的itt中,如下所示:
在这里插入图片描述
对于j∈[iL, (i + 1)L),和
在这里插入图片描述
forj∈[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(Ok [i]) + min(Ok [i]))/2为中点(假设至少传输了一个0和一个1),作为时钟偏移的参考电平。由于时钟偏差通常非常小(百万分之100),并且我们计算的是批处理时钟偏移量,因此时钟偏差的影响很小,因此我们假设在批处理的持续时间内κ是恒定的3。由于每个比特都会影响L的值,接收器需要以采样偏移量τ对每个L值进行{{Ok [i]}采样,得到第j个样本为{{Ok [jL + τ]。如果正确选择τ,则每个样本与参考水平之间的总距离应最大,即:
在这里插入图片描述
然后,接收器通过以下基于阈值的方案将采样值转换为位:
在这里插入图片描述
其中Γl = κ−1 4 δL和Γu = κ + 1 4 δL分别为下阈值和上阈值,“_”为沉默位。δL的1 4项是由于δ是在L/2个连续的ITTs上加上(或减去)的,因此最大总偏差为±12 δL。选取κ和κ±12 δ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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/194948.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

「Verilog学习笔记」信号发生器

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 方波的实现,较为简单,只需要设置一个计数器,使输出保持10个时钟为0,跳变为20,再保持10个时钟。依次循环。可以按…

【python海洋专题四十八】500hpa位势高度场

【python海洋专题四十八】500hpa位势高度场 # -*- coding: utf-8 -*- # ---导入数据读取和处理的模块------- import astimport pandas as pd from netCDF4 import Dataset from pathlib import Path import xarray as xr from datetime import datetime import numpy as np #…

excel单元格内换行按什么快捷键

如果我们使用excel软件的时候,因为一些日常的操作太过繁琐想要简化自己的操作步骤的话,其实是有很多快捷方式在其中的。那么对excel单元格内换行按什么快捷键这个问题,据小编所知我们可以在表格中使用Alt Enter来进行换行。详细内容就来看下…

LangChain 13输出解析Output Parsers 自动修复解析器

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

scanpy 读取mtx文件

import scanpy as sc adata sc.read("./GSE144136_GeneBarcodeMatrix_Annotated.mtx") ##

【bmp文件怎么批量改成JPG?】

操作 在需要修改格式的图片文件夹中新建一个TXT文本文档 文档中输入(ren *.原图片类型 *.需要修改成的图片类型) ren *.bmp *.jpg 输入完成后保存 将刚刚新建的文档重命名 修改为.bat后缀的文件 弹出弹窗,点击是 双击此程序,即可将文件夹中的BMP图…

UniPro集成华为云WeLink 为企业客户构建互为联接的协作平台

华为云WeLink是华为开启数字化办公体验、帮助企业实现数字化转型的实践,类似钉钉。UniPro的客户企业中,有使用WeLink作为协作工具的,基于客户的实际业务需求,UniPro实现了与WeLink集成的能力,以帮助客户企业丰富和扩展…

Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购、等业务的企业

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审…

【【Linux下的Petallinux 以及其他的配置】】

Linux下的Petallinux 以及其他的配置 sudo apt-get install iproute2 gawk python3 python build-essential gcc git make net-tools libncurses5-dev tftpd zlib1g-dev libssl-dev flex bison libselinux1 gnupg wget git-core diffstat chrpath socat xterm autoconf libtoo…

C语言--每日选择题--Day27

第一题 1. 对于代码段,问下面不可以表示a[1]地址的是() int a[10]; A:&a[0] 1 B:a sizeof(int) C:(int*)&a 1 D:(int*)((char*)&a sizeof(int)) 答案及解析 A A:取到…

SpringBoot : ch06 整合 web(二)

前言 SpringBoot作为一款优秀的框架,不仅提供了快速开发的能力,同时也提供了丰富的文档和示例,让开发者更加容易上手。在本博客中,我们将介绍如何使用SpringBoot来整合Web应用程序的相关技术,并通过实例代码来演示如何…

全新爱蜗影视优码双端影视源码v9.1/影视视频APP源码+支持代理/在线支付+支持对应苹果CMS

源码简介: 这个是最新爱蜗影视优码双端影视源码,作为实用方便的影视视频APP源码,它不仅支持代理/在线支付,而且也支持对应苹果CMS。 爱蜗影视优码双端影视支持对应苹果CMS支持代理在线支付 带图文教程,全新美化多功能…

盘点最新的十大地推拉新app推广接单平台,一手接单渠道分享

小编主推:聚量推客 一手官签直营 随着网络的发展,越来越多的app运应而生社交类、购物类、娱乐类、资讯类、教育类、健康类、金融类为了将这些应用程序推广给更多的人使用,地推拉新app推广接单平台应运而生。本文将介绍十大地推拉新app推广接…

几何教学工具 Sketchpad几何画板 mac软件特色

Sketchpad几何画板 for Mac是一款适用于macOS系统的几何教学工具,用户可以在其画板上进行各种几何图形的绘制、演示,帮助教师了解学生的思路和对概念的掌握程度。此外,Sketchpad更深层次的功能则是可以用来进行几何交流、研究和讨论&#xff…

单片机学习11——矩阵键盘

矩阵键盘: 这个矩阵键盘可以接到P0、P1、P2、P3都是可以的。 使用矩阵键盘是能节省单片机的IO口。 P3.0 P3.1 P3.2 P3.3 称之为行号。 P3.4 P3.5 P3.6 P3.7 称之为列号。 矩阵键盘检测原理: 1、检查是否有键按下; 2、键的抖动处理&#xf…

电机工作制

电机工作制 1.什么是电机工作制2.电机工作制的分类 最近在做电机控制器,看到很多电机铭牌上写着工作制:S*,有S1,有S2,查了一下,学习一下是什么意思。 1.什么是电机工作制 根据GBT 755-2019《旋转电机定额…

机器学习的复习笔记4-岭回归与多项式回归

一、岭回归 在简单的线性回归中,一味追求平方误差最小化,R2值尽可能大,可能会受到噪声的严重干扰。噪声,即偶发的错误的值。 如图,若为满足所有点的拟合(虚线),表面上看R2值小&…

springboot+vue实现websocket通信实例,进入页面建立连接

springbootvue实现websocket通信实例 进入页面建立连接 前端代码&#xff1a; <template><div class"app-container"><el-form :model"queryParams" ref"queryForm" size"small" :inline"true" v-show&qu…

数据治理:数据交换与数据集成

数据交换 基本概念 数据交换是将符合一个源模式的数据转换为符合目标模式数据的问题&#xff0c;该目标模式尽可能准确并且以与各种依赖性一致的方式反映源数据。 早期数据交换的一个主要方向是在关系模式之间从数据交换的上下文中寻求一阶查询的语义和复杂性。2008 年&…

java选择排序和冒泡排序

1.区别 选择排序和冒泡排序的区别主要在于算法逻辑、稳定性和交换成本。 算法逻辑&#xff1a;选择排序和冒泡排序都属于比较排序&#xff0c;但在具体算法逻辑上有所不同。冒泡排序是通过相邻元素之间的比较和交换&#xff0c;将较大&#xff08;或较小&#xff09;的元素逐…