谷歌硬件暴露严重漏洞——大东华安全

一、谷歌硬件安全密钥曝严重漏洞

大东:小白,平时用谷歌的产品么?

小白:那是经常的,谷歌学术——科研好助手~

大东:那谷歌的硬件设备呢?

小白:这个没用过,只听说过那个炫酷的谷歌眼镜!

大东:那你肯定不知道Titan吧?最近可成了谷歌家的重点“保护”对象。

小白:又是什么瓜?求大东东分享~

二、大话始末

大东:Titan是谷歌2018年发布的硬件产品,用来保护支持该硬件的所有平台账号。Google Titan 这样的硬件安全密钥被认为是保护帐户免受网络钓鱼和预防攻击的最安全手段。

小白:然而,谷歌的产品也出问题了?

大东:根据NinjaLab最新研究表明,拥有这种双因素身份验证(2FA)设备的攻击者,可以通过利用嵌入在其内芯片中的电磁侧通道来克隆它。

小白:果然出漏洞了啊!

大东:是的,这个新漏洞的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私钥。

小白:等等,侧信道攻击,这是啥呀?求大东东解释~

大东:那我给你解释解释。通常,密码算法在实际应用中都会实现在具体的硬件平台上,形成密码模块、密码芯片、密码系统等,来完成所需的密码功能,用于满足特定的信息安全需求。

小白:这个我理解。

大东:这些具备密码功能的模块统称为密码实现,它们都实现在特定的数字电路中,而数字电路单个基本单元只有0和1两种状态。我们以装不同水量的玻璃杯发声不同为例说明如何利用数字电路的状态特征进行密码破解。

小白:上道具!

大东:看下左图中ABCD四个杯子中水量不同,仅通过区分敲击四个杯子所发出声音的不同即可轻易分辨出ABCD中的单个杯子。因此,可以用右图中“空杯”和“满杯”来分别模拟数字电路中的“0”和“1”,数字电路执行操作的过程可以看作杯子中水不断清空和装满的过程。因而显然,0到1和1到0两种状态变换需要花“时间”和“能量”,同时也会产生潜在“影响”。

模拟数字电路状态(图片来自网络)

小白:感觉这一点是可被利用的!

大东:换句话说,如果我们能够有效检测和测量这种“时间”和“能量”的变化,就能够推断出正在执行的操作,即推断出密码实现运行过程中的操作,从而实现密码的破解。

小白:噢,我明白了。

大东:这类通过密码实现运行过程中的“时间”、“能量”或其他类似信息进行密码分析的方法,就称为侧信道攻击(Side Channel Attack)。

小白:又掌握了新知识……

大东:侧信道攻击又称侧信道密码分析,由美国密码学家P.C. Kocher于上世纪九十年代末期提出,是一种针对密码实现的物理攻击方法。这种攻击方法,本质上是利用密码实现在执行密码相关操作的过程中产生的侧信息来恢复出密码实现中所使用的密钥。

小白:这位密码学家真厉害!

大东:侧信息(Side Channel Information)指的是,攻击者通过除主通信信道以外的途径获取到的关于密码实现运行状态相关的信息,典型的侧信息包括:密码实现运行过程中的能量消耗、电磁辐射、运行时间等信息。

小白:难怪今天讲的漏洞里用到了电磁辐射呢!所以在获得到侧信息后,只需要根据信息进行模拟恢复就行了吧。

大东:你理解的没错。从实际攻击效果上看,侧信道攻击的攻击能力远远强于传统密码分析方法,因而也对密码实现的实际安全性构成了巨大的威胁。以穷举攻击为例,如果10^13次/s的速度进行解密运算,破解AES-128密码需要5.3×10^17年,而针对无保护AES-128的密码实现,典型的差分能量攻击方法能够在30秒之内完全恢复其主密钥。

小白:简直降维打击啊。

四、如何应对

小白:大东东,那这个漏洞该怎么应对呢?听起来好像无解~

大东:侧信道攻击本质是利用密码实现运行过程中产生的依赖于密钥的侧信息来实施密钥恢复攻击的,因此防御对策的核心就是减弱甚至消除这种侧信息与密钥之间的直接依赖性。

小白:那是怎么做的呢?

大东:实际上,常见防御对策可以分为掩码对策和隐藏对策两种。掩码对策借助秘密共享和多方安全计算,通过引入随机数将密钥分解为多个分组来消除侧信息与密钥的依赖性来增强抵抗侧信道攻击的能力。

小白:另一种呢?

大东:隐藏对策采用平均化“0”和“1”对应侧信息的差别来降低通过侧信息区分对应数据的可能性,即降低数据的可区分度来抵抗侧信道攻击。此外,通过在密码实现中插入随机伪操作或者增加噪声,能够将有用信息“淹没”在噪声中,从而提高密码实现的实际安全性。

小白:听起来还不错~

大东:总体而言,两种防御对策适用于不同场景,如掩码对策易于在密码算法级进行构造,更易于实现。而隐藏对策通常只能在硬件层进行实现,需要改变硬件实现结构,因而较难实现。此外,两种防御对策可以组合实现,以便最大限度地提高密码实现的实际安全性。

小白:所以,只要Titan升级升级,还是可以用的咯?

大东:此次研究中,虽然研究人员从谷歌Titan Security Key中窃取了ECDSA私钥,但使用Google Titan Security Key和其他的FIDO U2F双因子认证token仍然是很安全的。双因子认证比单一认证更加安全,而且此类侧信道攻击的成本和难度都非常高。

小白:成本高,攻击也烧钱呐!

大东:此外,普通用户也可以对比其他同类产品,选择其他未被发现漏洞的硬件安全密钥产品。

小白:哈哈,打不起我还跑不起么?!

参考文献:

1.谷歌硬件安全密钥曝严重漏洞 可发起侧信道攻击https://mp.weixin.qq.com/s/Yj1ADRUsGnOATCVKF2nw4A

2.浅谈侧信道攻击 – 什么是数字时代的隔空取“数”?https://www.sohu.com/a/165330167_99909589

3.关于侧信道攻击https://blog.csdn.net/weixin_46661122/article/details/109740368

4.侧信道攻击研究——TIMING:https://www.anquanke.com/post/id/203795

5.初探侧信道攻击:功耗分析爆破密码https://zhuanlan.zhihu.com/p/157585244

来源:中国科学院信息工程研究所

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据