整體架構
eCryptfs整體架構如下圖,主要是內核模塊eCryptfs以及用戶態進程ecryptfsd。ecryptfsd進程只在使用key type為openssl模式時需要,使用passphrase模式(如上述測試用例)時不需要。ecryptfs-utils可作為用戶態輔助工具或C接口編程參考。
應用程序發起系統調用時先經過VFS,判斷目錄類型為eCryptfs時調用eCryptfs模塊的注冊函數。之后eCryptfs根據mountsession中保存的key signature參數從keyring中找到對應密鑰(FEKEK),再調用crypto模塊API完成文件加解密。
eCryptfs核心加解密機制如下圖,主要特點歸納如下:
1、FEK(File Encryption Key)唯一,即每個文件的加密密鑰均不同,是隨文件創建時生成的一個隨機數。
2、每個文件的FEK經過FEKEK(File Encryption Key Encryption Key)加密保護,加密后FEK稱為EFEK(Encrypted File Encryption Key),并保存在eCryptfs加密文件的header信息中(如前述page 0區域)。
3、passphrase模式下,FEKEK是基于用戶passphrase_passwd派生而來,派生方式是hash計算(參考代碼分析章節)。
4、文件內容按照page大小(Data Extent)進行塊加密。
核心過程可簡單描述為:
1、新文件加密時,生成隨機數FEK,對文件內容進行分塊加密并存儲。根據用戶傳遞的key_sig參數從keyring找到對應的FEKEK,用FEKEK加密FEK,生成EFEK并保存在文件header中。
2、解密時,同樣根絕key_sig找到FEKEK,用FEKEK解密EFEK后得到FEK,再用FEK解密文件內容。
-
Linux
+關注
關注
87文章
11469瀏覽量
212900 -
磁盤
+關注
關注
1文章
388瀏覽量
25673 -
模式
+關注
關注
0文章
65瀏覽量
13596 -
加密機制
+關注
關注
0文章
4瀏覽量
6193
發布評論請先 登錄
labviewAES加解密小程序
如何利用MEMS和FPGA設計移動硬盤數據加解密系統?
如何利用MEMS強鏈和FPGA設計USB移動硬盤數據加解密系統?
硬件加解密的分類
硬件加解密主要優點及引擎種類
STM32加解密技術
基于MEMS和FPGA的移動硬盤數據加解密系統

WAPI硬件加解密方案
磁盤eCryptfs加密測試用例

基于FPGA的可編程AES加解密IP

評論