利用侧信道攻击从高通芯片中提取私钥
供应商:高通公司
供应商网址:https://www.qualcomm.com/
受影响的系统:https://www.qualcomm.com/company/product-security/bulletins#_CVE-2018-11976
作者:Keegan Ryan
CVE:CVE-2018-11976
漏洞等级风险:致命
总结
侧信道攻击可从某些版本的高通安全密钥库提取出私钥。近期的Android设备都会包含一个由硬件支持的密钥库,开发者可以用它来保护他们的加密密钥。在某些设备上,高通公司基于TrustZone的密钥库会因分支预测和内存缓存而泄漏出敏感信息,从而泄露出224和256位ECDSA密钥。我们通过从Nexus 5x上的硬件密钥库中提取ECDSA P-256私钥来证明这一点。
关键
高通公司QSEE(安全可执行环境)中的椭圆曲线算法。
影响
可以从硬件支持的密钥库中提取某些ECDSA密钥。这可能会影响某些应用的安开发人员,当对特定设备上的用户进行身份验证时,可能会依赖于密钥库的保护。
细节
高通公司的椭圆曲线数字签名算法(ECDSA)会泄露出一些非常敏感数据,从而让攻击者推测出私钥。一般来说私钥是不可能被外界所获知的,由硬件支持的密钥库理应防止任何类型的密钥窃取,即使对完全破坏Android操作系统的攻击者也是如此。
由硬件支持的密钥库通常依赖ARM TrustZone提供的保护。TrustZone会将许多手机和嵌入式设备上的命令执行拆分为一个安全的世界和一个正常的世界;高度敏感的数据和代码可以放置在安全世界中的Trusted Execution Environment中,而其他一切,如安卓操作系统,都可以在正常世界中运行。即使攻击者掌握正常世界,所有在安全世界中信息仍然是安全的。
然而,这两个世界通常共享相同的微体系结构,这使得侧通道攻击有发挥的空间。我们之前讨论了如何对34c3上对trustzone tees执行侧通道攻击,并发布了Cachegrab,一个用于进行类似攻击的开源工具,针对内存缓存和分支预测器。它能显示控制流和数据流,比以前的方法具有更好的时间分辨率、空间分辨率,其他的噪声更少。
而以上技术可用来窃取QSEE中的ECDSA签名。通过使用Cachegrab,我们可以捕获侧信道数据,推测出高通公司整体ECDSA的流程。
大多数ECDSA签名都用于处理每个签名随机数的乘法循环。 攻击者只要能获得此随机数的一些信息,他们就可以使用现有的分析来推测出完整的私钥。
我们在高通的这个算法中发现有两个地方都泄漏了随机数的信息。 第一个位置是表查找操作,第二个位置是基于随机数的最后一位的减法操作。 这两个位置都有对抗侧信道攻击的措施,但由于我们对微架构攻击有较好的空间和时间分辨率,可一一破解这些措施,获得随机数的一些bit。
这几个bit足以我们推测出256位ECDSA密钥。为了证明这是一种完全可行的攻击,我们在Nexus 5x上的演示了如何窃取P-256密钥。
如果想知道更为详细的信息,可以点击:https://www.nccgroup.trust/us/our-research/extracting-ecdsa-keys-from-qualcomms-trustzone/。
高通公司已经发布了一个补丁来解决这个问题。请确保你的设备运行在最新的固件版本上。
此外,Android设备的开发人员还可启用密钥库提供的用户身份验证要求和密钥认证。这些都会大大增加攻击的困难性。
时间线
2018年3月19日:与高通公司产品安全部联系
2018年4月:交流漏洞分析
2018年5月:高通公司确认了这一漏洞并开始修复
2018年7月:高通公司正进行修复审查
2018年11月:商讨披露时间点, 高通同意2019年4月披露。
2019年3月:计划4月23日公开
2019年4月:与高通分享漏洞文章
2019年4月23日:公开漏洞信息
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://www.nccgroup.trust/us/our-research/private-key-extraction-qualcomm-keystore/
最新评论