雙因素驗證 (2FA) 可為使用線上服務或存取公司資源的任何人提高安全性。 基本上,它要求用戶在授予訪問之前提供兩種不同類型的信息以驗證或證明他們是他們所說的人。
傳統的基於密碼的身份驗證系統容易受到網路釣魚攻擊以及使用弱密碼或重複使用的密碼的影響。由於許多系統都可以通過網際網路的任何地方存取,因此遭到入侵的密碼使攻擊者可以獲得未經授權的存取使用者帳戶。
雙因素驗證 — 也稱為雙步驟驗證 — 旨在為使用者帳戶增加額外的保護層。 登入啟用 2FA 的帳戶,而不僅需要密碼才能驗證,而是要求使用者提供額外的因素。
驗證因素分為三個類別:
理想情況下,2FA 系統應該包含兩種不同類型的因素。 否則,使用兩個相同的因素,例如兩個「您知道的東西」因素,有可能會同時影響兩種因素。 例如,兩個基於知識的因素(如密碼和安全問題)可能會在網路釣魚攻擊中受到損害,而兩個物理因素(如智慧型手機和 USB 金鑰)可能會被扒手竊取。
一個常見的組合是使用基於知識和物理因素。 例如,使用者可能需要提供密碼並將智慧卡或 USB 金鑰插入電腦或點擊智慧型手機上的確認按鈕。生物辨識因素較少使用,因為它們更難以創建(智慧型手機指紋和臉部掃描器已被多次擊敗),如果受到損害則很難更改。讓我們這樣說:更改密碼很容易,但更改指紋或視網膜更難。
2FA 通過向用戶提供需要多個輸入請求的登錄頁面來工作。 通常,這是要求密碼和一次性訪問代碼。
這個一次性訪問代碼可以通過多種方式獲取。 一個常見的選擇是將其作為短信或電子郵件發送。 但是,這種方法不太安全,因為它容易受到攔截或 SIM 交換攻擊。
更安全的選擇是基於時間的一次性密碼 (TOTP) 演算法,就像許多智慧型手機應用程式中使用的演算法一樣。在設定過程中,身份驗證裝置(智慧型手機、USB 金鑰等)共用一個秘密隨機種子值。然後,伺服器和認證裝置都使用通用演算法來隨時間變換該種子。這意味著,在任何時間點,他們都會同意此值的版本。
如果使用者嘗試登入服務,他們會將其身份驗證裝置提供的當前值提供給站點,站點將其與其當前值進行比較,如果匹配則授權連接。但是,可能的值的空間足夠大,攻擊者在仍然有效的時候,非常不太可能猜到正確的代碼。
近年來,雙因素身份驗證的使用越來越受歡迎。 因此,許多主要網站以及大多數包含和處理敏感資料的網站都將內建對多重身份驗證的支援。在某些情況下,網站可能會推動使用多重身份驗證,並顯示彈出視窗來引導使用者完成整個過程。在其他情況下,可能需要訪問帳戶或個人資料設定頁面來設定 2FA。
設定 2FA 的詳細資訊取決於所使用的類型。 對於基於 SMS 或電子郵件的 2FA,唯一的設置要求是提供電話號碼或電子郵件地址以發送代碼。 對於基於 TOTP 的 2FA,可能需要安裝驗證器應用程序(例如 Authy 或 Google 身份驗證器)或使用基於 USB 的安全密鑰。