★引子
上一个帖子点评了爱国愤青关于拉登同学的几个误区。话说美国佬把拉登灭掉之后不到一星期,从拉登老巢缴获的电脑资料,就开始在美国政府的网站曝光了(比如拉登的生活录像)。另据美国某安全官员说,缴获的电脑资料之多,抵得上一个小型图书馆。单从这点可以判断出:拉登同学对自己手头的存储设备(比如硬盘),没有进行【足够强度】的加密处理。这令俺很吃惊啊!——堂堂的恐怖大亨,竟然连这点常识都没有啊?!
想当年,陈冠希同学就是因为疏忽了数据加密,导致艳照满世界流传,不光搞臭了一堆女明星,也造福了无数男网民。这回,基地组织估计要步陈同学的后尘了——区别在于,这次倒霉的是基地组织的残余势力,受益的是美国情报机构。
★文件加密的重要性
有些同学以为,自己既不是影视明星,又不是恐怖分子,不需要采用文件加密之类的工具,那就大错特错啦。下面俺来大致聊聊,文件加密的用武之地。
◇防范失窃
这年头,笔记本电脑、平板电脑越来越流行,而这类便捷的移动设备,也增加了丢失的概率。一旦你的移动设备丢失,存储在上面的个人敏感信息就有暴露的风险。比如用浏览器保存的登录口令、邮件客户端存储的私人邮件、等等。如果你的敏感信息是加密的,失窃后的风险就大大降低。
◇保存个人隐私
很多人的家用电脑,都是几个家庭成员共用的。你可能会有一些个人隐私的信息,不希望被其他家庭成员看到。比如你上网下载的毛片、艳照、等,多半不希望被你父母或子女看到。这时候,文件加密就可以防止你的隐私外泄。
◇加密备份数据
很多同学把电脑中的数据备份到移动硬盘上。有些同学觉得放家里的移动硬盘还不保险(万一家里遭火灾,一样废掉)。正好近2年,"云"的概念炒得很热。所以,那些忧患意识很强的同学,就开始考虑用"云存储"(俗称网盘)来做异地备份。
一旦你把数据备份到"云端",就得考虑加密问题了。假如你用的是国内公司提供的网盘,那你一定得小心。因为党国是很关心屁民的隐私滴(具体的原因,你懂的:)。如果你把数据备份到国外的网盘,也未必安全。这不,连大名鼎鼎的Dropbox,最近都曝出数据安全的丑闻(懂洋文的同学,可以看 Wired 网站的爆料)。
◇对付六扇门的人
前几种情况比较常见,俺再介绍一种比较少见的情况。
假如你跟俺一样,经常在网上恶毒攻击朝廷;或者你是一个维权人士、民运人士、持不同政见者;或者你是一名黑客;......那么,你有可能会被天朝的六扇门盯上。如果你的身份是公开的,或者朝廷追踪到了你的真实身份。那么,这些党国的走狗就有可能搜查你的住所,没收你的电脑。然后,通过你电脑中存储的资料,定你的罪,或者再牵连出其他人。
关于这种情况,俺在《如何隐藏你的踪迹,避免跨省追捕》系列教程中,已经有介绍。当时提及的几个注意事项,就包括了电脑存储设备的加密问题。不过捏,当时没有详细介绍加密工具的使用细节。所以,今天俺会把这部分补上。
接下来,俺把几种常见的加密方式介绍一下,并分析各自的优缺点。
★使用“压缩软件”
俺发现很多人(尤其是技术菜鸟),首先想到的加密方式,就是把敏感文件用压缩工具(比如 7zip、WinRAR)压缩一下,并设置一个口令。
◇优点
优点1——【不】需要额外安装软件
压缩软件几乎是装机必备的软件。因此,使用这种方法,多半不需要额外安装其它软件。
优点2——便于备份
可以把压缩文件 copy 到任何地方,只要知道口令就能打开。
◇缺点
缺点1——加密强度【没】保证
压缩软件的强项是压缩,而不是加密。有些压缩软件,本身的加密强度不够,还有些压缩软件(比如早期的 WinZip),加密机制有缺陷,会导致攻击者轻易破解。
缺点2——查看文件不方便
每次要查看加密压缩包里的文件,都需要先解压出来,看完再删除。非常麻烦!
缺点3——查看文件容易泄密
如果你解压并看完之后,忘记删除敏感文件,就有泄密的风险。
即便你的每次看完都对敏感文件进行【彻底删除】,也还是不保险。因为很多压缩软件在解压时,会先解到系统的临时目录。而压缩软件在使用完临时目录后,仅仅进行简单删除,而不是【彻底删除】。这样的话,敏感文件的内容有可能还在磁盘上。专业人士通过反删除工具,还是有可能恢复出来。
缺点4——功能非常有限
用压缩软件加密,无法加密整个分区,无法加密某些系统文件(比如 Windows 的虚拟内存文件)。
◇小结
用这个方法来加密自己电脑中的大量文件,显然是不方便的。如果你要给朋友传递一些需要保密的文件(但是密级又不是很高),或许还可以用一用。
★使用 EFS(文件系统级加密)
稍微懂点技术的用户,可能会选择 EFS 来加密文件。
所谓的 EFS,就是把加密功能集成到文件系统中。通常,EFS 都是跟操作系统用户绑定的。某个用户加密的文件,只有该用户能看。也就是说,只要你能用此用户登录到系统中里,也就可以打开 EFS 加密的文件。考虑到 Windows 系统的用户居多,以下仅介绍 Windows 的 EFS。
对于 Windows 系统而言,从 Win2000 开始,就支持 NTFS 文件系统,也就具有了 EFS 的功能。你只要查看某个文件的属性,在“属性”对话框中点“高级”按钮,即可看到如下的“高级属性”对话框。勾选“加密内容以便保护数据”,即可完成对该文件的加密。
◇优点
优点1——【不】需要安装额外的软件
只要你的文件分区是 NTFS 格式,就可以使用 NTFS 的 EFS 功能。
优点2——加密强度有保证
俺没有仔细研究 NTFS 的 EFS 的加密机制。不过捏,像微软这种级别的公司,搞出来的加密机制,强度是不会太弱的。
优点3——查看方便
由于 EFS 直接集成到文件系统,因此你查看加密文件跟查看普通文件,没有任何区别。
◇缺点
缺点1——太依赖于当前系统
EFS 的一个主要缺点,是太依赖当前的系统。如果你没有导出密钥,一旦系统重装了,那你就无法再访问被 EFS 加密的文件了。即便你用同样的安装盘重装,安装的时候使用同样的用户名和口令,也不行。更加神奇的是,即便你事先用 Ghost 把原来的系统分区克隆出来,再恢复回去,那些 EFS 加密过的文件,也【不】可用啦!
缺点2——【没有】独立的认证方式
前面提到了,EFS 依赖于操作系统本身的用户认证。如果你和家人共用一台电脑的【同一个系统用户】,那这种加密方式形同虚设。
缺点3——备份密钥的麻烦
比方说,你把某个移动硬盘的文件用 EFS 加密。如果你希望在另外一台电脑上也能查看该 EFS 加密的文件。那么你必须先在加密的那台电脑中把秘钥导出,然后在第二台电脑导入。具体的操作步骤极其麻烦。如果你打算重装系统,也要搞这套复杂的秘钥导出步骤。(经网友在评论中提醒,从 Vista 开始,密钥的导入/导出步骤简化了很多)
缺点4——【无法】跨操作系统和文件系统
比如 NTFS 的 EFS,显然只能用于 NTFS 分区,FAT 分区(FAT16、FAT32)用不了。
另外,Windows、Linux 都有各自的 EFS 加密功能,互相之间是不能混用的。比如你一台 Windows 和一台 Linux,想在这两台电脑之间共用一个 U 盘,那 EFS 加密的方式就行不通。
◇小结
EFS 的方式,对于防范电脑失窃,还是蛮方便滴;但对于另外几种用途,EFS 就【不】太方便啦。
补充说明一下:自从 Vista 开始,Windows 内置了另外一种文件加密机制——BitLocker。它比传统的 EFS 有更多优点:增加了多种认证方式,用户界面更友好。但是,仅能用于 Vista 及之后的 Windows 系统,而且对具体的版本还有限制(据说仅限于 Enterprise 版和 Ultimate 版,不爽)。
不过,俺把 BitLocker 归类到"专门的文件加密工具",后面会介绍。
★专业的文件加密软件
从前面的介绍可以看出,上述这几种方式,都有不少缺点。有些缺点还很要命。现在,俺要介绍今天的重点——基于专门的文件加密工具进行加密。
◇根据加密对象分类
根据被加密对象的不同,大致有如下几种加密类型。有些加密工具,可以同时支持其中的几种。
1. 针对文件/文件夹的加密
这种好理解,就是可以选择某几个文件或目录,然后对其进行加密。每一个文件/目录,都可以设置单独的认证信息(通常用口令)。
以文件/目录为单位进行加密,一旦文件/目录的数量多了,管理起来不方便。
2. 针对物理硬盘的加密
这种方式,就是把整个硬盘,或者硬盘的某个分区进行加密。如果你想访问该硬盘或者分区,需要通过认证(通常是输入口令)。认证之后,该硬盘可以像普通硬盘一样使用了。因此,即便别人拿到你的硬盘后(比如电脑被偷),也得不到被加密的数据。
比如前面提到的 BitLocker 就支持物理硬盘的加密。
3. 针对虚拟硬盘的加密
这种方式,说起来比较复杂。
你可以通过加密软件,创建出一个虚拟硬盘。这个虚拟硬盘其实对应到一个你物理硬盘上的一个文件。你往这个虚拟硬盘上写入的数据,(经过加密之后)都存储在这个文件中。你创建的虚拟硬盘有多大,这个数据文件就有多大。
在使用上,这种方式跟加密物理硬盘类似。要先通过认证才能使用。认证之后,就跟普通的硬盘没啥区别了。你一样可以对它进行分区(虚拟硬盘上的分区,就是虚拟分区),一样可以在上面安装软件。
上述3种方式,俺比较喜欢"虚拟硬盘/虚拟分区"的方式。虽然加密物理硬盘和加密虚拟硬盘,在使用上没啥明显区别。但是虚拟硬盘只是一个数据文件,备份很方便。还可以把这个数据文件放在U盘上,在多台电脑之间公用——就像移动硬盘一样。
◇根据是否开源分类
有些加密工具是开源的,有些是闭源的。
显然,开源的比较爽。因为源代码开放,可以确保软件中【没有】暗藏后门,可以确保加密机制【没有】太明显的弱点。而且,开源软件通常也是【免费】滴。
◇根据加密算法分类
有些加密软件使用“公开算法”,有些则使用“私有算法”。
略懂密码学的网友应该晓得——【公开】算法比较靠谱。毕竟,公开算法(尤其是那些知名且使用广泛的)是经过许多密码学大牛严格论证滴,确保其【算法设计】没有明显的缺陷。
◇如何选择?
那如何选择文件加密工具捏,俺觉得如下几点要注意:
1. 知名度高,口碑好
2. 有较多的用户使用
3. 支持主流加密算法
4. 最好支持虚拟加密盘
5. 最好是免费且开源
6. 最好支持多种操作系统
考虑到有不少网友留言,让俺推荐一款加密软件。于是专门写了一个帖子推荐 TrueCrypt。若干年之后,又把“TrueCrypt 教程”写成一个系列。
补充说明:
虽然 TrueCrypt 开源项目已经在2014年死亡,但是它的替代品(VeraCrypt)【完全兼容】TrueCrypt 原有的功能。另外,Linux 社区的 LUKS(dm-crypt)也已经兼容 TC 加密盘格式。所以,大伙儿可以继续使用 TC 格式的加密盘。
◇小结
如果你选择的加密工具足够好,那么,前面提及的通过压缩软件或EFS加密导致的各种麻烦,大都可以避免。反之,如果你选择的工具不好,不光容易泄露敏感数据;万一工具的质量没保证(比如软件有Bug),还会损坏你的数据,导致你的敏感数据丢失。
俺博客上,和本文相关的帖子(需翻墙):
《文件备份技巧:组合“虚拟加密盘”与“网盘”》
《如何用“磁盘加密”对抗警方的【取证软件】和【刑讯逼供】,兼谈数据删除技巧》
《TrueCrypt 使用经验》(系列)
《扫盲 VeraCrypt——跨平台的 TrueCrypt 替代品》
《扫盲 dm-crypt——多功能 Linux 磁盘加密工具(兼容 TrueCrypt 和 VeraCrypt)》
《扫盲 Linux 逻辑卷管理(LVM)——兼谈 RAID 以及“磁盘加密工具的整合”》
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2011/05/file-encryption-overview.html
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2011/05/file-encryption-overview.html