什么都分享
以及,记录自己的故事

浅谈windows下文件加密原理

随着近年来互联网发展,尤其是在各种云服务如雨后春笋般的冒尖之后,数据安全、个人隐私被人们愈发重视起来。大家已经习惯了将照片、视频等文件上传到类似iCloud,OneDrive等云同步空间中,因此,我们无法保证这些服务提供商一定能遵守行规来保护你的个人数据安全,前几年出现的百度云盘文件内容篡改就已经说明了这些潜在问题。那么,既然无法得到他人保证,至少我们可以保证自己不受此类风险困扰。作为一个IT,自然会对这些因素更加敏感,就稍微开始了解文件的加密。

文件加密其实可以简单的分为几种类型:

套壳加密

这种加密方式最常见,实际上是把文件放进一个特定的安全容器(以下简称容器)中,这个容器可以是软件,也可以是硬件,因为我们现在讨论的范畴与操作系统交涉更多,所以我们以软件为重。最常见的容器相信大家并不陌生,各种压缩工具就是一个很好的容器生成软件,例如WinRAR,把需要压缩的文件打包,设定一个密码,简简单单的一个加密动作就完成了,用户需要访问文件之前,必须输入密码才能得到授权。还有一种常见的套壳加密工具是利用虚拟磁盘VHD配合Windows Bitlocker来完成的,虽然加密逻辑与压缩工具相似,但后者需要的技术条件更高。首先,你需要创建一个VHD/VHDX,然后格式化分区挂载这个虚拟磁盘,接着把你需要加密的文件全部移动到这个虚拟磁盘内,完成后使用Windows Bitlocker来进行加密。因为Bitlocker加密是对整块磁盘进行加密处理,所以处理时间比压缩工具要大很多很多,和虚拟磁盘容量大小成正比,容量越大加密所耗费的时间越多。Bitlocker还可选仅加密已用的磁盘空间和加密整个驱动器,区别在于仅加密已用的磁盘空间更适合新硬盘,后者更适合已经存放大量数据的硬盘。补充一点的是,在Windows 10 Version1511以上版本,微软对Bitlocker进行了改进,新增了一个加密算法叫XTS-AES,有什么优势就不在这里赘述了,有兴趣的朋友可以自行去这里了解:XTS-AES模式主要是解决什么问题,是怎样解决的?

不论是加密压缩还是使用Bitlocker,都是把文件存放在一个保险箱内来保护,如果有一天这个保险箱发生了故障,那么再想得到里面的数据就很难了,不过发生这种事情真的是十分渺茫的。

形变加密

无可厚非,这是目前最快的加密方式,或者说根本算不上加密,只是刻意提升破解者的破解难度罢了。把一个文件的扩展名改成不常用的,让破解者摸不着头脑,比如把MP4文件改成了ISO,乍一看文件大小非常合理,MP4是视频文件,ISO是镜像文件,互相模仿不容易露出马脚,如果你把一个MP4改成了DOC的扩展名,动动脑子想一想,怎么可能会有1个多G的Word文档。除了改文件扩展名,在windows下还有一个比较特殊的做法:新建一个文件夹,把需要加密的文件移动进去,然后重命名这个文件夹的名字为任意名字.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}。修改之后的文件加图标会变成一个锁的样式,这时候双击是无法再打开这个文件夹了,但是注意,这并非加密,只是巧妙的利用windows的特性来瞒天过海的,破解的方法也很简单,直接进cmd然后cd到这个文件夹所在路径,dir一下里面的文件就全出来了。

HEX加密

这种加密方式是我认为目前在windows平台下最好的加密方式,当然无法通过系统本身来直接操作,需要有一定的编程经验。每个文件都能转成HEX格式,也就是十六进制格式,一连串的数字字母。举个例子(当然实际情况一定不会这么简单),一个txt的文件转为HEX之后得到的连续字符串是ABCD1234,那么可以通过编程语言的字符串操作类进行特殊的可逆处理。像倒叙ABCD1234变成4321DCBA,加盐ABCD1234变成A0B0C0D010203040,这里的0就是盐。再复杂一些可能通过多层操作来叠加,比如ABCD1234通过间隔互换变成CDAB3412,再通过加第一把盐变成C0D0A0B030401020,接着倒序一次成为020104030B0A0D0C,再加上第二把盐0E2E0E1E0E4E0E3E0EBE0EAE0EDE0ECE0E,此时我们已经:ABCD1234 => 0E2E0E1E0E4E0E3E0EBE0EAE0EDE0ECE0E,想象一下如果按照你自己的喜好进行N层N种方法的字符串处理之后的文件,破解难度及其之高,当然这样一来,相应文件的所占大小也会大出很多,而且是无法被打开的,除非你对HEX进行了逆向处理。处理之后的字符串还能存进数据库中,相当于你把一个视频、一首歌、一幅照片存进了数据库里。

这种加密方式也是我最喜欢的,我也做过类似的工具,有机会的话会再放出讨论一下。

还有像其它一些放进回收站,丢进隐藏分区之类的加密手段就不列出了,不仅违背了加密本身,更是投机取巧的做法。一旦用户清空了回收站,那么数据也就不复存在了。在这里要提一下市面上的加密工具,如果它能保证在瞬间或者几秒钟之类就完成了大量文件的加密工作,那无非就是形变加密法或者丢去了隐藏的空间里,连套壳都算不上。套壳加密和HEX加密都是需要消耗CPU资源来处理,根本不存在瞬间就把一个文件真正意义上加密的手段。

无论哪种加密方式,最终的目的都是一样:为了保护自己的数据安全。同样也没有一种加密方式是完美的,要想得到更高的安全性,甚至可以把几种加密方式混合起来使用,但是日常生活中完全没有必要,上述任意一种都能满足基本需求了。

赞(1) 打赏
本文遵守创作共享 BY-NC-ND 4.0协议,转载前请先联系作者。绯末博客 » 浅谈windows下文件加密原理
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏