【论文阅读】CAN网络中基于时序信道的隐蔽认证算法

摘要

以前的研究工作已经认可了使用延迟和时钟偏移来检测在CAN总线上通信的入侵或指纹识别控制器。最近,CAN帧的定时特性也被用于建立一种隐蔽通道进行密码认证,通过这种方式巧妙地消除了在数据帧短负载中需要密码材料的需求。然而,这种方法的主要缺点是现有的CAN总线流量上可以实现的安全级别有限。在这项工作中,我们通过依赖优化算法来调度CAN帧并在优化的CAN流量上部署隐蔽通道,从而显著提高了安全性。在实际的总线分配下,我们能够从每个帧中提取3-5位的认证数据,这导致了一种有效的入侵检测和认证机制。通过累积连续几个帧的隐蔽通道数据,我们可以实现与当前现实世界需求相符的更高安全级别。为了证明我们的方法的正确性,我们在汽车级控制器(即Infineon Aurix)上进行了实验,并使用行业标准工具(即CANoe)进行了总线测量。

一、引言和动机

在模拟环境中对车辆总线进行攻击的小型演示,最早可以追溯到[1]的工作。最近的一些工作,如[2]–[4]等,已经明确证明了攻击现实世界中的车辆的可行性。车载网络的大部分安全问题源于控制器局域网(CAN)没有内在的安全机制这一事实。CAN总线能够在单个帧中传输多达8字节的数据,最大位速率为1Mbit/s。CAN帧的结构如图1所示。为了避免冲突,基于ID字段进行仲裁,该字段使用帧的前11位(如果使用扩展标识符,则为29位),而15位CRC(循环冗余校验)有助于识别传输错误。CAN还使用比特填充来避免长序列中相同值的比特同步丢失,即在连续五个相同位之后,引入一个相反值的额外位以强制转换。研究界已经提出了数十种保护CAN总线的方案。正如预期的那样,其中大多数依赖于使用密码消息认证码(MAC)(例如,[5]–[7],[8]或最近[9]和许多其他)。但由于CAN帧的大小有限,即64位,因此在文献中通常讨论了两种选项:截断MAC以便它们与合法数据一起适应帧内或将MAC作为单独的数据包发送。最后一个选项会创建额外的问题,因为每个常规帧都发送一个新的认证帧会增加总线负载,并且无法满足我们稍后在分析中讨论的实时需求。第一个过程,MAC截断,得到了AUTOSAR [10]架构中引入的较新的安全规范的支持,该规范要求为CAN帧提供24位的安全性。然而,从64位CAN帧有效载荷中保留24位用于安全性可能不太方便,因为这代表了37%的有效载荷。此外,标准规定新鲜度参数需要8位,导致32位预留用于安全目的,因此50%的帧变得无法用于常规数据。总的来说,似乎将密码材料包含在CAN帧中仍然有些问题,因为CAN的小数据包大小很难应对所需的安全级别。第三种选择是使用替代物理层(例如CAN+ [11])隐藏认证位,这是CAN的一种扩展。这种方法在[12]中提出。然而,车载设备中不存在CAN+收发器,而且由于向CAN-FD的迁移,汽车工业似乎不太可能采用CAN+。

在这里插入图片描述
上下文和动机。在最近的工作中,我们通过设计一种隐蔽的定时信道用于密码认证,以上下文和动机。在最近的工作中,我们通过设计一种隐蔽的定时信道用于密码认证,以建设性的方式利用了定时器-计数器电路的精细控制[13]。这个提议的优点在于允许认证数据被承载在CAN帧有限的64位有效载荷之外。然而,[13]中工作的问题是在现有的CAN总线流量上放置隐蔽通道时,性能会显著下降。在[14]中可以找到一种基于帧到达时间创建隐蔽认证通道的类似方法,但实现的安全级别非常有限,每个CAN帧只有1个隐蔽比特。此外,[14]中的认证仅针对发送方,而不是帧的内容。
在这里插入图片描述
通过优化CAN通信,我们的方法可以在隐蔽通道上获得更高的数据速率。当然,在多个发送者的情况下,这需要发送者之间的时间同步。传统的CAN实现假设节点的异步行为和缺乏共同的时间基准。然而,根据[15]的AUTOSAR标准规范,来自行业的最新方法为所有三种主要的车载总线(以太网、CAN和FlexRay)提供了时间同步的支持。最近的AUTOSAR关于CAN上的时间同步的规范,对时间主设备、网关甚至从设备的最大精度提出了警告,将其设定为10μs,即[16]的第4.1节。这表明我们的方法的需求是现实的,并与行业当前的趋势一致。在TT-CAN(Time-triggered CAN)的时间触发通信中,时间同步也是必需的,因此在现实世界的应用中存在。

设计意图。我们创建一个隐蔽的身份验证通道,该通道保持CAN帧的位不变,并通过依赖有效的帧调度来提高通道的数据速率。所处理的场景在图2中简要概述。为了避免使图形过载,只描绘了两个ECU(电子控制单元)和一个外部设备(可能是一个CANcase),但我们的场景对ECU或外部设备的数量没有限制。ECU以通常的方式在预定义的周期i, i = 1. . n(对于总线上定义的每个ID,我们假设有n个这样的ID)进行消息通信,其中添加了一个小的漂移i和一个小型的身份验证延迟ξ(更多详细信息将在后续部分给出)。在CAN总线上创建隐蔽身份验证通道的主要优点如下:

  • 它不会消耗帧数据字段中的比特,该字段限制在64位。
  • 它在携带数据的帧中隐蔽地嵌入认证数据,而无需额外的认证帧。
  • 由于认证数据隐藏在延迟中,因此它不会增加总线负载。

我们为CAN上的消息认证创建的秘密通道必须被视为与基于MAC的常规解决方案相辅相成,而不是与之竞争。显然,使用常规MAC更为高效,但不可否认的是,数据字段(64位)的有限大小使得包含此类MAC变得困难,而MAC截断是唯一的选择,这反过来又会显著降低安全级别(因为我们稍后会讨论,所以添加额外的认证帧可能是不现实的)。相反,秘密认证通道可以在不影响现有流量的情况下带来额外的保护层。事实上,我们讨论的优化流量分配直接改善了真实帧的最坏情况到达时间,因为总线上发生了更少或希望没有的帧冲突。比较秘密通道和常规、预期通信通道的容量将是具有偏见的,因为前者建立在后者微小的物理波动之上(不足为奇的是,秘密通道确实具有较小的数据速率)。

在我们的提案中,帧认证工作的主要概念是:在延迟中编码认证数据并添加针对帧时序的优化。这些细节可以在图3中找到。CAN帧由标识符字段ID表示,以循环方式到达总线(为了避免过于复杂,我们省略了数据字段,但在消息认证码中使用了ID)。虽然事件帧也可能存在于CAN总线上,但CAN流量的大多数性质是循环的,因此我们专注于对此类流量进行身份验证。我们为三种不同的延迟(10ms、20ms和50ms)描绘了标识符。每个延迟都添加了一个漂移ξ,它以隐蔽的方式携带认证数据。原则上,ξ是加密消息认证码(MAC)的最后一字节。该MAC在整个帧的内容上计算,并且对于每一帧来说都是唯一的,假设适当的新鲜度参数被使用,例如时间戳或计数器。为了避免过于复杂,我们在图形轮廓中省略了这些细节。由于CAN流量分配不当,可能需要同时发送多个数据包(灰色高亮的数据包所暗示的那样)。这些重叠可能从传输的角度来看不是问题,但是它们会影响预期到达时间和因此覆盖通道的数据速率。为了避免这种情况,我们使用额外的延迟i,i = 1. . 3来以最佳方式分配流量并保持帧间距离最大。图4提供了关于为什么未优化的流量对秘密时序通道来说是问题的更清晰的图像。图的左侧显示了记录在现实世界车辆中的帧之间的传输时间。尽管整个流量是循环的,但帧之间的传输时间是嘈杂的,并且与预期到达的偏差很常见。为了提高性能,我们进一步依赖优化算法。图4右侧显示了经过优化后的传播时间。相同的总线负载和相同的ID数量被使用,但传输时间现在遵循一个更清晰的模式。如预期并由实验证明,秘密通道将比优化过的流量具有更高的比特率。

A 相关工作

在计算机网络中,隐蔽定时信道已经得到了很好的探索,例如[17]–[19]。但是,除了上述最近的论文[13]和[14]之外,我们不知道这种信道是否用于保护车载通信。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表I尝试对CAN总线上的现有两个隐蔽定时信道提案[13]和[14]进行比较总结。我们试图以一种统一的方式从TACAN [14]和INCANTA [13]中提取比较结果。这两个工作都使用通过改变单个ID的到达时间来创建的信道进行实验。特别是,TACAN [14]使用在10ms广播的载体ID并编码了到达时间中的1位信息,而INCANTA [13]使用在100ms广播的载体ID并编码了5位信息。为了增加数据速率,TACAN [14]还使用了最低有效位信道,通过该信道修改数据字段的最后一位,但这并不是定时隐蔽信道,因此我们没有将其包含在此分析中,只关注TACAN的到达时间间隔(IAT)版本。对于[14],误码率(BER)小于1%,提到这个BER值是通过近似超过4帧获得的(否则BER可能会显著高达40%左右)。对于[13],BER值为1.75%,适用于高优先级ID轻松赢得仲裁的情况。在吞吐量方面,[14]报告为22.5 bps,我们可以计算[13]的数据速率为57 bps,尽管其ID的周期性较慢,即[13]为100ms vs. [14]为10ms,但[13]使用的ID漂移更高,即220ns,公差为20,000ns,这导致每条消息提取约5位。无论是[14]还是[13]都没有用多个ID进行隐蔽数据的实验,而且由于较低优先级ID的到达时间的不可预测性增加,性能不太可能随着ID数量的增加呈线性扩展。相反,在CANTO中,我们使用来自总线的所有ID作为定时隐蔽信道。来自CANTO的最佳流量分配使我们能够实现所有ID的相同结果,从而实现大约5047 bps的数据速率和0.95%的误码率,我们在实验部分稍后会展示这一点。

尽管如此,许多近期的研究工作都集中在使用帧到达时间,即我们用来创建隐蔽通道的延迟,以检测入侵,例如[24]和[25]。通过使用布隆过滤器[26],帧到达时间也与帧内容相结合,以过滤[27]中的恶意活动。最近,帧周期性被利用来提取时钟偏差,这由于振荡器中的物理缺陷而在[28]中用于为每个设备创建独特的指纹。这为CAN节点的物理指纹识别提供了空间。十多年来,时钟偏差的使用已被[29]的工作探索用于对计算机进行指纹识别,并且不出所料,它也应用于智能手机[30]。不幸的是,基于时钟偏差的识别机制在嵌入式设备的精细粒度的时间触发中断控制下变得无效,这使它们有可能伪造它们的时钟偏差,如[31]所示。所有这些工作都在利用控制器中时钟电路的精度,这也是我们在这里提出的建议的核心。

在这里插入图片描述
为了从数据字段中节省比特,其他工作已经建议使用标识符字段,即[32]、[33]、[34]和[35],但这需要特别小心,因为标识符字段对于仲裁至关重要,也用于过滤目的。另一种在不损害CAN帧的比特的情况下识别发送方的方法是使用物理信号特性,例如[36]–[38],但这些方法可能容易受到总线阻抗的小变化的影响。

二、背景及实验设置

这部分内容简要概述了CAN网络上的延迟和时钟偏移。尽管如此,我们还是讨论了先前关于CAN总线隐蔽定时信道的工作中的局限性。然后,我们描述了我们设置的组成部分。

A 以前工作中的时钟偏差和局限性

在图5中,我们展示了当三个ECUs以固定的时间间隔δ广播时,时钟偏差如何累积。由于时钟精度问题,尽管延迟δ是固定的,但每个ECU测量的时间实际上是δ1、δ2和δ3。如果第一个ECU测量从第二个和第三个ECU接收到的帧的到达时间,那么这些延迟就会累积。结果是一个代表时钟偏差的斜率。图6显示了在一个Infineon板上测量的延迟与CANoe之间的图形描述,这是另一个Infineon板周期性广播帧的情况。这个描述是根据我们之前的工作[13]进行的。延迟被强制设置为±100、±250、±500个时钟滴答(1个滴答是10ns),因此在图片中可以看到几个斜率。我们在CAN总线上创建隐蔽通道的前期工作的主要限制是现有的流量(分配不良)阻碍了隐蔽通道的数据速率。图7显示了根据[13]记录的四个Infineon TriCore板上没有(左)和有(右)现有网络流量时的延迟变化(延迟表示为预期到达时间和记录到达时间之间的分数)。在存在流量的情况下,一些帧会显著延迟到达,使它们与随机延迟发送的帧无法区分。这些延迟会导致入侵检测机制的误报。正如我们在这项工作中所讨论和展示的,流量优化是解决这个问题的唯一方法。

B.最坏到达时间

CAN消息的最坏到达时间对于评估CAN网络中特定消息周期分配的可行性至关重要。
在这里插入图片描述
请注意,由于其基于ID的仲裁机制,低优先级ID的到达可能会被高优先级ID显著延迟。为了证明我们方法的可行性并概述总线的带宽限制,我们现在简要介绍一下CAN调度性的背景。为此,我们将使用[39]中提出的理论框架。特别是,我们使用[39]中定义的消息m的繁忙时间段t和最坏排队延迟w:
在这里插入图片描述
我们保持[39]中的原始符号,并将m解释为定义其优先级的消息的ID。在先前的关系中,Bm是由较低优先级消息传输引起的阻塞延迟,Jk是消息k的排队抖动,Tk是消息k的周期,Ck是消息k的传输时间,q是消息m的实例,τbit是总线上传单个位的时间。通过hp(m),我们表示具有高于m的优先级的消息,即ID较低的消息。t和w都通过n的递归来解决(更多详细信息请参阅[39]),直到t和w的值收敛,即t n+1 m = t n m 和 wn+1 m (q) = wn m(q)。

我们现在展示通过将先前的方法应用于我们特定的40个ID分配所获得的结果。我们选择了ID及其周期性,以获得40%的总线负载,这是真实世界车辆的特征。这些ID的周期为10、20、50和100ms(在即将到来的部分中给出了对此分配的更多评估)。我们固定了以下参数,这些参数是我们设置的特征:τbit = 2μs用于我们使用的500kbps CAN,Ck = 270μs,这是总线上最长消息的持续时间(根据[39],这是计算为(55 + 10B)τbit,其中B是消息中的字节数),Bm = 270μs,除了优先级最低的ID之外,Bm = 0。图8显示了左侧的繁忙期和右侧的每个40个ID的最坏情况排队延迟(蓝色圆圈)。一些ID的值被描绘为标签,但这些值并不重要,这些值只是被分配得更快的ID具有更高的优先级,并且对于相同的周期性连续编号,以便我们可以更轻松地直观跟踪它们。然后我们用红色圆圈描绘了当ID数量翻倍时这些值的变化,例如我们需要发送带有认证数据的额外帧的情况。在原始实例中,有40个ID的情况下,广播时间为10ms的ID的总线繁忙期将在0.2-1.2ms之间,而广播时间为100ms的ID将在5.4-8ms之间。排队时间保持在0.52-11.96ms的范围内。对于一个周期为100ms的帧来说,11.96ms的漂移可能有点高。然而,当ID数量翻倍时,繁忙期和最坏情况排队延迟增加的范围为0.52-34.06ms,最坏情况下增加了3倍。通过使总线负载翻倍,最坏情况到达时间的增加高于预期的两倍,这表明添加额外的帧几乎不是替代方案。优化流量分配也将在这方面有所帮助。
在这里插入图片描述

C.安装组件

我们使用AURIX TC224 TFT应用套件实施和评估流量分配的优化。开发板具有一个运行频率高达133 MHz的TC224 32位TriCore CPU,提供1MB的FLASH内存和96kB的RAM内存。我们的基于TriCore的实施所传输的CAN帧使用CANoe(一种用于分析和测试汽车网络的软件工具)进行记录。为了实现这一点,CANoe运行的PC通过VN CAN到PC适配器与开发板接口,如图9所示。离线使用Mathematica分析记录的跟踪。

根据描述的机制,由于CAN帧必须在特定的时间槽中传输,节点需要实现一个保持时间的功能。我们在TC224上使用捕获/比较单元6定时器(CCU6)模块实现了这个功能,该模块被配置为每1微秒触发一次中断,作为我们本地时钟的基本滴答。在几次实验中,我们使用计算MAC值的最后7位来表示认证延迟。此延迟添加到消息周期时间加上 ,当足够的CCU6定时器的滴答过去时,消息将在总线上发送。

在这里插入图片描述
所有消息数据字节、配置的消息周期时间和每个消息选择的 值都在MultiCAN+模块中配置。MultiCAN+模块还负责将帧数据以指定的波特率为500 kbps发送到CAN收发器。

执行初始硬件设置后,为每条消息计算初始MAC值。在运行时,基于CCU6定时器中递增的计数器值,发送所有帧的周期时间和 值,但如前所述会有一个小的延迟。帧交付将在CCU6定时器的ξ个滴答过期后发生。每次帧交付后,消息计数器递增,并根据消息数据和消息计数器计算新的MAC值。

三、优化流量分配

本节讨论我们使用的优化算法。在隐蔽信道上实现令人满意的数据速率,通信量分配是至关重要的。我们设计并讨论了四种流量分配算法,并通过理论模型/仿真和实验数据证明了它们的有效性。在下一节中,我们将使用其中两种算法,并在优化的can总线流量上实现隐蔽信道。

A.问题陈述

我们考虑一组n对{(id1, 1), (id2, 2), …, (idn, n)},每对由一个CAN标识符和与该标识符对应的周期时间(周期性)组成。如果存在事件触发帧,应使用不同的机制,但这种情况超出了我们的工作范围。此外,设{(idi, T i 1 ), (idi, T i 2 ), . . . , (idi, T i l )}为标识符-时间戳对集合,其中时间戳T i j ,∀j = 1. . l是总线上接收到idi的时间。理想情况下,T i j+1 − T i j = i,∀i = 1. . n,j = 1. . l,这意味着具有相同标识符ID的帧以周期性i到达。然而在实际操作中,有许多原因阻碍了完美的到达时间。除了时钟漂移,即发送节点和接收节点的时钟不完全相同外,由于帧的发送时间重叠,可能会出现延迟。由于CAN仲裁是非破坏性的,因此当两个节点尝试同时发送帧时没有问题。但是具有较高ID的帧会失去仲裁权,将在较小ID之后发送,这会使到达时间从预期的i开始漂移。
在这里插入图片描述
帧到达时间。帧在总线上传输所需的时间取决于帧的大小和总线的数据速率。标准can的数据速率最高可达1Mbps,但通常采用125-500kbps的较低数据速率。帧的大小因填充位的数量而不同,即在5个连续相同的位之后添加一个反向极性的位(对于具有64位数据加上报头的帧,最多可以添加24个填充位)。图10的左侧显示了64位数据帧扩展到111位(不含填充位)时帧到达时间的变化,在1Mbps上可能只需要100μs,在低速125kbps总线上可能需要900μs(不包括填充位)。对于更宽的图像,图10的右侧将此计算扩展为可变大小的帧(0-64位)大小和总线速率(64kbps-1Mbps)。

帧到达真实世界的时间。在图11中,我们描述了预定为10,40和150ms的帧的到达时间。图的左侧为相同ID帧之间的延迟,右侧为相同延迟的直方图分布。即使对于达到10ms的高优先级帧,400μs的偏差也是常见的。对于40ms帧,2 - 4ms的偏差是常见的,对于150ms帧,情况类似。对于500ms的帧,10ms的偏差也很常见。

这种与预期到达时间的偏差是存在的,它们明显降低了隐蔽定时信道的比特率。与预期到达时间的偏差直接受到本地时钟和消息ID的优先级的影响,但是这些可以通过巧妙地分配帧时间来规避,我们将在下面讨论。

B.优化帧调度

在之前定义的框架中,如果每个帧以i的倍数发送,i = 1…n,那么在总线上帧i和j之间的碰撞将发生在lcm(i, j)的倍数处(这里lcm代表两个整数的最小公倍数)。这可以扩展到任何数量的帧。理论上,所有帧将在总线上以lcm(1, 2, …, n)的时间发生碰撞。同样,这样的碰撞是非破坏性的,但它们阻碍了秘密定时信道,因为它们导致额外的延迟,从而导致预期到达时间出现偏差,从而阻止从定时信息中提取秘密比特。为了避免这种碰撞,我们将帧调度集扩展到{(id1, 1, 1), (id2, 2, 2), …, (idn, n, n)},其中i, i = 1…n是添加到帧发送时间的小漂移。通过我们的分配,帧将以ki + i的间隔发送(而不是ki)。我们的优化问题是找到值为i, i = 1…n的值,使得对于给定的延迟集合i, i = 1…n,在总线上不会发生碰撞,并且帧之间的空间被最大化。
在这里插入图片描述
我们使用以下理论模型来计算最优帧分配。在CAN网络上广播n组对应于n个id的以下n组走线:
在这里插入图片描述
由上式可知,当|T1∪T2∪…∪Tn|=|T1|+|T2| +…+ |Tn| where |Ti|,i = 1…n表示集合Ti的基数。根据集合相等的这个条件,我们要求所有n帧的时间都是不同的。

让我们将T∗={t1, t2, . . . , tn}定义为包含所有消息的时间戳的集合,我们假设这个集合按照升序排序,即帧预期在总线上到达的自然方式。为了最大化帧间空间(IFS),我们在质量因子q下定义了一个优化帧调度的策略。我们遵循自然直觉,即IFS越大,1/(ti−ti−1)的值就越小,因此它们的和也会更小。我们说帧调度是最优的,如果以下值最小:
在这里插入图片描述
假设IFS,即ti−ti−1∀i = 2…N以时间为单位,即秒来测量,q因子应以频率为单位,即s−1来解释。在接下来的内容中,我们将讨论以优化质量因子q为目标的分配算法的四种变体。

一个实际的实例。随后的优化示例解决了以下帧周期向量,该向量基于来自现实世界车辆的现有CAN流量:
在这里插入图片描述
向量对应于6个ID,其周期时间为10ms,8个ID的周期为20ms,12个ID的周期为50ms,最后是14个ID的周期时间为100ms。向量中的值表示具有相同ID的帧的预期周期,它们的到达时间将仅受到隐蔽通道上延迟的影响,该延迟最多为两百微秒。在接下来的部分中,我们通过修改发送时间来消除总线上的数据帧冲突,其中使用了一个不影响周期时间但只会轻微偏移它的小值i,i = 1,n,如关系式(3)所示。

二进制对称分配。这是我们使用的分配算法中最简单的一种,实现起来非常容易,并且效果很好(但我们会在接下来的算法中对帧间隔进行改进)。在二进制对称分配中,我们从窗口大小w的最小延迟w = min(1, 2, . . . , n)开始,并将所有值i,i = 1. . n对称分配到区间[0. . w]中。为此,我们首先用大小为w的箱子开始,然后通过将每个现有箱子进行划分来创建新的值i。也就是说,首先将1放在w/2处,然后对于2和3,分别在w/4和3w/4处创建两个新的箱子,依此类推。算法1展示了二进制对称分配的步骤。我们假设延迟以升序出现在rdelays中(1在列表中缺失,因为它已经被分配给默认值1 = 0)。变量blist用第一个延迟1进行实例化(为其分配默认值0 = 0),并且第二个延迟∞仅仅是一个用于界定大小为1的箱子的占位符。在第4步中,我们循环直到为每个值i生成一个i。为此,我们在第5步创建一个新列表blist,并在第6步循环遍历blist中的所有现有值,以创建一个新值(blist[i − 1, 1] − blist[i, 1])/2,然后将其添加到新创建的列表blist中的blist[i − 1]和blist[i]之间。在第15步中,每次迭代时用blist替换blist。在过程结束时,blist将包含所有的对{(1, 1), . . . , (n, n)}。理论帧定时的图形描述如图12所示。在图13中,我们呈现了从CANoe中测得的实验结果,当英飞凌节点以相应的定时广播帧时。理论结果和实验测量结果相当接近。存在差异,因为有几个帧是稍后广播的,导致了2.5毫秒的帧间延迟。造成这种情况的原因是最小帧间隔为150微秒,这也大致是在500 kbps的总线上放置一个帧所需的时间。由于控制器的计算延迟,如果错过了时间槽,帧将在稍后的某个时间点发送,错过了总线上预期的分配。我们得出结论,150微秒的帧间隔时间有点太短。
在这里插入图片描述

随机搜索分配。随机搜索首先创建一个等间距的列表 i, i = 1. . n。距离 e 设置为 e = min (1, 2, . . . , n)/n 是一个自然的选择,因为最坏的情况下,所有帧都会在总线中最快的帧的周期性内出现。然而,e 的值可能被固定为其他值。然后,将 i, i = 1. . n 的值随机分配给每个延迟 i, i = 1. . n。经过 次迭代(每次迭代都包括一次随机分配),保留最好的分配。结果会随着迭代次数的增加而改善。算法2显示了随机搜索分配的步骤。首先,在第2行计算 e 的值,然后在第3行生成目标epsilons的值并将其存储在 reps 中。当前最优 q 在第6行设置为∞,最佳分配 reps 在第7行设置为void。然后我们在第8行进行 maxiterations 次循环。在每次循环中,新的 reps 值在第9行设置为 reps 中的随机排列。第10-16行计算新分配的质量因子 q。为此,根据当前排列的对应 j,为每个延迟生成时间戳集 Tj, j = 1. . n。时间戳是为时间框架 T(在我们的实际测试中,我们将其设置为1-10秒)计算的。然后对时间戳集 T * 进行排序并相应地计算 q。如果结果比之前的最优结果更好,即第17行,则将新结果存储在 reps 中,否则将其丢弃。随机搜索给出了比二进制对称分配稍好的结果,但同样,对于某些帧来说,250μs似乎仍然有问题(我们通过接下来的两个算法来改进这一点)。
在这里插入图片描述
贪婪分配。在贪婪分配中,对于n个延迟,我们首先创建等距的bins,距离e = min(1, 2, …, n)/n(这与前一个算法的情况相同)。然后按升序分配延迟,以使q最小化。在算法3中,我们展示了贪婪分配的步骤。算法从构建值i的值集合开始,类似于之前描述的随机分配。然后,它在第7行循环每个延迟,并在第10行循环剩余的每个值,以找到当前延迟的最优值。每个选定的值都以与随机分配相同的方式测试优化标准。最优值的索引存储在ind中,并从第21行的reps中的值中删除,以便仅为下一个延迟i分配剩余的值。

在这里插入图片描述
贪婪多层。为了解决250μs的帧间空间问题,我们将贪婪分配修改为多层贪婪分配,其中允许延迟i(i=1…n)的帧放置在任何小于i的e的倍数上。这可以更好地扩展帧,因为较大i的帧可以从较大的i中受益。我们省略了此算法的形式化,以避免使论文过载。理论和实验结果见图14和15。这次的结果几乎相同,帧间空间扩展到高达500μs。
在这里插入图片描述
在这里插入图片描述

基于GCD的分配。我们还尝试了一种基于最大公约数(GCD)的分配,其中帧以延迟间隔,例如固定在500μs + δi,其中δi(i = 1…n)是1,2,…,n的最大公约数的倍数,条件是500μs + δi小于i。基于GCD的分配步骤在算法4中描述。它从构建一个M矩阵开始,行数为max(delays)/G,列数为min(delays)/ε,其中G是延迟的最大公约数,ε是允许的最小IFS。该矩阵最初由1填充。然后在步骤7中,算法遍历所有延迟,在矩阵M中寻找每个延迟的空行。搜索从步骤11开始,从行j = 1开始(在步骤9中初始化),并在步骤35中连续增加j,直到找到一行没有0的行为止。为了测试当前行是否有非零值,步骤14中的循环一直持续到当前行的末尾aux。如果得到的k小于当前行的长度|aux|,则从步骤17开始,每隔l = d/G步(其中d是当前延迟)用0填充该行。当前延迟的结果放在reps行的第31行。为了更清晰的视图,对于关系(5)中的延迟,对应于我们实验设置中的40个ID的漂移i(以毫秒表示)如下:
在这里插入图片描述
分配提供的结果与多层贪婪分配的情况相似。理论和实验测量结果在图16和17中,最小帧间间隔为0.6ms,最大为2.2ms。当最小帧间间隔降低到0.5ms时,类似于贪婪ML的情况,最大值增加到4ms。在表II中,我们总结了四种优化算法之间的比较。前三种算法的主要缺点是它们只留下150μs - 250μs的最小帧间间隔,这是有问题的,因为它可能小于单个帧的传输窗口(这可能导致延迟堆积,并影响隐蔽通道的数据速率)。多层贪婪和循环GCD返回了最好的结果,最小IFS为500μs,即使要容纳额外的帧传输也足够。最大IFS的值不是我们算法中的优化标准,也不影响隐蔽通道(它利用的延迟小于最小IFS)。然而,如果最小IFS更接近最大IFS,总线负载将更加均匀,这可能更适合其他约束条件,例如实时响应。由于实现和计算成本对于贪婪ML和循环GCD算法都较低,我们认为任何一种算法都适合实际场景。尽管如此,贪婪ML的结果提供了更加均匀的总线负载。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四、协议和结果

在本节中,我们概述了该协议,然后讨论了携带身份验证标记的隐蔽定时信道的实际结果。

A.主协议

在当前工作中,我们专注于优化总线以实现保密通道的最大容量。发送和接收帧的协议与我们的先前提案[13]相同,名为INCANTA,因为我们使用基于帧从预期到达时间漂移的同一种保密通道。一个微小的差异是对于每个延迟i,i=1…n,我们将优化算法得到的 corresponding value i, i=1…n添加到其中。为了保持一致性,我们保持我们的协议INCANTA(带有时间转换加密认证的控制器区域网络入侵检测)的名称和描述不变。INCANTA由以下一组操作组成,每个节点需要遵循:

  1. SendCyclic(idi, m)是在固定延迟ki + i处触发的用于标识字段idi和消息内容m的帧的过程,在该帧中,负责发送ECU通过使用密码MAC计算认证标签tag = MACsk(k, idi, m)。在这里,k是一个计数器,对于每个使用相同标识符发送的新消息,都会递增。发送者然后设置T = tag ,执行等待操作wait(T),然后广播消息(id, m),
  2. RecCyclic(idi, m)是在接收到具有标识符idi的第k个消息时触发的。让时间tk是消息被接收的时间,接收者计算tag = MACsk(k, id, m)和Tk = tag ,然后检查|tk−tk−1|−(i +Tk −Tk−1)| ≤ ρ,如果这个失败,它会丢弃帧并报告入侵,否则它会认为帧是真实的。

我们假设在每个ECU的CAN总线上存在一个共享密钥sk。我们不讨论如何共享此密钥,因为这已被其他一些工作所解决。此外,我们考虑网络中所有真实ECU都可用的帧调度集{(id1, 1, 1), (id2, 2, 2), . . . , (idn, n, n)}。延迟计算为相同ID的两个连续时间戳之间的差值,以消除潜在的时钟偏差。事实上,通过实验测量,我们确定时钟偏差可能阻碍正确识别延迟。接下来讨论该方案的具体实例的实际值。如已在介绍中所述,我们提出的隐藏通道应被视为增加安全性的补充措施。为了避免基于先前记录的延迟的分析而实施的重放攻击,必须在隐藏通道外部加强新鲜度参数的使用。当前AUTOSAR规范[10]要求使用新鲜度参数,其长度在Profile 1中未指定,而在Profile 3中为64位,进一步截断为SecOC Profile 1中的8位和SecOC Profile 3中的4位。特别是,在我们的实现中,我们为每个ID使用了一个计数器,该计数器进一步嵌入在帧中,并因此用于计算MAC,从而改变了隐藏通道上的强制延迟。帧内计数器的大小可以保持在推荐的4-8位范围内,以避免在更长的运行时进行重播,应使用较大的计数器。例如,对于发送在10ms处的ID,如果运行时间为12小时,则24位将足够。因此,我们假设仅在帧内发送4-8位的最低有效位以进行同步,而每个节点保持每个ID的较大计数器(例如,24位)。CMAC-AES提供了快速MAC实例化,仅需要16-55μs的时间即可从我们的设置中的Infineon控制器上完成。计算MAC应在数据准备好传输时立即进行,并且计算MAC所需的时间不应妨碍为隐藏通道建立的延迟。实现这一点的最简单方法是仅在MAC中包含ID和计数器,因为这些是预先知道的,因此可以在任何时候计算MAC并将其存储在缓冲区中(请注意,但这不作为数据字段的其他部分的安全保证)。

B.对手模型

我们考虑的是具有完全通信通道控制权的Dolev-Yao攻击者类型。同时,我们认为,从总线上获得正确帧调度和MAC密钥的合法节点是可以信任的,而攻击者是一个外部节点。这在汽车场景中是现实的,因为可以信任组件制造商,而且到目前为止报告的大多数攻击都是由外部干预引起的。我们还考虑了将一个真正的节点从总线上移除的攻击,在基于汽车的场景中要实现这一点变得更加困难,因为这需要物理干预或将节点置于总线关闭状态。最近通过利用CAN错误管理系统来证明了后一种可能性,但它需要活动错误标志(在总线上可见)并且真正的节点只会处于总线关闭状态一段时间。此外,移除一个节点可能会导致汽车失去许多功能和总线上的许多ID,这种行为很可能会被剩余的ECU立即识别。如果攻击者不能将真正的节点从总线上移除,那么攻击者的唯一影响很可能就是DoS(拒绝服务),因为注入的恶意帧可能会导致真实的帧出现延迟。由于CAN总线的设计与此有关,对总线进行DoS攻击总是很容易的。这已经被诸如[40]–[42]等工作所证明,这些工作利用了总线的物理特性,例如主导位覆盖次要位的事实,因此合法帧可能受到损害,或者CAN的错误处理机制可能会将节点置于总线关闭状态。由于我们的解决方案依赖于准确的帧到达时间,这样的攻击可能更容易实施,但异常流量可以从隐蔽通道中的不良时间信息中轻松检测出来。假设攻击者可以通过某种方式针对一个真正的节点或特定ID并将其从总线上移除,那么攻击者还需要猜测真实的帧需要发送的确切延迟时间。攻击者的成功概率可以通过综合估计:
在这里插入图片描述
这个等式模拟了一个预期的场景,即对手最多可以在一些随机点插入一个帧,希望它能匹配预期的延迟。在这里,ρ是接受一个帧的延迟容忍度,而是安全级别(这是协议描述的一部分)。ρ的值必须基于实验数据固定,在下一节中我们将展示一个合适的值是ρ = 5μs或更少。考虑到当前标准[16]建议的最坏情况时钟同步精度,对于最坏情况场景,设置ρ = 10μs也可能是可考虑的。

C. 优化流量和单一发送者的结果

接下来的实验结果是基于优化的交通流量,无论是使用贪婪多层分配还是基于GCD的分配。由于这两种算法都产生了最小的IFS为500μs,所以两种分配的实验结果都是相似的。此外,500μs的IFS允许230μs的自由空间来实现隐蔽通道(考虑到在总线上发送一帧的最坏情况时间为270μs)。这将允许在延迟中编码一个截断的MAC为7-8位。在实验中,我们确定当= 8时,可能会导致一些帧重叠。实际上,255μs添加到最大帧持续时间270μs上,有时会超过500μs的IFS。然而, = 7导致的延迟最多为127μs,在这个IFS下是完全安全的,没有重叠。因此,我们可以在每个帧中编码最多7个隐蔽比特,但由于测量精度问题,并非所有比特都能被恢复(我们稍后会确定隐蔽通道的确切容量)。在图18中,我们给出了总线上的帧间延迟概述,有(ii)和没有(i)隐蔽通道的情况。请注意,当隐蔽通道存在时,延迟会随着MAC的最后7位而随机变化,即最多127μs。也就是说,围绕预期值(i)的偏差具有随机分布(ii)。因此,通过观察过去的延迟值,攻击者无法预测未来的延迟值,也就是说,重放攻击是不可能的。在图片右侧的细节图中,只有500μs间隔的帧的情况下,这一点更加明显。
在这里插入图片描述
我们进行的实验证明,对所有ID来说都是一致可靠的,无论它们在10、20、50或100ms的延迟下发送。估计的延迟变化在±10μs的范围内,这与5个CAN比特的时间(在500kbps时,CAN总线上一个比特的持续时间≈2μs)是一致的。这种变化可能是由于填充比特数量不同而导致帧长度的变化(我们将在下一步进行改进)。

图19显示了在10ms(i)、20ms(ii)、50ms(iii)和100ms(iv)广播的帧的延迟及其直方图分布。请注意,随着延迟的增加,样本数量减少。对于所有帧和ID,从预期到达时间开始的偏差仍然保持在上述±10μs的范围内。考虑到总线负载与CAN总线的实际运行情况相同,这是一个良好的结果。更进一步地,我们还考虑了帧长度,并实现了如图20所示的更好匹配。所有消息的最小误差为-4.62μs,最大误差为4.87μs,这意味着在5μs的容差范围内,所有真实的消息都将获得预期的延迟。

在这里插入图片描述

在表III中,我们给出了给定2、3或4μs容差边界的真实负数的平均速率。我们描绘了真实帧的成功率,即γecu,以及对手优势γadv,以百分比形式呈现,以便于数据解读。γecu的值是从实验数据中提取的,即覆盖约120万帧的轨迹。该值计算为所有对应于40个ID的消息的接受率的平均值。具体来说,根据ID的不同,2μs误差覆盖了合法帧的91.4% - 95.2%,而3μs和4μs分别覆盖了99.21% - 99.93%和99.96% - 100%。对手优势γadv是基于关系(6)在ρ=10和=7时综合计算得出的。我们还将这些结果扩展到多个帧的情况,即k个连续帧。k个合法帧的接受率为:
在这里插入图片描述
这里k代表帧数。根据表III的数据,当ρ = 5μs时,所有真实帧都被接受,而攻击者注入帧的机会小于百万分之一。

D.多发送方情况和噪声信道

为了对提出的机制进行更实际的评估,我们现在将分析扩展到多个发送者和嘈杂通道的情况。我们表明,通过适当的参数设置,这两种情况都可以得到解决。第一种情况引发了关于发送者之间同步和时钟偏移消除的问题。然而,在适当的同步和偏移消除后,我们得到了与单个发送者情况类似的结果。第二种情况更为复杂,因为在发送者节点上的最佳流量分配会遇到现有的未优化且未与发送者同步的车载流量。尽管性能明显较低,但我们发现即使在这种情冐下,我们也可以达到合理的安全水平。

在这里插入图片描述

E.信道数据速率,安全级别和对最坏情况到达时间的影响

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值