加密文件系統優點算法
1, 加密文件轉移到別的物理介質上時,沒有額外的加密/解密開銷。安全
2, 支持文件粒度的加密,也就是說,用戶能夠選擇對哪些文件或目錄加密。並且,應用程序不用關心文件是否被加密,能夠徹底透明地訪問加密文件。服務器
3, 無需預先保留足夠的空間,用戶能夠隨時加密或恢復文件。網絡
4, 對單個加密文件更改密鑰和加密算法比較容易。分佈式
5, 不一樣的文件可使用不一樣的加密算法和密鑰,增大了破解的難度。性能
6, 只有加密文件才須要特殊的加密/解密處理,普通文件的存取沒有額外開銷。加密
CFS設計
CFS是一個Unix下的加密文件系統,工做在用戶層,以NFS服務器的形式工做。CFS須要用戶在本地或遠程文件系統中建立一個目錄,用來存取加密數據。密鑰和加密算法是在這個目錄建立時指定的。用戶須要經過一個掛載命令向CFS代理髮送加密數據訪問請求。代理負責驗證用戶ID和密鑰是否合法,而後在掛載點目錄建立一個目錄供用戶訪問。掛載成功後,用戶將看到解密後的數據,並能夠像操做普通目錄同樣在這個目錄裏存取數據,惟一的不一樣在十全部的數據都會被透明的加密。CFS是一個設計合理、可移植、內置多種加密算法的加密文件系統,但由十它工做在用戶模式,大量時間被花費在用戶空間和內核空間之間的上下文環境切換,所以效率較低。代理
BestCrypt繼承
BestCrypt是一個商用的加密迴環設備驅動。這種迴環設備把一個文件(此文件被稱爲容器)虛擬成一個塊設備;對這個塊設備的寫操做會以加密的形式寫入容器文件中,設備之上能夠掛載任何基十塊設備的文件系統,使文件系統具備加密功能。這種策略的優點在十文件系統的元數據也會被加密o BestCrypt適合單用戶的環境,由容器的全部者保存密鑰。可是在多用戶環境下,缺少靈活的訪問控制機制保證多用戶共享的安全性。
Cryptfs
Cryptfs是一個可堆疊的加密文件系統,它工做內核層,能夠在其它文件系統之上提供加密功能。它支持Linux, FreeBSD和Solaris二個平臺,ifu b‘性能理想。但它只是一個原型系統,缺少一個完整的安全文件系統應具備的密鑰管理和多種加密算法支持。NCryptfs是Cryptfs的擴展,其目標是在安全性、易用性和效率之間獲得一個平衡點,而且提供了足夠複雜的機制來實現這一目標。NCryptfs只支持Linux平臺,並且不支持數據的完整性檢查。
StegFS
StegFS 是一個採用了數據隱藏技術的加密文件系統。若是有對手入侵這個系統,他們只可以發現系統中存在一些隱藏數據,但他們沒法知道隱藏數據的內容,也沒法知道隱藏數據的具體位置。該系統是經過修改EXT2文件系統實現的,因此工做在內核層。StegFS實現的安全保護在有些環境下是有必要的,但它的性能很是差,以致十沒法勝任大多數的應用。
Cephese
Cephese文件系統是SFS的一個擴展,實現了數據以加密的形式在服務器磁盤上存儲,同時提供了基十組的文件共享機制。組中不一樣文件使用不一樣的文件密鑰進行加密,同一個組的文件對應的密鑰存放在一個lockbox中,並用一個組密鑰加密。使用一個獨立的組服務器進行組密鑰發佈,實現方式要求用戶引入公鑰體制。Cephese仍然繼承了SFS的安全通信協議,使用會話密鑰對客戶端與服務器的通信會話進行加密,這意味着文件數據被加密了兩次,帶來了多餘的計算負擔。
當前主流分佈式文件系統的不足
經過前面的分析能夠看出,當前普遍使用的NFS和Coda等分佈式文件系統,僅僅提供了在傳輸線路上的數據安全保護,數據在服務器端是以明文存儲的,這存在着極大的安全隱患。
加密文件系統以加密的形式對文件數據進行存儲,有效的解決了上述問題。但
它們並無注重分佈式環境下的需求,更多的是定位在本地文件系統或局域網內使
用的網絡文件系統。在分佈式環境下,它們面臨下面的問題:
1.對加密文件共享的支持較差。如CFS並無提供對文件共享的支持。
2.缺少靈活的密鑰管理機制。它們都固化了密鑰管理,用戶沒法根據應用須要選擇最合適的方案。
3.缺少合理的實現方式,沒法與現有的分佈式文件系統結合。例如CFS和Cephese都是經過對某個版本的NFS代碼進行修改實現的,若是NFS發佈了新的版本,它們必須隨之升級,不然沒法利用新版本帶來的特性。實際上它們中不少已經中止開發了。