驗證器App、簡訊還是通行金鑰?雙重驗證方式該怎麼選
比較簡訊、電子郵件、驗證器App、推播、安全金鑰和通行金鑰:各自如何應對網路釣魚和SIM卡挾持,以及每種帳號該用哪一種。

雙重驗證不只有一種。一封有6位數的簡訊、驗證器App裡的驗證碼、一個「是你本人嗎?」的提示,還有通行金鑰,都算是第二道驗證,但它們防範的攻擊大不相同。以下比較常見的幾種方式,以及哪種帳號適合用哪一種。
真正重要的攻擊
大多數盜帳號事件都從以下三種情況之一開始:
- 重複使用密碼。從某個網站外洩的密碼,會被拿去其他所有網站嘗試登入。任何第二道驗證本身就能擋下這種攻擊。
- 網路釣魚。假的登入頁面收集你的密碼,而且越來越常連一次性驗證碼也一起收走,然後在幾秒內轉送到真的網站。
- SIM卡挾持。攻擊者說服你的電信業者把你的號碼轉到他們控制的SIM卡上。從那時起,你的簡訊和電話都會轉到他們手上。
好的第二道驗證也應該擋得住後面兩種。各種方式的差別就從這裡開始。
簡訊驗證碼
服務傳簡訊給你一組驗證碼,你把它輸入。
- 優點:任何手機都能用,不用安裝任何東西,換新手機時只要號碼不變就能沿用。
- 缺點:容易受到SIM卡挾持和號碼移轉攻擊,驗證碼可能出現在鎖定畫面的預覽中,而且和密碼一樣容易被釣魚。出國或沒有訊號時也可能收不到。
由於這些風險,NIST的數位身分指南把簡訊和語音列為受限制的驗證方式(SP 800-63B)。簡訊仍然遠比只有密碼好,而且有些銀行只提供這個選項。如果你依賴簡訊,可以問問電信業者能不能替帳號加上PIN碼或防止號碼移轉的保護。
電子郵件驗證碼
寄到你信箱的驗證碼或登入連結。
- 優點:普遍又熟悉。
- 缺點:安全性只和你的電子郵件帳號一樣強,而且對那個信箱本身完全無法當作第二道驗證。誰登入了你的信箱,就能拿到所有依賴它的網站的驗證碼。
同一份NIST指南指出,電子郵件不得用於頻外驗證,因為它無法證明你持有特定裝置。請把電子郵件驗證碼當作復原管道,而不是真正的2FA。
驗證器App(TOTP)
手機上的App每30秒根據它和服務共用的金鑰(通常以QR code提供)產生一組新的驗證碼。演算法是開放的TOTP標準,所以一個App就能用在成千上萬的服務上。如果你還沒設定過,我們的雙重驗證設定教學會一步步帶你完成。
- 優點:不受SIM卡挾持影響,離線可用,免費,而且幾乎所有提供2FA的服務都支援。
- 缺點:逼真的假網站仍然可以要求你輸入驗證碼並即時轉送;如果金鑰只存在一支手機上,手機遺失就得走帳號復原流程。
像Ring這樣的App會把金鑰加密保存在你的iPhone上,不需要網路連線就能產生驗證碼,所以傳輸過程中沒有東西可以攔截,也和你的手機號碼無關。不過它不能讓你對網路釣魚免疫:輸入驗證碼前,請先確認網址列。
推播核准
服務不是給你驗證碼,而是傳送提示到某個App或已登入的裝置,你點「核准」即可。
- 優點:非常方便,好的實作還會顯示登入嘗試來自哪裡。
- 缺點:每套推播系統通常只適用於自家廠商的帳號,而且攻擊者會利用「MFA疲勞」:不斷觸發提示,直到有人為了讓它停下來而點下核准。
數字比對(要你在提示中輸入登入畫面上顯示的數字)能讓盲目核准變得困難許多。無論如何,規則很簡單:絕對不要核准不是你自己發起的提示。
硬體安全金鑰
一個小小的USB或NFC金鑰,插上電腦或碰一下手機即可。現代的金鑰使用FIDO2和WebAuthn標準。
- 優點:防釣魚。金鑰簽署的是綁定真實網站網域的挑戰,所以假網站拿不到任何可以重複使用的東西。不用輸入、不用電池、不用網路。
- 缺點:要花錢,至少需要兩支(一支當備用),而且不是每個服務都支援。兩支都弄丟的話,又得回到帳號復原流程。
CISA的指南把FIDO/WebAuthn列為普遍可用的防釣魚多重要素驗證,並敦促各組織朝這個方向轉移(CISA說明文件)。
通行金鑰
通行金鑰建立在和安全金鑰相同的FIDO標準上,但憑證存放在你的手機或密碼管理工具裡,用Face ID、Touch ID或裝置密碼解鎖。在許多網站上,它會完全取代密碼,而不是多加一個步驟(FIDO Alliance)。
- 優點:和硬體金鑰一樣防釣魚,不用記也不用輸入,而且同步的通行金鑰會透過你的憑證管理工具跟著你到新裝置。
- 缺點:各服務的支援程度仍不一致,安全性取決於負責同步的那個帳號,而且在不同平台和瀏覽器之間使用可能讓人困惑。
如果網站提供通行金鑰,而你使用的是信任的憑證管理工具,它就是目前最強又方便的選擇。

哪種帳號該用哪種方式
使用每個服務提供的最強方式,但別因為追求完美而什麼都不做:
- 主要電子郵件、密碼管理工具、Apple帳號或Google帳戶。這些能重設其他所有帳號。有支援的話就用通行金鑰或安全金鑰,並保留備用碼或第二種方式作為後備。
- 工作帳號。遵守公司的規定。現在許多組織都要求使用安全金鑰或通行金鑰。
- 加密貨幣交易所和券商。用驗證器App或安全金鑰。只要能選,就避開簡訊。
- 銀行。很多銀行只提供簡訊或自家App。有App就用銀行的App,並向電信業者申請保護你的手機號碼。
- 社群網站、開發工具、雲端儲存、購物。驗證器App是最佳平衡點。
- 只提供簡訊的服務。還是要開。它仍然能擋下重複使用密碼的攻擊。
為什麼驗證器App是實際上的預設選擇
通行金鑰和硬體金鑰更能抵抗網路釣魚,只要有提供,就應該用在你最重要的帳號上。但能夠幾乎在任何地方免費開啟、不用買硬體、也不必綁定單一平台的方式,仍然是TOTP。它消除了簡訊的SIM卡挾持風險,不依賴你的信箱,而且離線可用。
需要事先規劃的代價是裝置遺失。替每個帳號保存備用碼,在重要帳號上加入第二種方式,並在真的需要之前,先讀讀手機遺失、驗證碼也不見時該怎麼辦。沒有任何方式能讓帳號堅不可摧,但選對第二道驗證,能讓你的帳號比別人的難攻破得多。
延伸閱讀

雙重驗證怎麼設定?用驗證器App開啟2FA完整教學
TOTP驗證碼是什麼、為什麼驗證器App比簡訊安全,以及如何在短短幾分鐘內替任何帳號開啟雙重驗證,又不會把自己鎖在帳號外面。

Fortnite雙重驗證:如何在Epic Games開啟2FA
透過Epic Games帳號開啟Fortnite雙重驗證:驗證器App、簡訊或電子郵件、備用碼,以及為什麼送禮需要開啟2FA。

Discord雙重驗證:啟用驗證器App並保存備用碼
一步步用驗證器App啟用Discord雙重驗證、下載並保存備用碼,並解決2FA驗證碼無效、換手機或手機遺失時無法登入的問題。