許多人覺得「密碼重設磁碟」是雞肋:預先建立才能用,忘記密碼時往往早已來不及建立。但其背後的公開金鑰加密架構極具教學價值。本文分析從 XP 到 Windows 7 的機制演進,並實測驗證加密後的密碼副本實際儲存位置(Recovery.dat 配置單元)。
核心原理:非對稱加密保護密碼
- 使用者建立重設磁碟時,系統產生一對 RSA 金鑰對(公開金鑰 + 私有金鑰)與自簽憑證。
- 以公開金鑰加密目前使用者的密碼雜湊,儲存於系統隱藏區域。
- 私有金鑰從電腦移除,僅儲存在重設磁碟(XP 為軟碟,Win7 為
userkey.psw 檔案於 USB/軟碟)。
- 忘記密碼時,插入重設磁碟 → 系統讀取私有金鑰 → 解密密碼雜湊 → 允許設定新密碼。
XP vs Windows 7 關鍵差異
| 項目 | Windows XP | Windows 7 |
| 私有金鑰儲存 | 軟碟根目錄 | USB/軟碟 userkey.psw |
| 加密密碼副本位置 | 登錄檔 HKLM\SECURITY\Recovery\ | 檔案 C:\Windows\System32\Microsoft\Protect\Recovery\Recovery.dat(登錄檔配置單元) |
| 登錄檔掛載點 | 固定路徑 | 動態 GUID:HKLM\C80ED86A-0D28-40dc-B379-BB594E14EA1B(由 LSASS 掛載) |
實測驗證:找回 Recovery.dat 並掛載檢視
- 以系統管理員開啟 CMD,執行
psexec -s -i -d regedit(需 Sysinternals PsExec),以 Local System 權限啟動登錄檔編輯器。
- 選取
HKLM → 「檔案」→ 「載入配置單元」→ 選擇 C:\Windows\System32\Microsoft\Protect\Recovery\Recovery.dat。
- 指定鍵名稱(如
Test),展開子機碼,可見目前登入帳戶的 SID,其預設值即為公開金鑰加密後的密碼副本。
- 檢視完畢 → 選取
Test → 「檔案」→ 「卸載配置單元」。
安全啟示
- 重設磁碟必須預先建立,事後無法補救(私有金鑰只在建立時產生一次)。
Recovery.dat 需 Local System 權限才能掛載,一般使用者/管理員無法直接竄改,提高離線攻擊門檻。
- 私有金鑰僅存在重設磁碟,妥善保管磁碟 = 擁有解密鑰匙,遺失則永無法解密(除非暴力破解 RSA,極不現實)。
- 企業環境建議透過群組原則備份 DRA(資料復原代理人)憑證,實現集中管理密碼重設。
結語
密碼重設磁碟看似簡單,實則是公開金鑰基礎建設(PKI)在單機場景的精簡應用。理解其機制,不僅能正確使用,更能體會現代作業系統如何在「便利性」與「安全性」間取得平衡。