谷歌身份驗證器是怎麼工作的?
谷歌身份驗證器(或其他類型的雙因素身份驗證器)如何工作?
谷歌身份驗證器是一種基於軟件的身份驗證器,可實現兩步驗證服務(2FA)。下圖提供了詳細信息。
其中涉及兩個階段:
-
階段 1 - 用戶啓用 Google 兩步驗證
-
階段 2 - 用戶使用驗證器登錄
第一階段
-
步驟 1 和 2:Bob 打開網頁以啓用兩步驗證。前端請求一個密鑰。驗證服務會爲 Bob 生成密鑰,並將其存儲在數據庫中。
-
步驟 3:驗證服務向前端返回一個 URI。URI 由密鑰發放者、用戶名和祕鑰組成。URI 以二維碼的形式顯示在網頁上。
-
步驟 4:Bob 使用谷歌身份驗證器掃描生成的 QR 碼。密鑰存儲在驗證器中。
第二階段
-
步驟 1 和 2:Bob 想通過 Google 兩步驗證登錄一個網站。爲此,他需要密碼。每隔 30 秒,谷歌身份驗證器會使用 TOTP(基於時間的一次性密碼)算法生成一個 6 位數的密碼。Bob 使用密碼進入網站。
-
步驟 3 和 4:前臺將 Bob 輸入的密碼發送到後臺進行身份驗證。驗證服務從數據庫中讀取密鑰,並使用與客戶端相同的 TOTP 算法生成一個 6 位數的密碼。
-
步驟 5:身份驗證服務比較客戶端和服務器生成的兩個密碼,並將比較結果返回前端。只有當兩個密碼匹配時,Bob 才能繼續登錄。
問題 1: 這種身份驗證機制是安全的嗎?別人能否獲取_密_鑰?
我們需要確保使用 HTTPS 傳輸密鑰。身份驗證器客戶端和數據庫會存儲密鑰,我們需要確保密鑰經過加密。
問題 2: 6 位數密碼會被黑客猜到嗎?
不會。密碼有 6 位數字,因此生成的密碼有 100 萬種可能的組合。此外,密碼每 30 秒更改一次。如果黑客想在 30 秒內猜出密碼,他們每秒需要輸入 30,000 個密碼組合。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/OS58gNnXovGS4OtpTFH6lQ