【论文阅读】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) = O‘A(t) = C’A(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。
相关文章:

【论文阅读】TACAN:控制器局域网中通过隐蔽通道的发送器认证
文章目录 摘要一、引言二、相关工作三、系统和对手模型3.1 系统模型对手模型 四、TACAN4.1 TACAN 架构4.2 发送方认证协议4.3 基于IAT的隐蔽通道4.4 基于偏移的隐蔽通道(本节公式格式暂未整理)4.5 基于LSB的隐蔽通道 摘要 如今,汽车系统与现…...

C语言第三十五弹---打印九九乘法表
C语言打印九九乘法表 思路:观察每一行可以看出乘号右边的一行值都是相同的,而乘号左边不断变化,所以使用嵌套循环,控制好 乘号左右值变化的条件即可。 #include <stdio.h>int main() {for (int i 1; i < 9; i){for (in…...

线性代数的艺术
推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容,就把线性代数的重点全画完了,清晰明了。 《线性代数的艺术》PDF版本&…...

基于注解配置的AOP
注解方式AOP基本使用 Spring的AOP也提供了注解方式配置,使用相应的注解代替之前的xml配置。 xml配置: <aop:config> <!-- 配置切入点 目的是指定哪些方法增强--><aop:pointcut id"myPointCut1" expression"execu…...

【Qt】QStackedWidget、QRadioButton、QPushButton及布局实现程序首页自动展示功能
效果 在程序启动后,有时不会进入到工作页面,会进入到产品展示页面。 动画如下: 首页展示 页面操作 当不点击时,一秒自动刷新一次;当点击时,会自动跳转到对应页面;点击上一页、下一页、及跳转页…...

探索 V8 引擎的内部:深入理解 JavaScript 执行的本质
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

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

Java游戏 王者荣耀
GameFrame类 所需图片: package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…...

接口测试场景:怎么实现登录之后,需要进行昵称修改?
在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现? 首先我们分别看下登录、昵称修改的接口说明: 以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的to…...
石油化工专业MR仿真情景教学演练
首先,MR混合现实情景实训教学系统为学生提供了一个高度仿真的学习环境。在这个环境中,学生可以亲自操作设备,进行模拟实验,甚至可以体验到工业事故的模拟情景,从而更好地理解工艺流程的复杂性和安全性。这种沉浸式的学…...

Docker配置Halo搭建个人博客-快速入门
Docker配置Halo搭建个人博客-快速入门 1 官方文档2 安装Halo2.1 创建Halo主目录2.2 远程下载配置文件2.3 编辑配置文件2.4 拉取最新镜像2.6 查看容器2.7 开放服务器的防火墙 3 运行3.1 运行项目3.2 停止项目 4 常见问题4.1 没有权限4.2 ommand netstart not found, did you mea…...
禁止编辑的PPT幻灯片,如何有效保护文件安全?
【幻灯片解密、去除密码、找回密码指南】 具体步骤如下:第一步百度搜索【密码帝官网】,第二步在用户中心上传需要解密的文件即可。 你是否有遇到过打开一个PPT文件却发现它被去除了密码无法编辑的情况?别担心,将为您提供最简单的解…...
优化前端性能
一次在前端面试中问到优化前端性能的方式 一、主要通过两种方式: reflow(回流)和repaint(重绘)。整个在浏览器的渲染过程中(页面初始化,用户行为改变界面样式,动画改变界面样式等)reflow(回流)和repaint(重绘) 会大大影…...

1.1 C语言之入门:使用Visual Studio Community 2022运行hello world
1.1 使用Visual Studio Community 2022运行c语言的hello world 一、下载安装Visual Studio Community 2022 与 新建项目二、编写c helloworld三、编译、链接、运行 c helloworld1. 问题记录:无法打开源文件"stdio.h"2. 问题记录:调试和执行按钮…...
Android NDK开发中常用的gradle配置
文章目录 externalNativeBuild1.配置通用的 CMake 构建选项2.指定 CMakeLists.txt 文件的位置和 CMake 版本 指定ndk版本 externalNativeBuild 下面的gradle代码包含两个externalNativeBuild {} android {defaultConfig {externalNativeBuild {cmake {cppFlags ""}…...

【AUTOSAR-DoIP】通过 DoIP 进行符合 Autosar 的车辆诊断
前言 通信协议 DoIP(互联网协议诊断)可通过以太网、WLAN 和移动通信对系统进行灵活而强大的诊断:无论是车间外的诊断还是车载诊断,以及驾驶时的远程访问。 DoIP 可以通过多种方式使用:现代车辆中的电子控制系统高度互连并执行各种复杂的功能。 Autosar 支持的通信协议 Do…...

GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭
效果: 开关控制灯的亮灭 目录 1.找到引脚组别(DEFG) led灯硬件结构 开关硬件结构 2.时钟使能 3.GPIO时钟控制 4.控制实现思路 5. 完整代码 6.视频演示 1.找到引脚组别(DEFG) 开关的引脚组别--E;LED灯的引脚组别--F led灯硬件结构 开关硬件结构…...

【算法萌新闯力扣】:回文链表
力扣题目:回文链表 开篇 今天是备战蓝桥杯的第23天。我加入的编程导航算法通关村也在今天开营啦!那从现在起,我的算法题更新会按照算法村的给的路线更新,更加系统。大家也可以关注我新开的专栏“算法通关村”。里面会有更全面的知…...
php站点伪静态配置(Apache+Linux)
404报错: 404 Not Found nginx/1.15.11 问题解决: 1、Linux location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s/$1 last; } } 2、Apache <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQU…...

Figma 插件学习(二)- 常用属性和方法
一. 如何调试figma插件 Plugins > Development > Show/Hide console 打开控制台即可开始调试 二.节点类型 根据不同的节点类型,也是会有不同的方法和属性,介绍几个常用节点类型 1.FrameNode 框架节点是用于定义布局层次结构的容器。它类似于HTM…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...