0

软件开发人员用谷歌搜索突破现代汽车安全防线

 1 year ago
source link: https://www.51cto.com/article/716735.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

软件开发人员用谷歌搜索突破现代汽车安全防线

作者:布加迪 2022-08-19 12:05:21
一位开发人员近日表示,在发现这款汽车的制造商使用不仅公之于众,还从编程示例照搬的密钥来保护系统后,他能够在其汽车信息娱乐硬件上运行自己编写的软件。
f1752ce920c2f8d9e43359d3d1d0f55e75c21b.png

一位开发人员近日表示,在发现这款汽车的制造商使用不仅公之于众,还从编程示例照搬的密钥来保护系统后,他能够在其汽车信息娱乐硬件上运行自己编写的软件。

明尼苏达州明尼阿波利斯市的软件工程师Daniel Feldman想改动其2021年款现代艾尼氪(Ioniq)SEL上的车载信息娱乐(IVI)系统。为此,他必须弄清楚如何连接到该系统,并绕过安全防线。

Feldman设法弄清楚了如何定制 IVI的D-Audio2系统(由现代汽车公司的移动平台子公司现代摩比斯制造)的固件更新版,并让IVI接受定制的更新版,随后找到了一个让人意料不到的法子:通过谷歌搜索。

IVI接受受密码保护的ZIP存档这种形式的固件更新版。Feldman从现代官网下载了更新ZIP,绕过了该存档文件的简单密码保护机制,访问其内容,内容包括IVI各个部分的加密固件映像。

随后,他的目标变成了创建自己的固件映像,并在ZIP内以汽车会接受、安装和运行的方式对其加密,从而使他能够通过自己提供的代码控制硬件。

幸运的是,Feldman在摩比斯的官网上找到了Linux安装脚本,该脚本创建了一个合适的ZIP文件,用于执行系统更新。

该脚本包含系统更新存档文件必不可少的ZIP密码,以及AES对称密码块链(CBC)加密密钥(单个密钥,而不是RSA非对称公钥/私钥对)和用来加密固件映像的IV(初始化向量)值。

该信息还可以用于解密映像。

这意味着他可以使用AES密钥来解密固件映像,修改它们,然后使用脚本用AES密钥重新加密映像,并将其全部打包到受密码保护的ZIP中,供现代IVI更新系统获取。

但这不会那么容易:至少,所提供数据的一些部分需要用RSA私钥进行加密签名,而Feldman没有RSA私钥。更新程序将使用私钥对应的RSA公钥来检查数据是否使用正确的秘密私钥来签名。

因此,他需要找到RSA私钥才能执行下一步。

Feldman在早在5月份的一篇博文中解释道:“该脚本暗示使用的是RSA签名,但遗憾的是,用于签名的密钥不在源代码中。”

他补充道:“后来发现,该脚本中的[AES]加密密钥居然就是NIST文档SP800-38A(https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf)中列出的第一个AES 128位CBC示例密钥。”

顺便插一句,加密界的共识似乎是CBC很难正确使用,而是建议使用其他方法。微软去年警告,使用填充加密(padding)的AES CBC可能并不安全。

微软声称:“微软认为,在不先确保密文完整性就采用可验证填充的情况下,解密使用对称加密的密码块链(CBC)模式加密的数据不再安全,除了非常特殊的情况外。这一判断基于目前已知的密码学研究。”

但是现代公司犯的错不在于错误实现AES CBC,而在于它使用网上发布的另一个密钥作为机密信息。

有了这个对称密钥,Feldman 就能从更新 ZIP内的其中一个加密固件映像文件提取内容。

他在提取的文件中找到了处理IVI更新的软件,一个名为updateAgent的二进制文件。换句话说,Feldman现正在查看他需要操控的代码,即其车内IVI中的更新工具,这给了他操控代码的大好机会。

Feldman解释道:“由于我已经有了zip密码和加密密钥,于是决定寻找签名密钥。幸运的是,他们不仅留下了公钥,还留下了私钥。”

可以说,Feldman好运连连。他在固件映像中找到了更新程序使用的RSA公钥,于是上网搜索该密钥的一部分。搜索结果指向了一个常见的公钥,该公钥出现在了《C使用OpenSSL进行RSA加密和解密示例》(http://hayageek.com/rsa-encryption-decryption-openssl-c/)之类的教程中。

该教程及其他实现OpenSSL的项目在源代码中附有这个公钥和相应的RSA私钥。

这意味着现代公司使用了教程中的公私密钥对,并将公钥放入其代码中,Feldman因而得以从网上查到该私钥。 因此,他能够签名现代公司的文件,并让更新程序接受这些文件。

至此,Feldman就有机会为其汽车的IVI编写自定义固件,他在随后发在网上的两篇文章中作了描述。他还为其他现代车主总结了其方法(https://programmingwithstyle.com/posts/howihackedmycarguidescreatingcustomfirmware/)。

现代公司尚未回应置评请求。

参考及来源:https://www.theregister.com/2022/08/17/software_developer_cracks_hyundai_encryption/如若转载,请注明原文地址。

责任编辑:姜华 来源: 嘶吼网

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK