雙重驗證入門指南:為帳號加上第二道鎖
即使你使用了世界上最強的密碼,如果密碼被釣魚攻擊或資料外洩曝光,帳號依然可能被入侵。雙重驗證(Two-Factor Authentication, 2FA)就是在密碼之外加上的第二道防線。Google 的安全部落格報告指出,啟用 2FA 可以阻擋 99% 以上的自動化帳號攻擊。
什麼是雙重驗證?
雙重驗證要求使用者提供兩種不同類型的身分驗證因素:
- 你知道的東西(Something you know)— 密碼、PIN 碼
- 你擁有的東西(Something you have)— 手機、安全金鑰
- 你本身的特徵(Something you are)— 指紋、臉部辨識
2FA 通常結合「你知道的」(密碼)和「你擁有的」(手機上的驗證碼),即使密碼被竊取,沒有第二個因素就無法登入。
常見的 2FA 方式
| 方式 | 安全等級 | 便利性 | 說明 |
|---|---|---|---|
| SMS 簡訊驗證 | 低 | 高 | 容易被 SIM 卡劫持 |
| TOTP 驗證器 App | 中高 | 中 | Google Authenticator 等 |
| 推送通知 | 中 | 高 | 在手機上確認登入 |
| 硬體安全金鑰 | 最高 | 中低 | YubiKey、Titan Key |
| 生物辨識 | 高 | 高 | 指紋、Face ID |
重點摘要:SMS 簡訊驗證是最弱的 2FA 方式,因為 SIM 卡可以被社交工程攻擊者劫持。FIDO Alliance 推薦使用 FIDO2/WebAuthn 標準的硬體安全金鑰,這是目前最安全的驗證方式。
TOTP 的工作原理
TOTP(Time-Based One-Time Password,基於時間的一次性密碼)是最常見的 2FA 方式之一,定義在 RFC 6238 中。
TOTP 的運作方式:
- 網站生成一個密鑰(Secret Key),通常以 QR Code 形式提供
- 你用驗證器 App 掃描 QR Code,將密鑰儲存在手機中
- 每 30 秒,App 使用密鑰和當前時間生成一個 6 位數驗證碼
- 登入時輸入這個驗證碼,伺服器用相同的演算法驗證
TOTP 基於 HMAC-SHA1 演算法(RFC 4226 HOTP 的延伸),因為時間視窗很短(30 秒),即使驗證碼被截獲也很快過期。
FIDO2 與 WebAuthn
FIDO Alliance 推出的 FIDO2 標準代表了認證技術的未來方向。它使用公鑰密碼學,完全消除了密碼的需求:
- 防釣魚 — 認證綁定到特定網域,假網站無法觸發認證
- 無密碼 — 可以完全取代密碼,只用安全金鑰或生物辨識登入
- 隱私保護 — 每個網站使用不同的金鑰對,無法跨站追蹤
如何開始使用 2FA
1. 優先保護重要帳號
先為以下帳號啟用 2FA:電子郵件、銀行/金融、社群媒體、雲端儲存。這些帳號被入侵的後果最嚴重。
2. 選擇合適的 2FA 方式
如果可能,優先使用 TOTP 驗證器或硬體安全金鑰。避免只依賴 SMS 簡訊驗證。
3. 備份恢復碼
啟用 2FA 時,網站通常會提供一組恢復碼。將這些恢復碼安全地儲存在離線位置,以防手機遺失或損壞。
2FA + 強密碼 = 最佳防護
2FA 不是密碼的替代品,而是補充。最佳的安全策略是使用密碼產生器建立強密碼,加上 2FA 的雙重保護。
立即使用密碼產生器 →結語
雙重驗證是每個人都應該啟用的安全功能。它大幅提高了帳號被入侵的難度,即使密碼被洩露也能提供保護。花幾分鐘為你最重要的帳號啟用 2FA,這是保護數位安全最有效的投資之一。
參考文獻
- FIDO Alliance. "FIDO2: Web Authentication (WebAuthn)." FIDO Alliance Specifications, 2024. https://fidoalliance.org/fido2/
- Google. "New Research: How Effective Is Basic Account Hygiene at Preventing Hijacking." Google Security Blog, 2019. https://security.googleblog.com/2019/05/new-research-how-effective-is-basic.html
- M'Raihi, D. et al. "TOTP: Time-Based One-Time Password Algorithm." RFC 6238, IETF, 2011. https://www.rfc-editor.org/rfc/rfc6238
- M'Raihi, D. et al. "HOTP: An HMAC-Based One-Time Password Algorithm." RFC 4226, IETF, 2005. https://www.rfc-editor.org/rfc/rfc4226