文件过滤驱动
一、文件透明加解密
关键字:透明、文件过滤驱动、加密标识,缓存
文件过滤驱动最重要的两点是搞定加密标识和缓存管理
1、透明概念:
透明指的是用户在操作的时候,虽然后台在自动的进行加解密,但是用户根本就不知道加密的存在,就像中间隔了一层透明的玻璃一样。
透明的好处在于不改变用户的操作,一切都和加密之前一样,甚至在有些企业安装加密后都无需通知所有的员工,就像加密并不存在一样,只是加密文件到了企业安全环境的外部才会发现文件无法打开。
透明的程度也是加密软件一个很重要的方面,例如:正在编辑一个Word文件时,能否拷贝或者使用其他程序来读取这个文件,如果不能那么这里就不够透明,在一些PDM的文档管理软件中就是文件在一个应用程序打开状态时另一个应用程序进行检入。透明的程度越高,用户使用时就越是和未加密时一样,透明程序越低用户就会发现有越多的操作受到限制,和加密前有较大的差异。
2、加密类型:
加密类型 |
加密原理 |
举例 |
静态加密 |
把整个文件加密掉、或者把整个文件加密掉。 |
|
动态加密 |
文件整体是加密状态,需要解密时读取多少就解密多少,写入多少就加密多少,而不需要把整个文件都解密掉。 |
|
主动加密
|
由使用者自行要求文件变成加密状态称之为主动加密 |
主动加密的方式很多,例如用WinRar把文件压缩并定义一个口令,或者给Word、Excel文件一个打开或者修改的口令,这样其他人使用时必须由正确的口令才能打开,这是使用者主动进行的加密,如果使用者不进行加密则文件不会在加密状态。只针对某些文件夹加密的方式也可以理解为主动加密方式。主动加密主要应用于个人的文件保护。 |
被动加密 |
使用者并不知道或者并不想文件变成加密状态,系统自动将文件加密,称之为被动加密。 |
被动加密主要用于企业内部防止文件泄密,即使使用者不想文件被加密,系统还是会根据定义加密文件,这样文件被拷贝等各种方法脱离企业环境后,由于文件在加密状态而无法打开。被动加密具有另一个特性就是透明操作,即使用者并不需要进行加密和解密操作,一切都是后台自动完成,使用者可以不知道加密的存在。被动加密与作者的意愿无关,相关文件都会被加密,磁盘加密和文件透明加解密属于此类。 |
3、文件过滤驱动怎样加密:
文件过滤驱动是微软公开支持进行文件加密的技术手段,在驱动的层次定义中,微软定义了杀毒、压缩、加密等各种功能层次,加密的定义如下:
Load Order Group:FSFilter Encryption ,Altitude Range:140000-149999
由于文件过滤驱动处于驱动层面(不像API Hook处于应用层),可以控制系统的更多细节,和应用程序的关联度很小,可以兼容所有的应用程序,使用文件过滤驱动更利于进行动态加解密的处理。
API Hook 主要是拦截打开和关闭的动作,在这2个动作里做文件的静态加解密处理;而文件过滤驱动主要拦截的读和写的动作,在这2个IRP请求中进行动态的加解密处理,处理的内容很精确(读多少解密多少、写多少加密多少),由于动态加解密实际上处理的大多数都是缓存,没有磁盘IO操作速度更快。当然文件过滤驱动中进行动态加解密的技术难度也要大得多。
由于原有的Legacy Filter架构在很多杀毒等软件中使用,微软于近几年推出了MiniFilter架构,旨在减少各驱动间的冲突,提高工作效率,是微软大力推广的技术架构,可以在后续的各种新操作系统中使用而不用担心。MiniFilter具有兼容、高效、标准、稳定等各种优点。
4、文件加密标记:
加密标记是指如何判断一个文件是否加密的关键,也是在做动态透明加解密开发中最为重要的一环,加密标记的正确与否决定了文件是否会丢失、损坏,是必须要保证不能出任何问题的技术关键点。加密标记一般可存放在文件外部和文件内部,存放于文件内部时,又常分为存放在文件头上、文件尾上、压缩在文件内等三类技术方法,相关介绍如下:
序号 |
标记存储位置 |
类型 |
文件变长 |
方法 |