目標(biāo)很簡(jiǎn)單。云存儲(chǔ)上很多文件都挺私人的,直接放著很嚇人。雖說云存儲(chǔ)采用各種方法來保證你的安全,但是世界上沒有絕對(duì)的安全。萬一密碼泄漏,或者更糟糕,云存儲(chǔ)泄漏。此時(shí)你的各種文件就在網(wǎng)絡(luò)上裸奔了。
最簡(jiǎn)單的解決方法是什么?在底層存儲(chǔ)上套一層加密唄。不過由于是云存儲(chǔ),所以基于塊設(shè)備的加密方案不能用,例如LUKS。否則你同步到云上的就是一個(gè)超級(jí)巨大的塊文件,然后每次修改,云存儲(chǔ)客戶端都要找到差別上傳。這太蛋疼了。正解是每個(gè)文件分別加密上傳。但即便如此,對(duì)于超大文件進(jìn)行加密后依然會(huì)影響上傳效率,請(qǐng)?zhí)崆翱紤]一下這個(gè)問題。
同時(shí)又要注意,云存儲(chǔ)用的加密文件系統(tǒng)和普通的加密文件系統(tǒng)還有點(diǎn)差別。很多加密文件系統(tǒng)的daemon會(huì)認(rèn)為自己是唯一一個(gè)會(huì)訪問加密內(nèi)容的進(jìn)程,而云存儲(chǔ)可能隨時(shí)接收來自遠(yuǎn)程的修改。所以這會(huì)造成一些問題。
備選方案
我對(duì)比了四種方案,EncFS,CryFS,GoCryptFS,eCryptFS。對(duì)比的方法是用這四種分別建立一個(gè)加密目錄,然后用不同的方法做寫入測(cè)試,看他的各種參數(shù)。順便說一句,如果你要看的話,其實(shí)看這份表格就好。我只是在自己的機(jī)器上復(fù)現(xiàn)了一下,順便了解一下各家特點(diǎn)。
測(cè)試語句:
timeddif=/dev/zeroof=testbs=1048576count=1024
timeddif=/dev/zeroof=testbs=1024count=1048576
timetarxflinux-4.13.12.tar.xz
其中,在裸盤上直接解壓內(nèi)核源碼耗時(shí)7.568s,空間使用870M。
數(shù)據(jù)對(duì)比
+---------+-------+-----+-------+-----+-------+-----+--------------+
||time1|size1|time2|size2|time3|size3|comment|
+---------+-------+-----+-------+-----+-------+-----+--------------+
|EncFS|13.210s|1.1G|39.039s|1.1G|26.496s|894M||
+---------+-------+-----+-------+-----+-------+-----+--------------+
|CryFS|9.327s|1.1G|21.230s|1.1G|42.918s|2.5G|刪除耗時(shí)2.804s|
+---------+-------+-----+-------+-----+-------+-----+--------------+
|GoCryptFS|3.515s|1.1G|28.180s|1.1G|19.874s|918M||
+---------+-------+-----+-------+-----+-------+-----+--------------+
|eCryptFS|3.132s|1.1G|10.218s|1.1G|9.448s|1.4G||
+---------+-------+-----+-------+-----+-------+-----+--------------+
解讀
首先說怎么解讀。time1是連續(xù)寫入性能,time2是離散寫入性能,time3是小文件寫入性能,size3是大量小文件膨脹系統(tǒng)。size1和size2沒啥用。
下面先看性能。從性能上看,最優(yōu)秀的是eCryptFS。這是理所當(dāng)然,因?yàn)檫@是唯一一個(gè)內(nèi)核態(tài)而且和內(nèi)核整合的系統(tǒng)。GoCryptFS次之。EncFS要慢上好多。至于CryFS,一開始寫小文件就原型畢露了。何況這是唯一一個(gè)刪除大文件時(shí)間超過1s的,達(dá)到2.8s。你看我其他系統(tǒng)測(cè)試?yán)锒紱]寫。
然后是膨脹率。EncFS膨脹2.75%,CryFS膨脹近三倍,GoCryptFS膨脹5.52%,eCryptFS膨脹65%。相比起來,EncFS膨脹率最小,GoCryptFS次之,CryFS最糟糕。
安全性
下面是同一個(gè)人出的三份審計(jì)報(bào)告:
encfs的審計(jì)報(bào)告
gocryptfs的審計(jì)報(bào)告
ecryptfs的審計(jì)報(bào)告
根據(jù)報(bào)告可以得到這么幾個(gè)意見:
EncFS有安全性隱患,目前未解決。主要隱患來自于文件塊加密模式上。如果攻擊者有機(jī)會(huì)獲得多份密文副本,那么就是不安全的。
GoCryptFS有一定安全問題,目前未解決。下面細(xì)說。
eCryptFS需要進(jìn)一步審計(jì),目前可視為安全。
綜敘
可能出乎大家意料,我首先排除了encfs和ecryptfs。encfs是因?yàn)橛邪踩噪[患。ecryptfs是因?yàn)椴槐阌谑褂煤筒患嫒菰拼鎯?chǔ)模式。ecryptfs在每次掛載時(shí)都需要獨(dú)立輸入所有參數(shù),這樣使用起來比較不方便。更糟糕的是,ecryptfs并不支持同時(shí)有人訪問加密數(shù)據(jù)本身。這樣會(huì)造成競(jìng)爭(zhēng)問題。對(duì)于一個(gè)內(nèi)核級(jí)的東西來說,這有極大的危險(xiǎn)性。同時(shí),這貨的膨脹率有點(diǎn)高。
然后在CryFS和GoCryptFS里,我選擇GoCryptFS。雖然CryFS是唯一一個(gè)明確聲明自己兼容云存儲(chǔ)的,但是其膨脹率實(shí)在太高了。雖然是云存儲(chǔ),但是畢竟要考慮性價(jià)比的。
那么GoCryptFS的安全問題是什么呢?主要隱患來自和云存儲(chǔ)混用時(shí),攻擊者雖然對(duì)文件內(nèi)容一無所知,但是可以修改文件內(nèi)容。例如將其他加密文件復(fù)制過來,或者將部分內(nèi)容嫁接過來。審計(jì)報(bào)告里提供了一系列的POC來說明這一風(fēng)險(xiǎn)。這一風(fēng)險(xiǎn)對(duì)于特定情況的用戶來說是非常危險(xiǎn)的,例如在加密區(qū)域存儲(chǔ)多個(gè)可信身份/帳號(hào)身份文件的人。
很幸運(yùn),我對(duì)這方面沒要求。GoCryptFS的膨脹率不大,僅高于EncFS,完全可以接受。性能也不錯(cuò),僅次于eCryptFS。使用非常方便,同時(shí)還能提供過得去的安全特性。因此綜合上面所有情況,我選擇GoCryptFS作為云存儲(chǔ)上疊加的加密文件系統(tǒng)。
-
云存儲(chǔ)
+關(guān)注
關(guān)注
7文章
777瀏覽量
46688 -
加密系統(tǒng)
+關(guān)注
關(guān)注
0文章
18瀏覽量
11145
原文標(biāo)題:在云存儲(chǔ)上疊加加密文件系統(tǒng)
文章出處:【微信號(hào):cunchujie,微信公眾號(hào):存儲(chǔ)界】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
FatFS文件系統(tǒng)在STM32F4上的移植和應(yīng)用

Linux proc文件系統(tǒng)詳解
求一種在rtthread系統(tǒng)上添加并使用文件系統(tǒng)的設(shè)計(jì)方案
分析YAFFS文件系統(tǒng)在Linux系統(tǒng)中的構(gòu)建

《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng)

云文件系統(tǒng)隔離性度量模型

Linux文件系統(tǒng)與持久性內(nèi)存

Nand Flash文件系統(tǒng)解決方案

嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng))

FATFS文件系統(tǒng)詳解

【文件系統(tǒng)】FatFs文件系統(tǒng)在嵌入式芯片LPC18XX上的移植

使用ZYMKEY加密Raspberry Pi上的根文件系統(tǒng)

FATFS文件系統(tǒng)詳解:關(guān)于SD卡、SD nand、spi nor flash等眾多存儲(chǔ)設(shè)備

服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被誤格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例

服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例

評(píng)論