翻譯自
多因素認證速查表
簡介
多因素認證(MFA)或雙因素認證(2FA)是指用戶需要提供多種類型的證據才能在系統上進行身份驗證。有五種不同類型的證據(或因素),可以使用任何組合,但實際上在網絡應用程序中通常只有前三種是常見的。這五種類型如下:
因素 | 範例 |
---|---|
你所知道的東西 | 密碼和PIN碼, 安全問題 |
你所擁有的東西 | 一次性密碼令牌, U2F令牌, 憑證,智慧卡, 電子郵件, 簡訊和電話 |
你的身份 | 指紋、臉部識別、虹膜掃描 |
你所在的地方 | 來源IP地址, 地理位置, 地理圍欄 |
你所做的事情 | 行為分析, 按鍵和滑鼠動態, 步態分析 |
應當注意,要求多個相同身份驗證因素的實例(例如需要密碼和PIN碼)並不構成MFA,並且提供的額外安全性極小。使用的因素應該彼此獨立,並且不應該能夠被同一攻擊破壞。儘管以下各節討論了各種不同類型MFA的缺點和弱點,在許多情況下這些只針對有針對性的攻擊。任何MFA都比沒有MFA好。
優勢
應用程序中用戶帳戶最常被破壞的方式是通過弱密碼、重複使用的密碼或被盜的密碼。儘管應用程序實施了任何技術安全控制,用戶可能會選擇弱密碼,或在不同應用程序上使用相同的密碼。作為開發人員或系統管理員,應該假設用戶的密碼在某個時候會被破解,並且系統應該設計成能夠抵禦這種情況。
MFA 是目前對抗大多數與密碼相關攻擊的最佳防禦方式,包括暴力破解、憑證填充 和密碼噴灑攻擊,根據 Microsoft 的分析,MFA 可能已經阻止了99.9%的帳戶被入侵。
缺點
MFA 最大的缺點是增加了管理複雜性,對管理員和最終用戶都是如此。許多非技術性的用戶可能會發現配置和使用 MFA 很困難。此外,還存在一些其他常見問題:
- 需要用戶具有特定硬體的 MFA 類型可能會帶來顯著的成本和管理負擔。
- 如果用戶遺失或無法使用其他因素,則可能會被鎖定帳戶。
- MFA 將額外的複雜性引入應用程式中。
- 許多 MFA 解決方案會向系統添加外部依賴,這可能會引入安全漏洞或單點故障。
- 用於允許用戶繞過或重置 MFA 的流程可能會被攻擊者利用。
- 要求 MFA 可能會阻止某些用戶訪問應用程式。
快速建議
MFA 在應用程式中的實施時間和方式將取決於多個不同因素,包括應用程式的威脅模型、用戶的技術水平以及對用戶的管理控制級別。這些因素需要根據每個應用程式進行考慮。
然而,以下建議通常適用於大多數應用程式,並提供了一個初始的考慮起點。
實施 MFA
MFA 是一個重要的安全控制,建議所有應用程式都應使用。以下各節提供了有關如何實施 MFA 以及應考慮的事項的指導。
法規和合規要求
許多行業和國家都有要求使用 MFA 的法規。這在金融和醫療保健行業特別常見,通常需要遵守歐盟的《一般資料保護規則》(GDPR)。在實施 MFA 時,考慮這些要求是很重要的。
何時需要 MFA
在應用程式中要求 MFA 最重要的地方是當用戶登錄時。但是,根據可用的功能,也可能需要在執行敏感操作時要求 MFA,例如:
- 更改密碼或安全問題。
- 更改與帳戶關聯的電子郵件地址。
- 停用 MFA。
- 將用戶會話提升為管理員會話。
如果應用程式提供多種用戶驗證方式,則所有這些方式都應要求 MFA,或實施其他保護措施。一個常見被忽略的地方是,如果應用程式提供了一個可用於登錄的獨立 API,或者有一個相關的移動應用程式。
改善用戶體驗
基於風險的驗證
頻繁使用 MFA 登錄對用戶來說是一種額外負擔,可能會導致他們在應用程式上停用 MFA。基於風險的驗證可用於減少 MFA 提示的頻率,只有在用戶執行被認為是高風險的操作時才需要 MFA。一些例子包括:
- 當用戶從新設備或位置登錄時需要 MFA。
- 當用戶從被認為是高風險的位置登錄時需要 MFA。
- 允許企業 IP 範圍(或使用地理位置作為附加因素)。
密鑰
基於 FIDO2 標準的 Passkeys 是一種結合 基於擁有物 和 基於知識 或 基於固有性 驗證特性的新型 MFA 形式。用戶需要擁有一個物理設備(例如手機)並輸入 PIN 或使用 生物特徵驗證 來進行驗證。然後,用戶的設備生成一個用於與伺服器進行驗證的加密金鑰。這是一種非常安全的 MFA 形式,對釣魚攻擊具有抵抗力,同時對用戶來說也是無縫的。
登入失敗嘗試
當使用者輸入密碼,但在使用第二因素進行驗證時失敗時,這可能意味著兩種情況之一:
- 使用者遺失了第二因素,或者沒有可用的(例如,他們沒有手機,或者沒有訊號)。
- 使用者的密碼已被破解。
當發生這種情況時,應採取一些步驟:
- 提示使用者嘗試其他形式的多重因素驗證(MFA)。
- 允許使用者嘗試 重設他們的 MFA。
- 通知使用者登入失敗的情況,並鼓勵他們如果不認識該登入,則更改密碼。
- 通知應包括登入嘗試的時間、瀏覽器和地理位置。
- 下次登入時應顯示此通知,並可選擇將其發送到他們的電子郵件中。
重設 MFA
實施 MFA 的最大挑戰之一是處理忘記或遺失額外因素的使用者。這可能以多種方式發生,例如:
- 重新安裝工作站而未備份數位憑證。
- 擦除或遺失手機而未備份 OTP 代碼。
- 更改手機號碼。
為了防止使用者被鎖定在應用程式之外,需要一個機制讓他們重新獲得帳戶存取權,如果他們無法使用現有的 MFA;然而,同時也至關重要的是,這不應提供攻擊者繞過 MFA 並劫持其帳戶的方法。
沒有明確的「最佳方式」來做到這一點,適當的方式將根據應用程式的安全性以及對使用者的控制程度而有很大差異。對於所有員工彼此認識的企業應用程式有效的解決方案,對於全球數千名使用者的公開應用程式可能不可行。每種恢復方法都有其優點和缺點,這些需要在應用程式的情況下進行評估。
一些可能方法的建議包括:
- 在使用者首次設置 MFA 時提供一些單次使用的恢復代碼。
- 要求使用者設置多種類型的 MFA(例如數位憑證、OTP 代碼和手機號碼用於簡訊),以便他們不太可能一次失去對所有這些的存取權。
- 將一次性恢復代碼(或新硬體標記)郵寄到使用者註冊的地址。
- 要求使用者聯絡支援團隊,並設置一個嚴格的流程來驗證其身份。
- 要求另一個受信任的使用者為其背書。
考慮使用第三方服務
有許多第三方服務提供多因素認證作為服務。這對於沒有資源實施多因素認證的應用程式或需要對其多因素認證有高度保證的應用程式來說是一個不錯的選擇。然而,重要的是要考慮第三方服務的安全性,以及使用它的影響。例如,如果第三方服務受到破壞,可能會允許攻擊者繞過使用它的所有應用程式的多因素認證。
你所知道的東西
基於知識的認證是最常見的一種,它基於使用者所知道的東西 - 通常是密碼。這個因素的最大優勢是對開發人員和最終用戶的要求非常低,因為它不需要任何特殊硬體,也不需要與其他服務集成。
密碼和PIN碼
密碼和PIN碼是最常見的認證形式,因為實施它們非常簡單。認證防範小抄提供了如何實施強密碼政策的指導,而密碼存儲小抄提供了如何安全存儲密碼的指導。大多數多因素認證系統使用密碼以及至少另一個因素。
優點
- 簡單且廣泛理解。
- 每個認證框架都有原生支援。
- 易於實施。
缺點
- 用戶容易選擇弱密碼。
- 密碼在系統之間常常被重複使用。
- 易受釣魚攻擊。
安全問題
根據NIST SP 800-63,安全問題不再被認為是一個可接受的認證因素。帳戶恢復只是一種替代的驗證方式,因此它的安全性不應比常規驗證方式更弱。
優點
- 沒有與密碼中存在的優點不同的優點。
缺點
- 不再被認為是一個可接受的認證因素。
- 問題的答案通常很容易被猜到。
- 從社交媒體或其他來源經常可以獲得問題的答案。
- 必須仔細選擇問題,以便用戶多年後仍能記得答案。
- 易受釣魚攻擊。
擁有的東西
基於擁有的身份驗證是基於用戶擁有一個物理或數位項目,該項目是需要進行身份驗證的。這是最常見的多因素認證形式,通常與密碼一起使用。最常見的基於擁有的身份驗證類型是硬體和軟體令牌,以及數位憑證。如果實施得當,這對於遠程攻擊者來說可能會更難以破解;然而,這也會給用戶帶來額外的管理負擔,因為他們必須隨身攜帶身份驗證因素,每次想要使用時都需要。
一次性密碼令牌
一次性密碼(OTP)令牌是一種基於擁有的身份驗證形式,用戶需要提交一個不斷變化的數字代碼以進行身份驗證。其中最常見的是基於時間的一次性密碼(TOTP)令牌,可以是硬體或軟體基礎。
硬體 OTP 令牌
硬體 OTP 令牌生成不斷變化的數字代碼,在進行身份驗證時必須提交。其中最著名的是 RSA SecureID,它生成一個每 60 秒變化一次的六位數字。
優點
- 由於令牌是獨立的物理設備,幾乎不可能遠程破解。
- 令牌可以在無需用戶擁有手機或其他設備的情況下使用。
缺點
- 將實體令牌部署給用戶是昂貴且複雜的。
- 如果用戶丟失他們的令牌,購買並寄送新令牌可能需要相當長的時間。
- 一些實現需要後端伺服器,這可能會引入新的漏洞以及單點故障。
- 被盜的令牌可以在沒有 PIN 或設備解鎖代碼的情況下使用。
- 易受釣魚攻擊(雖然持續時間短暫)。
軟體 OTP 令牌
使用軟體生成基於時間的一次性密碼(TOTP)代碼是硬體令牌的一種更便宜和更簡單的替代方案。這通常涉及用戶在其手機上安裝 TOTP 應用程序,然後掃描網絡應用程序提供的 QR 碼,該 QR 碼提供了初始種子。驗證器應用程序然後每 60 秒生成一個六位數字,方式與硬體令牌類似。
大多數網站使用標準化的 TOTP 標記,允許用戶安裝支援 TOTP 的任何驗證器應用程式。然而,少數應用程式使用自己的變體(例如 Symantec),這需要用戶安裝特定應用程式才能使用服務。應該避免這種做法,而採用基於標準的方法。
優點
- 缺少實體標記大大降低了實施系統的成本和管理開銷。
- 當用戶無法存取其 TOTP 應用程式時,可以配置新的應用程式,而無需將實體標記寄送給他們。
- TOTP 被廣泛使用,許多用戶可能已經安裝了至少一個 TOTP 應用程式。
- 只要用戶的手機上有螢幕鎖定,攻擊者將無法在偷走手機時使用代碼。
缺點
- TOTP 應用程式通常安裝在容易受到威脅的移動裝置上。
- TOTP 應用程式可能安裝在用於驗證的相同移動裝置(或工作站)上。
- 用戶可能會不安全地存儲備份種子。
- 不是所有用戶都有移動裝置可用於 TOTP。
- 如果用戶的移動裝置遺失、被盜或沒電,將無法進行驗證。
- 容易受到釣魚攻擊(雖然持續時間短暫)。
通用第二因素
硬體 U2F 標記
通用第二因素(U2F)是一種 USB/NFC 硬體標記的標準,實現基於挑戰-回應的驗證,而不需要用戶手動輸入代碼。這通常是由用戶按下標記上的按鈕,或將其靠近 NFC 讀卡器來完成的。最常見的 U2F 標記是 YubiKey。
優點
- U2F 標記抵抗釣魚攻擊,因為私鑰永遠不會離開標記。
- 用戶只需按下按鈕,而不是輸入代碼。
- 由於標記是獨立的實體裝置,幾乎不可能遠程受到攻擊者的威脅。
- U2F 在許多主要網頁瀏覽器中原生支援。
- 使用 U2F 標記時,用戶無需擁有手機或其他裝置。
缺點
- 與硬體 OTP 標記一樣,使用實體標記會帶來顯著的成本和行政開支。
- 被盜的標記可以在沒有 PIN 或設備解鎖代碼的情況下使用。
- 由於標記通常通過 USB 連接到工作站,使用者更有可能忘記它們。
憑證
數位憑證是存儲在使用者設備上的文件,當進行身份驗證時,這些憑證會自動與使用者的密碼一起提供。最常見的類型是 X.509 憑證,更常被稱為客戶端憑證。憑證受到所有主要網頁瀏覽器的支持,一旦安裝,使用者無需進一步操作。應將憑證與個人使用者帳戶相關聯,以防止使用者嘗試對其他帳戶進行身份驗證。
優點
- 無需購買和管理硬體標記。
- 安裝後,憑證對使用者非常簡單。
- 憑證可以進行集中管理和撤銷。
- 抗釣魚攻擊。
缺點
- 使用數位憑證需要後端私鑰基礎結構(PKI)。
- 安裝憑證對使用者來說可能很困難,特別是在高度受限制的環境中。
- 執行 SSL 解密的企業代理伺服器將阻止使用憑證。
- 憑證存儲在使用者的工作站上,因此如果系統受到破壞,憑證可能會被盜取。
智慧卡
智慧卡是信用卡大小的卡片,其中包含用於使用者的數位憑證,該憑證通過 PIN 解鎖。它們通常用於作業系統身份驗證,但在網頁應用程式中很少使用。
優點
- 被盜的智慧卡無法在沒有 PIN 的情況下使用。
- 智慧卡可跨多個應用程式和系統使用。
- 抗釣魚攻擊。
缺點
- 管理和分發智慧卡具有與硬體標記相同的成本和開支。
- 現代瀏覽器不原生支援智慧卡,因此需要第三方軟體。
- 雖然大多數商用筆記型電腦內建智慧卡讀卡機,但家用系統通常沒有。
- 使用智慧卡需要後端 PKI。
簡訊和電話通話
簡訊或電話通話可用於向用戶提供一次性代碼,用戶必須將其提交作為額外的驗證因素。由於這些方法帶來的風險,不應用於保護包含個人身份信息(PII)或存在財務風險的應用程序,例如醫療保健和銀行業。例如,NIST SP 800-63 不允許這些因素用於包含 PII 的應用程序。
優點
- 相對簡單實施。
- 要求用戶將其帳戶與手機號碼關聯。
缺點
- 要求用戶擁有手機設備或座機。
- 要求用戶具有信號或互聯網訪問權限以接收通話或簡訊。
- 通話和簡訊可能需要花費費用,需要防範攻擊者請求大量簡訊以耗盡資金。
- 易受 SIM 卡交換攻擊。
- 簡訊可能在用戶進行身份驗證的同一設備上收到。
- 易受釣魚攻擊。
- 當設備鎖定時,簡訊可能被預覽。
- 簡訊可能被惡意或不安全的應用程式讀取。
電子郵件
電子郵件驗證要求用戶輸入發送到其電子郵件地址的代碼或點擊鏈接。關於電子郵件是否構成多因素驗證的爭議,因為如果用戶在其電子郵件帳戶上未配置多因素驗證,則僅需要知道用戶的電子郵件密碼(通常與其應用程序密碼相同)。但是,出於完整性考量,這裡將其包含在內。
優點
- 非常容易實施。
- 不需要額外的硬件或手機設備。
缺點
- 完全依賴電子郵件帳戶的安全性,該安全性通常缺乏多因素驗證。
- 電子郵件密碼通常與應用程序密碼相同。
- 如果用戶的電子郵件首先受到破壞,則提供的保護不足。
- 電子郵件可能在用戶進行身份驗證的同一設備上收到。
- 易受釣魚攻擊。
您所擁有的
基於遺傳的身份驗證基於用戶的物理屬性。這對於 Web 應用程序來說不太常見,因為它要求用戶擁有特定的硬件,並且在隱私方面通常被認為是最具侵入性的。但是,它通常用於操作系統身份驗證,也用於一些移動應用程序中。
生物辨識
有許多常見的生物辨識類型,包括:
- 指紋掃描
- 臉部辨識
- 虹膜掃描
- 語音辨識
優點
- 實施良好的生物辨識難以欺騙,需要有針對性的攻擊。
- 對用戶來說快速方便。
缺點
- 用戶需要進行手動註冊。
- 讀取生物辨識通常需要定製(有時昂貴)的硬體。
- 隱私問題:必須儲存有關用戶的敏感生理信息。
- 如果受到破壞,生物辨識數據可能難以更改。
- 硬體可能容易受到其他攻擊向量的影響。
您所在的位置
基於位置的身份驗證是基於用戶的實際位置。有時會爭論在決定是否需要多因素驗證時是否使用位置(如上文所述),但實際上這與將其視為一個獨立因素是相同的。其中兩個突出的例子是 Microsoft Azure 中提供的條件存取策略以及 BitLocker 中的網路解鎖功能。
來源 IP 位址
用戶連接的來源 IP 位址可以作為一個因素,通常是基於白名單的方法。這可以基於靜態列表(例如企業辦公室範圍)或動態列表(例如用戶先前驗證的 IP 位址)。
優點
- 用戶非常容易使用。
- 需要最少的配置和管理工作。
缺點
- 如果用戶系統受到破壞,則無法提供任何保護。
- 無法防範內部不端行為。
- 必須嚴格限制信任的 IP 位址(例如,如果開放的客用 Wi-Fi 使用主要企業 IP 範圍)。
地理位置
與使用用戶的確切 IP 位址不同,可以使用 IP 位址註冊的地理位置。這不太精確,但在 IP 位址不是靜態的環境中實施可能更可行。一個常見的用法是在從用戶正常國家以外進行驗證時要求額外的驗證因素。
優點
- 對使用者非常容易。
缺點
- 如果使用者系統受到破壞,無法提供任何保護。
- 無法防範內部的不良人員。
- 攻擊者可以輕易通過獲取受信任國家或地點的 IP 地址來繞過。
- 隱私功能,如蘋果的 iCloud Private Relay 和 VPN 可能會降低其準確性。
地理圍欄
地理圍欄是地理定位的更精確版本,允許使用者定義一個特定區域,其中他們被允許進行身份驗證。這通常用於移動應用程式,使用地理定位硬體(如 GPS)可以高度準確地確定使用者的位置。
優點
- 對使用者非常容易。
- 提供高水準的保護,防範遠程攻擊者。
缺點
- 如果使用者系統受到破壞,無法提供任何保護。
- 無法防範內部的不良人員。
- 無法防範接近受信任位置的攻擊者。
某些您所做的事情
基於行為的身份驗證是基於使用者的行為,例如他們的打字方式、移動滑鼠的方式或使用移動裝置的方式。這是 MFA 中最不常見的形式,結合其他因素以提高對使用者身份的保證程度。這也是最難實施的方式,可能需要特定硬體以及大量數據和處理能力來分析使用者的行為。
行為分析
行為分析是基於使用者與應用程式的互動方式,例如他們登入的時間、使用的裝置以及他們在應用程式中導覽的方式。當與 風險基礎身份驗證 和 用戶和實體行為分析(UEBA)系統結合時,在 Web 應用程式中變得越來越普遍。
優點
- 不需要使用者互動。
- 可用於持續驗證使用者。
- 與其他因素結合,提高對使用者身份的保證程度。
缺點
- 行為分析的早期實作通常不準確,並導致大量誤報。
- 需要大量數據和處理能力來分析使用者的行為。
- 在使用者行為可能經常變化的環境中可能難以實施。
鍵盤和滑鼠動態
鍵盤和滑鼠動態是基於使用者的打字和滑鼠移動方式。例如,按鍵之間的時間、按鍵和釋放之間的時間,以及滑鼠的速度和加速度。這在很大程度上是理論性的,實際上並不廣泛使用。
優點
- 可以在不需要任何額外硬體的情況下使用。
- 可以在不需要使用者進行任何額外互動的情況下使用。
- 可以用於持續驗證使用者身份。
- 可以用於檢測使用系統的是否為該使用者。
- 可以用於檢測使用者是否處於壓力之下。
- 可以用於檢測使用者是否處於不適當狀態下使用系統。
缺點
- 不太可能準確到足以作為獨立因素使用。
- 可能會被人工智慧或其他高級攻擊所欺騙。
步態分析
步態分析是基於使用者步行方式的分析,使用攝像頭和感應器。它們通常用於物理安全系統,但在 Web 應用中並不廣泛使用。移動設備應用程序可能能夠使用加速計來檢測使用者的步態,並將其用作額外因素,但這仍然在很大程度上是理論性的。
優點
- 非常難以欺騙。
- 可以在不需要使用者進行任何額外互動的情況下使用。
缺點
- 需要特定硬體來實施。
- 在物理安全系統之外的使用尚未廣泛測試。