车联网安全入门 Part3
2022-09-20 11:11:59   来源: 信睿物联网    评论:0 点击:

  我们知道联网车辆正在转向自主/自动驾驶车辆,其中车辆数据被用于提高行驶效率以及自动驾驶车辆软件的开发。

  最先进的电动汽车公司之一特斯拉收集了大量的传感器数据,并使用 CAN 总线进行内部通信。所有这些进步都是高度可靠的数据,从多个传感器收集。即使是使用 100 个 ECU 的基本汽车也需要一个非常强大且非常高效的通道。

  CAN总线(简称“控制器区域网络”)最初由 Robert Bosch GmbH 于 1983 年开发。ISO 还发布了 CAN 标准,其中 ISO 11898-1 涵盖数据链路层,而 ISO 11898-2 涵盖高速 CAN 的 CAN 物理层。ISO 11898-3 稍后发布,涵盖了低速容错 CAN 的 CAN 物理层。

  CAN 总线是基于消息的协议而不是基于地址的协议;它由双绞线 CAN_High 和 CAN_Low 组成。它应用在有很多的信息共享与高可靠性的环境中。这使得汽车制造商选择 CAN 而不是使用复杂的直接信号线连接到车辆网络中的每个节点 (ECU)。

  

  架构概览

  CAN 总线采用差分信号方法“差分信号是一种使用两个互补信号以电气方式传输信息的方法,该技术将相同的电信号作为一对差分信号发送,每个信号都在自己的导体中。这对导体可以是线路板上的导线或线迹。”

  简而言之,它通过改变两条导线之间的电压来传输数据。这提供了一种可行的数据传输,可以抵抗噪音和干扰。CAN 具有两种逻辑状态;

  显性 - 差分电压将大于最小阈值。此外,显性状态是总线中的逻辑“0”。

  隐性 - 差分电压小于最小阈值。隐性状态由逻辑“1”实现。而且,显性可以驱动隐性。


 

  CAN数据包结构

  为了更多地了解 CAN 总线,让我们来看看最常用的 CAN 2.0A (ISO 11898-2) 框架。

  

  SOF - 帧开始,“显性 0”通知其他节点一个 CAN 节点打算通话。

  ID:ID为帧标识符;较低的 ID 值在网络总线中具有较高的优先级。(CAN 使用非破坏性碰撞避免。)

  RTR:远程传输请求指示一个节点是发送数据还是请求另一个节点的专用数据。

  控制:标识符扩展位 (IDE),它是 11 位的“显性 0”。它还包含 4 位数据长度代码 (DLC),用于指定在特定数据包中传输的数据字节的长度(0 到 8 个字节)。

  数据:该部分包含数据字节/有效载荷,可以提取和解码以获取信息。

  CRC:循环冗余校验用于确保数据流的完整性。

  ACK:表示节点是否已经确认并正确接收到数据。

  EOF:帧结束标志着CAN 帧的结束。

  

  网络仲裁

  CAN总线具有非破坏性的避碰特性,在两个节点同时向网络推送消息的情况下,仲裁ID最小的一个节点会赢得另一个节点继续发送消息,此时另一个节点会等待一段时间后再次发送消息。

  

  最小仲裁ID表示消息的优先级,该优先级由设计师在网络设计时决定,对于自动驾驶汽车来说,消息优先级非常重要,比如障碍物检测消息应该在空调消息之前到达制动系统。CAN总线还采用了位填充技术进行错误检测,提高了检测效率。

  CAN 总线也有两种不同类型的网络高速 CAN 总线,支持高达 1 Mbits/sec 的比特率,它是最常用的一种,也是 CAN FD、CANopen 和 SAE J1939 等协议的基础。低速 CAN 总线(或 ISO 11898-3)是一个容错版本,因为它不考虑单线故障,可以继续通信!

  CAN 总线网络也是一个完全集中的网络,这使得可以灵活地添加新节点并从网络的一个点运行诊断。在传输基本数据方面具有效率和稳健性的完全集中式网络使其可广泛用于不同行业的车辆和工业机械,如重型车队远程信息处理、飞机、制造工厂和医疗设备。

  

  CAN总线安全

  现在我们了解了 CAN 的工作原理,让我们从进攻和防御的角度关注 CAN 的安全方面。

  由于整个网络是集中式的,节点之间相互信任,因此连接到网络的恶意节点将可以访问所有数据流并可能中断数据流。
 

  可用于汽车黑客的所有用具有哪些?

  多亏了开源贡献者,现在出现了一些伟大的开源库,比如can-utils和python-can,我们必须使用它们来编写我们自己的脚本工作。EXPLIot Framework有一些很酷的插件用于读取、写入、模糊CAN总线值,并且Scapy的CAN模块可以读取、写入一个CAN总线。

  除了软件,我们还需要硬件,还有一些开源硬件可用,如 CANbadger、USBtin 和 nano-can,以及来自行业的大量付费硬件等。

  

  CAN 总线过时了吗?

  CAN 总线的最佳替代方案之一是以太网 TCP/IP。它也不能像 CAN 总线那样提供可靠性、出色的错误检测和故障限制能力。

  我们已经进入数据时代,CAN的最大8字节数据传输能力需要改造。因此,工程师想出了多种协议,这些协议是在特定于特定网络架构类型的 CAN 总线上开发的。例如,用于工业机器人的 CANopen、用于更高数据速率(高达 8 Mbits/sec)的 CAN FD、高达 64 字节的有效载荷大小以及通过身份验证提高安全性。

  

  结论

  使用 CAN 总线协议的最大好处是低成本实施、完全集中的网络、极其稳健和高效。

  另一方面,如果我们更多地寻求安全性,它也不足,因为 CAN 总线在设计上并不安全。因此,汽车制造商正在添加不同的网络总线,如 LIN 总线和 CAN FD 总线,从而进一步改进车辆架构。但是,ISO 11898 不会很快消失。

  我们希望这篇文章能让您对 CAN 总线协议有一个高层次的了解。如果您读到这里,您对汽车安全非常感兴趣。这篇文章让您了解汽车架构中广泛使用的 CAN 总线协议。下一篇博文将描述另一种在汽车/车辆中使用最广泛的协议。敬请期待!

相关热词搜索:车联网安全

上一篇:车联网安全入门 Part2
下一篇:车联网安全入门 Part4

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
分享到: 收藏