防釣魚多重要素驗證:身份驗證的黃金標準

並非所有2FA都同樣安全。驗證器應用程式的驗證碼和SMS可在釣魚攻擊中被即時轉發。硬件密鑰和通行密鑰在加密技術上可免疫釣魚攻擊。以下說明當中的關鍵差異。

Phishing-resistant MFA comparison — FIDO2 hardware key vs TOTP code phishing
1問題所在

為何驗證器應用程式的驗證碼仍可能被釣魚

儘管驗證器應用程式的TOTP驗證碼遠比SMS碼安全,它們仍存在一個根本漏洞:這些驗證碼是人類可讀的,需要輸入到網頁表單中。任何人必須閱讀並輸入的驗證碼,都有可能在同一個驗證會話中被攻擊者擷取並重播。這種攻擊稱為即時釣魚轉發或中間人(AiTM)攻擊,而Evilginx2和Modlishka等自動化工具包使其執行起來令人不安地容易。

在TOTP釣魚轉發攻擊中,攻擊者設立一個反向代理,位於受害者與合法服務之間。受害者造訪釣魚網址(外觀與真實服務完全相同),輸入用戶名稱和密碼,然後輸入6位驗證碼。攻擊者的反向代理即時將所有資訊轉發至真實服務,建立已驗證的會話並擷取會話Cookie。受害者看到假錯誤提示或被重定向到真實服務——但此時攻擊者已獲得完整的會話存取權限。整個過程在TOTP驗證碼30秒的有效期內完成。

推送通知MFA ↗可被之前提到的MFA疲勞攻擊所突破,但即使沒有疲勞攻擊,複雜的AiTM代理也可以類似方式轉發推送批准。關鍵見解在於:任何涉及人類可讀或人類可傳輸驗證碼的MFA機制——無論是看著輸入,還是在手機螢幕上點擊批准——理論上都容易受到轉發攻擊。唯一能免疫的MFA機制,是由設備本身通過加密方式執行身份驗證、針對特定網站域名進行驗證,且不涉及任何人類可讀中間步驟的機制。

  • TOTP漏洞:6位驗證碼是人類可讀的,可在30秒內被轉發
  • AiTM攻擊:反向代理即時擷取並轉發憑證與TOTP
  • Evilginx / Modlishka:商業級釣魚工具包使非專家也能輕鬆執行AiTM攻擊
  • 會話Cookie盜竊:即使通過MFA後,攻擊者也會擷取會話Cookie以持續存取
  • 推送通知:可被MFA疲勞攻擊(反覆請求)或AiTM轉發所突破
  • 核心見解:人類可傳輸的驗證碼本質上具有漏洞——必須使用加密綁定
查看其他包括釣魚漏洞在內的常見2FA錯誤 →
AiTM phishing relay attack relaying TOTP codes in real-time
2防釣魚的含義

使FIDO2能免疫釣魚攻擊的特性

防釣魚MFA ↗由一個特定的加密特性所定義:身份驗證綁定至被存取服務的確切來源(域名),且此綁定由驗證器本身而非用戶的警覺性來執行。使用FIDO2(硬件密鑰和通行密鑰所採用的標準)時,當你向服務進行註冊,驗證器會記錄服務的確切域名。在每次後續驗證時,驗證器會以加密方式核實請求是否來自該確切域名,然後才執行簽署操作。

如果一個位於g00gle.com(用零代替字母'o')的釣魚網站試圖使用你的Google通行密鑰或硬件密鑰對你進行驗證,驗證器會查閱其註冊記錄,發現沒有g00gle.com的匹配項,並拒絕驗證。這並非可被逼真偽造所繞過的用戶介面檢查——而是設備根據域名字串的確切字節執行的加密操作,無法被覆蓋或欺騙。任何轉發攻擊都無法針對FIDO2奏效,因為驗證回應在加密上是針對確切域名以及該域名在特定會話中發出的特定挑戰的。

美國政府的網絡安全和基礎設施安全局(CISA)發佈了指引,專門建議將防釣魚MFA——定義為FIDO2/WebAuthn硬件密鑰和通行密鑰——作為聯邦機構和關鍵基礎設施的標準。CISA明確警告,儘管TOTP驗證碼、SMS驗證碼和推送通知優於完全沒有MFA,但它們不符合防釣魚定義。這一指引已被安全專業人員廣泛採納為高風險環境的標準,並在全球企業安全政策中被越來越多地引用。

  • 來源綁定:FIDO2驗證以加密方式綁定至服務的確切域名
  • 設備執行:由驗證器核查域名——而非可能被欺騙的用戶
  • 釣魚不可能:即使是像素級完美的假登入頁面也無法獲得有效的FIDO2驗證
  • 轉發不可能:回應針對特定挑戰——無法從不同會話轉發
  • CISA標準:美國政府指引將防釣魚MFA定義為僅FIDO2/WebAuthn
  • 非防釣魚:TOTP、SMS、電郵驗證碼及推送通知均不符合
查看FIDO2域名綁定實際運作的技術細節 →
FIDO2 domain binding makes hardware keys phishing-resistant
3解決方案

硬件密鑰與通行密鑰:兩種防釣魚選項

YubiKey等硬件安全密鑰是最成熟的防釣魚MFA選項。它們通過專用安全硬件元件實現FIDO2,將私鑰存儲在防篡改的晶片中。實體觸碰要求(按下密鑰的接觸感應器以完成驗證)提供用戶在場驗證,即使有人實際持有你的密鑰,也能防止全自動攻擊。硬件密鑰耐用持久、無需充電或連線,並在大規模應用中證明了其有效性——谷歌內部部署為其85,000多名員工消除了所有基於釣魚的賬戶入侵事故。

通行密鑰實現了與硬件密鑰相同的FIDO2加密原理,但使用設備內建的安全硬件(Apple設備上的安全隔區、Windows設備上的可信平台模塊,以及Android上的同等設備)。私鑰受你的生物識別驗證保護——面容ID、觸控ID或指紋——而非實體觸碰。通行密鑰在易用性上優於硬件密鑰:它們內建於你已擁有的設備中,通過iCloud鑰匙圈或Google密碼管理器在你的設備間同步,只需掃臉或指紋,無需攜帶額外的實體物品。

硬件密鑰與通行密鑰之間的取捨主要在於便攜性與普及性。硬件密鑰在任何相容設備上均可穩定運作——你的手提電腦、伴侶的電腦、工作電腦——只要你持有實體密鑰。通行密鑰在你自己的已註冊設備上最為方便,但在他人設備上可能需要用你的手機進行驗證(通過基於二維碼的跨設備驗證)。對於大多數香港用戶而言,在iPhone或Android上使用通行密鑰是實現防釣魚驗證的最實際途徑;對於需要從多種不同設備存取重要賬戶、或需要在沒有手機的情況下進行驗證的用戶,硬件密鑰是正確的選擇。

  • 硬件密鑰:實體設備,無需電池,持有實體設備即可在任何相容設備上使用
  • 通行密鑰:內建於你的設備,受生物識別保護,在你的Apple/Google生態系統中同步
  • 谷歌部署:85,000多名員工使用硬件密鑰——零成功釣魚事件
  • 跨設備驗證:手機上的通行密鑰可通過藍牙二維碼在其他設備上進行驗證
  • 香港便利性:對iPhone用戶而言,通過面容ID使用Apple通行密鑰提供無縫的防釣魚驗證
  • 兩者均為FIDO2:硬件密鑰和通行密鑰提供相同的加密防釣魚保護
閱讀通行密鑰完整指南 →
Hardware key and passkey as the two phishing-resistant MFA options
4部署指南

如何採用防釣魚MFA:實用路徑

對於香港個人用戶,實現防釣魚MFA的實際路徑是從任何可用的通行密鑰開始。為你的Google賬戶、Apple ID、微軟賬戶及其他目前支持通行密鑰的服務創建通行密鑰。每個服務只需30秒,即可立即為這些賬戶提供FIDO2級別的防釣魚保護。在通行密鑰尚未支持的地方,繼續使用驗證器應用程式——它仍然比SMS明顯更安全。對於通行密鑰尚不可用但防釣魚保護很重要的賬戶,可考慮硬件密鑰(某些加密貨幣交易所、企業存取門戶、GitHub上的開發者賬戶)。

對於香港企業,美國政府CISA的指引提供了明確的路線圖:優先為特權賬戶實施防釣魚MFA(管理員 ↗、高管、財務團隊),然後為關鍵系統的所有用戶擴展(電郵、VPN、雲端協作)。對於Microsoft 365或Google Workspace組織,實現防釣魚MFA的最快途徑是啟用通行密鑰:配置身份平台以接受FIDO2驗證,然後引導用戶在其設備上完成通行密鑰註冊——每位用戶約需五分鐘。對於需要從多台未註冊設備存取企業資源的用戶,硬件密鑰是適當的選擇。

分階段方法在安全改進與運營變革管理之間取得平衡。第一階段:對所有賬戶強制執行任何MFA(最低要求驗證器應用程式)——消除無2FA的缺口。第二階段:禁止敏感系統使用SMS 2FA——從高價值賬戶中去除最弱的方法。第三階段:為消費者賬戶啟用並鼓勵使用通行密鑰——開始向防釣魚驗證過渡。第四階段:對管理員存取和最高風險賬戶要求防釣魚MFA(硬件密鑰或通行密鑰)。這種分階段方法在每個步驟都能帶來有意義的安全改進,而無需顛覆性的全有或全無過渡。

  • 從通行密鑰開始:立即為Google、Apple和微軟賬戶創建通行密鑰——每個只需30秒
  • 硬件密鑰填補空缺:在通行密鑰不可用的地方,使用YubiKey實現FIDO2防釣魚保護
  • 企業第一階段:對所有賬戶強制執行任何MFA——消除純密碼存取
  • 企業第二階段:禁止敏感系統使用SMS 2FA——最低採用TOTP
  • 企業第三階段:在Microsoft 365或Google Workspace全面啟用通行密鑰
  • 企業第四階段:對管理員及最高風險存取要求防釣魚MFA
查看香港企業完整MFA實施指南 →
Deploying phishing-resistant MFA for individuals and businesses in Hong Kong

超越標準2FA,邁向防釣魚驗證

硬件密鑰和通行密鑰今天便可使用。開始為你的重要賬戶創建通行密鑰,並為尚未支持通行密鑰的賬戶考慮使用YubiKey。

Related VPN Articles