硬體安全金鑰是什麼,跟 App 驗證器(如 Google Authenticator)有什麼本質不同?
硬體安全金鑰是一個實體裝置,通常長得像一個小型 USB 隨身碟或可感應的卡片,遵循 FIDO2/WebAuthn 這套開放的驗證標準運作。使用時只需要插入裝置的 USB 埠、或用手機靠近感應 NFC,再輕觸金鑰上的感應點,就完成驗證,不需要抄寫或輸入任何一組數字驗證碼。它的密碼學核心是「來源綁定」(origin binding):每次註冊時,金鑰會把你的憑證跟這個網站的實際網域名稱(origin)綁在一起,之後每次驗證,瀏覽器都會把你當下所在的網域名稱一併回報給金鑰,金鑰只有在核對這個網域名稱確實跟當初註冊時綁定的網域一致,才會釋出驗證回應。
這跟 App 驗證器的本質差異在於防護的層級不同:App 驗證器(如 Google Authenticator、Authy)產生的是一組會隨時間變動的六位數字驗證碼,這組驗證碼本身是「可以被讀出來、可以被複製貼上」的東西——如果使用者被釣魚網站騙到,在假網站上輸入了這組驗證碼,釣魚網站的操作者可以在驗證碼還沒過期前,立刻把這組碼轉貼到真正的官方網站上完成登入,這就是所謂的即時中繼式釣魚攻擊(real-time phishing relay)。硬體金鑰完全不會受到這種攻擊影響,因為金鑰從頭到尾沒有產生任何「可以被讀出來的驗證碼」,驗證的核心動作是金鑰跟瀏覽器之間直接核對網域名稱,使用者本人插入裝置、觸碰感應點,整個流程裡沒有任何一個環節,是攻擊者可以在使用者不知情的情況下複製或轉貼的。
為什麼硬體安全金鑰能防範釣魚攻擊,這背後的密碼學原理具體是怎麼運作的?
硬體安全金鑰能防釣魚的關鍵,在於整個驗證流程的信任錨點不是「使用者自己判斷這個網站是不是真的」,而是「瀏覽器與作業系統回報給金鑰的網域名稱」——這個網域名稱的核對,是瀏覽器底層機制自動執行的,使用者無從介入、也不需要自己判斷,這正好補上了人類判斷力最容易被騙的那個環節:一個做得極度逼真的釣魚頁面,人眼幾乎無法從畫面上分辨真偽,但瀏覽器核對網址欄的網域字串時,任何一個字母的差異都逃不過去。
具體的密碼學運作是:金鑰在註冊階段,會為每個網站產生一組獨一無二的公私鑰配對,私鑰永遠留在金鑰內部,從未離開過裝置,也無法被讀取或複製出來;公鑰則交給網站保存。之後每次登入驗證,網站會發送一個帶有隨機挑戰碼(challenge)的請求,金鑰用私鑰對這個挑戰碼加上網域資訊進行簽署,再把簽署結果送回給網站,網站用先前保存的公鑰驗證這個簽署是否有效。如果使用者是在假冒的釣魚網站上完成這個流程,瀏覽器回報給金鑰的網域名稱會是釣魚網站的網域,跟金鑰內部記錄的官方網域不吻合,金鑰會直接拒絕簽署,整個驗證流程在這一步就會失敗,攻擊者拿到的只會是一個對他們毫無用處的錯誤回應。
硬體安全金鑰實際上是怎麼設定與使用的,有哪些型號與規格上的差異值得留意?
設定流程通常很簡單:登入你想保護的帳戶(例如電子郵件、交易所、密碼管理器),進入帳戶安全設定頁面,找到「新增安全金鑰」或「新增硬體驗證裝置」的選項,依照畫面指示插入金鑰、觸碰感應點完成註冊,之後每次在新裝置或新瀏覽器登入該帳戶時,系統就會要求插入這把金鑰並觸碰以完成驗證。多數服務同時支援 USB-A、USB-C、NFC 等連接方式,方便在電腦與手機之間切換使用同一把金鑰。
規格上值得留意的差異包括:金鑰是否支援 FIDO2/WebAuthn 這套現行主流標準(而不只是較舊的 U2F 協定,雖然多數新款金鑰兩者都支援)、連接介面是否符合你實際會用到的裝置(USB-C 對新款筆電與手機較友善,USB-A 則相容較舊的裝置,NFC 則是行動裝置上最方便的感應方式)、以及是否需要額外支援 TOTP、智慧卡(PIV)、OpenPGP 等進階功能——一般使用者通常只需要基本的 FIDO2/WebAuthn 功能就足夠,進階功能主要是給需要同時處理多種驗證情境的企業或技術使用者。最重要的實務建議是至少購買兩把金鑰:一把日常使用、一把存放在安全地點作為備援,因為金鑰本身也可能遺失或損壞,如果只有一把且遺失,可能導致自己被鎖在帳戶外面,反而需要透過帳戶救援機制解決,這個機制往往又是安全性相對較低的環節。
硬體安全金鑰對加密貨幣使用者來說,跟本站另一篇文章討論過的 SIM 卡交換攻擊有什麼直接關聯,我該優先為哪些帳戶配置金鑰?
本站另一篇文章詳細拆解過 SIM 卡交換攻擊的原理:攻擊者透過社交工程騙過電信業者客服,把受害者的手機門號轉移到自己控制的 SIM 卡上,藉此接管所有仰賴簡訊驗證的帳戶。硬體安全金鑰跟這個攻擊完全無關——它不透過電話網路運作,金鑰本身沒有電話號碼,即使攻擊者成功劫持了你的手機門號,也完全拿不到硬體金鑰的驗證回應,因為驗證動作發生在金鑰與瀏覽器之間,不經過任何電信網路。這也是為什麼多家高知名度企業(如 Twitter、Cloudflare、Discord、T-Mobile)在面對帳號被劫持的資安風險後,選擇全面淘汰簡訊與 App 驗證器,強制員工改用硬體金鑰,作為對抗這類攻擊最直接有效的手段。
對加密貨幣使用者而言,優先順序建議是:電子郵件帳戶(因為它是多數其他帳戶密碼重設的樞紐,一旦電子郵件失守,連鎖效應最大)、加密貨幣交易所帳戶、密碼管理器(如果你用密碼管理器集中存放其他帳戶的密碼,這個帳戶的重要性等同於所有帳戶的總和),這幾個帳戶適合優先配置硬體金鑰。需要留意的是,硬體金鑰保護的是「連網帳戶的登入與簽署」這個環節,跟本站另一篇文章討論過的冷儲存概念是互補而非替代關係——冷儲存保護的是私鑰本身不外流,硬體安全金鑰保護的是你用來管理這些資產的帳戶入口不被冒用,兩者分別鎖住了資產安全鏈裡不同的環節,理想情況下應該同時使用。
2021 年,Twitter(現為 X)宣布將所有員工的雙重驗證方式,從包含簡訊在內的多種可被釣魚的驗證方式,全面遷移到強制使用安全金鑰,藉此在內部系統整合 FIDO2/WebAuthn 協定,防範類似先前發生過的帳號劫持事件重演。Cloudflare 也在同年將硬體安全金鑰的導入,作為公司轉向零信任架構(Zero Trust)的一部分,發放給全體員工,用來降低憑證竊取的風險。T-Mobile 則在稍晚部署超過 20 萬把 YubiKey 給員工,作為強化內部系統對抗釣魚與未授權存取的關鍵措施之一。這幾起案例共同顯示,當一個組織真正意識到簡訊與可讀取式驗證碼在面對社交工程與釣魚攻擊時的結構性弱點後,硬體安全金鑰往往會被列為優先升級的防護標準,而不只是眾多選項中的一個。
硬體安全金鑰的優點是能提供目前主流雙重驗證方式裡最高等級的釣魚防護,從機制上完全消除驗證碼被複製或中繼的可能性,且不受電話網路相關攻擊(如 SIM 卡交換)影響;缺點是需要額外購買實體裝置、隨身攜帶或至少確保存取得到、遺失後若沒有備援金鑰可能被鎖在帳戶外面,且並非所有服務都支援這個驗證方式,使用便利性略低於手機內建的 App 驗證器,這也是為什麼多數建議會集中在為少數最關鍵的帳戶(電子郵件、交易所、密碼管理器)優先配置,而不是要求所有帳戶都採用。