CAN FD安全通信

来源:互联网 发布:it维保服务 编辑:程序博客网 时间:2024/05/16 10:00


目前汽车网络中对数据的加密传输还不常见。Vector已经构想了一种通过CAN总线的安全通信,目的是对消息加以认证以及防止重放攻击。

如今的汽车网络中,大多数传输的数据没有经过特别的安全措施。正因为如此,人们可以直接在总线上读出数据的具体值,甚至将其发送到总线上。加密的总线通讯不仅保证该消息只会被授权的节点解析,至少一点,总线加密机制会大大增加破解和篡改总线消息的难度。

关于篡改车辆的报道经常见诸媒体,这提出了一个问题:车载总线上的信息是否真的会受到黑客操控?一个被操控的设备是否可以远程控制车辆的行为?采取什么样的手段可以防止此类操控事件的发生?

如今汽车是高度复杂的系统,其中传感器、执行器不断地向总线上传输信息。在大多数情况下,消息都是以明文的方式传输。即使有可能进行风险分析,这种分析也有局限性。接收者事实上不能区分信息是由规定的发送节点发出,或是别的什么节点发出的,换句话说,无法认证一个消息。总线消息同时可以随意获取,因此对于总线信息的分析可以确定信号的内容。消息的传输既不保密又没有认证。

1加密消息的传输和定时

目前Vector正在着手解决这个问题。他们的任务是开发一个通过CAN总线的安全通信,并可以继承到Autosar-3.x基本软件中。设计目标是消息认证和防止重放攻击。更进一步的目标是建立一个无法被监听的传输。

对于加密标准,密码学专家们采用了AES算法。从密码学的角度看,AES是安全的。它包括对称分块加密,每块长度为128位。它生成的密文长度为16字节的整数倍,然后发送者将其发送给接受者。另外的一个优势是,很多微控制器已经有AES的加密模块,可以进行快速硬件加密。

由于一帧CAN报文只有最多8个字节,解决方法是采用ISO传输层协议(TP),该协议已经包括在通信协议栈中。为了减少配置,减少上层协议,采用了11的单向传输。

在对称加密下,发送者和接受者拥有相同的密钥。ECU中的软件模块可以进行密钥的动态分配,因此OEM或者用户可以自由选取。在分配密钥时,需要更高层的方法(比如非对称Diffi-Halman密钥交换)或者在最后一行程序进行静态分配。当ECU被替换时,需要使用和车辆相关的key,新ECU必须建立一套认证的方法,以保证key在所有条件下都能做到保密。

防止重放攻击

在上述配置下已经可以加密传输消息,然而保存总线报文并在以后进行重放攻击仍然可以实现。这是因为接收方无法确定发送方是否真的在这个时刻发送了消息。为了防止重放攻击,在通信的一开始,接受者通过ID key生成一串随机数,发送给发送节点。发送节点每次都将该随机数值增加1,并附在消息尾部。当接收节点收到消息时,接收者检查该消息是否和自己发出的相等,如果相同,则继续处理;如果不同,则拒绝该消息。为了容许一定的报文丢失,接收节点允许接收稍微高一点的值。这意味着发送的消息中,计数器一直在变化,及时信号内容保持不变。如图1

        基于ID key的宽度和消息的发送频率,IDkey可能达到最大值需要归0,导致了重复的ID key传输,为了避免这种情况,ID key只针对特定的时间有效。当规定时效超过时,接受者必须生成一个新的随机值,将其发送给发送节点。当收到新的ID key后,发送者马上发送消息。这意味着接收者可以初始化消息的接收,如果收到的ID key和内部的不相符合的话,这样减少了通信延时(?)。虽然发送节点接收并采纳新的ID key需要时间T,为了避免总线超负荷,收到新的ID key后并不是马上重新发送加密消息。为了使该通信协议更加健壮,接收方使用定时器T来测量发送方响应新的ID key的时间。如果没有从发送方那里得到应答信息,接收方生成一个新的ID key并重新发送。该机制可以检测发送节点的故障,并缩短重新发送的时间。它同时避免了在非易失性储存中保存ID key

避免分段数据传输

        使用ISO 15765传输层协议分段传输消息有一个显著的缺点:传输时间是不断增加的,并且这种方法被限制在11通信中,因为ISO-15765很难被应用在多个节点通信。CAN-FD则可以即时传送整个加密后的消息给多个接受者。每个节点需要相同的对称密钥来解密消息。这里增加ID key的两个变量,用于认证消息:所有节点对同一个值达成一致,或者所有的接收者发送它们自己的ID key给发送者。发送者管理所有的计数器值,并将它们附加到消息中。计数器位于报文中的起始位置必须单独告诉每一个接收者。

2 CANFD网络中多节点通信IDKey的使用

        2指出了多个节点的数据传输。第一,接收者发送它们的ID key随机数给发送者。发送者每次将ID key增加后插入消息中加密。不同ID key的位置按照事先的定义。接收者收到消息后检查自己的ID key然后决定是否接收信息。

        然而,随着接收节点数量的增加,有效的数据存放空间减少。同时可用的数据存放空间还和ID key的宽度有关。通信定时机制如图1中所示,所不同的只是发送节点接收ID Key的方式:发送节点需要等待一段时间T等待所有接收节点发送自己的ID Key完毕。在只有一个接收节点的情况下,T=0,这算是一种特殊情况。

        VectorCANoe环境下应用了该项协议。CANoe可以用来做开发、仿真和ECU网络测试,除了可以测试该通信协议对于重放攻击的健壮性,另外一个研究是针对帧丢失、失效、接收节点和发送节点的掉线重新连接,以及定时错误和突然的攻击。在所有的这些攻击中,传输系统提供了稳定的数据传输。

总结和展望

3加密传输的软件组件

CANFD中,几乎毫不费力就能实现多个节点的加密数据传输,这个方法同时也可以适配现存的Autosar环境。该机制的一个明显的缺点是数据在应用层需要打包和解包(如图3所示),这就意味着RTE的模型特性对于个人信号无法使用。对于该种系统的典型攻击包括:对于弱Id key随机数的攻击(在开始通信时)或者窃取对称密钥。

        在信息安全领域,普遍认为AES-128在近几年是安全的,有许多硬件支持AES-128加密。以上所述的这种机制让针对CANFD的攻击更加困难,要想远程操控如果不具备“内部知识”几乎不可能。上述机制已经被量产使用多年,该机制降低了车辆的保险费。因此,安全机制不仅保护数据,它甚至能够给终端用户提供价格优势。

        在不久的未来,譬如Car2X的通讯、WLAN、蓝牙、互联网将进入汽车,这将需要更高的安全等级。这些接入必须针对各种攻击安全,不能提供任何可供远程操控的漏洞。这对于驾驶辅助系统尤其重要,因为这些系统依赖于其他交通实体或者基础设施提供的消息。
1 0
原创粉丝点击