掌握ecryptfs的執行過程和設計原理
vmware workstation pro
ubuntu 16.04
參考鏈結
ecryptfs 是在 linux 核心 2.6.19 版本中引入的乙個功能強大的企業級加密檔案系統,堆疊在其它檔案系統之上(如 ext2, ext3, reiserfs, jfs 等),為應用程式提供透明、動態、高效和安全的加密功能。ecryptfs使用了兩種方法來加密單個檔案:
1.ecryptfs 先使用一種對稱金鑰加密演算法來加密檔案的內容,金鑰fek(file encryption key)隨機產生。
2.fek 不能以明文的形式存放(否則就沒有存在的意義了),因此 ecryptfs 使用使用者提供的口令(passphrase)、公開金鑰演算法(如 rsa 演算法)或 tpm(trusted platform module)的公鑰來加密保護剛才提及的 fek。
如果使用使用者口令,則口令先被hash函式處理,然後再使用一種對稱金鑰演算法加密 fek。口令/公鑰稱為fefek(file encryption key encryption key),加密後的 fek 則稱為efek(encrypted file encryption key)。
由於允許多個授權使用者訪問同乙個加密檔案,因此efek 可能有多份。
這種綜合的方式既保證了加密解密檔案資料的速度,又極大地提高了安全性。雖然檔名沒有資料那麼重要,但是入侵者可以通過檔名獲得有用的資訊或者確定攻擊目標,因此,最新版的 ecryptfs 支援檔名的加密。
1)簡要說明ecryptfs進行讀/寫操作時的工作流程
讀操作:ext3從硬碟中讀取ext3格式的檔案內容,ecryptfs從檔案內容中分離頭部資訊及加密資料塊。分析頭部資訊,獲取加密後的fek,再根據使用者輸入的口令驗證解密fek,以fek為金鑰解密資料塊,按原序組合在一起,形成ecryptfs格式的檔案內容,將明文放入記憶體中以供讀取。
寫操作:ecryptfs把應用程式提供的,需要加密的檔案內容劃分為一頁頁資料塊,呼叫系統函式隨機生成fek,(形成ecryptfs格式的檔案內容)。再根據使用者定義的口令生成efek加密fek,組織成頭部資訊與以fek為金鑰加密後的資料塊,以ext3格式一併存放至磁碟
2) ecryptfs 屬於本地堆疊式加密檔案系統的範疇
實驗過程中,ecryptfs支援的加密方式,每種加密方式的加密塊大小及使用金鑰長度是多少顯示如下圖
3)掛載的概念
基於unix的目錄樹結構,即由目錄和檔案構成的倒立的樹形層次結構。
unix類作業系統中,乙個檔案系統a可以掛載到另乙個檔案系統b中的乙個目錄上(該目錄就稱為掛載點)
4)實驗內容
a. ecryptfs安裝
#sudo apt-get install ecryptfs-utils安裝完成後,檢視如何使用ecryptfs 的命令:
#man ecryptfsb. 使用ecryptfs掛載檔案目錄
$sudo mount -t ecryptfs real_path ecryptfs_mounted_path-t:指定檔案系統型別,這裡我們使用ecryptfs檔案系統
real_path:真實存放資料的地方
ecryptfs_mounted_path:指掛載位置(具體位置任意)
c. ecryptfs取消掛載:
$sudo umount -t ecryptfs ecryptfs_mounted_pathd.建立目錄
#mkdir realdir我們在主資料夾下新建兩個資料夾 realdir,mountdir,使用 realdir作為檔案真實目錄,用 mountdir作為掛載目錄#mkdir mountdir
e. 測試1
在mountdir目錄中,建立檔案file1,隨意輸入內容。
使用如下命令進行檢視,比較不同
#cat realdir/file1結果如圖可以看到輸出都是加了密的密文
#cat mountdir/file1
f. 測試2
在realdir目錄中,建立檔案file2,隨意輸入內容。
使用如下命令進行檢視,比較不同。
#cat realdir/file2(如下圖所示)#cat mountdir/file2
umount之前情況如圖
umount之後該掛載點如下
對比初始時的顯示發現,已經將掛載點刪除。
linux上使用eCryptFS加密資料夾的方法
從前有乙個攝影師,他不懂加密重要檔案,也不懂修電腦,結果 以下就介紹下linux的加密方法及ecryptfs 加密的型別 我們基本上有兩種不同的方法可以對檔案和目錄進行加密。一種方法是,檔案系統級加密,只有某些檔案或目錄 比如 home alice 選擇性地加密。在我看來,這是一種理想的入門方法。你...
加密檔案系統
目前對作業系統安全的研究主要集中在邏輯安全領域,及防止未經授權的使用者 程序訪問高特權級別的敏感資料,現有的研究成果包括美國 局主導研發的selinux模組 現已新增到linux核心中 等。但是,這樣的保護對於能夠從物理上接觸到敏感計算機的攻擊者而言是完全無效的。攻擊者可以通過軟盤 光碟或者u盤來引...
加密檔案系統
1,加密檔案轉移到別的物理介質上時,沒有額外的加密 解密開銷。2,支援檔案粒度的加密,也就是說,使用者可以選擇對哪些檔案或目錄加密。而且,應用程式不用關心檔案是否被加密,可以完全透明地訪問加密檔案。3,無需預先保留足夠的空間,使用者可以隨時加密或恢復檔案。4,對單個加密檔案更改金鑰和加密演算法比較容...