研究人员:三星售出了约100万部手机,其中包括Galaxy S21,这些手机的设计缺陷已经修补,攻击者可以利用这些缺陷提取秘密密钥

2022-02-25 10:24:04

以色列特拉维夫大学(Tel Aviv University)的学者发现,最近基于Android的三星手机存在设计缺陷,允许提取秘密密钥。

研究人员阿隆·沙克夫斯基、埃亚尔·罗宁和阿维谢·沃尔在一篇题为";信任在黑暗中消逝:三星';s TrustZone Keymaster设计和#34;计划在2022年的真实世界加密和USENIX安全大会上展示。

Android智能手机几乎都使用与Arm兼容的硅芯片,依靠Arm';s TrustZone技术,将敏感的安全功能与正常应用程序隔离。这些TEE运行自己的操作系统TrustZone operating system(TZOS)和it';由供应商在TZOS中实现加密功能。

研究人员解释说,Android密钥库通过Keymaster硬件抽象层(HAL)提供硬件支持的加密密钥管理。三星通过在TrustZone中运行的名为Keymaster TA的受信任应用程序实现了HAL,以便在安全环境中执行密钥生成、加密、认证和签名创建等加密操作。这些TEE加密计算的结果可以用于在不太安全的Android环境中运行的应用程序。

Keymaster TA将加密密钥存储为BLOB——密钥经过包装(通过AES-GCM加密),因此可以存储在Android环境的文件系统中。理论上,它们应该只在T形三通内可读。

然而,三星未能在Galaxy S8、S9、S10、S20和S21手机中正确实现Keymaster TA。研究人员对Keymaster应用程序进行了反向工程,并表明他们可以进行初始化向量(IV)重用攻击,从受硬件保护的密钥块中获取密钥。

IV每次都应该是唯一的数字,这确保了AES-GCM加密操作即使在加密相同的纯文本时也会产生不同的结果。但是当静脉注射——研究人员称之为";盐";——加密密钥保持不变,生成相同的输出。这种可预测性是加密的祸根。

"因此,他们可以为保护的每一个密钥导出不同的密钥包装密钥;美国约翰·霍普金斯信息安全研究所计算机科学副教授马修·格林通过Twitter观察到"但三星基本上没有。然后他们允许应用层代码选择加密IVs。这允许进行琐碎的解密"

我们特拉维夫大学的研究人员发现三星手机中使用了三种blob格式——v15、v20-s9和v20-s10。第一个是v15,是星系S8中的默认值;v20-s9对应于星系s9;在s10、S20和S21中发现了v20-s10。

研究人员说,在v15和v20-s9 Blob中,salt是一个确定性函数,依赖于Android环境中的应用程序ID、应用程序数据和常量字符串。因此,对于任何给定的应用程序,相应的密钥块将受到相同的密钥包装密钥的保护。

"令人惊讶的是,我们发现Android客户端可以在生成或导入密钥时设置IV,";该报称"所需的只是将攻击者选择的IV作为关键参数的一部分,并由Keymaster TA使用,而不是随机IV。

"由于[Android environment]还控制应用程序ID和应用程序数据,这意味着攻击者可以迫使Keymaster TA重新使用之前用于加密其他一些v15或v20-s9 Blob的相同密钥和IV。由于AES-GCM是一种流密码,攻击者现在可以从密钥块中恢复受硬件保护的密钥"

带有v20-s10 Blob的较新型号三星设备通常不易受到IV重用攻击,不过研究人员找到了一种方法,通过让Android环境通过";加密版本";告诉设备使用易受攻击的v15 blob格式的参数。

研究人员还使用弱加密绕过FIDO2 WebAuthn,这是一种使用公钥加密而不是密码来注册和验证网站的方法。他们的概念验证攻击使研究人员能够通过Android StrongKey应用程序保护的网站进行身份验证。什么';此外,他们还设法绕过了谷歌';s安全密钥导入,旨在让服务器与Android设备安全共享密钥。

研究人员估计,去年发现加密漏洞时,总共有1亿台三星设备易受攻击。然而,他们在2021年5月向三星公开了他们的发现,这导致了CVE-2021-2544的2021年8月分配给漏洞,并为受影响的设备提供了补丁。在2021年7月,他们揭示了他们的降级攻击,这导致了2021年10月到CVE-2021-25490和一个补丁,从遗留的BLB实现(V15)从包括S10、S20和S21的设备中移除。

展望未来,专家们认为,应该考虑使用AES-GCM以外的加密方案,或者像AES-GCM-SIV这样的抗IV重用版本。

三星没有立即回复确认研究人员的请求';估计受影响的设备,并估计有多少受影响的设备(如果有的话)尚未修补。®