整體架構(gòu)
eCryptfs整體架構(gòu)如下圖,主要是內(nèi)核模塊eCryptfs以及用戶態(tài)進(jìn)程ecryptfsd。ecryptfsd進(jìn)程只在使用key type為openssl模式時(shí)需要,使用passphrase模式(如上述測(cè)試用例)時(shí)不需要。ecryptfs-utils可作為用戶態(tài)輔助工具或C接口編程參考。
應(yīng)用程序發(fā)起系統(tǒng)調(diào)用時(shí)先經(jīng)過VFS,判斷目錄類型為eCryptfs時(shí)調(diào)用eCryptfs模塊的注冊(cè)函數(shù)。之后eCryptfs根據(jù)mountsession中保存的key signature參數(shù)從keyring中找到對(duì)應(yīng)密鑰(FEKEK),再調(diào)用crypto模塊API完成文件加解密。
eCryptfs核心加解密機(jī)制如下圖,主要特點(diǎn)歸納如下:
1、FEK(File Encryption Key)唯一,即每個(gè)文件的加密密鑰均不同,是隨文件創(chuàng)建時(shí)生成的一個(gè)隨機(jī)數(shù)。
2、每個(gè)文件的FEK經(jīng)過FEKEK(File Encryption Key Encryption Key)加密保護(hù),加密后FEK稱為EFEK(Encrypted File Encryption Key),并保存在eCryptfs加密文件的header信息中(如前述page 0區(qū)域)。
3、passphrase模式下,F(xiàn)EKEK是基于用戶passphrase_passwd派生而來(lái),派生方式是hash計(jì)算(參考代碼分析章節(jié))。
4、文件內(nèi)容按照page大小(Data Extent)進(jìn)行塊加密。
核心過程可簡(jiǎn)單描述為:
1、新文件加密時(shí),生成隨機(jī)數(shù)FEK,對(duì)文件內(nèi)容進(jìn)行分塊加密并存儲(chǔ)。根據(jù)用戶傳遞的key_sig參數(shù)從keyring找到對(duì)應(yīng)的FEKEK,用FEKEK加密FEK,生成EFEK并保存在文件header中。
2、解密時(shí),同樣根絕key_sig找到FEKEK,用FEKEK解密EFEK后得到FEK,再用FEK解密文件內(nèi)容。
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210408 -
磁盤
+關(guān)注
關(guān)注
1文章
380瀏覽量
25287 -
模式
+關(guān)注
關(guān)注
0文章
65瀏覽量
13431 -
加密機(jī)制
+關(guān)注
關(guān)注
0文章
4瀏覽量
6158
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
labviewAES加解密小程序
如何利用MEMS和FPGA設(shè)計(jì)移動(dòng)硬盤數(shù)據(jù)加解密系統(tǒng)?
如何利用MEMS強(qiáng)鏈和FPGA設(shè)計(jì)USB移動(dòng)硬盤數(shù)據(jù)加解密系統(tǒng)?
硬件加解密的分類
如何對(duì)AES加解密效率進(jìn)行測(cè)試呢
硬件加解密主要優(yōu)點(diǎn)及引擎種類
STM32加解密技術(shù)
基于MEMS和FPGA的移動(dòng)硬盤數(shù)據(jù)加解密系統(tǒng)
![基于MEMS和FPGA的移動(dòng)硬盤數(shù)據(jù)<b class='flag-5'>加解密</b>系統(tǒng)](https://file1.elecfans.com//web2/M00/A5/59/wKgZomUMOAKAWPFnAABipNKsmgU138.jpg)
WAPI硬件加解密方案
磁盤eCryptfs加密測(cè)試用例
![磁盤<b class='flag-5'>eCryptfs</b>加密測(cè)試用例](https://file1.elecfans.com/web2/M00/B1/BD/wKgaomVmrymAXKtaAAGszfqCsOE636.jpg)
基于FPGA的可編程AES加解密IP
![基于FPGA的可編程AES<b class='flag-5'>加解密</b>IP](https://file1.elecfans.com/web2/M00/BB/A1/wKgZomWctPuAMZalAAARq0WWAIA369.jpg)
評(píng)論