加密檔案系統（，縮寫 EFS）是微軟 Windows 在 NTFS30 中引入的一個功能，它提供。此技術使檔案支援加密以保護機密資料免受具有物理訪問許可權的攻擊者侵害。 EFS 從 Windows 2000 起在所有為商業環境開發的 Windows 版本中可用（見下方的 支援的作業系統 一節）。EFS is available on Windows 2000 Server and Workstation on Windows XP Professional on Windows Server 2003 and 2008 and on Windows Vista and Windows 7 Business Enterprise and Ultimate 預設情況下，不會有檔案被加密，但使用者可以選擇加密各檔案、各資料夾和各驅動器。有些 EFS 設定可透過環境中的組策略強制執行。 其他作業系統也有提供的加密的檔案系統，但微軟 EFS 與它們不相容。另見。 基本想法 很長一段時間以來，作業系統執行在一個沒有檔案加密的系統上，訪問檔案不得不只透過作業系統控制的使用者身份驗證和訪問控制列表。如果攻擊者取得了計算機的物理訪問權，那麼這些障礙都可以被輕易繞過。方法之一就是移除磁碟並將其放在另一個計算機中，用它的作業系統讀取讀取檔案系統，或者從一個可引導光碟重啟計算機來讀取檔案系統。 最廣泛的可接受方案是將檔案加密儲存在物理介質上（磁碟、USB 驅動器、磁帶、光碟等）。 在微軟 Windows 作業系統家族中，EFS 可完成這項舉措，儘管只能在 NTFS 驅動器上。它使用公鑰加密演算法和對稱金鑰加密的組合保證沒有正確的金鑰將極難解密檔案。 但是，EFS 的加密金鑰在實踐中使用使用者帳戶的密碼保護，並因此容易受到大多數密碼攻擊。 操作 EFS 使用對稱金鑰加密檔案，這被稱為檔案加密金鑰（File Encryption Key），簡稱 FEK。使用對稱加密演算法是因為加密和解密大量資料時這比使用非對稱金鑰密碼本消耗更少的時間。在不同的作業系統版本和配置上將使用不同的對稱加密演算法，見下面的 Algorithms used by Windows version。FEK（用來加密檔案的對稱金鑰）然後會使用一個與加密檔案的使用者相關聯的公鑰加密，加密的 FEK 將被儲存在加密檔案的 EFS 可選資料流。要解密該檔案，EFS 元件驅動程式使用匹配 EFS 數字證書（用於加密檔案）的私鑰解密儲存在 EFS 流中的對稱金鑰。EFS 元件驅動程式然後使用對稱金鑰來解密該檔案。因為加密和解密操作在 NTFS 底層執行，因此它對使用者及所有應用程式是透明的。 內容要被加密的資料夾會被檔案系統標記為 加密 屬性。EFS 元件驅動程式會檢查此 加密 屬性，這類似 NTFS 中檔案許可權的繼承：如果一個資料夾標記為加密，在裡面建立檔案和子資料夾就預設會被加密。在加密檔案移動到一個 NTFS 卷時，檔案會繼續保持加密。但是，在許多情況下，Windows 可能不需詢問使用者就解密檔案。 被複制到部分檔案系統（如透過第三方驅動掛載的 ext4）的檔案和資料夾會被解密。最後，加密的檔案使用 SMBCIFS 協議透過網路複製時，檔案在傳送到網路前會被解密。 避免 複製時解密 的最有效方法是使用支援 原始資料 API 的備份軟體。使用 Raw API 的備份軟體會直接複製已加密檔案的流和 EFS 備用資料流為單個檔案。換句話說，這些檔案以加密形式被 複製，備份過程中不牽扯解密。 從 Windows Vista 開始，使用者的私鑰可以儲存在智慧卡上；資料恢復代理（DRA）金鑰也可以儲存在智慧卡上。 安全性 漏洞 在 Windows 2000 的 EFS 中存在兩個重大安全漏洞。在那之後有遭遇不同程度的各種攻擊。 使用本地的 Administrator 帳戶解密檔案 在 Windows 2000 中，本地的 administrator 是預設的 資料恢復代理，它可以解密任何本地使用者用 EFS 加密的所有檔案。在 Windows 2000 中的 EFS 在沒有 恢復代理 時不能正常運作，所以始終有一個人可以解密使用者已加密的檔案。任何未加入域的 Windows 2000 計算機將容易受到未授權的 EFS 解密，任何能取得本地 Administrator 帳戶許可權的人都可以做到，而網際網路上有許多工具可以做到這點。 在 Windows XP 及之後的版本中已經沒有預設的 資料恢復代理 並且不再強制需要它。設定為模式 2 或 3（在啟動時鍵入 syskey 或插入相應軟盤）將緩解未經授權的透過本地 Administrator 帳戶解密的風險。這是因為本地使用者密碼進行了雜湊處理，儲存在 SAM 檔案中，並使用 Syskey 加密，而且 Syskey 的值對於無法接觸 Syskey 口令 軟盤的離線攻擊者不可用。 透過密碼重置訪問私鑰 在 Windows 2000 中，使用者的 RSA 私鑰只儲存在 真正 的加密形式中，但使用者的 RSA 私鑰備份存在更脆弱的保護。如果攻擊者能物理訪問 Windows 2000 計算機並重置本地帳戶的密碼，攻擊者可以登入為該使用者（或恢復代理）並獲得可解密所有檔案的 RSA 私鑰的許可權。這是因為 RSA 私鑰使用一個 LSA 私鑰加密，而可提升登入到 LocalSystem 的攻擊者可以訪問它，獲取相關工具並不困難。 在 Windows XP 及之後版本，使用者的 RSA 私鑰使用一個離線公鑰來備份，與該公鑰對應的私鑰儲存在下列位置之一：密碼重置磁碟（如果該 Windows XP 不是一個域成員），活動目錄（如果該 Windows XP 是一個域的成員）。這意味著可以透過 Windows XP 本地系統身份驗證的攻擊者仍無法訪問儲存在 PC 硬碟上的解密金鑰。 在 Windows 2000、XP 或更新版本中，使用者的 RSA 私鑰使用使用者的 NTLM 密碼雜湊加使用者名稱雜湊來加密 加鹽的雜湊使得在未獲知使用者密碼的情況下，很難逆轉此過程並得出使用者的私鑰。同樣，將系統模式設定為模式 2 或模式 3（在啟動時鍵入或透過軟盤提供系統金鑰）將緩解此攻擊，因為本地使用者的密碼雜湊儲存在 SAM 檔案中。 其他問題 一旦使用者已成功登入，訪問他的 EFS 加密檔案的請求都不會要求身份驗證，解密會靜默、透明完成。因此，任何被攻破的使用者密碼都將自動允許訪問資料。Windows 可以使用可逆加密儲存使用者帳戶密碼，不過這已不是預設情況；它還可以配置為儲存本地使用者帳戶密碼的 Lan 管理器雜湊，並且這在 Windows XP 和更早版本的原版中是預設行為，這可以被攻擊和更容易攻破。它還儲存本地使用者帳戶密碼的雜湊，如果密碼較弱，這可能使用 彩虹表 輕易攻破（Windows Vista 和之後版本預設不允許弱密碼）。為了避免本地密碼遭受暴力破解，舊版本的 Windows 應該配置為永不儲存 LM 雜湊（在組策略的安全設定部分），當然，更不能啟用自動登入（那會在登錄檔中儲存明文密碼）。此外，使用超過 14 個字元的本地使用者帳戶密碼可避免 Windows 在 SAM 中儲存 LM 雜湊 以及加強對 NTLM 雜湊的暴力攻擊的抵抗性。 當使用 EFS 加密檔案時，即將明文檔案轉換為加密檔案時，明文檔案並不會被擦除，而只是被標記為已刪除（即在檔案系統中標記為 未使用 資料）。這意味著，除非它恰好儲存在一個支援 TRIM 的 SSD 上，從而（或者因其他設定）被儘快覆蓋，否則會容易找回它們。為充分減少對 EFS 這個已知的、非技術性的問題，你應該在資料夾級別配置加密（以便使在這些資料夾中建立檔案時即被加密，而不是被移動和留下一份明文檔案的殘留）。當想要加密單個檔案時，加其複製到一個加密的資料夾或者加密的檔案中，然後有效地擦除原儲存卷。使用者可以使用 Windows Cipher 實用工具（配以 W 選項）或其他工具來有效擦除磁碟上的可用空間。 任何可以取得管理員許可權的人都可以覆蓋、更改 Data Recovery Agent 的配置。這是一個非常嚴重的問題，因為攻擊者可能侵入管理員帳戶並將精心設計的任何 DRA 證書設定為資料恢復代理，並等待。這有時被稱為雙階段攻擊（twostage attack），其與 PC 遺失或被盜的風險顯著不同，更突出內部的惡意人士所產生的風險。 當用戶在這種攻擊的第一階段後對檔案加密時，將自動使用指定的 DRA 公鑰加密 FEK。攻擊者只需要以管理員身份訪問此計算機，就能對隨後使用 EFS 加密的檔案進行完全訪問。即使已使用 Syskey 模式 2 或模式 3，也並不能防止這種攻擊，因為攻擊者可以將加密檔案離線備份並還原到其他地方，然後使用 DRA 的私鑰解密檔案。當然，如果有惡意人員可以物理訪問計算機，那麼您也可以考慮所有的安全功能都將失效，因為他們也可以在計算機上安裝 Rootkit、特殊軟體，或者硬體鍵盤記錄器等。在惡意攻擊中，這可能比覆蓋 DRA 策略更為有效和全面。 恢復 使用 EFS 加密的檔案只能使用匹配之前所用公鑰的 RSA 私鑰解密。使用者的私鑰副本本質上是使用使用者的登入密碼保護。從 Windows 外的其他作業系統（比如 Linux）訪問加密的檔案是不可能的 不只是因為目前沒有第三方的 EFS 元件驅動程式。此外，使用特殊工具重置使用者的登入密碼以解密使用者的私鑰和訪問使用者的加密檔案也是不可能的。這也意味著使用者有可能導致資料丟失，如果使用者忘記了自己的密碼並且沒有備份加密金鑰。這成就了一個術語 延遲的回收站，它表示沒有經驗的使用者使用此功能加密檔案似乎會不可避免的在未來遇到資料丟失。 如果 EFS 配置為使用一個公鑰基礎設施簽發的金鑰，並且 PKI 配置為啟用 金鑰存檔和恢復，可以先恢復私鑰檔案，然後恢復加密檔案。 金鑰 使用者密碼（或智慧卡私鑰）：用於生成解密金鑰以解密使用者的 DPAPI 主金鑰 DPAPI 主金鑰：用於解密使用者的 RSA 私鑰 RSA 私鑰：用於解密每個檔案的 FEK 檔案加密金鑰（FEK）：用於解密 加密每個檔案的資料（NTFS 主要流） SYSKEY：用於加密快取的域驗證和儲存在 SAM 中的密碼雜湊值 搜尋加密檔案位置 C 表示硬碟代號，變更代號可搜尋其他硬碟） 請在 Windows PowerShell 下執行指令 GetChildItem C Recurse Force ErrorAction SilentlyContinue WhereObject _Attributes ge Encrypted FormatList fullname attributes 支援的作業系統 Windows Windows 2000 專業版、伺服器版、高階伺服器版和資料中心版 Windows XP 專業版、Tablet PC 版、媒體中心版和 x64 版本 Windows Server 2003 和 Windows Server 2003 R2，包括 x86 和 x64 版本 Windows Vista 商業版、企業版和旗艦版 Windows 7 專業版、企業版和旗艦版 Windows Server 2008 和 Windows Server 2008 R2 Windows 8 和 81 專業版和企業版 Windows Server Windows 10 專業版、企業版和教育版，在家庭版中不可用。 其他作業系統 沒有其他作業系統或檔案系統原生支援 EFS。 各 Windows 版本可用的新功能 Windows XP 客戶端側快取（資料庫）加密 使用廣域公鑰保護 DPAPI 主金鑰備份 自動註冊使用者證書（包括 EFS 證書） 多使用者（共享）訪問加密檔案（在檔案的基礎上），在共享加密檔案時檢查證書吊銷 加密檔案可以用另一種顏色顯示（預設綠色） 不再需要強制性的 恢復代理 檔案移動到不支援的檔案系統而可能靜默解密時警告 密碼重置盤 EFS 透過 WebDAV，遠端加密 Active Directory 委派的伺服器 Windows XP SP1 支援並預設對所有 EFS 加密的檔案使用 AES256 對稱加密演算法 Windows XP SP2 KB 912761 防止註冊自簽名的 EFS 證書 Windows Server 2003 數字身份管理服務 強制執行 RSA 金鑰最小長度設定，對於註冊自簽名 EFS 證書 Windows Vista 和 Windows Server 2008 客戶端側快取（離線檔案）分使用者加密 支援在一個 PCSC 智慧卡上儲存使用者或 DRA（資料恢復）RSA 私鑰 EFS 金鑰更新嚮導 EFS 金鑰備份提示 支援從 PCSC 智慧卡派生 DPAPI 主金鑰 支援加密 pagefilesys 使用 BitLocker（Windows Vista 企業版或旗艦版提供）保護 EFS 相關的私密資訊 組策略控制強制執行： 文件 資料夾的加密 離線檔案加密 加密檔案的索引 使用 EFS 需要智慧卡 從智慧卡建立一個可快取的使用者金鑰 使用者金鑰建立時顯示金鑰備份通知 指定自動註冊 EFS 證書時使用的證書模板 Windows Server 2008 在 Windows Server 2008 伺服器上註冊的 EFS 自簽名證書將預設使用 2048 位 RSA 金鑰長度 所有 EFS 模板（使用者和恢復代理證書）預設使用 2048 位 RSA 金鑰長度 Windows 7 和 Windows Server 2008 R2 橢圓曲線密碼學（ECC）。Windows 7 支援 ECC 和 RSA 演算法的混合操作模式保證向後相容 EFS 自簽名證書在使用 ECC 時將預設使用 256 位金鑰。 EFS 在使用自簽名 RSA 證書時可以配置為使用 1K2k4k8k16k 位金鑰，使用 ECC 證書時可以使用 256384512 位金鑰。 各 Windows 版本使用的演算法 Windows EFS 支援一系列對稱加密演算法，加密檔案時使用的演算法取決於 Windows 版本： 作業系統 預設演算法 其他演算法 Windows 2000 （無） Windows XP RTM DESX 三重 DES Windows XP SP1 AES Triple DES、DESX Windows Server 2003 AES Triple DES、DESX Windows Vista AES Triple DES、DESX Windows Server 2008 AES Triple DES、DESX Windows 7 Windows Server 2008 R2 混合（AES、SHA 和 ECC） Triple DES、DESX 參見 BitLocker 資料保護 API 磁碟加密 eCryptfs EncFS 參考資料 延伸閱讀 Category 加密軟體 Category 特殊目的檔案系統 Category 微軟磁碟檔案系統