小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

EFS加密的一線生機(jī)-加密帳戶被刪的補(bǔ)救方法

 此刻開始 2009-09-02

EFS加密的一線生機(jī)-加密帳戶被刪的補(bǔ)救方法

引子:看到新聞組里那么多網(wǎng)友“哭訴”EFS問(wèn)題,早就想寫一篇EFS的文章。但是苦于手頭資料太少,很多概念尚未圓潤(rùn)貫通,匆匆草就之下,這誤人子弟的罪責(zé),怕是逃不過(guò)的。

 

聲明:本文參考了國(guó)外一篇“牛”文,由于要掌握這篇國(guó)外文章,讀者必須具備一些NTFS底層知識(shí),否則難窺其堂奧。故此筆者四處網(wǎng)羅資料,加上穿鑿附會(huì),希望能幫助讀者諸君更方便省時(shí)地領(lǐng)會(huì)這篇文章,舞好EFS這把雙刃劍。文章鏈接如下:

http://www./efsrecovery/index.php

 

這里需要提醒用戶注意:本文并非為了證明微軟的EFS存在 漏洞,也不是專為馬大哈們準(zhǔn)備的包治百病的后悔藥。事實(shí)上如果沒(méi)有導(dǎo)出EFS證書和私鑰,那么一旦刪除用戶、或者重裝系統(tǒng),EFS加密文件就不屬于你了。

 

提示 本文適用于Windows XP Professional單機(jī)環(huán)境,并假設(shè)沒(méi)有恢復(fù)代理(DRF)和共享訪問(wèn)帳戶(多個(gè)DDF)

任務(wù)描述

如果某個(gè)用戶把自己的登錄帳戶刪除,那么其他用戶將無(wú)法訪問(wèn)其EFS加密文件。更可惡的是,一旦公司里的某個(gè)用戶心懷怨氣,惡意加密了本屬于別的用戶的重要文件,將會(huì)導(dǎo)致嚴(yán)重問(wèn)題。一般情況下,這些EFS加密文件已經(jīng)被判了死刑,但是實(shí)際上只要滿足以下條件的話,我們還是可以在末日來(lái)臨之前打開逃生的天窗:

(1) 必須知道該被刪帳戶的密碼。

(2) 該被刪帳戶的配置文件必須存在。如果使用“本地用戶和組”管理單元?jiǎng)h除帳戶,則配置文件保留的機(jī)會(huì)很大,如果使用“用戶帳戶”控制面板刪除帳戶,則有一半機(jī)會(huì)保留配置文件。如果配置文件不幸被刪,則只能祈禱可以借助Easy Recovery之類的數(shù)據(jù)恢復(fù)工具進(jìn)行恢復(fù)。

可能有些朋友會(huì)覺(jué)得這兩個(gè)條件比較苛刻,此處賣個(gè)關(guān)子先……

EFS加密原理

大家知道,EFS加密實(shí)際上綜合了對(duì)稱加密和不對(duì)稱加密:

(1) 隨機(jī)生成一個(gè)文件加密密鑰(叫做FEK),用來(lái)加密和解密文件。

(2) 這個(gè)FEK會(huì)被當(dāng)前帳戶的公鑰進(jìn)行加密,加密后的FEK副本保存在文件$EFS屬性的DDF字段里。

(3) 要想解密文件,首先必須用當(dāng)前用戶的私鑰去解密FEK,然后用FEK去解密文件。

 

看到這里,似乎EFS的脈絡(luò)已經(jīng)很清晰,其實(shí)不然,這樣還不足于確保EFS的安全性。系統(tǒng)還會(huì)對(duì)EFS添加兩層保護(hù)措施:

(1) Windows會(huì)用64字節(jié)的主密鑰(Master Key)對(duì)私鑰進(jìn)行加密,加密后的私鑰保存在以下文件夾:

%UserProfile%\Application Data\Microsoft\Crypto\RSA\SID

提示 Windows系統(tǒng)里的各種私有密鑰,都用相應(yīng)的主密鑰進(jìn)行加密。Windows VistaBitLocker加密,也用其主密鑰對(duì)FVEK(全卷加密密鑰)進(jìn)行加密。

(2) 為了保護(hù)主密鑰,系統(tǒng)會(huì)對(duì)主密鑰本身進(jìn)行加密(使用的密鑰由帳戶密碼派生而來(lái)),加密后的主密鑰保存在以下文件夾:

%UserProfile%\Application Data\Microsoft\Protect\SID

整個(gè)EFS加密的密鑰架構(gòu)如圖1所示。

1

提示 EFS密鑰的結(jié)構(gòu)部分,參考自《Windows Internals 4th》的第12章。

 

回到“任務(wù)描述”部分所述的兩個(gè)條件,現(xiàn)在我們應(yīng)該明白原因了:

(1) 必須知道該被刪帳戶的密碼:沒(méi)有帳戶密碼,就無(wú)法解密主密鑰。因?yàn)槠浼用苊荑€是由帳戶密碼派生而來(lái)的。

提示 難怪Windows XP2000不同,管理員重設(shè)帳戶密碼,也不能解密EFS文件。

(2) 該被刪帳戶的配置文件必須存在:加密后的私鑰和主密鑰(還包括證書和公鑰),都保存在配置文件里,所以配置文件萬(wàn)萬(wàn)不可丟失,否則就會(huì)徹底“鬼子不能進(jìn)村”。重裝系統(tǒng)后,原來(lái)的配置文件肯定被刪,這時(shí)候當(dāng)然不可能恢復(fù)EFS文件。

 

可能有用戶會(huì)想,只需新建一個(gè)同名的用戶帳戶,然后把原來(lái)配置文件復(fù)制給新帳戶,不就可以解密EFS文件了?原因在于帳戶的SID,因?yàn)樾陆ㄓ脩舻?/span>SID不可能和老帳戶一樣,所以常規(guī)方法是不可能奏效的。我們必須另辟蹊徑,讓系統(tǒng)再造一個(gè)完全一樣的SID

恢復(fù)步驟

為了方便描述,這里假設(shè)被刪帳戶的用戶名為AdminWindows安裝在C盤。

1.再造SID

注意 本方法取自“聲明”部分提到的那篇文章。

首先確認(rèn)被刪帳戶的SID,這里可以進(jìn)入以下文件夾:

C:\Documents and Settings\Admin\Application Data\Microsoft\Crypto\RSA

在其下應(yīng)該有一個(gè)以該被刪帳戶的SID為名的文件夾,例如是S-1-5-21-4662660629-873921405-788003330-1004(RID1004)

現(xiàn)在我們要設(shè)法讓新建帳戶同樣具有1004RID,這樣就能達(dá)到目的。

 

Windows中,下一個(gè)新建帳戶所分配的RID是由HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注冊(cè)表項(xiàng)的F鍵值所確定的。F鍵值是二進(jìn)制類型的數(shù)據(jù),在偏移量0048處的四個(gè)字節(jié),定義下一個(gè)帳戶的RID。那么也就是說(shuō),只需要修改0048處的四個(gè)字節(jié),就能達(dá)到目的(讓新建帳戶獲得1004RID)

 

確認(rèn)好以后,別忘記把Admin帳戶的配置文件轉(zhuǎn)移到別的地方!

 

(1) 默認(rèn)情況下,只有system帳戶才有權(quán)限訪問(wèn)HKEY_LOCAL_MACHINE\SAM,這里在CMD命令提示符窗口,運(yùn)行以下命令,以system帳戶身份打開注冊(cè)表編輯器:

psexec -i -d -s %windir%\regedit.exe

提示 可以在以下網(wǎng)站下載psexec

http://www./Utilities/PsExec.html

(2) 定位到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account注冊(cè)表項(xiàng),雙擊打開右側(cè)的F鍵值。

(3) 這里要說(shuō)明一下,Windows是以十六進(jìn)制、而且以反轉(zhuǎn)形式保存下一個(gè)帳戶的RID。什么意思呢?也就是說(shuō),如果是1004RID,對(duì)應(yīng)十六進(jìn)制就是03EC,但是我們必須把它反轉(zhuǎn)過(guò)來(lái)變成EC03,再擴(kuò)展為4個(gè)字節(jié),就是EC 03 00 00

所以,我們應(yīng)該把F鍵值的0048偏移量處,把其中四個(gè)字節(jié)改為“EC 03 00 00,如圖2所示。


2

(4) 重要:別忘了重啟計(jì)算機(jī)!

(5) 重啟以后,新建一個(gè)同名帳戶Admin,它的SID應(yīng)該和以前是完全一樣。如果不相信的話,可以借助GetSID或者PsGetSID等工具測(cè)試一下。

2.“破解”EFS

接下來(lái)的方法就非常簡(jiǎn)單了,用新建的Admin帳戶身份登錄系統(tǒng),隨便加密一個(gè)文件,然后注銷,用管理員帳戶登錄系統(tǒng),把原來(lái)保留的配置文件復(fù)制到C:\Documents and Settings\Admin文件夾下。

再用Admin帳戶登錄系統(tǒng),現(xiàn)在可以解密原來(lái)的EFS文件了。

疑難解答

1.如果已經(jīng)重裝系統(tǒng),那怎么辦?

“聲明”部分提到的那篇文章里提到,如果還記得原來(lái)帳戶的密碼,并且配置文件沒(méi)有被刪除的話,還有希望。這時(shí)候可以借助sysinternalsNEWSID工具把系統(tǒng)的計(jì)算機(jī)SID重設(shè)為原來(lái)的值,再用前面描述的方法構(gòu)造所需的RID,這樣就可以獲得所需的帳戶SID。剩余步驟完全一樣。

http://www./Utilities/NewSid.html

 

2.有用戶曾經(jīng)遇到這樣的問(wèn)題:登錄系統(tǒng)時(shí)收到提示說(shuō)密碼過(guò)期,需要重設(shè),重設(shè)密碼登錄后發(fā)現(xiàn)打開EFS文件。

KB890951提到這個(gè)問(wèn)題。其解釋是因?yàn)樵谛薷拿艽a時(shí),系統(tǒng)還沒(méi)有加載配置文件(有點(diǎn)語(yǔ)焉不詳),原文如下:

This problem occurs because the user profile for the current user is not loaded correctly after you change the password.

配置文件和EFS有何相干?看完本文,大家應(yīng)該知道,EFS的私鑰和主密鑰都是保存在配置文件里的。由于配置文件沒(méi)有加載,所以主密鑰的加密版本沒(méi)有得到更新(沒(méi)有跟上帳戶密碼的變化),導(dǎo)致主密鑰無(wú)法正確解密,從而無(wú)法解密私鑰和FEK。這就是問(wèn)題的真正原因。

KB提供了一個(gè)內(nèi)部補(bǔ)丁,可以解決這個(gè)問(wèn)題。KB890951的鏈接如下:

http://support.microsoft.com/kb/890951

 

3.有關(guān)公鑰的問(wèn)題

為了容易理解,筆者故意忽略了公鑰。公鑰保存也保存在帳戶的配置文件里:

%UserProfile%\Application Data\Microsoft\SystemCertificates\My\Certificates

EFS恢復(fù)的操作中,必須確保公鑰也要復(fù)制到新帳戶的配置文件里。盡管看起來(lái)公鑰與EFS解密無(wú)關(guān)(它負(fù)責(zé)加密)

原來(lái),加密文件$EFS屬性的DDF字段里除了有帳戶SID和加密的FEK副本外,還有公鑰的指紋信息(Public Key Thumbprint)和私鑰GUID信息(私鑰的某種散列值)

系統(tǒng)在掃描加密文件$EFS屬性中的DDF字段時(shí),根據(jù)用戶配置文件里的公鑰中所包含的公鑰指紋和私鑰GUID信息,當(dāng)然還有帳戶的SID,來(lái)判斷該帳戶是否具有對(duì)應(yīng)的DDF字段,從而判斷該用戶是否屬于合法的EFS文件擁有者。

所以公鑰也很重要。

當(dāng)然公鑰是可以偽造(可以偽造出所需的公鑰指紋和私鑰GUID),以欺騙EFS系統(tǒng),具體方法可以參考國(guó)外的那篇原稿,此處不再贅述。

 

加強(qiáng)EFS的安全

由于EFS把所有的相關(guān)密鑰都保存在Windows分區(qū),所以這可能給EFS帶來(lái)一定的安全隱患。目前有一些第三方工具號(hào)稱可以破解EFS,這些工具首先攻擊SAM配置單元文件,嘗試破解帳戶密碼,從而破解帳戶密碼主密鑰的加密密鑰主密鑰EFS私鑰FEK密鑰鏈

為了防止攻擊者窺視我們的EFS文件,可以借助以下三種方法:

 

1.導(dǎo)出刪除私鑰

可以用證書向?qū)?dǎo)出EFS加密證書和私鑰,并且在證書導(dǎo)出向?qū)?/span>對(duì)話框里選擇刪除私鑰,如圖3所示。

 

3

刪除私鑰以后,攻擊者就沒(méi)有辦法訪問(wèn)EFS加密文件了,而我們需要訪問(wèn)時(shí),只需導(dǎo)入先前備份的證書和私鑰即可。

 

2System Key提供額外的保護(hù)

System Key可以對(duì)SAM配置單元文件和EFS私鑰提供額外保護(hù)。Windows XPSystem Key默認(rèn)保存在本地,我們可以運(yùn)行syskey命令,強(qiáng)制系統(tǒng)將System Key保存在軟盤里,或者用啟動(dòng)密碼(startup password)來(lái)生成System Key。

由于EFS密鑰鏈”的根密鑰(System Key)沒(méi)有保存在本地計(jì)算機(jī)中, 所以攻擊者將更加難以破解EFS加密。

提示 BitLocker加密的recovery key,類似于syskeystartup password,都是借助啟動(dòng)時(shí)所輸入的一串密碼來(lái)生成所需的密鑰。

 

3BitLocker提供更徹底的保護(hù)

本方法僅適用于Windows Vista(EnterpriseUltimate Edition)

最徹底的保護(hù)方法,首推Windows Vista新引入的BitLocker加密,這時(shí)候Windows分區(qū)的所有內(nèi)容全部被加密(包括SAM配置單元、EFS密鑰)。

BitLocker(TPM1.2)加密可以看成是Windows啟動(dòng)保護(hù)器。在系統(tǒng)啟動(dòng)時(shí),TPM芯片會(huì)負(fù)責(zé)分析各個(gè)重要的啟動(dòng)組件,以判斷自己是否位于原來(lái)的計(jì)算機(jī)環(huán)境。如果是的話,就依次釋放BitLocker加密所需的密鑰鏈,我們才能順利地訪問(wèn)Windows,才能訪問(wèn)EFS文件。

如果攻擊者企圖把硬盤掛接到別的計(jì)算機(jī)上,系統(tǒng)就會(huì)拒絕釋放密鑰,整個(gè)Windows Vista分區(qū)處于加密狀態(tài)。

如果攻擊者竊取了計(jì)算機(jī),并且竊取了BitLocker所需所有條件(TPM芯片自不必說(shuō),假設(shè)也獲得密鑰U)。這時(shí)候系統(tǒng)能夠順利引導(dǎo),并且成功釋放BitLocker密鑰鏈。但是攻擊者還必須想辦法知道帳戶的密碼,否則無(wú)法登錄系統(tǒng),Windows分區(qū)依然處于加密狀態(tài)。

EFS額外保護(hù)的原理如圖4所示。

 

4

 

4.題外話:為什么釋放BitLocker密鑰以后,Windows分區(qū)依然處于加密狀態(tài)?

所以盡管BitLocker密鑰已經(jīng)釋放,但是Windows分區(qū)并沒(méi)有被立即全部解密。否則每次啟動(dòng),都要解密整個(gè)Windows分區(qū),得花多少時(shí)間(筆者的Vista分區(qū)完全解密,共花3小時(shí))!

原來(lái)BitLocker加密是以一個(gè)FVE Filter Driver來(lái)實(shí)現(xiàn)加密和解密,該Filter Driver處于文件系統(tǒng)驅(qū)動(dòng)的下層。登錄系統(tǒng)以后,用戶需要訪問(wèn)文件時(shí),文件系統(tǒng)會(huì)自動(dòng)請(qǐng)求FVE Filter Driver進(jìn)行解密,猜想應(yīng)該是一次解密一個(gè)Block,每個(gè)Block可能是512字節(jié)(和EFS一樣),不敢確定。對(duì)于用戶來(lái)說(shuō),這個(gè)過(guò)程是完全透明的,同時(shí)對(duì)性能的影響很小,幾乎可以忽略不計(jì)。EFS加密的情況有點(diǎn)類似。

 

寫在最后

 

這里非常敬佩國(guó)外微軟技術(shù)愛(ài)好者的執(zhí)著,事實(shí)上該作者還有一篇經(jīng)典的文章(描述SAM配置單元文件的二進(jìn)制結(jié)構(gòu)),鏈接如下,非常值得推薦。

很難想象,要編寫這樣的文章,得花費(fèi)多少的人力和時(shí)間,要做多少的實(shí)驗(yàn)才能在SAM數(shù)據(jù)庫(kù)逐個(gè)字節(jié)地找出其對(duì)應(yīng)的含義!

本文的目的,也是為了向這些國(guó)外的作者致敬。

http://www./ntsecurity/index.php

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多