乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       此刻開始 2009-09-02

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

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

       

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

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

       

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

       

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

      任務(wù)描述

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

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

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

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

      EFS加密原理

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

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

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

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

       

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

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

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

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

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

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

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

      1

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

       

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

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

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

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

       

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

      恢復(fù)步驟

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

      1.再造SID

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

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

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

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

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

       

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

       

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

       

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

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

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

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

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

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

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


      2

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

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

      2.“破解”EFS

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

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

      疑難解答

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

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

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

       

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

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

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

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

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

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

       

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

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

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

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

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

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

      所以公鑰也很重要。

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

       

      加強(qiáng)EFS的安全

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

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

       

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

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

       

      3

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

       

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

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

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

      提示 BitLocker加密的recovery key,類似于syskeystartup password,都是借助啟動時所輸入的一串密碼來生成所需的密鑰。

       

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

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

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

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

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

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

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

       

      4

       

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

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

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

       

      寫在最后

       

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

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

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

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多