保护敏感数据不被泄漏成为人们关注的热点问题。入侵者除了直接盗取物理存储设备,还可以通过">网络攻击来窃夺文件数据;而且,由于共享的需求,敏感数据会由多人访问,这也增大了泄漏的可能性。对数据或文件进行加密已经成为一种公认的比较成功的保护方法。事实上,人们早已开发了许多优秀的加密算法,如 DES、AES、RSA 等,并且有一些应用程序如 crypt 使用这些加密算法,用户通过这些工具手工地完成加密、解密的工作。由于这些应用程序操作麻烦、没有和整个系统紧密地结合而且容易受到攻击,因此一般用户并不愿意使用。
加密文件系统(比如eCryptfs)通过将加密服务集成到文件系统这一层面来解决上面的问题。加密文件的内容一般经过对称密钥算法加密后以密文的形式存放在物理介质上,即使文件丢失或被窃取,在加密密钥未泄漏的情况下,非授权用户几乎无法通过密文逆向获得文件的明文,从而保证了高安全性。与此同时,授权用户对加密文件的访问则非常方便。用户通过初始身份认证后,对加密文件的访问和普通文件没有什么区别,就好像该文件并没有被加密过,这是因为加密文件系统自动地在后台做了相关的加密和解密的工作。由于加密文件系统一般工作在内核态,普通的攻击比较难于奏效。还有一类系统级加密方案是基于块设备,与它们相比,加密文件系统具有更多的优势,例如:
1、支持文件粒度的加密,也就是说,用户可以选择对哪些文件或目录加密。而且,应用程序不用关心文件是否被加密,可以完全透明地访问加密文件。
2、无需预先保留足够的空间,用户可以随时加密或恢复文件。
3、对单个加密文件更改密钥和加密算法比较容易。
4、不同的文件可以使用不同的加密算法和密钥,增大了破解的难度。
5、只有加密文件才需要特殊的加密/解密处理,普通文件的存取没有额外开销。
6、加密文件转移到别的物理介质上时,没有额外的加密/解密开销。
7、附加一点,ecryptfs 的解密层存在于内存(内存不足时可能使用 到交换分区)。硬盘上面保存的只有加密数据。这样即使硬盘被偷了,使用数据还原软件也不可能得到 解密文件。不是像普通的加密软件、压缩软件把 解密文件缓存于硬盘上。你即使删除了,使用数据还原软件依然有可能得到 解密文件。
安装
sudo apt-get install ecryptfs-utils
然后就可以开始使用了。因为很简单使用命令界面就能解决问题,所以没有图形界面。但是不用担心,我会把每一步讲解清楚。没有图形界面还有一个好处:隐蔽性高
使用举例
这里举个单独加密文件夹的例子,而不是按网上流行的方式:把主文件夹加密。我认为这种操作简单、独立涉及的东西少,效率高。
注:ubuntu安装时有个选项——加密用户文件夹,使用的就是该系统。
*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 是指你要把文件夹挂载于哪里(具体位置可以随意)
推荐:ecryptfs_mounted_path 和 真实目录 real_path 不一致,这样非授权用户不能通过原路径访问加密文件。