2024年3月13日 星期三

申論題模擬─資訊安全防護技術(2024-03-14)

申論題模擬─資訊安全防護技術(2024-03-14)


NTFS sets a flag for the file once you encrypt it and creates an EFS attribute where it stores Data Decryption Field (DDF) and Data Recovery Field (DDR). Which of the following is not a part of DDF?

A. Encrypted FEK         B. Checksum        C. EFS Certificate Hash         D. Container Name 


NTFS在加密文件時會設置一個標誌,並創建一個EFS屬性,其中存儲了數據解密字段(DDF)和數據恢復字段(DDR)。以下是DDF的組成部分:


加密的FEK(File Encryption Key):FEK是用於對文件數據進行對稱加密的密鑰。

EFS證書哈希:存儲與文件相關聯的EFS證書的哈希值。

容器名稱:指示文件所在的容器或目錄的名稱。

 深入剖析EFS

文章內容:原創
文章提交:mrcool (mrcool_at_zhinet.com)

EFS是Encrypting File System,加密文件系統的縮寫,他可以被應用在windows 2000以上的操作系統且為NTFS5格式的分區上(windows xp home不支持).

EFS 只能對存儲在磁碟上的資料進行加密,是一種安全的本機訊息加密服務.EFS使用核心的的文件加密技術在NTFS捲上存儲加密文件.
它可以防止那些未經允許的對敏感資料進行物理訪問的入侵者(偷取筆記本電腦,硬碟等)

EFS是如何工作的

當一個用戶使用EFS去加密文件時,必須存在一個公鑰和一個私鑰,如果用戶沒有,EFS服務自動產生一對。對於初級用戶來說,即使他完全不懂加密,也能加密文件,可以對單個文件進行加密,也可以對一個資料夾進行加密,這樣所有寫入資料夾的文件將自動被加密。

一旦用戶發佈命令加密文件或試圖新增一個文件到一個已加密的資料夾中,EFS將進行以下幾步:

第一步:NTFS首先在這個文件所在卷的卷訊息目錄下(這個目錄隱藏在根目錄下面)創建一個叫做efs0.log的日誌文件,當拷貝過程中發生錯誤時利用此文件進行恢復。

第二步:然後EFS調用CryptoAPI設備環境.設備環境使用Microsoft Base Cryptographic Provider 1.0 產生密匙,當打開這個設備環境後,EFS產生FEK(File Encryption Key,文件加密密匙).FEK的長度為128位(僅US和Canada),這個文件使用DESX加密算法進行加密。

第三步: 獲取公有/私有密匙對;如果這個密匙還沒有的話(當EFS第一次被調用時),EFS產生一對新的密匙.EFS使用1024位的RSA算法去加密FEK.

第四步:EFS為當前用戶創建一個資料解密塊Data Decryptong Field(DDF),在這裡存放FEK然後用公有密匙加密FEK.


第五步:如果系統設置了加密的代理,EFS同時會創建一個資料恢復塊Data Recovery Field(DRF),然後把使用恢復代理密匙加密過的FEK放在DRF.每定義一個恢復代理,EFS將會創建一個Data Recovery Agent(DRA).Winxp沒有恢復代理這個功能,所以沒有這一步.,這個區域的目的是為了在用戶解密文件的中可能解密文件不可用。這些用戶叫做恢復代理,恢復代理在EDRP(Encryption Data Recovery Policy,加密資料恢復策略)中定義,它是一個域的安全策略。如果一個域的EDRP沒有設置,本機EDRP被使用。在任一種情況下,在一個加密發生時,EDRP必須存在(因此至少有一個恢復代理被定義)。DRF包含使用RSA加密的FEK和恢復代理的公鑰。如果在EDRP列表中有多個恢復代理,FEK必須用每個恢復代理的公鑰進行加密,因此,必須為個恢復代理創建一個DRF。

第六步:包含加密資料、DDF及所有DRF的加密文件被寫入磁碟。

第七步: 在加密文件所在的資料夾下將會創建一個叫做Efs0.tmp的臨時文件.要加密的內容被拷貝到這個臨時文件,然後原來的文件被加密後的資料覆蓋.在預定的情況下,EFS使用128位的DESX算法加密文件資料,但是Windows還允許使用更強大的的168位的3DES算法加密文件,這是FIPS算法必須打開,因為在預定的情況下它是關閉的.

第八步:在第一步中創建的文本文件和第七步中產生的臨時文件被刪除。

加密過程圖片可參考 http://www.ntfs.com/images/encryption.gif

文件被加密後,只有可以從DDF或是DRF中解密出FEK的用戶才可以訪問文件.這種機制和一般的安全機制不同並意 味著要想訪問文件,除了要有訪問這個文件的權力外還必須擁有被用戶的公有密匙加密過的FEK.只有使用私有密匙解密文件的用戶才可以訪問文件.這樣的話會有一個問題:就是一個可以訪問文件的用戶可把文件加密之後,文件真正的擁有者卻不能訪問文件.解決這個問題的辦法:用戶加密文件的時候只創建一個文件解密塊Data Decryption Field(DDF),但是只後他可以增加附加用戶到密匙隊列.這種情況下,EFS簡單地把FEK用想給其他用戶訪問權的用戶的私有密匙加密.然後用這些用戶的公有密匙加密FEK,新增加的DDF和第一個DDF放在一起(這些新增加的用戶對文件只有訪問的權力).

解密的過程和加密的過程是相反的,參考http://www.ntfs.com/images/decryption.gif

首先,系統檢測用戶是否具有被EFS使用的私有密匙.如果有的話,系統將會在讀取EFS內容,同時在DDF對列中尋找當前用戶的DDF.如果DDF找到的話,用戶私有密匙將會在那裡解密出FEK.使用解密出來的FEK,EFS去解密加密的文件資料.需要注意的是文件從來不會完全被加密,但是有時候會去加密一些特殊的扇區如果上層模塊要求的話.


EFS組成

EFS由EFS服務、EFS驅動、EFS文件系統執行庫(FSRTL)和Win32 API。EFS服務作為一個標準系統服務執行,它是Windows 2000安全子系統的一部分。它與CryptoAPI接頭產生鑰匙、DDF和DRF,EFS驅動就像是NTFS的一部分,它呼叫EFS服務請求鑰匙,DDF和DRF作為需要被創建,一個EFS驅動的組成是EFS FSRTL,它定義了EFS驅動程式能作為NTFS的代表而執行的功能。

EFS和NTFS如何共存

EFS可以被認為除NTFS外的第二層防護,為訪問一個被加密的文件,用戶必須有訪問到文件的NTFS權限。在相關NTFS權限的用戶能看到資料夾中的文件,但不能打開文件除非有相應的解密鑰匙。同樣,一個用戶有相應的鑰匙但沒有相應的NTFS權限也不能訪問到文件。所以一個用戶要能打開加密的文件,同時需要NTFS權限和解密鑰匙。

然而,NTFS權限可能被大量的方法穿越,包括口令破解程式、用戶在離開前沒有退出系統或系統內部的NTFSDOS。在NT4.0下,遊戲結束了--硬碟上所有的資料都可以訪問了。在Windows 2000下,當一個文件用EFS加密後,一個未授權的用戶,即使訪問到磁碟上的文件,但也不能訪問文件上資料,因為沒有授權用戶的私鑰。

EFS 內容

當NTFS加密文件的時候,它首先會為文件設置加密標誌,然後在存儲DDF和DDR的地方為文件創建一個$EFS內容.這個內容的內容ID=0x100,它可以被加長,佔有0.5k到若干k的大小,這個大小是由DDF和DRF的數量決定的.

http://www.ntfs.com/images/efs_header.gif

下面是一個詳細的EFS內容的例子.

http://www.raid1.cn/efs/pic/attribute/EFS_example.gif

紫色:EFS內容大小

天藍色:電腦安全標識符和用戶數位.它指定EFS存儲證書的資料夾.為了得到文件
夾的名字,EFS會做一些轉換.

5A56B378 1C365429 A851FF09 D040000 - 存儲在$EFS中的資料.

78B3565A 2954361C 09FF15A8 000004D0 - 轉換後的結果.

2025018970-693384732-167712168-1232 - 轉換成十進制.

S-1-5-21-2025018970-693384732-167712168-1232 - 加上安全標識符前綴.

得到的資料夾就是:

%UserProfile%\ApplicationData\Microsoft\Crypto\RSA\S-1-5-21-2025018970-693384732167712168-1232\

粉紅色:公有密匙特性

黃色:私有密匙全局唯一標識符(同時被當作容器名字).當EFS從CryptoAPI provider中獲取設備環境的時候使用這個名字.如果$EFS內容只有一個DDF,容器的名字可以從$efs中計算出來.但是當更多的用戶加入這個文件的時候(就會有更多的DDF和DRF),私有密匙全局唯一標識符並不是儲存所有的用戶,其它的必須從基於公有密匙存儲特性的證書中恢復.

紅色:加密提供器的名字(Microsoft Base Cryptographic Provider v.1.0)

綠色:用戶的名稱,DDF和DRF的所有者.

藍色:加密後的FEK.通常FEK是128位的,但是被1024位的RSA密匙加密後,長度變成1024位.


參考資料: http://www.ntfs.com http://www.nsfocus.net

沒有留言:

張貼留言

IPAS中級考試錯題本

108 年度第2次中級資訊安全工程師能力鑑定試題資訊安全防護實務錯題本 108 年度第2次中級資訊安全工程師能力鑑定試題資訊安全規劃實務錯題本 109 年度第2次中級資訊安全工程師能力鑑定試題資訊安全防護實務錯題本 109 年度第2次中級資訊安全工程師能力鑑定試題資訊安全規劃實務...