加密云存储中的文件,保护你的隐私

1、背景

前几天一个硬盘坏了(SSD),数据无一幸免。还好我有必定的数据备份。新硬盘到了,我想的是不能再这样下去了。我须要利用现有存储(Dropbox,xx快盘等),实时备份个人重要数据。问题也来了,存储安全吗?不会出xx门吧? html

2、分析

存储安全从本质上来讲确定是不安全的,因此我须要对本地的文件进行加密。云端只存储我加密后的文件,这种方式就算 CIA 也很难搞定。 linux


那咱们采用何种加密方式呢?Zip 加密码?文件包工具加密仍是显得太麻烦,编辑一个文档要先解包再打包。而解包后的数据存在磁盘上也是隐患(能够被深度数据分析工具发现)。 算法


TrueCrypt 是一种不错的加密方式,直接把一个文件(或分区)映射为一个虚拟盘(解密后的文件只会缓存在内存中,因此是安全的),但与云存储放在一块儿好像就不太协调。问题是 TrueCrypt 存储是按单文件方式,如一个10G的数据文件。不用我说你们也可能会想到,你每次修改你的任何虚拟盘中的数据都会触发文件变动,致使每次要重传10G!!!的文件。虽然有些云存储客户端支持对大文件的分析不用所有重传,但仍是至关不爽。 shell


EncFS 也是一种文件系统加密方式,经过映射一个目录来作虚拟目录存储(解密后的文件只会缓存在内存中,因此是安全的)。EncFS 不像 TrueCrypt 把全部的文件都存放在一个加密文件中。它的加密方式是保持你原有的目录结构,把文件名、目录名、文件内容进行加密。 缓存

  • 好处:单文件加密很是适合云存储,你修改了哪一个文件只须要上传那个文件对应的加密文集便可。
  • 坏处:第三方人员,能够看到你的目录结构。多文件分散,不易于本地维护。

3、加密目录(EncFS)

注:我用的是 Linux(Mint)系统,因此教程会按 Linux 系统来写。若是你使用 Windows 系统也能够经过 encfs4win(http://members.ferrara.linux.it/freddy77/encfs.html)或同类工具完成加密。 安全

一、在云存储目录中建立准备用于存放加密文件的目录(mkdir)

如:/opt/noah/Dropbox/.encrypted/Photos
我在 Dropbox 中建立了 .encrypted 主目录,而后专门建立了存放私人内容的目录 Photos bash

二、建立映射目录(mkdir)

数据是存放在 .encrypted/Photos 中,但你使用 EncFS 时并不直接操做加密目录。而是映射目录。
个人映射目录建立在 /home/noah/EncFS/Photos,空着就能够或者你能够放一些不相关的内容进行混淆。 工具

注:EncFS 在映射加密目录时,不会影响原映射目录内容。 加密

三、安装 encfs

sudo apt-get install encfs

四、初始化加密目录

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

选择模式 spa

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 发现变动后会自动上传加密文件。

五、卸载加密目录

不使用时,断开映射关系。EncFs/Photos 中的内容恢复,没有任何文件痕迹。

sudo umount ~/EncFS/Photos/

六、从新挂载加密目录

指令与初始化时同样,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


4、效果

一、加密目录数据

二、映射目录数据(映射后)

三、云端数据

5、总结

因为文件在本地就已经加密。就算云传输通道不安全,云存储不安全,对我来讲已经足够安全了。 我再强调一下,安全都是相对而言的。没有绝对安全的事物,也但愿你们不要由于这点问题而争论不休。

相关文章
相关标签/搜索