拯救打不開的EFS加密檔案

MSFT相關
回覆文章
schumi
Site Admin
文章: 696
註冊時間: 2004-04-15 14:30:34

拯救打不開的EFS加密檔案

文章 schumi »

from http://www.ecampustoday.com.hk/computin ... =10&cid=67

Windows XP備有Encrypted File System(EFS)可以將檔案加密。問題是,EFS實在太強勁,當原本加密檔案的帳號消失之後,EFS加密的資料檔案便無法打開。究竟有甚麼方法可解決?

EFS是Windows XP/2000/NT的NTFS檔案系統提供的加密功能,採用PKI公匙基制,跟檔案系統緊密結合,所以加密及解密程序可以在不影響用戶的情況下進行,方便快捷。

加密檔案需要原本帳號獨一無二的加密籲匙(encrypted keys)才能解碼。當重新安裝XP之後,將儲存在Registry以及Documents and Settings資料夾的帳號資料洗掉,加密檔案基本上無法復原,就算是擁有最高權限的Administrator帳號也無能為力。

憑證為何可解EFS加密

在採用Active Directory(AD)架構的的微軟視窗網絡中,用戶可透過(EFS Recovery Agent)」授權指定帳號,開啟該EFS加密檔案。不過,對於不納入 AD的單機(Standalone Computer)用戶來說,這功能有等於無。然而,亦有 變通方法。單機用戶可使用「憑証(Certificates)」授權其他帳號解開EFS 檔案。

前文提過EFS使用PKI公匙基制的加密系統,要配合各種加密籲匙(Encrypted Key),並且要有識別電腦系統的機器編碼才能正確地解開加密保護。而所謂 憑證其實是集合這些資料的檔案,利用匯出匯入方式,安置加密籲匙及 Registry設定於另一XP帳號。

EFS可以破解嗎?

當你的XP開不了機,又沒有憑證在手。硬碟內加密檔案還有復原的機會嗎?當然有解救方法。假如原本加密帳號的Registry及加密相關的系統檔案仍然存在,EFS加密檔案應該有得救。拯救EFS加密檔先決條件是要有以下幾項數據:

* 機器編號 (machine number)
* 公匙指印(the public key thumbprint)
* 私匙數據(the private key)
* 鎖檔資訊(locking file)

如果保留了原本XP的documents and settings資料夾,這些資料應該可以找到。硬碟快速格式化(Quick Format)之後,這些資訊有可能殘留在硬碟之中,故亦有復原EFS檔案的可能。不過,當硬碟低階格式化(Low Level Format)或經多次重寫資料,便沒法找回這些資訊。當找齊這些資訊,便需要重建XP加密檔案系統的資料結構,將有關檔案安放於適當的位置,跟住的工作便是修改Registry設定。

EFS涉及XP的系統安全基制,XP有關於系統加密的設定異常複雜,互為關聯,稍有不配合,便不能登入帳號,進入視窗界面。故以人手改動這些資料和設定會相當冒險。

修改Registry這種既繁瑣又易出錯的工作,其實可以由程式代勞。目前有三個軟件回復EFS加密檔案,包括:

1. Elcomsoft公司推出的Advanced EFS data recovery(http://www.elcomsoft.com/aefsdr.html),售價99美元
2. Passware公司推出的efskey(http://www.lostpassword.com/efs.htm)售價195美元
3. 微軟公司的recerts.exe工具程式,此程式要透過微軟收費技術支援才會提供。

以上軟件或服務都需要收費的,亦同樣需要用戶提供加密籲匙及相關的系統資訊。在以上三個軟件中,微軟的recerts.exe筆者未有機會試用,相信是利用憑證來回復EFS檔案。

Efskey適合一般電腦用戶,程式會隱去技術細節,在其操作界面視窗瀏覽加密檔案,直接解碼(由於Demo版的關係,不能存檔)。Advanced EFS data recovery操作界面視窗比較複雜,但彈性較大,試用版可作小量檔案回復。

試用EFS復原軟件

筆者將資料檔案放在一個獨立的硬碟之中,設定EFS 加密保護。再以第二個硬碟的XP取代原本EFS加密的XP開機,原本XP的硬碟仍要安裝到電腦,這樣子Advanced EFS data recovery及efskey才能復原加密檔案,這是因為這兩個程式需要原本硬碟提供的加密籲匙資訊才能解碼。

經筆者試驗,Advanced EFS data recovery並非所有檔案都能解開,反而efskey對於不同帳號EFS加密能應付自如。Advanced EFS data recovery要用戶先掃描硬碟,找尋加密籲匙,然後再要掃描加密檔案。在其操作視窗內能解碼的檔案圖示會顯示為綠色,可按工具列的解密圖示來另存檔案,當Advanced EFS data recovery找不到可解碼的加密籲匙,檔案圖示會顯示為紅色。

Efskey不需要用戶接觸技術細節,復原檔案完成是透明進行的,用戶只要在其工作視窗瀏覽檔案,程式便會自動找尋加密籲匙解碼。跟Advanced EFS data recovery相類似,不能解碼的檔案圖示會顯示紅色鎖匙,能解碼的檔案圖示會標示為綠色鎖匙。Efskey可讓用戶瀏覽檔案內容,若想另存檔案,便要用拖拉圖示(Drag and Drop)到桌面或檔案總管的辦法。

使用「憑証」解開EFS檔案

不屬於任何網絡區域(Domain)的單機用戶做了EFS檔案加密後,Windows XP/2000便會自動產生一張「憑証(Certificates)」。這憑証其實是一組數據,用來驗証帳號身份,亦可以用來解開EFS編碼。可將憑証匯出為檔案,再匯入其他帳號,那相當於授權解開EFS加密檔案的許可証。匯出憑証的方法很簡單,主要是利用主控台程式將憑証連帶私人加密籲匙(Pirvate Keys)匯出。

使用「憑証」解開EFS檔案
Step 1

在XP內執行mmc.exe(開始鈕→執行)。隨後會出現「主控台」視窗。

Step 2

在「主控台」視窗的拉下菜單進入「檔案→新增/移除嵌入式管理單元」。開啟「新增/移除嵌入式管理單元」視窗。

Step 3

其後在視窗上按「新增」鈕,在「新增獨立嵌入式管理單元」視窗中選「憑證」一項,請按「新增」鈕。在其後出現的視窗選「我的使用者帳戶」項目,再按「完成」鈕。按「確定」或「關閉」鈕退出視窗。此時主控台視窗會出現憑證的目錄顯示。

Step 4

在「憑證-目前的使用者→個人→憑證」的分支內,會找到所需的憑證,點選項目,再右按鼠鍵,在彈出視窗進入「所有工作」選「匯出」。

Step 5

跟著「憑證匯出精靈」視窗完成步驟就可以了。要留意的是須設定為「匯出私密金鑰」,匯出檔案格式是使用「DER編碼二位元」,並輸入你指定的檔案名稱。另外,匯出憑證時要設定密碼作為保護。

匯入EFS憑証
在XP登入另一個帳號,在「檔案總管」以鼠標雙按EFS憑証檔案。此時系統會叫出「憑證匯入精靈」來引導用戶完成工作。在匯入時,系統會要求用戶輸入匯出憑証時所設定的密碼。另外,憑証應指定存放區,否則不會在「主控台」視窗內找到。當匯入憑証後,重新登入帳號,便可以開啟EFS加密檔案。
回覆文章

回到「Microsoft」