最新消息:本站介绍:国外VPS、云服务器,海外服务器,一手资源推荐平台

软件开发商通过谷歌搜索破解现代汽车安全

网络安全 快米云 来源:快米云 85浏览

重要提示:不应从公共代码教程中复制您的 RSA 私钥

一位开发人员表示,在发现汽车制造商使用不仅公开而且从编程示例中提取的密钥来保护其系统后,他能够在他的汽车信息娱乐硬件上运行自己的软件。

明尼苏达州明尼阿波利斯市的软件工程师 Daniel Feldman 想在他的 2021 现代 Ioniq SEL 中修改车载信息娱乐 (IVI) 系统。

为此,他必须弄清楚如何连接到设备并绕过其安全性。

在试图弄清楚如何为 IVI 的 D-Audio2 系统(由汽车公司的移动平台子公司现代摩比斯制造)定制固件更新并让 IVI 接受之后,费尔德曼找到了一个意想不到的方法——通过谷歌。

IVI 接受受密码保护的 ZIP 存档形式的固件更新。Feldman 从现代的网站下载了一个更新 ZIP,并能够绕过存档上的简单密码保护来访问其内容,其中包括 IVI 各个部分的加密固件图像。

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

幸运的是,Feldman 在 Mobis 的网站上找到了一个 Linux 安装脚本,该脚本创建了一个合适的 ZIP 文件来执行系统更新。

结果证明该脚本中的加密密钥是 NIST 文档中列出的第一个 AES 128 位 CBC 示例密钥

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

此信息还可用于解密图像。

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

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

因此,他需要找到 RSA 私钥才能进一步了解。

“该脚本暗示正在使用 RSA 签名,但不幸的是,用于此的密钥不在源代码中,”费尔德曼在 5 月份的一篇博文中解释道,本周一位读者引起了我们的注意。

“原来该脚本中的 [AES] 加密密钥是 NIST 文档SP800-38A [PDF] 中列出的第一个 AES 128 位 CBC 示例密钥,”他补充道。

顺便说一句,加密社区的共识似乎是 CBC很难正确使用,建议使用其他方法。微软去年警告说,使用带有填充的 AES CBC可能不安全。

“微软认为,在应用可验证填充而没有首先确保密文完整性的情况下,解密使用对称加密的密码块链 (CBC) 模式加密的数据不再安全,除非非常特殊的情况,”该公司。“这个判断是基于目前已知的密码学研究。”

但是现代的错不在于错误地实现了 AES CBC。它正在使用另一个在线发布的密钥作为秘密。

使用该对称密钥,Feldman 能够在更新 ZIP 中提取其中一个加密固件映像文件的内容。

在提取的文件中,他找到了处理 IVI 更新的软件,一个名为 updateAgent 的二进制文件。换句话说,费尔德曼现在正在查看他需要击败的代码——他车内 IVI 中的更新工具,这给了他一个击败它的运动机会。

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

在某种程度上,他的运气一直很好。Feldman 在固件映像中找到了更新程序使用的 RSA 公钥,并在线搜索了该密钥的一部分。搜索结果指向一个常见的公钥,该公钥出现在在线教程中,例如“ RSA Encryption & Decryption Example with OpenSSL in C ”。

该教程和其他 实现OpenSSL 的项目 在其源代码中包含公钥和相应的 RSA 私钥。

这意味着现代使用了教程中的公私密钥对,并将公钥放入其代码中,从而允许费尔德曼追踪私钥。因此,他能够签署现代的文件并让更新程序接受它们。

那时,费尔德曼有机会为他的汽车 IVI 创建自定义固件,正如他在随后的两篇 在线帖子中所描述的那样。他还为其他现代车主总结了他的方法。

现代尚未回应置评请求。

转载请注明:VPS资讯_海外云服务器资讯_海外服务器资讯_IDC新闻 » 软件开发商通过谷歌搜索破解现代汽车安全