2018年,,谷歌發(fā)布了名為“Titan”的硬件產品,,是基于FIDO技術規(guī)范打造的,,用來保護支持該硬件的所有平臺賬號,。Google Titan 這樣的硬件安全密鑰被認為是保護用戶賬戶預防釣魚和接管攻擊的最安全的方式,。NinjaLab最新研究表明,,擁有此類雙因子認證設備的攻擊者可以利用嵌入在Titan中芯片的電磁側信道可以對其進行克隆,。
漏洞概述
該漏洞CVE編號為CVE-2021-3011,攻擊者利用該漏洞可以從Google Titan Key 或YubiKey這樣的FIDO U2F設備中提取與受害者賬號相關的加密密鑰或ECDSA私鑰,,完全破壞雙因子認證的保護。換句話說,,攻擊者可以在無需U2F設備或在受害者完全沒有察覺的情況下登入受害者應用賬號。
在攻擊中,,攻擊者克隆了受害者應用賬號的U2F設備,。克隆授予了其訪問應用賬號的權限,,除非合法用戶取消或廢除其雙因子認證憑證,。
攻擊概述
整個克隆(密鑰恢復攻擊)需要滿足一些先決條件,。首先,,攻擊者需要獲取目標賬號的登陸用戶名和密碼,然后獲取Titan Security Key的訪問權限,,通過定制的軟件從中提取與賬號相關的密鑰,。
要克隆U2F密鑰,研究人員需要將設備的塑料保障移除,,將其中的2個微控制器暴露出來——一個用來執(zhí)行加密操作的安全enclave (NXP A700X 芯片)和作為USB/NFC接口和認證微控制器之間路由器的通用芯片,。然后通過ECDSA前面過程中NXP芯片散發(fā)的電磁輻射來利用側信道攻擊提取出ECDSA加密密鑰。
該側信道攻擊是利用了計算機系統(tǒng)實現過程中泄露的信息,,而非利用軟件漏洞,。一般來說,側信道攻擊利用的信息有時序信息,、電量消耗,、電磁泄露、聲音信號等,。
通過從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芯片上執(zhí)行,,包括:
· 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仍然是很安全的,,因此雙因子認證比單一認證更加安全,,而且此類側信道攻擊的成本和難度都非常高。用戶也可以選擇其他沒有發(fā)現漏洞的硬件安全密鑰產品,。
完整技術報告參見:
https://ninjalab.io/wp-content/uploads/2021/01/a_side_journey_to_titan.pdf