DEFCON会议27.您的车是我的车。第1部分

业绩简介:

对于我们许多人来说,购车是我们有史以来最昂贵的购买之一。在万物互联的世界中,想远程控制您的汽车是很自然的:根据我们的时间,提醒我们停放汽车的地方,检查是否忘记锁门或远程启动发动机来预热或冷却车内。

有许多制造商提供可选的警报系统,这些警报系统可提供这些便利和安心的环境。但是,我们能在多大程度上信任这些在数字领域保护我们的汽车访问权限的系统的供应商?在此报告中,Jmaxxz将讨论他研究这些系统之一时发现的内容。

Jmaxxz以他在August Smart Lock智能家居系统上的工作而闻名(DEFCON 24报告,“从后门偷窃”-“将后门偷窃”)。近年来,他的重点一直放在物联网设备上。他参加了DEFCON 24和DEFCON 25的“物联网村庄零日活动”部分,并最终决定是时候研究辅助汽车市场的产品-远程启动器(以下简称DS)。



因此,我的名字叫J-Max,我是专业的程序员,是职业的黑客。我所做的一切与城堡有关,在整个对话中,您会听到许多陈述,这些陈述专门表达了我的观点,与我过去,现在和未来雇主的观点无关。如您所知,这将与汽车有关,即与远程启动器和警报系统有关。让我们从背景开始,在这种情况下背景很重要,因为许多人认为这样的系统是不必要的奢侈。
所以,我住的地方很冷,我的朋友患有一种叫雷诺氏综合症的疾病。从寒冷开始,发生手部血管的痉挛,流向手指的血液急剧减少,有冻伤的迹象,直至组织坏死。幻灯片显示了它通常的外观。



去年11月,我仍然没有决定圣诞节送给她什么。因此她从机场返回家中感到沮丧,因为她的车在回家的路上没有热身。这时,我意识到我会给她一个远程引擎启动系统,并开始寻找最佳选择。事实证明,远程启动器的市场相当广泛,许多制造商没有提供有关其产品的足够信息。

他们没有说明如何安装系统以及使用哪些工具对设备进行编程。这对我来说是个问题,因为这是我的车,是我的远程启动工具,而且我必须可以使用这些工具。因此,我进行了更多搜索,找到了加拿大的Fortin公司,该公司生产这种起动机,并愿意提供所有必要的文档。我选择了此产品,并着手寻找合适的遥控器。事实是,如果您将标准遥控器与远程启动器一起使用,则其作用范围将受限于标准遥控器的范围。在二级市场上,提供了可在半英里到半英里的距离内操作的遥控器。根据消费者的评论,这是一个广告举动,因为实际上距离要小得多。这就是问题因为我的朋友一旦下飞机,就需要启动停在机场停车场中的汽车的引擎,这大约是半英里。



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



我以为这会很棒:飞机降落后,我的女友将能够启动发动机,等她上车时,机舱已经很温暖了。

因此,让我们谈谈远程启动器如何工作。为此,您首先需要了解汽车发动机的启动方式。直到大约九十年代中期,汽车启动器才是钥匙开关连接中的传统机械锁。您必须插入钥匙并转动它以关闭电路。然后,在美国,标有“防盗锁”的锁开始流行。听起来很复杂,但这只是一个电子锁。因此,您有一个机械锁,这是电子锁的钥匙,而电子锁又是一个应答器,其中包含一些可以读取的信息。并且,除非您打开电子锁,否则您的汽车将无法启动。在幻灯片的右侧,您会看到2个按键:左侧为防盗锁,右侧为通常的点火开关。它只需激活锁的机械组件,而向左键则解锁电子锁,从而启动汽车的发动机。



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

在该图的左上方,有一堆与管理或读取机器信息有关的GPIO。例如,当您按下锁定按钮时,您希望前灯闪烁或发出哔哔声。可以使用这些GPIO来控制这些事情。在电路的左下方,您会看到一个笨拙的大型连接器-该接口可绕过机械锁。也就是说,您无需将钥匙插入点火开关中,因为此接口可提供远程起动器系统继电器与电锁的直接交互作用。



以下幻灯片显示了安装远程启动器的步骤。基本上,这包括卸下转向柱盖,安装和连接DS单元。它看起来很吓人,但很简单。



遥控器本身连接到Fortin所谓的数据通道。该系统使用专有的物理数据传输协议UART-通用异步发送器,以9600波特的速度交换数据。 Fortin Remote Starter只需通过UART总线连接到幻灯片上看到的两个遥控器。



安装了DS之后,我考虑了此类设备如何影响汽车安全。显然,DS应该绕过防盗锁,那么就盗窃或拦截机器控制的可能性而言,DS有多安全?这不仅适用于蜂窝网络上的数据传输,而且适用于远程启动信号本身。因此,我开始在Internet上搜索制造商的信息,以查找Internet上使用的数据传输协议,然后进入论坛,人们写道Fortin拒绝提供此协议。原因之一:“我们不传播此类信息,因为EVO并不是球迷的玩具,因此仅供专业人士使用。



由于有些专业,我决定在台式机上构建自己的计算机。我得到了第二个EVO系统单元,组装了电路板(这是一辆汽车),增加了用于模拟点火的开关,用于制动踏板的按钮以及用于显示各种状态的一大堆LED。



结合所有这些,我连接了FTI设备以监视数据通道并开始收集此数据。乍一看,它看起来像幻灯片上显示的那样,并且目前还不清楚。但是仔细看,我们可以说这里肯定有某种结构。



请注意,每当我按遥控器上的一个按钮时,天线发送到我的DS的消息始终始于0C,结束于0D。因此,如果我们简单地将得到的结果分开,假设0C是开始而0D是结束,那么我们最终会得到这样的结果。



在这里已经清晰可见一些结构,因此您可以找出正在发生的情况。花时间跟踪按下某个按钮后出现的消息后,我能够编译一个命令表,每个命令对应一个特定的动作。也就是说,当您按遥控器上的按钮时,天线会向远程启动模块发送命令,如下所示。



这就是典型的团队结构。



当您按遥控器上的按钮时,天线会将这样的命令发送到遥控器。它唤醒字节0C,然后唤醒2个字节,我认为这表示传输方向。这很有趣,因为UART已经具有信号发送/接收方向,所以我将这些字节标记为“垃圾”,只需将它们视为常数即可。这之后是一个字节,指示用户要执行的命令。这可以是门锁或门的打开,禁用警报等。通常,您要远程执行的所有操作都与此命令相关。 FF有效载荷FF F1是地址或标识符,用于标识消息来自的远程天线。如果DS单元无法识别标识符,则忽略该命令。如果DS接受标识符,一个多阶段程序开始,包括检查点火钥匙,打开或关闭发动机,踩下制动踏板等。实际上,此过程并不重要,只是此时设备正在研究ID。

消息的末尾是带有校验和的字节,以及指示命令结束的字节。现在我们了解了协议的工作原理,我们该怎么做?我有一些关于该主题的视频。不幸的是,视频由于某种原因没有声音,所以我将告诉您屏幕上正在发生的事情。仪表板盖上转向柱的左侧是一个白色框,其中包含带有粒子的电子设备,该固件了解Fortin协议。一根蓝色的电线是天线。这个东西使我可以从汽车驾驶室与远程启动器进行交互,并在笔记本电脑的屏幕上看到发生了什么。



因此,我将lock unlock命令发送给了汽车,但是它不起作用,因为DS不了解这条天线。正如我已经提到的,这只是UART,其属性是所谓的双向通信的支持,因此您可以远程接收有关汽车状态的信息。例如,如果引擎实际启动或停止,则DS单元将向遥控天线发送相应的消息。在这种情况下,该消息将包含该天线本身的地址。



问题在于通信是通过UART协议进行的,连接到UART总线的任何人都可以看到发送此消息的地址,因此在我的固件中可以克隆现有天线的地址,这可以通过相应的命令完成。



要生成消息,只需打开车门。如您所见,DS会向天线发送一条消息,告知门已打开,警报立即打开。



要关闭警报,我发送“解锁”命令,此后警报声音关闭并且汽车解锁。您必须信守诺言,因为我们无法以声音播放此视频。让我们尝试再次播放视频。



好吧,声音出现了(大约是翻译器:在屏幕上播放了带有配乐的相同视频)。因此,您看到了我如何发送DS命令并打开警报,而所有这些都没有按键。现在,让我们尝试以相同的方式启动汽车,为此,我们将看到以下视频。

通常,仅键入“启动”命令并尝试启动引擎将不起作用。原因是这是一辆带有手动变速箱的汽车,而对于这类汽车,远程启动器系统具有特殊的程序。在这种情况下,您必须在钥匙处于点火状态且发动机启动时按下遥控器的启动按钮。然后,您可以拔出钥匙,下车,关闭车门,然后DS将关闭发动机并锁上车门。这样做是为了避免汽车在行驶过程中对远程启动的引擎产生反应,因为这很危险。但是,这不是完整的安全功能。如果您查看远程启动器的EVO单元,则证明这一点非常简单。您会看到这条黄色的线呈环状,旨在与机械传动配合使用。如果您对其进行修整,则该单元可用于具有自动变速箱的汽车。本装置的这种设计使您在将DS安装在具有不同类型变速箱的汽车中时无需应用任何特殊设置。



因此,系统没有响应“开始”命令,因此我将把此块放回原处,并切断该电线以断开连接。现在,如果您重复“启动”命令,则声音会响起,并且车辆系统状态指示灯会在仪表板上亮起,就像钥匙插入锁中时一样。



目前,我们有一辆无需点火就可以遥控启动的汽车,但是DS模块并不是我们所需要的。在正常情况下,您仍然无法远程离开车辆,但是,让我们尝试同样的方法。

要禁用方向盘锁,必须将常规钥匙插入没有应答器的点火开关中。如您所见,只需将钥匙切换到发动机启动之前的位置,斯巴鲁翼豹方向盘便会开始完全自由旋转。

但是,如果没有任何键,则在踩下制动踏板时,汽车将失速。解决这个限制很容易。找出汽车如何告知远程启动器已刹车。您会在EVO模块盒的背面看到多个彩色端口-来自CAN总线的电缆将在此处连接。在汽车远程启动后,只需将电缆从DS单元中拉出就足够了,并且它不会响应踩下制动踏板的情况。由于此装置位于转向柱盖下方,因此我通过笔记本电脑发出“启动”命令,汽车启动,我打开车门,下车,然后从EVO块中卸下CAN总线连接器。如您所见,汽车的发动机正在运转,而点火开关仍然没有任何钥匙。

现在,如果您踩下制动踏板,则什么也不会发生,因为EVO不知道已踩下了它。之后,我可以驶入方向盘,按下制动器,将变速杆旋钮置于“ Drive”位置,汽车将行驶。所有这些都是毫无头绪的。

21:40

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


一点广告:)


感谢您与我们在一起。你喜欢我们的文章吗?想看更多有趣的资料吗?通过下订单或向您的朋友推荐给开发人员的基于云的VPS,最低价格为4.99美元这是我们为您发明的入门级服务器 独特类似物:关于VPS(KVM)E5-2697 v3(6核)的全部真相10GB DDR4 480GB SSD 1Gbps从$ 19还是如何划分服务器?(RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

阿姆斯特丹的Equinix Tier IV数据中心的戴尔R730xd便宜2倍吗?在荷兰,我们有2台Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100电视戴尔R420-2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB-$ 99起!阅读有关如何构建基础设施大厦的信息。使用Dell R730xd E5-2650 v4服务器花费一欧元9000欧元的c类?

All Articles