目录
- 论文总结
- 详细要点
-
- 1.CAN节点
- 2.CAN总线上主要出现的问题
- 3.DAVA协议内容
-
- 3.1 初始化阶段过程
- 3.2 操作阶段过程
- 3.3 更新阶段过程
论文总结
整篇论文中主要在讲述DAVA协议的内容和其整个过程,提出了一种基于CAN总线的移动目标防御协议——DAVA,其核心思想就是在某个时间段或者时间节点中更换设备ID从而实现防止或者降低设备遭受重放攻击,且该协议能够保证更新信息不在总线上传播,减少了被攻击的可能性。在论文的最后讲述了整个方案实现的时间和空间开销。
详细要点
1.CAN节点
CAN是博世开发的车载通信标准,目前仍在积极使用和开发中。CAN允许各种车辆子部件(如发动机管理系统、底盘、信息娱乐)相互通信。每个子组件至少有一个ECU、一个CAN控制器(通常在ECU中)和一个收发器。这些子组件一起被称为CAN节点或简称一个节点。他与物理组件进行交互。ECU负责解释输入信息,发送输出信息,从传感器读取信息并控制执行器。
图1 CAN节点
图2 CAN框架
2.CAN总线上主要出现的问题
CANbus是一种多主串行总线。总线上没有支配通信的主ECU。相反,总线是基于优先级的,优先级给予ID最低的消息。这些ID由制造商确定,由发送方ECU设置。CANbus上可重用的发送者id使总线容易受到重放攻击。由于协议中没有内置安全上下文来验证数据的来源,攻击者可以很容易地欺骗节点执行任务(制动或停止引擎)。
3.DAVA协议内容
DAVA协议主要分为三个步骤来进行实现。分别是初始化阶段,更新阶段和操作阶段。在DAVA协议开始之前,会生成一个种子,这个种子是为了随机生成地址用的,种子里面包含的内容在下面会讲,DAVA协议其中一个优点就是关于ECU只需要进行最小幅度的修改即可使用。下图是讲述一个MTD数组,这个数组对于实现DAVA协议起到了至关重要的作用。
图3 MTD矩阵
Lower Bound和Upper Bound帮助ECUs创建有效的设备id,同时保持设备之间的相对优先级。Current Device ID用于验证消息。使用Number of ECUs初始化MTD阵列。注意在CAN通信中没有使用接收器ID,因为它是广播总线。将发送者ID添加到消息中足以在总线上发送消息。DAVA使用未修改的CAN帧,但利用MTD阵列来跟踪所有当前设备id。
图4 DAVA协议完整流程图
图5 一个在CAN节点上的ECU的实例,其中黄色部分代表随机种子
3.1 初始化阶段过程
每个ECU创建一个MTD数组,其数组长度与总线上的ECU数 量相同,该数组中的每个节点代表总线上的某个ECU,每个节点存储四个值分别是:
- 该ECU的设备ID.
- 他的上界.
- 他的下界.
- 它的原始设备ID。
所有ECU再继续前进之前从同时创建MTD数组,且在DAVA执行之前,ECU已经通过CANbus的初始编程知道了自己的设备ID以及总线上其他ECU的设备ID。MTD数组中的原始ID引用CANbus上的特定ECU在实现DAVA之前开始使用的设备ID。
- 每个ECU搜索他们的MTD数组,在该数组中的每个节点的的原始ID字段中寻找他们的设备ID,
- 当找到其当前启动设备ID时,ECU就是知道当前该节点引用自己。
与此同时,ECU还能够通过MTD数组找到MTD数组节点的原始ID下的其余ECU的设备ID。当ECU在MTD数组中的某个节点中找到了某个ECU的ID时,ECU现在知道该节点引用了那个特定的ECU。该方法将ECU和pre-DAVA设备ID信息与新的MTD阵列配对,使用MTD阵列来处理发送给其他ECU的数据消息。
3.2 操作阶段过程
验证源ID如果消息到达源ID,不是“活跃”DA V MTD数组,消息显然是延迟或被恶意节点重播。当这样的消息到达一个节点时,该节点拒绝该消息,并且不执行任何操作。如果消息来自具有活动源ID的节点(图3中的列3),则接受该消息进行进一步处理。接下来是进行更新操作阶段,但是DAVA提供了两种不同的方案来结束操作阶段,进入更新阶段。
- 方案一:每次发送消息后就进行更新ID,利用一次性使用ID可以提供最大程度的安全性和对重放攻击的防御,因为攻击者从来没有机会在总线上重用设备ID来发送他/她自己的数据消息,尽管有更高的处理成本和开销。
- 方案二:自定义一个数值,是特定的ECU发送消息的次数之后再更新ID,这种方式对于防御重放攻击能力略有降低。
3.3 更新阶段过程
更新阶段从发送最后一条消息的ECU开始,在总线上发送一条消息,告诉所有ECU它的设备ID现在无效。总线上的每个ECU,包括它自己,都接收到这条消息。当ECU收到这个无效消息时,它会在MTD数组中找到无效ID的位置。当ECU找到位置时,它考虑节点ID的上下边界,并在这些边界之间随机生成一个新的设备ID。随机生成过程使用初始输入中提供的种子,以便所有ECU创建相同的设备ID。 更新阶段和操作阶段之间的交替过程将继续进行,直到CANbus不再使用为止。
图6 一个ECU的MTD阵列使用一个ECU的上下边界随机生成一个新的设备ID
本文中的图截取于原论文中 :
Dynamic Address Validation Array (DAVA): A Moving Target Defense Protocol for CANBus