车联网安全入门 Part3

汽车安全 2年前 (2021) admin
810 0 0

     

车联网安全入门  Part3
欢迎回来

车联网安全入门  Part3

    相信你已经阅读了之前的文章,在那里我们讨论了“汽车安全介绍”和“汽车攻击面”。在这篇文章中,我们将研究车辆中最著名和最广泛的协议之一,即 CAN 总线协议,以及需要哪些 CAN 总线协议。

车联网安全入门  Part3
介绍

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

最先进的电动汽车公司之一特斯拉收集了大量的传感器数据,并使用 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)。

车联网安全入门  Part3
架构概览

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

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

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

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

  • 车联网安全入门  Part3


车联网安全入门  Part3
CAN数据包结构

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

车联网安全入门  Part3
  • SOF – 帧开始,“显性 0”通知其他节点一个 CAN 节点打算通话。

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

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

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

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

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

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

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

车联网安全入门  Part3
网络仲裁

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

车联网安全入门  Part3车联网安全入门  Part3

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

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

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

车联网安全入门  Part3
CAN总线安全

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

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



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

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

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

车联网安全入门  Part3


CAN 总线过时了吗?

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

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

车联网安全入门  Part3


结论

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

车联网安全入门  Part3车联网安全入门  Part3

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

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

车联网安全入门  Part3

FOCUS ON US
关注我们,内容持续更新中
车联网安全入门  Part3

车联网安全入门  Part3

车联网安全入门  Part3

识别二维码关注我们

微信公众号:IOTsec Zone

官网地址:

www.iotsec-zone.com

原文始发于微信公众号(IOTsec Zone):车联网安全入门 Part3

版权声明:admin 发表于 2021年12月6日 上午7:07。
转载请注明:车联网安全入门 Part3 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...