您的位置  > 互联网

工程师破解家中现代汽车信息娱乐系统的过程与方法

今年5月至6月,这位软件工程师连续发表了四篇博客,记录了他在家中破解现代汽车信息娱乐系统的过程和方法。 最关键的一步是获取现代汽车公司用来管理软件的私钥。 这本来是不可能的,但他一时兴起,去搜索,居然找到了私钥,然后成功破解了他的车。

故事始于去年夏天工程师购买了一辆新的现代汽车 (2021 Ioniq SEL)。 这是一款混合动力汽车,支持 Auto或Apple,具有无线充电、加热座椅和天窗。 我特别喜欢该车的车载信息娱乐(IVI)系统。 我发现菜单动画很流畅,这表明其上运行的软件不那么臃肿,不会对 CPU/GPU 造成压力。 程序员的本性让他想要深入研究,尝试破解系统,获取root权限,添加自己写的软件。

破解的第一步是弄清楚系统是什么以及之前是否有人破解过它。 经过研究,我发现这个IVI系统有两个版本,一个是基于系统导航的,另一个是基于Linux的。 前者只需通过项目菜单安装自己的APK即可破解,而后者尚未破解,可以调整为工程模式(相当于开发者的诊断调试模式)。 只要进入IVI系统的软件更新界面,快速按左侧更新按钮10次,然后按右侧按钮一次即可进入工程模式。 进入后,他通过网上找到的教程找到了进入工程模式的密码。

进入工程模式后,您可以看到大量的诊断、调试数据和隐藏的设置。 USB复制以及ISV设置中的“ADB TCP”选项和“软件测试工具”选项似乎是突破口。 经过一番尝试,我决定直接获取固件更新包()然后解压分析。 然而,虽然我获得了固件压缩包,但解压时却遇到了麻烦——需要密码。 无论你使用什么密码破解工具,都无法破解。 这在日常安全研究中其实很常见。

无奈之下,我分析了压缩包中的文件,并根据关键字在网上进行了搜索,但并没有太多收获。 然而,在现代汽车的更新网站上发现了一个相当特殊的更新程序。 下载后,有一组文件与固件压缩包中的一个程序名称相匹配。 然后使用ZIP解压软件对文件CRC进行校验,在一对匹配的文件中找到了明文。 最后,经过一系列的解密、编程等操作,我们终于成功从加密固件ZIP包中提取出所有文件,然后开始逆向工程。 至此,破解IVI系统已经到了关键的十字路口。

在分析固件更新文件时,我们发现了大量带有“enc_”前缀的文件,这些文件都是加密的。 如果无法读取这些文件,就无法理解系统更新过程。 因为读取加密文件,你只能再次查看一些之前获得的信息,其中包括从Mobis网站下载的开源代码。 这一看,就找到了关键信息。 在浏览代码时,他搜索了所有 shell 脚本文件,并发现了 .sh 文件,该文件是用于创建系统更新 ZIP 文件的脚本。 系统更新所需的zip密码、加密方法、AES对称密码块链(CBC)加密密钥以及用于加密固件映像的IV(初始化向量)值都清楚地写在脚本中。 不过,脚本中也提到了一些私钥是使用RSA算法加密的,这些密钥并未包含在源代码中。

我在上搜索了脚本中的[AES]加密密钥,发现这个密钥实际上是NIST发布的SP800-38A文档中列出的第一个AES 128位CBC示例密钥。 这实在是太离谱了。

首先,在加密领域,CBC加密方式使用较少,而且使用填充加密的AES CBC加密方式也不是那么安全。 其次,这是 NIST 公共文档中发布的第一个示例。 即使使用,最多也只能用于测试,但显然现代公司的开发者直接使用公开文档中的密钥作为自己产品机密信息的加密密钥……这种行为与使用“ 12345”作为开机密码。 将其粘贴在计算机上的便利贴上并没有太大不同。 你认为其他人不会读它,但如果他们想看,他们可以在几分钟内打开你的计算机。

最后用这个密钥解密了其中一个压缩包,然后成功从加密的固件镜像文件中提取出更多文件,并找到了处理IVI系统更新的软件,同时也找到了更新过程所需的RSA公钥。 钥匙。 搜索方法已经过尝试和测试。 他再次用已知的公钥片段进行查找,发现这是公开教程中给出的另一个例子:RSA & with in C()。 本教程中演示的项目在源代码中附带了此公钥和相应的 RSA 私钥。 换句话说,现代汽车公司使用了本公开教程中所示的公钥和私钥对,并将公钥放入产品源代码中。 所以如果你用公钥搜索,你就可以找到私钥。

解密所需的所有密钥收集完毕后,只需等待与您的车型对应的固件更新即可开始操作。 得等到2022年4月,他已经通过.sh脚本了解了加密固件更新流程。 相应型号的固件更新后,他创建了自己的固件版本,并创建了两个后门。 最后,自制固件更新包准备好后,他通过他第一次发现的USB拷贝功能将自制更新包安装到了IVI系统中,并成功重启了系统。 他能够通过后门访问和控制IVI系统,并添加自制程序。 大约一年后,工程师终于随心所欲地控制了他汽车的信息娱乐系统。

和其他破解一样,这种探索是基于极客的本质,需要一定的技术基础。 不同之处在于解密密钥是直接从 检索的。 作为车企的研发人员,直接使用网上公开教程的例子作为真实产品的私钥,确实奠定了安全基础……随着技术发展越来越复杂,人们所犯的错误似乎变得更加劣等。 。 这也验证了电影《我是谁》 引用《没有绝对安全的系统》:天赋是网络世界最大的bug……

详细流程、方法和技术细节可以参考博客: