加密云存儲中的文件,保護你的隱私

jopen 10年前發布 | 34K 次閱讀 云存儲 分布式/云計算/大數據

前一段時間,CIA 鬧得很歡。由此引發我們的思考,是否可以相信云存儲。從目前的現狀來說,答案是 NO。我們的數據存儲在云端(各種快盤,Dropbox 等),大家都是開發的想想也知道,你的數據還是有可能被第三者看到的。所以常理上講,云上只存些不太私密的數據,如:常規照片,軟件。但如果我想存儲一些 證件照片,證書文件與一些其它的隱私數據呢?

一、背景

前幾天一個硬盤壞了(SSD),數據無一幸免。還好我有一定的數據備份。新硬盤到了,我想的是不能再這樣下去了。我需要利用現有存儲(Dropbox,xx快盤等),實時備份我的重要數據。問題也來了,存儲安全嗎?不會出xx門吧?

二、分析

存儲安全從本質上來說肯定是不安全的,所以我需要對本地的文件進行加密。云端只存儲我加密后的文件,這種方式就算 CIA 也很難搞定。


那我們采用何種加密方式呢?Zip 加密碼?文件包工具加密還是顯得太麻煩,編輯一個文檔要先解包再打包。而解包后的數據存在磁盤上也是隱患(可以被深度數據分析工具發現)。


TrueCrypt 是一種不錯的加密方式,直接把一個文件(或分區)映射為一個虛擬盤(解密后的文件只會緩存在內存中,所以是安全的),但與云存儲放在一起好像就不太協調。問題是 TrueCrypt 存儲是按單文件方式,如一個10G的數據文件。不用我說大家也可能會想到,你每次修改你的任何虛擬盤中的數據都會觸發文件變更,導致每次要重傳10G!!!的文件。雖然有些云存儲客戶端支持對大文件的分析不用全部重傳,但還是相當不爽。


EncFS 也是一種文件系統加密方式,通過映射一個目錄來做虛擬目錄存儲(解密后的文件只會緩存在內存中,所以是安全的)。EncFS 不像 TrueCrypt 把所有的文件都存放在一個加密文件中。它的加密方式是保持你原有的目錄結構,把文件名、目錄名、文件內容進行加密。

  • 好處:單文件加密非常適合云存儲,你修改了哪個文件只需要上傳那個文件對應的加密文集即可。
  • 壞處:第三方人員,可以看到你的目錄結構。多文件分散,不易于本地維護。

三、加密目錄(EncFS)

注:我用的是 Linux(Mint)系統,所以教程會按 Linux 系統來寫。如果你使用 Windows 系統也可以通過 encfs4win(http://members.ferrara.linux.it/freddy77/encfs.html)或同類工具完成加密。

1、在云存儲目錄中創建準備用于存放加密文件的目錄(mkdir)

如:/opt/noah/Dropbox/.encrypted/Photos
我在 Dropbox 中創建了 .encrypted 主目錄,然后專門創建了存放私人內容的目錄 Photos

2、創建映射目錄(mkdir)

數據是存放在 .encrypted/Photos 中,但你使用 EncFS 時并不直接操作加密目錄。而是映射目錄。
我的映射目錄創建在 /home/noah/EncFS/Photos,空著就可以或者你可以放一些不相關的內容進行混淆。

注:EncFS 在映射加密目錄時,不會影響原映射目錄內容。

3、安裝 encfs

sudo apt-get install encfs

4、初始化加密目錄

encfs /opt/noah/Dropbox/.encrypted/Photos/ ~/EncFS/Photos

選擇模式

Creating new encrypted volume.
Please choose from one of the following options:
 enter "x" for expert configuration mode,
 enter "p" for pre-configured paranoia mode,
 anything else, or an empty line will select standard mode.
?> 

選 p 就可以,x 為專家模式(可以修改加密算法,加密方式等)。 

然后輸入密碼。(建議14個字符以上密碼,密碼的長度就是你文件的安全程度,目前暴力破14位以上密碼可能需要幾百年)
創建完成后,你向 EncFs/Photos 中放入文件,對應的加密目錄 .encrypted/Photos 也會生成加密文件。Dropbox 發現變更后會自動上傳加密文件。

5、卸載加密目錄

不使用時,斷開映射關系。EncFs/Photos 中的內容恢復,沒有任何文件痕跡。

sudo umount ~/EncFS/Photos/

6、重新掛載加密目錄

指令與初始化時一樣,EncFS 發現目錄已經加密就不會讓你再初始化了。

encfs /opt/noah/Dropbox/.encrypted/Photos/ ~/EncFS/Photos

你也可以將這個過程做一個 sh 文件,簡化掛載過程

#!/bin/bash

if the script was not launched from a terminal, restart it from a terminal

if [[ ! -t 0 ]] && [[ -x /usr/bin/x-terminal-emulator ]]; then /usr/bin/x-terminal-emulator -e "bash -c \"$0 $*; read -s -p 'Press enter to continue...'\"" exit fi

mkdir -p ~/EncFS/Photos encfs /opt/noah/Dropbox/.encrypted/Photos/ ~/EncFS/Photos</pre>


四、效果

1、加密目錄數據

加密云存儲中的文件,保護你的隱私

2、映射目錄數據(映射后)

加密云存儲中的文件,保護你的隱私

3、云端數據

加密云存儲中的文件,保護你的隱私

五、總結

由于文件在本地就已經加密。就算云傳輸通道不安全,云存儲不安全,對我來說已經足夠安全了。
我再強調一下,安全都是相對而言的。沒有絕對安全的事物,也希望大家不要因為這點問題而爭論不休。

來自:http://my.oschina.net/noahxiao/blog/205667

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!