企業級加密文件系統 eCryptfs

eCryptfs 是在 Linux 內核 2.6.19 版本中引入的一個功能強大的企業級加密文件系統,堆疊在其它文件系統之上(如 Ext2, Ext3, ReiserFS, JFS 等),為應用程序提供透明、動態、高效和安全的加密功能。

本 質上,eCryptfs 就像是一個內核版本的 Pretty Good Privacy(PGP)[3] 服務,插在 VFS(虛擬文件系統層)和 下層物理文件系統之間,充當一個“過濾器”的角色。用戶應用程序對加密文件的寫請求,經系統調用層到達 VFS 層,VFS 轉給 eCryptfs 文件系統組件(后面會介紹)處理,處理完畢后,再轉給下層物理文件系統;讀請求(包括打開文件)流程則相反。

eCryptfs 的設計受到OpenPGP 規范的影響,使用了兩種方法來加密單個文件:

  1. eCryptfs 先使用一種對稱密鑰加密算法來加密文件的內容,推薦使用 AES-128 算法,密鑰 FEK(File Encryption Key)隨機產生。有些加密文件系統為多個加密文件或整個系統使用同一個 FEK(甚至不是隨機產生的),這會損害系統安全性,因為:a. 如果 FEK 泄漏,多個或所有的加密文件將被輕松解密;b. 如果部分明文泄漏,攻擊者可能推測出其它加密文件的內容;c. 攻擊者可能從豐富的密文中推測 FEK。
  2. 顯然 FEK 不能以明文的形式存放,因此 eCryptfs 使用用戶提供的口令(Passphrase)、公開密鑰算法(如 RSA 算法)或 TPM(Trusted Platform Module)的公鑰來加密保護剛才提及的 FEK。如果使用用戶口令,則口令先被散列函數處理,然后再使用一種對稱密鑰算法加密 FEK。口令/公鑰稱為 FEFEK(File Encryption Key Encryption Key),加密后的 FEK 則稱為 EFEK(Encrypted File Encryption Key)。由于允許多個授權用戶訪問同一個加密文件,因此 EFEK 可能有多份。

這種綜合的方式既保證了加密解密文件數據的速度,又極大地提高了安全性。雖然文件名沒有數據那么重要,但是入侵者可以通過文件名獲得有用的信息或者確定攻擊目標,因此,最新版的 eCryptfs 支持文件名的加密。

項目主頁:http://www.baiduhome.net/lib/view/home/1339141332578

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!