NCC集团研究人员
让我们回想一下,ARM TrustZone 技术允许您创建与主系统完全分离的硬件隔离的受保护环境,并使用单独的专用操作系统在单独的虚拟处理器上运行。 TrustZone 的主要目的是为加密密钥、生物识别身份验证、支付数据和其他机密信息提供处理器的隔离执行。 与主操作系统的交互是通过调度接口间接进行的。 私有加密密钥存储在硬件隔离的密钥存储内,如果实施得当,可以在底层系统受到损害时防止其泄漏。
该漏洞是由于椭圆曲线处理算法的实现存在缺陷,导致数据处理进度信息泄露。 研究人员开发了一种侧信道攻击技术,允许使用现有的间接泄漏来恢复位于硬件隔离的私钥的内容
问题的主要原因是 TrustZone 和主系统中共享通用硬件组件和计算缓存 - 隔离是在逻辑分离级别执行的,但使用通用计算单元并带有计算痕迹和分支信息地址被存放在公共处理器高速缓存中。 使用 Prime+Probe 方法,基于评估缓存信息的访问时间的变化,通过检查缓存中是否存在某些模式,可以监视与数字签名计算相关的数据流和代码执行迹象。 TrustZone 具有相当高的准确度。
在高通芯片中使用 ECDSA 密钥生成数字签名的大部分时间都花在使用每个签名不变的初始化向量在循环中执行乘法运算上(
就高通公司而言,在乘法算法中确定了此类信息泄露的两个地方:在表中执行查找操作时以及在基于“nonce”向量中最后一位的值的条件数据检索代码中。 尽管高通代码包含阻止通过第三方渠道泄露信息的措施,但开发的攻击方法允许您绕过这些措施并确定“随机数”值的几个位,这足以恢复 256 位 ECDSA 密钥。
来源: opennet.ru