Linux系統(tǒng)FBE
從Linux系統(tǒng)軟件架構(gòu)看,典型FDE和FBE實(shí)現(xiàn)方案分布如下圖,包括基于dm-crypt的軟件FDE方案、基于通用文件系統(tǒng)的fscrypt FBE方案、基于VFS的eCryptfs FBE方案,以及眾多基于FUSE的FBE方案。
前面章節(jié)已經(jīng)簡(jiǎn)單介紹過(guò)基于dm-crypt的FDE方案在ubuntu虛擬機(jī)上的驗(yàn)證情況,這里先簡(jiǎn)單介紹Linux系統(tǒng)和內(nèi)核的幾種軟件FBE實(shí)現(xiàn)方案和特點(diǎn),后續(xù)章節(jié)會(huì)以eCryptfs為例做詳細(xì)分析。
FUSE-Based
FUSE即Filesystem in Userspace,用戶態(tài)文件系統(tǒng)。FUSE設(shè)計(jì)初衷就是為方便用戶不修改編譯內(nèi)核的情況下,在user space實(shí)現(xiàn)定制文件系統(tǒng)。FUSE架構(gòu)原理和實(shí)現(xiàn)如下圖,內(nèi)核態(tài)FUSE和用戶態(tài)libfuse為App –》 VFS -》 用戶文件系統(tǒng)鏈路服務(wù),用戶定制實(shí)現(xiàn)主要在User-Level Filesystem部分。
由于天然的靈活性,基于FUSE實(shí)現(xiàn)FBE的方案有很多,例如gocryptfs、EncFS、CryFS、securefs等。但是,F(xiàn)USE引入的多次系統(tǒng)調(diào)用和拷貝等開(kāi)銷,也導(dǎo)致基于FUSE的FBE方案通常性能都不好。gocryptfs項(xiàng)目有一個(gè)stackable FBE各方案的對(duì)比分析,該分析數(shù)據(jù)也驗(yàn)證說(shuō)明了FUSE FBE方案的優(yōu)缺點(diǎn)。
首先是各種stackable FBE方案介紹和整體特點(diǎn),從數(shù)量上看,F(xiàn)USE FBE方案占據(jù)絕大多數(shù),非FUSE方案只有eCryptfs。
其次,相比于eCryptfs,F(xiàn)USE方案在性能上整體處于劣勢(shì)。盡管gocryptfs在順序讀寫(xiě)上性能不錯(cuò),但在其他測(cè)試如解壓縮、MD5計(jì)算、目錄遞歸訪問(wèn)/刪除等測(cè)試項(xiàng)上看,劣勢(shì)也比較明顯。這和我們?cè)?.2章節(jié)對(duì)比FDE和FBE、以及分析磁盤(pán)加密在軟件棧不同層級(jí)實(shí)現(xiàn)的效果差異是一致的。
eCryptfs
eCryptfs衍生于Cryptfs項(xiàng)目,早期方案和設(shè)計(jì)思想源自2005和2007的兩篇論文,即《eCryptfs: an enterprise-class cryptographic filesystem for Linux》和《eCryptfs: a Stacked Cryptographic Filesystem》。eCryptfs項(xiàng)目分為內(nèi)核部分和用戶態(tài)部分,內(nèi)核態(tài)代碼于v2.6.19版本合入社區(qū)主線,用戶態(tài)代碼在軟件包ecryptfs-utils中維護(hù)。
eCryptfs和上面介紹的FUSE方案一樣,也屬于stackable FBE類型,故不依賴于OS底層文件系統(tǒng)類型,可以堆疊在各種文件系統(tǒng)之上,靈活性很好。也支持對(duì)不同文件、目錄加密,以及文件名加密。
當(dāng)前eCryptfs項(xiàng)目開(kāi)源社區(qū)活躍度不高,早期用戶/產(chǎn)品也在遷移,但其方案和設(shè)計(jì)原理仍然值得深入學(xué)習(xí)分析。
fscrypt
fscrypt是在內(nèi)核文件系統(tǒng)上實(shí)現(xiàn)的一個(gè)native FBE方案。fscrypt特性也包括內(nèi)核態(tài)和用戶態(tài)兩部分,內(nèi)核態(tài)部分是實(shí)現(xiàn)在fs/crypto目錄的公用加解密模塊,支持ext4、F2FS、UBIFS文件系統(tǒng)集成使用。用戶態(tài)工具fscrypt則實(shí)現(xiàn)各種命令行工具方便用戶使用。
fscrypt作為FBE方案,支持不同目錄/文件采用不同密鑰,對(duì)于metadata,fscrypt支持文件名filename加密,其他metadata如timestamp、size、attribute等不加密。fscrypt最大的應(yīng)用即Android
采用的FBE方案,結(jié)合F2FS文件系統(tǒng),對(duì)手機(jī)上的數(shù)據(jù)進(jìn)行data at rest encryption保護(hù)。本文受限于篇幅,不做詳細(xì)分析。
-
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208717 -
磁盤(pán)
+關(guān)注
關(guān)注
1文章
361瀏覽量
25154 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
904瀏覽量
28018
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論