你的密碼可能已經外洩了——只是你不知道而已。
每年大規模資料外洩事件層出不窮。2024 年光是被公開的帳密組合就超過 260 億筆。攻擊者拿到這些資料後做的第一件事叫「撞庫」:用你在 A 網站的帳號密碼去試 B、C、D 網站。如果你有任何一組密碼重複使用(老實說,大多數人都有),那些帳號就等於門戶大開。
就算你用密碼管理器、每個網站都用不同的隨機密碼,資料庫被駭時你的密碼一樣會外洩。差別只在於影響範圍——但那個被駭的帳號本身,依然需要額外保護。
這就是為什麼 2FA(雙因素驗證)不是「進階功能」,而是每個人都應該打開的基本防護。
這篇文章從零開始解釋三種 2FA 方式的差異,幫你選出最適合的方案,並且告訴你哪些帳號一定要先保護。
🎯 這篇適合誰
| 你的情況 | 建議先看哪段 |
|---|---|
| 完全不懂 2FA,想搞懂概念 | 什麼是 2FA |
| 想知道 SMS 驗證安不安全 | SMS 簡訊驗證 |
| 想用 TOTP 但不知道怎麼開始 | TOTP 驗證 |
| 聽過 Passkey 想了解 | Passkey / FIDO2 |
| 想選 TOTP App | TOTP App 推薦 |
| 怕換手機後進不去帳號 | 備份策略 |
| 想知道哪些帳號該先開 | 哪些服務一定要開 2FA |
🔑 什麼是 2FA
2FA 的全名是 Two-Factor Authentication,中文叫雙因素驗證。核心概念很簡單:
登入時需要兩種不同類型的東西,缺一不可。
這兩種東西來自不同的「因素」:
- 你知道的東西(Something you know):密碼、PIN 碼
- 你擁有的東西(Something you have):手機、硬體金鑰
- 你本身的東西(Something you are):指紋、臉部辨識
密碼屬於第一種。2FA 就是在密碼之上,再加一個第二種或第三種。
打個比方:密碼像是家門的鑰匙,2FA 像是門內還有一道需要指紋才能開的鎖。就算小偷偷到了你的鑰匙(密碼外洩),沒有你的指紋(第二因素),他還是進不了門。
目前主流的三種 2FA 方式:
- SMS 簡訊驗證碼
- TOTP 時間驗證碼(驗證器 App)
- Passkey / FIDO2(硬體金鑰或生物辨識)
接下來我們逐一拆解。
📱 SMS 簡訊驗證:為什麼是最弱的
SMS 驗證的流程你一定很熟悉:登入時系統發一封簡訊到你手機,裡面有 6 位數驗證碼,輸入後才能登入。
優點: - 不需要裝任何 App - 幾乎所有服務都支援 - 對非技術用戶來說最直覺
但它有幾個嚴重的安全問題:
SIM Swap 攻擊
攻擊者打電話給你的電信業者,假裝是你,說「我的 SIM 卡壞了,請幫我補發一張」。一旦成功,你的門號就轉到他的手機上,所有簡訊驗證碼都歸他收。
這不是理論攻擊——2019 年 Twitter CEO Jack Dorsey 的帳號就是這樣被盜的。
SS7 協議漏洞
SS7 是全球電信網路的底層協議,設計於 1970 年代,幾乎沒有安全防護。攻擊者如果能存取 SS7 網路(在某些國家並不難),可以攔截任何人的簡訊,完全不需要接觸你的手機。
釣魚攻擊
攻擊者做一個假的 Gmail 登入頁面,你輸入帳號密碼後,他即時拿去真的 Gmail 登入,Google 發送 SMS 到你手機,你在假頁面輸入驗證碼,攻擊者即時轉送——整個過程不到 30 秒。
結論:SMS 2FA 比沒有好,但它是三種方式裡最弱的。 如果一個服務同時支援 TOTP 和 SMS,永遠選 TOTP。但如果某個服務只支援 SMS(例如很多台灣的銀行網站),開著總比不開好。
⏱️ TOTP 驗證:你該用的標準方案
TOTP(Time-based One-Time Password)是目前最普遍也最推薦的 2FA 方式。打開手機上的驗證器 App,看到一組每 30 秒更新一次的 6 位數字,輸入就好。
原理很簡單
- 設定階段: 你在某個服務開啟 2FA 時,它會給你一個 QR Code(裡面其實是一串叫做「共享密鑰」的隨機字串)
- 你的驗證器 App 掃描這個 QR Code,把共享密鑰存起來
- 每次登入時: App 用「共享密鑰 + 當前時間」經過 HMAC-SHA1 運算,產生一組 6 位數字
- 伺服器端做同樣的運算,如果兩邊算出來的數字一樣,驗證通過
因為雙方都用「時間」當變數,所以驗證碼每 30 秒就會變一次。這就是為什麼它叫 Time-based。
為什麼比 SMS 安全
- 不走電信網路: 驗證碼是在你手機本地產生的,不經過任何網路傳輸,SIM Swap 和 SS7 攻擊完全無效
- 離線可用: 就算手機沒有網路,驗證碼一樣會正常產生(因為只需要時間)
- 無法被即時轉送: 釣魚網站沒辦法直接取得你 App 裡的密鑰(但注意:如果你在假網站上手動輸入驗證碼,釣魚攻擊仍然有可能成功)
設定流程(以 Gmail 為例)
- 登入 Google 帳號 → 安全性 → 兩步驟驗證
- 選擇「驗證器應用程式」
- 用驗證器 App 掃描螢幕上的 QR Code
- 輸入 App 顯示的 6 位數驗證碼確認
- 重要:把 Google 給你的復原碼抄下來保存
整個過程不到兩分鐘。
🔑 Passkey / FIDO2:防釣魚的終極方案
Passkey 是最新一代的驗證方式,由 FIDO Alliance 推動,Apple、Google、Microsoft 三巨頭聯合支持。它的目標很明確:徹底消滅密碼。
原理
Passkey 用的是非對稱加密(公鑰加密):
- 註冊時: 你的裝置產生一對金鑰——私鑰留在裝置上(永遠不會離開),公鑰給伺服器
- 登入時: 伺服器發一個挑戰(challenge),你的裝置用私鑰簽名後回傳,伺服器用公鑰驗證
因為私鑰永遠不離開你的裝置,伺服器也沒有存任何密碼或密鑰,就算伺服器被駭,攻擊者拿到的公鑰毫無用處。
為什麼是防釣魚的
TOTP 雖然比 SMS 安全,但仍然有一個弱點:如果你在釣魚網站上手動輸入驗證碼,攻擊者可以即時轉送到真的網站完成登入。
Passkey 從根本上解決這個問題——驗證過程會綁定網域。你的裝置在簽名時會檢查目前網站的網域,如果你在 g00gle.com(假網站)上嘗試登入,簽名根本不會觸發,因為它只認 google.com。
支援方式
你不需要買額外硬體。Passkey 可以透過:
- Windows Hello: 用指紋、臉部辨識或 PIN
- Face ID / Touch ID: iPhone 和 Mac 原生支援
- Android 生物辨識: 指紋或臉部辨識
- 硬體金鑰: YubiKey、Google Titan Key(最高安全性,適合高風險帳號)
哪些服務已支援 Passkey
- Google、Apple ID、Microsoft
- GitHub、GitLab
- Cloudflare、AWS
- X(Twitter)、LinkedIn
- 1Password、Bitwarden
- Coinbase、PayPal(部分地區)
支援清單持續增長中。可以到 passkeys.directory 查詢最新狀態。
目前的限制
- 跨裝置同步仍在演進: Apple 的 Passkey 透過 iCloud 鑰匙圈同步,Google 透過 Google Password Manager,但跨生態系(Apple → Windows)仍需掃 QR Code
- 不是所有服務都支援: 很多台灣的服務還只有 SMS
- 復原機制不統一: 各服務的 Passkey 遺失復原流程不同
我的建議: 在支援 Passkey 的服務上優先使用,但同時保留 TOTP 作為備用方式。純 Passkey(沒有任何備用)目前還太早。
📊 三種方式完整比較
| 項目 | SMS 簡訊 | TOTP 驗證器 | Passkey / FIDO2 |
|---|---|---|---|
| 安全性 | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 防釣魚 | ❌ | ❌(手動輸入仍可被騙) | ✅(綁定網域) |
| 離線可用 | ❌(需收簡訊) | ✅ | ✅ |
| 方便性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 設定難度 | 極低 | 低 | 低 |
| 額外成本 | 無 | 無 | 無(軟體)/ 有(硬體金鑰) |
| 裝置依賴 | SIM 卡 | 手機 App | 裝置生物辨識或硬體金鑰 |
| 服務支援度 | 幾乎全部 | 大部分 | 逐漸增加中 |
| 伺服器被駭影響 | 高 | 中(密鑰可能外洩) | 低(只有公鑰) |
一句話總結: 能用 Passkey 就用 Passkey,不能就用 TOTP,最後才用 SMS。
📲 TOTP App 推薦
TOTP 是目前最實用的 2FA 方式(因為幾乎所有服務都支援),選對 App 很重要。以下是主流選擇:
Aegis Authenticator(Android 限定)
開源、加密匯出、支援自動備份。介面乾淨,功能完整。如果你是 Android 用戶,這是首選,沒有之一。
2FAS
開源,支援 iOS 和 Android,有瀏覽器擴充功能(在電腦上登入時可以從手機推送驗證碼)。UI 設計現代,備份和匯入匯出功能完善。如果你用 iPhone,2FAS 是我的首選推薦。
Google Authenticator
Google 自己出的,2023 年終於加入雲端備份。優點是和 Google 帳號綁定、跨裝置同步。缺點是不開源、匯出功能有限、過去的口碑因為「沒有備份功能」被搞砸。
Authy
Twilio 旗下產品,支援跨平台和雲端同步。優點是多裝置同步做得早也做得好。缺點是不開源、Twilio 曾經發生過資料外洩事件(2022 年 Authy 用戶的手機號碼被洩露)。
Bitwarden / Vaultwarden TOTP
密碼管理器直接內建 TOTP 功能(Bitwarden 需要付費方案,Vaultwarden 自架則完全免費)。登入時自動複製驗證碼,非常方便。但有一個隱憂:密碼和第二因素放在同一個地方,等於把兩把鑰匙掛在同一個鑰匙圈上。
比較表
| App | 平台 | 開源 | 雲端備份 | 加密匯出 | 推薦場景 |
|---|---|---|---|---|---|
| Aegis | Android | ✅ | ✅(自動備份) | ✅ | Android 首選 |
| 2FAS | iOS + Android | ✅ | ✅ | ✅ | iOS 首選,跨平台也行 |
| Google Authenticator | iOS + Android | ❌ | ✅ | ⚠️ 有限 | 已在 Google 生態的人 |
| Authy | 全平台 | ❌ | ✅ | ❌ | 需要桌面版的人 |
| Bitwarden TOTP | 全平台 | ✅ | ✅ | ✅ | 追求方便、接受風險集中 |
我的推薦: Android 用 Aegis,iPhone 用 2FAS。如果你已經在用 Bitwarden 或 Vaultwarden,把 TOTP 也放進去是可以接受的選擇——但前提是你的主密碼夠強,而且 Bitwarden 帳號本身有用 Passkey 或硬體金鑰保護。
🛡️ 備份策略:換手機不要慌
2FA 最大的噩夢不是被駭,而是自己被鎖在門外。手機掉了、壞了、換新手機忘記轉移——這些情境每天都在發生。
復原碼一定要保存
開啟 2FA 時,大部分服務都會給你一組「復原碼」(Recovery Codes),通常是 8-10 組一次性密碼。這些碼可以在你失去第二因素時救你一命。
怎麼保存: - 最推薦: 抄在紙上,放在保險箱或固定的安全位置(不會被駭客遠端存取) - 次推薦: 存在密碼管理器裡(Bitwarden / Vaultwarden 的安全筆記功能) - 不推薦: 存在手機的備忘錄、雲端硬碟未加密的文件、螢幕截圖
TOTP App 備份
| 方式 | 說明 |
|---|---|
| App 內建備份 | Aegis 和 2FAS 都支援加密匯出檔案,定期匯出存到安全的地方 |
| 雲端同步 | Google Authenticator 和 Authy 會自動同步,換手機後登入就恢復 |
| 掃描時留底 | 開啟 2FA 時,QR Code 截圖加密保存(這樣新裝置可以重新掃描) |
多裝置策略
一個 TOTP 的密鑰可以同時存在多個裝置上。設定 2FA 時,同時用兩台手機(或手機 + 平板)掃描同一個 QR Code。這樣即使一台裝置遺失,另一台還能用。
Vaultwarden 作為備份方案
如果你有自架 Vaultwarden,可以把 TOTP 密鑰同時存在 Vaultwarden 和獨立的驗證器 App 裡。平常用 App 比較方便,Vaultwarden 當作備援——但記得 Vaultwarden 本身的登入也要有獨立的 2FA 保護。
⚙️ 哪些服務一定要開 2FA
不是所有帳號的優先級都一樣。如果你只做一件事,先把 Gmail 的 2FA 打開。
為什麼是 Email 第一?因為幾乎所有其他服務的「忘記密碼」都是透過 Email 重設。控制了你的 Email,等於控制了你的所有帳號。
優先級排序
🔴 最高優先(今天就去開): - Email(Gmail / Outlook) — 所有帳號的復原管道 - 密碼管理器(Bitwarden / 1Password) — 存了所有其他密碼 - Apple ID / Google 帳號 — 整個生態系的根基
🟠 高優先(這週內開): - 雲端儲存(iCloud、Google Drive、OneDrive) — 個人檔案和照片 - 金融服務(銀行、證券、加密貨幣交易所) — 直接關係到錢 - Synology DSM — 你的 NAS 裡有什麼自己最清楚(可以參考 NAS 三層防護)
🟡 建議開啟: - 社群媒體(Facebook、Instagram、X、LinkedIn) — 身份冒用風險 - GitHub / GitLab — 程式碼和專案資產 - Cloudflare / AWS / GCP — 基礎設施管理
🟢 有開更好: - 電商平台(蝦皮、Amazon) — 綁了信用卡 - 串流服務(Netflix、Spotify、YouTube Premium) — 帳號共享時容易被盜 - 論壇和社群(Reddit、Discord) — 防止帳號被冒用
❓ FAQ
手機掉了 / 壞了,進不去帳號怎麼辦?
這就是復原碼存在的意義。用復原碼登入後,先關閉舊的 2FA,再用新裝置重新設定。如果連復原碼都沒有,大部分服務有身份驗證流程(上傳身份證等),但會很麻煩而且需要等待。教訓:一定要保存復原碼。
TOTP 驗證碼一直失敗,怎麼辦?
TOTP 依賴時間同步。如果你手機的時間不準(差超過 30 秒),驗證碼就會對不上。解決方式:
- 手機設定 → 日期與時間 → 開啟「自動設定」
- Aegis 和 Google Authenticator 都有內建的時間校正功能
Passkey 跟密碼管理器是什麼關係?
密碼管理器(如 Bitwarden、1Password)現在也可以儲存和管理 Passkey。它們扮演的角色類似「保險箱」——把 Passkey 的私鑰安全地存起來,並在需要時提供給瀏覽器。如果你擔心 Passkey 被鎖在單一生態系(例如只有 iPhone 能用),用密碼管理器存 Passkey 是跨平台的好方案。
把 TOTP 也存在 Bitwarden 裡,安全嗎?
安全性確實降低了——密碼和 TOTP 密鑰放在同一處,等於只有一個因素。但實務上,如果你的 Bitwarden 主密碼夠強(20 字元以上的隨機密碼),而且 Bitwarden 帳號本身用 Passkey 或 YubiKey 保護,風險是可以接受的。方便和安全永遠是取捨,重要的是你意識到這個取捨。
SMS 2FA 已經開了,要不要關掉換 TOTP?
大部分服務允許你同時保留 SMS 和 TOTP(TOTP 作為主要方式,SMS 作為備用)。建議的做法是:先加入 TOTP,確認運作正常後,如果服務允許你把 SMS 從備用方式中移除,就移除;如果不允許,至少確保主要驗證方式是 TOTP。
硬體金鑰值得買嗎?
如果你是開發者、管理雲端基礎設施、或有加密貨幣資產,一支 YubiKey(約台幣 1500-2000 元)是值得的投資。對一般用戶來說,手機上的 Passkey + TOTP 已經足夠。
✨ 結語
資安從來不是「有沒有被盯上」的問題,而是「自動化攻擊掃到你時,你有沒有準備好」的問題。撞庫攻擊不會挑人,它只是拿著外洩的帳密清單逐一嘗試。
2FA 就是你在這場自動化掃射中的防彈背心。不需要多厚,但你得穿上。
今天就打開你的 Gmail,花兩分鐘設定 TOTP。這可能是你這輩子做過投資報酬率最高的兩分鐘。
🔗 延伸閱讀
- 密碼管理器比較:1Password vs Bitwarden vs KeePass
- Bitwarden 雲端版完整教學
- Vaultwarden 自架教學:在 NAS 上跑自己的密碼伺服器
- Synology NAS 資安三層防護:2FA、防火牆、Tailscale VPN