高通芯片中存在允许从 TrustZone 存储中提取私钥的漏洞

NCC集团研究人员 裸露 细节 漏洞(CVE-2018-11976)在高通芯片中,它允许您确定位于基于 ARM TrustZone 技术的隔离飞地高通 QSEE(高通安全执行环境)中的私有加密密钥的内容。 问题表现在 Snapdragon SoC,已广泛应用于基于Android平台的智能手机中。 解决该问题的修复已经 包括 在四月份的 Android 更新和高通芯片的新固件版本中。 高通花了一年多的时间准备修复;有关该漏洞的信息最初于 19 年 2018 月 XNUMX 日发送给高通。

让我们回想一下,ARM TrustZone 技术允许您创建与主系统完全分离的硬件隔离的受保护环境,并使用单独的专用操作系统在单独的虚拟处理器上运行。 TrustZone 的主要目的是为加密密钥、生物识别身份验证、支付数据和其他机密信息提供处理器的隔离执行。 与主操作系统的交互是通过调度接口间接进行的。 私有加密密钥存储在硬件隔离的密钥存储内,如果实施得当,可以在底层系统受到损害时防止其泄漏。

该漏洞是由于椭圆曲线处理算法的实现存在缺陷,导致数据处理进度信息泄露。 研究人员开发了一种侧信道攻击技术,允许使用现有的间接泄漏来恢复位于硬件隔离的私钥的内容 安卓密钥库。 根据对分支预测块的活动和存储器中数据的访问时间的变化的分析来确定泄漏。 在实验中,研究人员成功演示了从 Nexus 224X 智能手机中使用的硬件隔离密钥存储中恢复 256 位和 5 位 ECDSA 密钥。 恢复密钥需要生成约 12 个数字签名,耗时超过 14 个小时。 用于进行攻击的工具 缓存抓取.

问题的主要原因是 TrustZone 和主系统中共享通用硬件组件和计算缓存 - 隔离是在逻辑分离级别执行的,但使用通用计算单元并带有计算痕迹和分支信息地址被存放在公共处理器高速缓存中。 使用 Prime+Probe 方法,基于评估缓存信息的访问时间的变化,通过检查缓存中是否存在某些模式,可以监视与数字签名计算相关的数据流和代码执行迹象。 TrustZone 具有相当高的准确度。

在高通芯片中使用 ECDSA 密钥生成数字签名的大部分时间都花在使用每个签名不变的初始化向量在循环中执行乘法运算上(教廷大使)。 如果攻击者可以恢复至少一些带有有关该向量的信息的位,则可以进行攻击以顺序恢复整个私钥。

就高通公司而言,在乘法算法中确定了此类信息泄露的两个地方:在表中执行查找操作时以及在基于“nonce”向量中最后一位的值的条件数据检索代码中。 尽管高通代码包含阻止通过第三方渠道泄露信息的措施,但开发的攻击方法允许您绕过这些措施并确定“随机数”值的几个位,这足以恢复 256 位 ECDSA 密钥。

来源: opennet.ru

添加评论