DEFCON 27 会议。你的车就是我的车。 第1部分

演讲内容简介:

对于我们许多人来说,汽车是我们购买过的最昂贵的商品之一。在万物互联的世界里,我们很自然地想要远程控制我们的汽车:提醒我们把车停在哪里,检查以确保我们忘记锁车门,或者远程启动发动机以预热或冷却车内取决于一年中的时间。

有许多制造商提供可选的报警系统,以提供这种便利和安心。但是,我们在多大程度上可以信任这些系统的提供商来保护我们的汽车在数字领域的访问呢?在本次演讲中,Jmaxxz 将谈论他在研究其中一个系统时的发现。

Jmaxxz 因其在 August Smart Lock 智能家居系统方面的工作而闻名(在 DEFCON 24“Backdooring The Frontdoor”上发表演讲)。近年来,他的重点是物联网设备。他参加了DEFCON 24和DEFCON 25的“物联网村零日”版块,最终决定是时候探索汽车二级市场的一个产品——远程启动器(以下简称RS)。

DEFCON 27 会议。你的车就是我的车。 第1部分

我的名字是 J-Max,我的职业是程序员,职业是黑客。我参与了与锁相关的所有事情,在整个对话中,您会听到许多仅表达我的观点的言论,与我过去、现在和未来雇主的观点无关。正如您可能理解的那样,我们将讨论汽车,即远程启动器和警报系统。让我们从一些背景开始,这在这种情况下很重要,因为许多人认为此类系统是不必要的奢侈品。
我住的地方很冷,我的朋友患有雷诺氏综合症。寒冷会导致手部血管痉挛,流向手指的血液急剧减少,出现冻伤迹象,包括组织坏死。幻灯片显示了它通常的样子。

DEFCON 27 会议。你的车就是我的车。 第1部分

去年十一月,我还没决定送她什么圣诞礼物。因此,她从机场回到家时很沮丧,因为她的车在回家的路上从未预热过。那一刻,我意识到我应该给她一个远程发动机启动系统,并开始寻找最佳选择。事实证明,远程启动器市场相当大,许多制造商没有提供足够的产品信息。

他们不会告诉您如何安装系统或使用什么工具对设备进行编程。这对我来说是一个问题,因为这是我的车,我的远程启动,我需要访问这些工具。于是我又进行了一些搜索,找到了一家来自加拿大的公司 Fortin,该公司生产此类发酵剂,并愿意提供所有必要的文件。我选定了这个产品,并开始寻找合适的遥控器。事实是,如果您使用带有远程启动器的标准遥控器,那么它的动作范围将被限制在标准遥控器的范围内。售后市场提供的遥控器可在半英里到一英里半的范围内运行。根据消费者的评论,这是一个宣传噱头,因为实际上距离要短得多。这就是问题所在,因为我的朋友一下飞机就需要在机场停车场启动她的汽车发动机,大约有半英里。

DEFCON 27 会议。你的车就是我的车。 第1部分

因此,如果她能拿出手机,打开应用程序,然后按“开始”,那就太好了。我发现了一个名为 MyCar 的第三方产品,它与 Fortin 启动器完全兼容。这是一个带有 SIM 卡和 GPS 接收器的小型钥匙扣,您可以将其放入汽车中并将其连接到远程启动器。然后,使用移动应用程序,您可以远程启动发动机、开锁等。

DEFCON 27 会议。你的车就是我的车。 第1部分

我觉得这样就太好了:飞机一落地,我的朋友就可以启动引擎,等她上车时,机舱已经暖和了。

那么让我们来谈谈远程启动器的工作原理。为此,您首先需要了解汽车发动机是如何启动的。直到大约九十年代中期,汽车启动器还是钥匙开关组合中的传统机械锁。你必须插入钥匙并转动它才能完成电路。随后,标有“immobilizer”字样的锁在美国开始流行。听起来很复杂,其实就是一把电子锁。因此,您有一把机械锁,它是电子锁的钥匙,而电子锁又是一个应答器,包含一些可以读取的信息。在您打开电子锁之前,您的汽车将无法启动。在幻灯片的右侧,您可以看到 2 个钥匙:左侧一把用于防盗器,右侧一把用于常规点火开关。它只需操作锁的机械部件,而左钥匙则解锁电子锁,从而启动汽车的发动机。

DEFCON 27 会议。你的车就是我的车。 第1部分

我为什么要告诉你这个?远程启动通过防盗器进行。在下一张幻灯片中,您将看到将 Fortin EVO One 设备连接到防盗器的示意图 - 在左下角,您会看到一对指定为 IMO 的触点。在该图的右上角,您可以看到两条线:CAN LOW 和 CAN HIGH。这些是用于连接汽车 CAN 总线的触点。远程启动器连接到CAN总线的原因是为了降低安装成本,因为安装过程中使用的连接较少。如果远程启动器可以从CAN总线读取数据或通过CAN总线发送命令,则可以减少远程发动机启动系统的安装时间。

该图的左上角有一大堆与控制或读取机器信息相关的 GPIO。例如,您希望按下锁定按钮时灯光闪烁或喇叭鸣响。类似这样的事情可以使用这些 GPIO 进行控制。在图的左下角,您可以看到一个大而笨重的连接器 - 这是绕过机械锁的接口。也就是说,您不需要将钥匙插入并转动点火装置,因为该接口允许远程启动系统继电器直接与电锁通信。

DEFCON 27 会议。你的车就是我的车。 第1部分

以下幻灯片显示了安装远程启动器的各个阶段。主要包括拆卸转向柱盖、安装连接DS单元。它看起来很可怕,但很容易做到。

DEFCON 27 会议。你的车就是我的车。 第1部分

遥控器本身连接到 Fortin 所说的数据链路。该系统使用专有的物理数据传输协议 UART——一种以 9600 波特的速度交换数据的通用异步发送器。 Fortin 远程启动器只需通过 UART 总线连接到您在幻灯片上看到的两个遥控器。

DEFCON 27 会议。你的车就是我的车。 第1部分

安装了 DS 后,我想到了这些设备会对汽车的安全性产生怎样的影响。显然,DS 必须绕过防盗装置,那么就盗窃或拦截汽车控制的可能性而言,这有多安全?这不仅适用于蜂窝网络上的数据传输,也适用于远程启动信号本身。因此,我开始在互联网上搜索有关所使用的数据传输协议的制造商信息,最后在论坛上有人写道 Fortin 拒绝提供此协议。原因之一是:“我们不会传播此类信息,因为 EVO 不是业余爱好者的玩具,它是供专业人士使用的。

DEFCON 27 会议。你的车就是我的车。 第1部分

作为一名专业人士,我决定在桌面上构建自己的机器。我找到了第二个 EVO 系统单元,组装了代表汽车的电路板,添加了模拟点火的开关、制动踏板的按钮以及显示各种状态的一大堆 LED。

DEFCON 27 会议。你的车就是我的车。 第1部分

将所有这些放在一起,我连接了 FTI 数据链路监控设备并开始收集这些数据。乍一看,它看起来有点像幻灯片,但并不完全清楚这里发生了什么。但如果你仔细观察的话,你可以说这里肯定有某种结构。

DEFCON 27 会议。你的车就是我的车。 第1部分

请注意,每当我按下遥控器上的按钮时,天线发送到 DS 的消息始终以 0C 开头并以 0D 结尾。因此,如果我们将得到的结果相除,假设 0C 是开始,0D 是结束,我们最终会得到这样的结果。

DEFCON 27 会议。你的车就是我的车。 第1部分

这里已经有某种清晰可见的结构,所以你可以弄清楚发生了什么。通过花时间跟踪按下特定按钮后出现的消息,我能够创建一个命令表,每个命令对应一个特定操作。也就是说,当你按下遥控器上的按钮时,天线会向远程启动模块发送一条命令,如下所示。

DEFCON 27 会议。你的车就是我的车。 第1部分

这是典型的团队结构。

DEFCON 27 会议。你的车就是我的车。 第1部分

当您按下遥控器上的按钮时,天线会向远程启动器发送这样的命令。它是由字节0C唤醒的,后面是2个字节,我认为这代表了传输的方向。这很有趣,因为UART已经有了信号方向,所以我将这些字节标记为“垃圾”,只需将它们视为常量即可。接下来是一个字节,指示用户想要执行的命令。这可能是锁门或打开门、关闭警报等。一般来说,您想要远程执行的所有操作都与此命令相关联。 FF FF F1 有效负载是一个地址或标识符,用于标识消息来自的远程天线。如果 DS 单元无法识别该标识符,则该命令将被忽略。如果 DS 接受标识符,则开始执行多步骤程序,其中包括检查点火开关中是否存在钥匙、打开或关闭发动机、踩下制动踏板等。其实这个过程没有太大的意义,只是设备此时正在学习ID。

消息末尾有一个带有校验和的字节和一个指示命令结束的字节。现在我们了解了该协议的工作原理,那么我们能做些什么呢?我有几个关于这个主题的视频。不幸的是,由于某种原因,视频没有声音,所以我会告诉你屏幕上发生了什么。仪表板外壳上转向柱的左侧有一个白色盒子,其中包含带有可理解 Fortin 协议的 Particle.IO 固件的电子设备。蓝色尖端的电线是天线。这个东西允许我从车内与远程启动器单元交互,并查看笔记本电脑屏幕上发生的情况。

DEFCON 27 会议。你的车就是我的车。 第1部分

因此,我向汽车发送锁定解锁命令,但它不起作用,因为 DS 不知道该天线。正如我已经提到的,这只是一个UART,其特性是支持所谓的双向通信,通过它您可以远程获取有关汽车状态的信息。例如,如果发动机被物理启动或停止,DS单元将向遥控天线发送相应的消息。在这种情况下,消息将包含该天线的地址。

DEFCON 27 会议。你的车就是我的车。 第1部分

问题是通信是使用 UART 协议进行的,任何连接到 UART 总线的人都可以看到发送给定消息的地址,因此我的固件能够克隆现有天线的地址,我就是这样做的使用适当的命令。

DEFCON 27 会议。你的车就是我的车。 第1部分

要生成消息,您只需打开车门即可。正如您所看到的,DS 向天线发送门已打开的消息,警报立即打开。

DEFCON 27 会议。你的车就是我的车。 第1部分

要关闭警报,我发送“解锁”命令,之后警报声音关闭并且汽车解锁。您必须相信我的话,因为我们无法让该视频有声播放。让我们尝试再次播放视频。

DEFCON 27 会议。你的车就是我的车。 第1部分

嗯,声音出现了(译者注:屏幕上播放着同样有声的视频)。所以,您看到了我如何发送 DS 命令并打开警报,所有这些都不需要钥匙。现在让我们尝试以相同的方式启动汽车;为此,请观看以下视频。

通常,如果您只是输入“start”并尝试启动引擎,则不会起作用。原因是,这是一辆手动变速箱汽车,远程启动系统有针对此类汽车的特殊程序。在这种情况下,您必须在钥匙位于点火开关且发动机正在运转的情况下按下远程启动按钮。然后你可以拿出钥匙,下车,关上车门,之后DS会关闭发动机并锁上车门。这样做是为了防止汽车在行驶时响应远程发动机启动,因为这很危险。然而,这并不是一个完整的安全功能。通过查看 EVO 远程启动器单元很容易证明这一点。您会看到这条黄色环线,旨在与手动变速箱配合使用。如果将其切割,该块可用于带有自动变速箱的汽车。该装置的这种设计使您在将 DS 安装在具有不同类型变速箱的汽车中时无需使用任何特殊设置。

DEFCON 27 会议。你的车就是我的车。 第1部分

所以系统没有响应“开始”命令,所以我要把这个块放回原位,然后剪断这条线来断开连接。现在,如果您重复“启动”命令,就会发出声音信号,并且仪表板上的汽车系统状态指示灯会亮起,就像钥匙插入锁中一样。

DEFCON 27 会议。你的车就是我的车。 第1部分

目前,我们拥有一辆无需钥匙点火即可远程启动的汽车,但 DS 模块并不是我们所需要的全部。正常情况下,你仍然无法开着远程启动的汽车离开,但无论如何我们还是尝试一下吧。

要禁用方向盘锁,您需要将普通钥匙插入点火锁,点火锁没有任何应答器。正如你所看到的,将钥匙移至启动发动机之前的位置就足够了,斯巴鲁翼豹的方向盘开始完全自由地旋转。

但是,如果您没有钥匙,那么当您踩下制动踏板时,汽车就会熄火。绕过这个限制很容易。您需要弄清楚汽车如何告诉远程启动器已踩刹车。您可以在 EVO 模块外壳的后部看到几个彩色端口 - CAN 总线的电缆将连接到此处。汽车远程启动后,只需从 DS 单元上拔下此电缆即可,并且它不会响应踩下制动踏板。由于该单元位于转向柱盖下方,因此我通过笔记本电脑发出“启动”命令,汽车启动,我打开车门,下车并从 EVO 单元上拔下 CAN 总线连接器。正如你所看到的,汽车发动机正在运转,但我们仍然没有任何钥匙点火。

现在,如果您踩下制动踏板,则不会发生任何事情,因为 EVO 不知道它已被踩下。之后,我就可以坐在方向盘后面,踩下刹车,将变速杆移至“驱动”位置,汽车就开始行驶。所有这一切都是在没有任何密钥的情况下完成的。

21:40

DEFCON 27 会议。你的车就是我的车。 第2部分

播放视频

一些广告🙂

感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的内容? 通过下订单或推荐给朋友来支持我们, 面向开发人员的云 VPS,4.99 美元起, 我们为您发明的入门级服务器的独特模拟: VPS (KVM) E5-2697 v3(6 核)10​​4GB DDR480 1GB SSD 19Gbps XNUMX 美元或如何共享服务器的全部真相? (适用于 RAID1 和 RAID10,最多 24 个内核和最多 40GB DDR4)。

Dell R730xd 在阿姆斯特丹的 Equinix Tier IV 数据中心便宜 2 倍? 只有这里 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 电视低至 199 美元 在荷兰! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 美元起! 阅读 如何建设基础设施公司同级使用价值730欧元的Dell R5xd E2650-4 v9000服务器一分钱?

来源: habr.com

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster