文件过滤驱动是微软公开支持进行文件加密的技术手段,在驱动的层次定义中,微软定义了杀毒、压缩、加密等各种功能层次,加密的定义如下:
Load Order Group:FSFilter Encryption ,Altitude Range:140000-149999
由于文件过滤驱动处于驱动层面(不像API Hook处于应用层),可以控制系统的更多细节,和应用程序的关联度很小,可以兼容所有的应用程序,使用文件过滤驱动更利于进行动态加解密的处理。
API Hook 主要是拦截打开和关闭的动作,在这2个动作里做文件的静态加解密处理;而文件过滤驱动主要拦截的读和写的动作,在这2个IRP请求中进行动态的加解密处理,处理的内容很精确(读多少解密多少、写多少加密多少),由于动态加解密实际上处理的大多数都是缓存,没有磁盘IO操作速度更快。当然文件过滤驱动中进行动态加解密的技术难度也要大得多。
由于原有的Legacy Filter架构在很多杀毒等软件中使用,微软于近几年推出了MiniFilter架构,旨在减少各驱动间的冲突,提高工作效率,是微软大力推广的技术架构,可以在后续的各种新操作系统中使用而不用担心。MiniFilter具有兼容、高效、标准、稳定等各种优点。
FileSafeGuard 3.0 采用MiniFilter架构,进行文件的动态透明加解密。
FileSafeGuard 2.0 曾对一个SolidWorks的300兆大小500件的装配体进行加密,未加密时打开时间为2分30秒,加密后需要5分钟,进行各种的极端优化处理后还是需要3分20秒。
而采用FileSafeGuard 3.0以后,需要的时间为2分30.3秒左右,时间损耗仅零点几秒,可见使用动态加解密和静态加解密的巨大区别。使用FileSafeGuard 3.0加密1个2GB的电影,用播放器播放此电影也不会有任何的停滞,这是静态加密根本无法做到的。