★引子
上一个帖子点评了爱国愤青关于拉登同学的几个误区 。 话说美国佬把拉登灭掉之后不到一星期,从拉登老巢缴获的电脑资料,就开始在美国政府的网站曝光了(比如拉登的生活录像)。另据美国某安全官员说,缴获的电 脑资料之多,抵得上一个小型图书馆。单从这点可以判断出:拉登同学对自己手头的存储设备(比如硬盘、U盘之类),没有进行足够强度 的加密处理。这令俺很吃惊啊!——堂堂的恐怖大亨,竟然连这点常识都没有啊?!
想当年,陈冠希同学就是因为疏忽了数据加密,导致艳照满世界流传,不光搞臭了一堆女明星,也造福了无数男网民。这回,估计要步陈同学的后尘了——区别在于,这次倒霉的是的残余势力,受益的是美国情报机构。
★文件加密的重要性
有些同学以为,自己既不是影视明星,又不是恐怖分子,不需要采用文件加密之类的工具,那就大错特错啦。俺大致介绍一下,文件加密的用武之地。
◇防范失窃
这年头,笔记本电脑、平板电脑越来越流行,而这类便捷的移动设备,也增加了丢失的概率。一旦你的移动设备丢失,存储在上面的个人敏感信息就有暴露的风险。比如用浏览器保存的登录口令、邮件客户端存储的私人邮件、等等。如果你的敏感信息是加密的,失窃后的风险就大大降低。
◇保存个人隐私
很多人的家用电脑,都是几个家庭成员共用的。你可能会有一些个人隐私的信息,不希望被其他家庭成员看到。比如你上网下载的毛片、艳照、等,多半不希望被你父母或子女看到。这时候,文件加密就可以防止你的隐私外泄。
◇加密备份数据
很多同学把电脑中的数据备份到移动硬盘上。有些同学觉得放家里的移动硬盘还不保险(万一家里遭火灾,一样废掉)。正好近2年,"云"的概念炒得很热。所以,那些忧患意识很强的同学,就开始考虑用"云存储"(俗称网盘)来做异地备份。
一旦你把数据备份到"云端",就得考虑加密问题了。假如你用的是国内公司提供的网盘,那你一定得小心。因为党国是很关心屁民的隐私滴(具体的原因,你懂的:)。如果你把数据备份到国外的网盘,也未必安全。这不,连大名鼎鼎的Dropbox,最近都曝出数据安全的丑闻(懂洋文的同学,可以看Wired的爆料 )。
◇对付六扇门的人
前几种情况比较常见,俺再介绍一种比较少见的情况。
......
(此处涉及敏感内容,省略164字,有兴趣的同学,请去俺BlogSpot的博客看原文)
关于这种情况,俺之前在"如何隐藏你的踪迹,避免跨省追捕" 这个系列文章中,有介绍。当时提及的几个注意事项,就包括了电脑存储设备的加密问题。不过捏,当时没有详细介绍加密工具的使用细节。所以,今天俺会把这部分补上。
接下来,俺把几种常见的加密方式介绍一下,并分析各自的优缺点。
★使用压缩软件
俺发现很多人(尤其是菜鸟用户),首先想到的加密方式,就是把敏感文件用压缩工具(比如WinRAR,7zip、等)压缩一下,并设置一个口令。
◇优点:
1、不需要额外安装软件
压缩软件几乎是装机必备的软件。因此,使用这种方法,多半不需要额外安装其它软件。
2、便于备份
可以把压缩文件copy到任何地方,只要知道口令就能打开。
◇缺点:
1、加密强度没保证
压缩软件的强项是压缩,而不是加密。有些压缩软件,本身的加密强度不够,还有些压缩软件(比如早期的WinZip),加密机制有缺陷,会导致攻击者轻易破解。
2、查看文件不方便
每次要查看加密压缩包里的文件,都需要先解压出来,看完再删除。非常麻烦!
3、查看文件容易泄密
如果你解压并看完之后,忘记删除敏感文件,就有泄密的风险。
即便你的每次看完都对敏感文件进行彻底删除 ,也还是不保险。因为很多压缩软件在解压时,会先解到系统的临时目录。而压缩软件在使用完临时目录后,仅仅进行简单删除,而不是彻底删除 。这样的话,敏感文件的内容有可能还在磁盘上。专业人士通过反删除工具,还是有可能恢复出来。
4、功能有限
用压缩软件加密,无法加密整个分区,无法加密某些系统文件。
◇总结
用这个方法来加密自己电脑中的大量文件,显然是不方便的。如果你要给朋友传递一些需要保密的文件(但是密级又不是很高),或许还可以用一用。
★使用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分区用不了。
另外,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 。
◇总结
如果你选择的加密工具足够好,那么,前面提及的通过压缩软件或EFS加密导致的各种麻烦,大都可以避免。反之,如果你选择的工具不好,不光容易泄露敏感数据;万一工具的质量没保证(比如软件有Bug),还会损坏你的数据,导致你的敏感数据丢失。
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想 和本文原始地址:
http://program-think.blogspot.com/2011/05/file-encryption-overview.html