一位开发人员近日表示,软件人在发现这款汽车的用谷制造商使用不仅公之于众 ,还从编程示例照搬的歌搜密钥来保护系统后,他能够在其汽车信息娱乐硬件上运行自己编写的索突软件 。 明尼苏达州明尼阿波利斯市的破现软件工程师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/如若转载,请注明原文地址。 |