資安觀念

2FA 備援碼保存方式:避免手機遺失後連復原管道也一起消失

整理 2FA 備援碼的安全保存、離線備份與更新方式,避免手機遺失、換機或帳號被鎖時失去復原管道。

2FA 備援碼保存方式:避免手機遺失後連復原管道也一起消失

備援碼不是「有空再存」的附加功能,而是第二因素失效時的最後登入憑證。它通常是一次性密碼,取得它的人不需要你的手機,也可能直接繞過驗證器登入,因此保存方式必須同時處理可用性與外洩風險。

01

先確認備援碼的安全屬性

不同服務對備援碼的規則不一樣:有些提供 8 到 10 組一次性代碼,有些只提供一組可重複使用的恢復金鑰。啟用前先確認三件事:

  • 每組代碼是否使用後立即失效。
  • 重新產生新代碼時,舊代碼是否整批撤銷。
  • 使用備援碼登入後,服務是否會寄送安全通知。
風險判斷:可以直接登入帳號的備援碼,敏感度等同密碼;可以重設 2FA 的恢復金鑰,敏感度通常更高。
02

採用「兩份、兩種介質、不同位置」

可靠做法不是把備援碼截圖後留在同一支手機,而是保留兩份可控副本:

  1. 一份放在具端對端加密、另有獨立主密碼的密碼管理器安全筆記。
  2. 一份列印或手寫,放在上鎖且不與日常裝置一起攜帶的位置。

不要把代碼寄到保護該帳號的同一個信箱,也不要存進未加密的相簿、聊天收藏、公開雲端連結或瀏覽器下載資料夾。

03

需要電子檔時先加密再備份

若組織流程需要保存文字檔,可以先用 age 或同等工具加密,再把密文放進受控備份。以下範例使用密碼加密,輸出的檔案即使被同步,也不能直接讀取:

umask 077
printf "%s\n" "RECOVERY-CODE-1" "RECOVERY-CODE-2" > recovery-codes.txt
age -p -o recovery-codes.txt.age recovery-codes.txt
shred -u recovery-codes.txt
sha256sum recovery-codes.txt.age > recovery-codes.txt.age.sha256

加密密碼不能與密文放在同一位置。Windows 無法可靠使用 shred 清除 SSD 區塊時,應改在全磁碟加密的裝置上建立檔案,完成後刪除並清空暫存。

04

換機前先驗證,不要先移除舊裝置

更換手機或驗證器時,正確順序是「新增新因素 → 測試登入 → 確認備援碼 → 移除舊因素」。先刪除舊驗證器再設定新裝置,會把正常換機變成帳號救援事件。

換機檢查順序

  1. 在可信裝置維持一個有效登入工作階段。
  2. 新增新驗證器或通行金鑰。
  3. 使用無痕視窗完成一次完整登入。
  4. 確認備援碼仍可取得,必要時重新產生。
  5. 最後才撤銷舊手機與舊驗證器。
05

代碼使用、外洩或人員異動後立即輪替

備援碼一旦被使用、曾出現在畫面錄影、客服工單、原始碼倉庫或共享文件,就不應繼續信任。重新產生後,要確認舊碼失效,並更新所有受控副本。

團隊帳號還要把「誰能取用」「何時取用」「何時輪替」寫進權限流程,不能把唯一副本交給單一員工保管。

06

每半年執行一次不破壞登入的復原演練

演練不一定要真的消耗備援碼。可以先確認保存位置可取得、解密工具可用、復原聯絡資訊正確,再由帳號管理者在測試帳號執行完整流程。

  • 確認至少兩位授權人員知道取用程序。
  • 確認紙本沒有受潮、褪色或位置變更。
  • 確認密碼管理器緊急存取與主密碼復原方式仍有效。
  • 記錄演練日期、結果與下一次檢查時間。

演練合格條件

授權人員能在不依賴原手機的情況下找到備援碼、完成解密或取用,且不需要向未授權人員索取任何秘密。