2018年,,谷歌發(fā)布了名為“Titan”的硬件產(chǎn)品,,是基于FIDO技術(shù)規(guī)范打造的,用來(lái)保護(hù)支持該硬件的所有平臺(tái)賬號(hào),。Google Titan 這樣的硬件安全密鑰被認(rèn)為是保護(hù)用戶賬戶預(yù)防釣魚(yú)和接管攻擊的最安全的方式,。NinjaLab最新研究表明,,擁有此類(lèi)雙因子認(rèn)證設(shè)備的攻擊者可以利用嵌入在Titan中芯片的電磁側(cè)信道可以對(duì)其進(jìn)行克隆。
漏洞概述
該漏洞CVE編號(hào)為CVE-2021-3011,,攻擊者利用該漏洞可以從Google Titan Key 或YubiKey這樣的FIDO U2F設(shè)備中提取與受害者賬號(hào)相關(guān)的加密密鑰或ECDSA私鑰,,完全破壞雙因子認(rèn)證的保護(hù)。換句話說(shuō),,攻擊者可以在無(wú)需U2F設(shè)備或在受害者完全沒(méi)有察覺(jué)的情況下登入受害者應(yīng)用賬號(hào),。
在攻擊中,攻擊者克隆了受害者應(yīng)用賬號(hào)的U2F設(shè)備,??寺∈谟枇似湓L問(wèn)應(yīng)用賬號(hào)的權(quán)限,,除非合法用戶取消或廢除其雙因子認(rèn)證憑證。
攻擊概述
整個(gè)克?。荑€恢復(fù)攻擊)需要滿足一些先決條件,。首先,攻擊者需要獲取目標(biāo)賬號(hào)的登陸用戶名和密碼,,然后獲取Titan Security Key的訪問(wèn)權(quán)限,,通過(guò)定制的軟件從中提取與賬號(hào)相關(guān)的密鑰。
要克隆U2F密鑰,,研究人員需要將設(shè)備的塑料保障移除,,將其中的2個(gè)微控制器暴露出來(lái)——一個(gè)用來(lái)執(zhí)行加密操作的安全enclave (NXP A700X 芯片)和作為USB/NFC接口和認(rèn)證微控制器之間路由器的通用芯片。然后通過(guò)ECDSA前面過(guò)程中NXP芯片散發(fā)的電磁輻射來(lái)利用側(cè)信道攻擊提取出ECDSA加密密鑰,。
該側(cè)信道攻擊是利用了計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)過(guò)程中泄露的信息,,而非利用軟件漏洞。一般來(lái)說(shuō),,側(cè)信道攻擊利用的信息有時(shí)序信息,、電量消耗、電磁泄露,、聲音信號(hào)等,。
通過(guò)從6小時(shí)的U2F認(rèn)證請(qǐng)求命令中獲取的6000條側(cè)信道信息,研究人員稱(chēng)其利用機(jī)器學(xué)習(xí)模型成功恢復(fù)出了與FIDO U2F賬號(hào)相關(guān)聯(lián)的ECDSA私鑰,。
漏洞影響
該漏洞影響以下產(chǎn)品:
· 谷歌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芯片上執(zhí)行,包括:
· NXP J3D081_M59_DF,;
· NXP J3A081,;
· NXP J2E081_M64;
· NXP J3D145_M59,;
· NXP J3D081_M59,;
· NXP J3E145_M64;
· NXP J3E081_M64_DF等,。
總結(jié)
雖然研究人員從谷歌Titan Security Key中竊取了ECDSA私鑰,,但使用Google Titan Security Key和其他的FIDO U2F雙因子認(rèn)證token仍然是很安全的,因此雙因子認(rèn)證比單一認(rèn)證更加安全,而且此類(lèi)側(cè)信道攻擊的成本和難度都非常高,。用戶也可以選擇其他沒(méi)有發(fā)現(xiàn)漏洞的硬件安全密鑰產(chǎn)品。
完整技術(shù)報(bào)告參見(jiàn):
https://ninjalab.io/wp-content/uploads/2021/01/a_side_journey_to_titan.pdf