1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

科技 现代Ioniq车载系统固件更新机制被曝使用了易被破解的示例密钥

本帖由 漂亮的石头2022-08-24 发布。版面名称:新闻聚焦

  1. 漂亮的石头

    漂亮的石头 版主 管理成员

    注册:
    2012-02-10
    帖子:
    486,020
    赞:
    46
    近日,一位网名叫“greenluigi1”的开发者发现,现代汽车从公开的示例编程项目中借用了密钥来保护其系统,以在车载信息娱乐硬件上运行自家的软件。起初他只是为了自行修改 2021 款现代 Ioniq SEL 车型的车载信息娱乐(IVI)系统,所以设法深入了解如何连接到设备、并绕过其安全防护措施。

    [​IMG]

    让人没想到的是,这位开发者竟然只使用了 Google 搜索引擎,就找到了现代旗下 Hyundai Mobis 制造的 D-Audio2 系统定制固件的一个重大漏洞。


    The Register指出,由于车载信息娱乐系统(IVI)接受基于密码保护的 ZIP 压缩包的固件更新文件。

    因此人们能够绕过这套简单的存档防护措施来访问相关内容,包括 IVI 各个组件的加密固件镜像。

    接着开发者设法创建了自己的固件镜像,以车载系统能够接受、安装和运行的 ZIP 文件格式对其进行加密,从而允许通过黑客提供的代码来控制硬件。

    [​IMG]

    截图(来自:Programming With Style)​

    期间最幸运的,就是“greenluigi1”在 Mobis 网站上找到了一个 Linux 安装脚本 —— 该脚本旨在创建一个合适的 ZIP 文件来执行系统更新。


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

    与此同时,该信息还可用于解密镜像,意味着 greenluigi1 能够借助 AES 密钥来解包、修改,然后通过官方脚本来重新打包加密为 ZIP 格式的压缩包、并用于现代 IVI 的系统更新。

    当然,实际操作还是没有看起来这么简单。至少提供数据的某些部分,仍需使用 RSA 私钥进行加密签名。

    此外更新程序需要使用私钥对应的 RSA 公钥,来检查数据是否使用了正确的私钥签名 ——这意味着 greenluigi1 需要找到 RSA 私钥才能进一步深入。

    [​IMG]

    在五月的一篇博客文章中,他解释称 —— 脚本暗示其正在使用 RSA 签名,遗憾的是该密钥不包含在源码中。

    然而更大的乌龙是,原脚本中的 AES 加密密钥,竟指向了 NIST 文档 SP800-38A【PDF】中列出的首个 AES 128 位 CBC 示例密钥。

    尽管加密社区普遍意识到 CBC 很难被妥善部署,因此建议换用其它方法,但这家车企竟然还是这么做了。

    此外微软去年警告称:基于已知的密码学研究,在应用可验证填充、而没有首先确保密文完整性的情况下,如非极其特殊的情况、CBC 模式加密的数据已不再安全。

    [​IMG]

    由于现代错误地使用了 AES CBC 方案和另一个在线发布的密钥作为私钥,greenluigi1 得以使用该对称密钥,提取更新 ZIP 包中的一个加密固件映像文件的内容。

    在提取的文件中,他找到了处理 IVI 更新的软件(一个名为 updateAgent 的二进制文件)。

    [​IMG]

    加密的 zip 压缩包​

    在拥有 zip 密码和加密密钥的基础上,他决定继续寻找签名密钥。幸运的是,该公司不仅留下了公钥、甚至还把私钥都晾出来了。

    在一连串的好运加持下,greenluigi1 在固件映像中找到了更新程序使用的 RSA 公钥,并在线搜索了该密钥的一部分。

    [​IMG]

    文件列表​

    搜索结果指向一个常见的公钥,且它出现在《RSA Encryption & Decryption Example with OpenSSL in C》之类的线上教程中”。

    这意味着现代“实习生”直接套用了教程中的公钥密钥对,并将公钥塞进了源码中。

    [​IMG]

    从而使得 greenluigi1 追溯到配对的私钥,最终签署可让 IVI 接纳的自定义固件的更新程序。

    对于此事,截止发稿时,现代汽车方面尚未回应外媒的置评请求。
     
正在加载...