部落格

部落格

關於雙重驗證、TOTP 安全性以及保護線上帳號最佳實踐的文章。

TOTP驗證碼生成原理

RFC 6238 時間型一次性密碼演算法架構流程圖

步驟 1Base32

共享金鑰

共享金鑰

JBSWY3DPEH...
步驟 2Unix

Unix 時間

起算秒數 1970-01-01

1741531200
步驟 3T = t / 30

時間計數器 (T)

30 秒時間步長

58051040
步驟 4HMAC-SHA

HMAC-SHA Hash

HMAC(金鑰, 計數器)

160-bit digest
步驟 530 秒後過期

動態截斷

482901

& 6位數代碼輸出

RFC 6238TOTP = HOTP(SecretKey, ⌊(CurrentTime − T0) / TimeStep⌋)
T0 = 0 (Unix Epoch)•TimeStep = 30s

TOTP 演算法將共享金鑰與除以步長(預設 30 秒)的當前 Unix 時間戳記結合,經過 HMAC-SHA-1、SHA-256 或 SHA-512 雜湊運算,再透過動態截斷產生 6 位或 8 位驗證碼,每 30 秒自動更新一次。

演算法對比

TOTP 實作中常用雜湊演算法之安全性與效能評比

演算法雜湊函數輸出位元安全等級速度適用場景
SHA-1HMAC-SHA-1160標準最快消費級應用
SHA-256HMAC-SHA-256256增強快企業級
SHA-512HMAC-SHA-512512最高中等高安全

分步設定指南

按照以下步驟使用驗證器應用程式為您的帳號啟用進階保護

步驟操作詳情
1選擇驗證器從應用程式商店下載Google Authenticator、Authy或Microsoft Authenticator。
2在服務上啟用2FA[Launch Generator ↑]前往帳戶安全設定,選擇「啟用雙因素驗證」。
3掃描QR碼使用驗證器應用程式掃描螢幕上顯示的QR碼。
4儲存備份碼[Save in Vault ↑]下載或記下服務提供的備份碼。
5驗證設定輸入應用程式中的6位驗證碼以確認設定正常運作。

保持更新

獲取最新的安全提示和TOTP最佳實踐,直接送到您的收件匣。