2018年,谷歌发布了名为“Titan”的硬件产品,是基于FIDO技术规范打造的,用来保护支持该硬件的所有平台账号。Google Titan 这样的硬件安全密钥被认为是保护用户账户预防钓鱼和接管攻击的最安全的方式。NinjaLab最新研究表明,拥有此类双因子认证设备的攻击者可以利用嵌入在Titan中芯片的电磁侧信道可以对其进行克隆。
漏洞概述
该漏洞CVE编号为CVE-2021-3011,攻击者利用该漏洞可以从Google Titan Key 或YubiKey这样的FIDO U2F设备中提取与受害者账号相关的加密密钥或ECDSA私钥,完全破坏双因子认证的保护。换句话说,攻击者可以在无需U2F设备或在受害者完全没有察觉的情况下登入受害者应用账号。
在攻击中,攻击者克隆了受害者应用账号的U2F设备。克隆授予了其访问应用账号的权限,除非合法用户取消或废除其双因子认证凭证。
攻击概述
整个克隆(密钥恢复攻击)需要满足一些先决条件。首先,攻击者需要获取目标账号的登陆用户名和密码,然后获取Titan Security Key的访问权限,通过定制的软件从中提取与账号相关的密钥。
要克隆U2F密钥,研究人员需要将设备的塑料保障移除,将其中的2个微控制器暴露出来——一个用来执行加密操作的安全enclave (NXP A700X 芯片)和作为USB/NFC接口和认证微控制器之间路由器的通用芯片。然后通过ECDSA前面过程中NXP芯片散发的电磁辐射来利用侧信道攻击提取出ECDSA加密密钥。
该侧信道攻击是利用了计算机系统实现过程中泄露的信息,而非利用软件漏洞。一般来说,侧信道攻击利用的信息有时序信息、电量消耗、电磁泄露、声音信号等。
通过从6小时的U2F认证请求命令中获取的6000条侧信道信息,研究人员称其利用机器学习模型成功恢复出了与FIDO U2F账号相关联的ECDSA私钥。
漏洞影响
该漏洞影响以下产品:
- 谷歌Titan Security Key (所有版本);
- Yubico Yubikey Neo;
- Feitian FIDO NFC USB-A / K9;
- Feitian MultiPass FIDO / K13;
- Feitian ePass FIDO USB-C / K21;
- Feitian FIDO NFC USB-C / K40。
除了安全密钥外,攻击还可以在NXP JavaCard芯片上执行,包括:
- NXP J3D081_M59_DF;
- NXP J3A081;
- NXP J2E081_M64;
- NXP J3D145_M59;
- NXP J3D081_M59;
- NXP J3E145_M64;
- NXP J3E081_M64_DF等。
总结
虽然研究人员从谷歌Titan Security Key中窃取了ECDSA私钥,但使用Google Titan Security Key和其他的FIDO U2F双因子认证token仍然是很安全的,因此双因子认证比单一认证更加安全,而且此类侧信道攻击的成本和难度都非常高。用户也可以选择其他没有发现漏洞的硬件安全密钥产品。
完整技术报告参见:https://ninjalab.io/wp-content/uploads/2021/01/a_side_journey_to_titan.pdf
本文翻译自:https://thehackernews.com/2021/01/new-attack-could-let-hackers-clone-your.html