eCryptfs

eCryptfs是Linux平台下的企業檔案加密系統。它起源於Erez Zadok's Cryptfs,通過FiST框架實現層疊式檔案系統的產生。

簡介:

eCryptfs - Enterprise Cryptographic Filesystem

可翻譯為企業級檔案加密系統

eCryptfs具有高級密匙管理和政策的特徵。它將加密元數據存儲在每一份被操作的檔案頭中,從而實現檔案在不同主機之間的傳輸。

操作指南:

1.使用環境: ubuntu系統或類似依賴DEB的linux系統

2.安裝指令:

sudo apt-get install ecryptfs-utils

3.軟體最大特點是:用戶對加密資料夾的操作是無縫的,就像操作正常的資料夾一樣。

其它的,比如加密級別高——即使硬碟被盜,也不會泄密。和系統整合性高,基於核心級,整體安全性高於普通軟體。

可以在其他檔案格式中使用,如ntfs、fat32、ext4……可以方便的放置到移動設備中。

操作示例

1,新建一個測試資料夾:ecryptfs_test

使用這個資料夾存放加密檔案

命令:

sudo mount -t ecryptfs ecryptfs_test ecryptfs_test

mount 是掛載命令。-t 是指定檔案類型。ecryptfs 就是我們使用的加密檔案類型。

這裡換一個命令說明一下sudo mount -t ecryptfs real_path ecryptfs_mounted_path

real_path 是真實存放數據的地方;ecryptfs_mounted_path 是指你要把資料夾掛載於哪裡(具體位置可以隨意)

IBM 推薦:ecryptfs_mounted_path 和 真實目錄 real_path 一致,這樣非授權用戶不能通過原路徑訪問加密檔案。

這裡說一下掛載:很多人不理解

所謂掛載,可以理解為超級連結。比如說有兩個資料夾 a,b。a中有檔案isa,b中有檔案isb。

現在我們要把a掛載於b上,命令:mount a b

此時b已經變成了a 的連結。所有對b的訪問實際上都指向了a。

比如我們打開b資料夾,看到的檔案只有isa。而打開a資料夾,檔案還是isa

我們在b中存放一個新檔案 isnew。

好了我們卸載這個掛載(取消這個超連結),命令:umount b

現在查看a資料夾,裡面有檔案isa isnew

查看b資料夾,裡面只有isb

為使么說是超級連結呢,因為有個選項(其它選項我還不會) -t

它的意思是指定 資料夾類型(檔案系統類型)。檔案系統類型有很多,比如我們使用的ext4、ext3、fat32、ntfs……還有特殊的檔案系統,比如 tmpfs(用記憶體 存檔案)、ecryptfs(檔案加密格式)……

2,mount 需要root許可權,我們使用 命令sudo ,來以root身份運行命令

結果如下:

passphrase:

(這是要你輸入密碼,自己編一個。一定要記住。另外密碼是不會有任何顯示的,輸完回車就行)

select cipher:

(選擇加密方式,不選默認是[aes]。最好記住自己的選擇)

select key bytes:

(選擇加密位數,不選默認是[16]。最好記住自己的選擇)

enable plaintext passthrough(y/n) [n]:

(是否允許使用明文,默認是 n)

enable filename encryption (y/n) [n]:

(是否把檔案名稱也進行加密,默認是 n。如果選擇y,那么在沒有解密 的情況下是無法看見資料夾內部的檔案的)

如果設定的密碼是第一次使用,它會提示你密碼被標識為[799d2f922c0f1f26] 。當然,你的密碼標識肯定不會是這個。並且告訴你掛載錯誤,因為/root/.ecryptfs/sig-cache.txt中沒有相關記錄。開始讓你選擇:

Would you like to proceed with the mount (yes/no)? :

(你是否希望繼續進行掛載。我們輸入yes,來完成加密)

Would you like to append sig [799d2f922c0f1f26] to

[/root/.ecryptfs/sig-cache.txt]

in order to avoid this warning in the future (yes/no)?:

(你是否把密碼標識加到/root/.ecryptfs/sig-cache.txt中,免得下次再報警。我們輸入yes)

3,好了,現在正常操作ecryptfs_test資料夾。

放一些檔案來測試。

4,關閉解密

命令:

sudo umount -t ecryptfs ecryptfs_test

(如果使用的是sudo mount -t ecryptfs real_path ecryptfs_mounted_path

那么對應的命令是sudo umount -t ecryptfs ecryptfs_mounted_path)

這命令是把掛載取消了。這裡的作用相當於把解密取消了,畢竟把重要檔案長時間解密放著不好。

好了,再看看ecryptfs_test資料夾,裡面的檔案是不是都無法正確打開了?

需要解密資料夾時還是用命令:

sudo mount -t ecryptfs ecryptfs_test ecryptfs_test

(格式還是不變:sudo mount -t ecryptfs real_path ecryptfs_mounted_path)

passphrase:

select cipher:

select key bytes:

enable plaintext passthrough(y/n) [n]:

enable filename encryption (y/n) [n]:

上面這幾相當初怎么設定的就怎么填,之後資料夾就解密了。

不用了,還是用命令解除解密狀態

sudo umount -t ecryptfs ecryptfs_test

這裡說一點,mount命令重啟就失效了。如果你要關機了,不必使用sudo umount -t ecryptfs ecryptfs_test

命令了。因為再次開機,解密是失效的。必須重新運行命令sudo mount -t ecryptfs ecryptfs_test ecryptfs_test

高級套用示例:

我們知道 ecryptfs 是檔案虛擬層,其功能就是 加密/解密。沒有密碼驗證一說

也就是說,它根據密碼進行加密/解密。即使密碼不正確依舊進行 加密/解密,與數據無關。

那么:

1,可以重複加密。實驗證明的確可以。因為 mount 是可以重複掛載的。更別說多次掛載在不同地方。

試驗:假設有這么幾個資料夾 test a b

mount -t ecryptfs test test

密碼設定為 1234

裡面放文本檔案 one。

好了再次掛載

mount -t ecryptfs test a

密碼為4321

放文本 two

再次掛載

mount -t ecryptfs a b

密碼0987

放文本 three

好了在資料夾 test a b中均可看見 one two three檔案,可是

test中只有 one可以打開,a 中只有two可以打開,b中只有three可以打開。

因為one被密碼1234加密,two被密碼1234和密碼4321加密兩次,three呢1234、4321、0987加密三次。

test中檔案被1234解密一次,a中檔案被密碼1234和密碼4321解密兩次,b中1234、4321、0987解密3次。

所以test中除了one被正確解密,其它的都還在加密狀態。

a中,one被1234正確解密卻又被4321再次解密,就成了亂碼(相當於被加了密)

這樣一來,假設test中的檔案被加密了2次。

那么別人破解密碼就很有一思了(假設他不知道檔案被加密了幾次)。

如果嘗試一個密碼,顯示的資料夾內容是亂碼。那么就有2個可能

要么是密碼錯了,要么是密碼對了還要再解密。

當然,對於密碼學而言(直接從密文還原為明文)。使用同一方法重複加密絲毫不能增加安全性,不管重複多少次其效果只等同於加密一次。但是不要忘記,ecryptfs有:

1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

2) blowfish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded)

4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)

6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded)

種加密方式。如果正確使用,破解難度很大

由此可以得知 ecryptfs 有效重複加密次數只有6次,但是對於非情報人員而言,已經夠用了。

2,把普通軟體升級為 帶有可加密數據的安全軟體

這點套用原理很簡單。軟體在 home/~ 中 大多都有配置,軟體數據、用戶數據的保存資料夾。

比 如:某某通訊錄軟體 在 ~/xxx/date 中保存用戶的數據。而這軟體比較普通,使用的明文存儲 通訊錄。

這意味著,資料外泄。比如裡面是 大量客戶 ,被競爭對手拿到…… 別覺得不可能,觸及錢的東西,被人顧黑客黑都是很有可能的。

此時,使用 ecryptfs 把 date 資料夾 mount 。保證了處於加密狀態。正常使用軟體就行了。使用完了,umount。

ok,軟體有了一個資料庫加密的功能。而且是不在影響 軟體使用的基礎上實現的。

想想,rar這類的壓縮加密的軟體能做到嗎?win 下的各類資料夾加密軟體可以嗎(可是不能任意 mount的)?

微 軟基於用戶的(ntfs檔案系統),更是不方便。只要用戶登錄,加密資料夾就自動解密 直到用戶註銷。雖然說微軟的加密真的很強,可是對於線上入侵,或者軟體搞鬼就沒辦法了。只要用戶處於登錄狀態,加密資料夾就像分開雙腿的處女,誰想都行。 對於 ecryptfs 可不行,就算你是root,也要輸入密碼、加密方法、密鑰長度。就算你拿到用戶的登錄密碼,也無能為力(比微軟全部雞蛋放一個籠子好的多)。

這裡 明白我不喜歡 整體加密主資料夾了吧。

3,這裡使用 ubuntu one或者類似工具的朋友,為了你的數據安全。 請先使用 ecryptfs mount 存入資料,再umount,之後再 同步資料夾。即使黑客 攻破了 ubuntu one 的伺服器,也不會獲得你的資料。而且使用上,沒有太大差異。

再說一 點。大家也許都想到了:同一資料夾里的檔案,可以是不同密碼加密的。

推薦一本書《經典密碼學與現代密碼學》,網路上可以下載pdf 的版本。對於保守機密很有幫助

檔案管理器的腳本

輸入命令比較麻煩,我們就把它集成到檔案管理器

的使用右鍵直接調用加密。

創建一個腳本,我們放在/bin中。其實放在哪裡都可以,只是考慮到安全性還是放在系統資料夾中,以root用戶創建。(狗%日的度認為mountecryptfs後面加上後綴.sh是網站,不讓通過我只好刪除,大家自己添加吧。真j,b白&痴!)

sudo touch /bin/mountecryptfs

編輯腳本

sudo kate /bin/mountecryptfs

拷貝以下內容:

#!/bin/bash

# 本腳本運行由cat650製作

# 腳本適用於kde環境,請提前安裝ecryptfs-utils

count=0 ##初始值

dir="/tmp/mnt/ecryptfs$count" ##初始掛載點

echo "已掛載加密目錄有:"

while df|grep -q $dir 2>/dev/null ##掛載點 是否使用了

do

echo $dir

let count=$count+1 ##一定要是/bin/bash如是/bin/sh這裡就會出錯

dir="/tmp/mnt/ecryptfs$count" ###新掛載點

done

echo "新增掛載目錄:"$dir

echo "等待超級用授權"

if [ ! -d $dir ];then ##判斷目錄是否存在

sudo mkdir -p $dir ###建立新掛載點目錄,選項p,可以創建連續資料夾

fi

echo "授權完成,開始加密……"

echo "請輸入加密密碼,選擇加密方式:"

sudo mount -t ecryptfs "$1" $dir

echo "顯示加密資料夾"

dolphin $dir

echo $dir"已處於加密狀態"

read -p "是否自動卸載加密資料夾(yes?)" yn

if [ "$yn" != "yes" ]; then

echo "請記得手動解除加密"

echo "命令為:sudo umount /tmp/mnt/ecryptfs*"

read -p "回車退出" no

exit 0

fi

echo "去加密……"

sudo umount $dir

sudo rmdir $dir

## 下面刪除快取圖片,這個大家自己設定。

##我把整個資料夾鏈到了/tmp.普通用戶位置是:~/.thumbnails/

rm -r /tmp/large/

rm -r /tmp/normal/

echo "處於加密狀態的資料夾有:"

df|grep "tmp/mnt"

read -p "請驗證是否已解除加密,回車退出" no

把這個腳本變為可執行

sudo dolphin /bin

找到腳本,屬性改為可執行。

(root許可權)用dolphin打開任意資料夾。資料夾右鍵,屬性,類型旁有個小扳手。

添加。選擇程式,找到/bin/mountecryptfs

選擇並移動到最底。

選擇,編輯。應用程式,高級選項:在終端中運行。這步必須有,要不無法進行加密操作。

現在選擇任意資料夾,右鍵,打開方式:mountecryptfs

看到終端了嗎,按提示操作,自動打開檔案管理器,就可以存放要加密的檔案了。

貢獻者名單:

Dustin Kirkland 1700 points

Michael Rooney 213 points

Frédéric Guihéry 45 points

Tyler Hicks 35 points

Bernhard Bliem 30 points

……

相關詞條

相關搜尋

熱門詞條

聯絡我們