加密软件_文件加密_文档加密_云办公软件-sesoffice企业安全领导者

15928854043

透明加密技术深度剖析


      透明加密技术是一种文件自动加密技术,用于保护一个单位的知识资产不泄密、不流失、不扩散。目前市场上,透明加密技术被用户普遍接受,使用最为广泛,成为当仁不让的主流产品。

一、透明加密技术回顾

       透明加密技术最早是从国外引进,由于理念和技术非常适合企业数据泄漏防护需求,大受企业主欢迎,一时风靡市场,透明加密开发商如雨后春笋般涌现,最多时达上百家之多。然而,经过多年企业应用的实践检验,逐渐发现透明加密技术的使用效果并没有宣传的那么好。经过十几年的轰轰烈烈的大浪淘沙,90%以上的厂商消失了,而存续下来的,基本上是当年成功融资的,即便如此,目前其发展状况仍颇为艰难。原因何在?归根结底是透明加密技术路线本身存在一定的缺陷,导致产品的缺点无法从根本上解决,很多用户上了透明加密技术之后,苦不堪言,总有这样那样的问题,有的在勉强使用,有的被迫废弃。久而久之,透明加密技术越来越被人诟病。

二、什么是透明加密技术

      透明加密技术是针对企业文件保密需求应运而生的一种文件加密技术,主要应用于企业文档安全管理。所谓透明加密(也称强制加密、自动加密、实时加密、动态加密、隐形加密或无感加密),是指文件在使用过程中对文件进行加密或解密,是自动进行的,无需用户干预,用户实际上是无知觉的。当使用者打开文件时,对加密文件自动解密,当编辑保存文件时,自动对文件加密。对于涉密进程运行中产生的文件(包括但不限于临时文件、过渡文件、随机文件、导出文件等)均被自动加密。这样无论另存为什么样的文件名称,转换为什么样的文件格式(包括未知的格式),都会受到严格的加密保护,即使用文件恢复工具也无法得到加密文档的明文内容。文件在磁盘上始终是密文,一旦离开使用环境,加密的文件无法打开或打开是乱码,从而起到保护文件内容的效果。

三、透明加密技术的由来

      透明加密技术由来已久,自2000年开始出现,已有近二十年的发展历程,发展到现在历经了三代技术,分别是基于API HOOK的第一代技术、基于文件过滤驱动(单缓存)的第二代技术、基于文件过滤驱动(多缓存)的第三代技术。第一代技术实现的透明加密技术,存在诸多弊端,如有时候HOOK不成功、容易被反HOOK、通过同样HOOK获取到明文、极易被报毒,在稳定性、兼容性和安全性上,离商业应用存在一定差距,很快被第二代技术取代。采用第二代技术实现的透明加密技术,构成了当前文件加密保护的主流市场,但是这个技术有几个致命的问题,就是文件操作效率低下、容易损坏文件、极易造成系统蓝屏、和病毒防护软件不兼容,这主要是因为暴力刷缓存的操作引起。为了解决第二代技术的缺陷,自然想到采用多缓存的实现技术,称之为第三代技术。目前第三代技术大多停留在理论性讨论阶段,不过近来已有开发者声称完成了具体的实现。无论是第二代或第三代技术,仍然是要设置白名单程序规则的,这种必须设置白名单程序规则的技术原理,貌似非常合情合理,其实却是一个致命的问题。

四、透明加密技术缺陷剖析

      在Windows操作系统中每个文件对应仅仅只有一份缓存,如果缓存脏或者是缺页将由操作系统的“虚拟内存管理器(VMM)”或者“缓存管理器(CM)”文件系统发出非缓存的IO读写请求。系统所有的进程读写相同的文件所得到内容都是一样的。这样可以减少对磁盘的读写,从而提高系统的性能,这是Windows系列操作系统的设计原则。透明加密技术对加密文件的读写需要区分不同的进程,也就是一个文件因为读写的进程不同,需要呈现出不同的内容(明文或者密文)。采用API HOOK的解决方案,由于性能及安全性方面的天然性欠缺,已经慢慢的淘汰出主流的市场。主流的驱动加密技术基本都是采用暴力清除加密文件缓存。在文件过滤器中截获非缓存的读取,由进程的不同来决定是否解密(白名单程序能够解密,非白名单程序不能解密),从而实现不同的进程读取相同的加密文件得到截然相反的明文和密文。

       文件操作效率低下的原因在于为了防止非授信进程访问文件系统缓存的文件明文,每次打开和关闭文件时都要清理文件缓存。这对相当于屏蔽了系统文件缓存带来的性能优化,对大文件的操作影响尤其明显。使用这种技术实现的商业软件,用Word打开一个100M的大文件后,用另一个非授信进程每隔15秒钟只读访问一次这个文件(这会促使驱动实现每隔15秒钟就清一次缓存),结果卡的基本上没办法操作这个Word文档。

       损坏文件和兼容性差的原因主要是对于延迟写入的缓冲文件,用户的写入操作是写入了缓存,但是负责延迟写入的system进程还没有将其写入文件,此时如果有非授信进程打开文件,会导致缓存被清除,这导致用户的修改没有写入,很多情况下都会造成文件数据丢失或文件格式损坏,与病毒防护软件不兼容也基本上是这个原因。假如一个大型项目,有10万个终端,每个终端每天平均处理10个文件,就是100万个文件,哪怕有万分之一的损坏率,就是日均10个文件,这将是不可接受的。而这种文件损坏通常是不可逆的,即使厂家开发人员也无法恢复它。正是这样的原因,现有的透明加密驱动技术普遍存在损坏文件、性能降低、兼容性差等诸多问题。以至于不少的厂商在宣传中都不再强调软件的功能和特色,只要突出稳定、不破坏文件就能获得不错的市场回报。

五、第三代透明加密技术介绍

      针对第二代透明加密驱动技术(依赖清除缓存来区分不同的进程对加密文件内容的访问控制)所带来的文件损坏、应用程序兼容性差、与病毒防护软件冲突等问题,采用基于文件过滤驱动(多缓存)的第三代技术,真正实现了一个文件、多个缓存。不同的进程访问不再依赖于梦魇般的暴力清除文件缓存。同时也实现了一个全新的CallBack架构的Windows文件系统平台,可以将应用任意的扩展到网络文件系统、远程的存储媒体。第三代透明加密技术不再是单个文件过滤器驱动,而是一个加密平台。在第三代驱动架构中,授权和非授权进程对加密文件的读取不同的内容不再依赖于缓存的暴力清除,而是管理了多个缓存内容(多个FCB),不同的进程的读取被指向不同的缓存块。从而安全的解决了文件损坏和效率低下的问题。同时也减低了同病毒防护软件等基于文件过滤器技术的冲突。

六、由白名单程序规则引发的产品缺陷

      尽管第三代透明加密技术从理论上能够克服第二代透明加密技术的缺陷,但无论是哪一种透明加密技术,都有一个共同的致命缺陷:都必须设置白名单程序规则,用以区别合法程序和非法程序,排除某些特定文件如配置文件等。

透明加密技术都是以进程作为控制对象,需要区别合法程序和非法程序,对于合法程序允许访问密文,并能自动解密,保存时能够自动加密保存,对于非法程序拒绝访问密文,或者文件打开后显示乱码,从而实现文件访问的安全性。而要区别哪些是合法程序哪些是非法程序,则需要设置白名单程序规则。白名单程序规则还包括每一个程序必须排除的不能被加密的特殊文件,如配置文件、许可证文件等不能被加密。这种必须设置白名单程序规则的技术路线,存在以下天然缺陷:

1、系统部署比较困难。

      系统部署时事先需要全面知悉用户电脑里的所有应用软件,并准确添加到白名单程序库,一旦有遗漏或设置不准确,将导致该软件无法运行、运行异常或存在泄漏隐患。由于软件种类非常之多,许多专业性软件不曾使用过,需要在用户现场去了解和设置。有些专业性软件往往需要授权(加密狗或许可证)才能使用,没有条件在开发环境下来安装调试。某些大型的专用软件,往往可执行程序较多,要分析哪些该加入哪些不该加入,会有一定难度,配置相当复杂,即使开发人员自己,有时也搞不定。

      另外,对于某个软件而言,不能对它产生的所有文件都加密,这样又可能破坏软件正常运行的环境,导致退出或卸载加密软件后,程序运行异常。因此还必须搞清楚每一个软件对应的生成文件有哪些?哪些扩展名文件该加密,哪些扩展名文件不该加密,加错了导致软件运行异常,加漏了导致该加密的文件不加密,这又是一件很折磨人的事情。

2、 升级维护比较麻烦。

      系统部署完毕,一切运行已经正常,但运行一段时间后,用户可能会升级某些应用软件,也可能会安装某些新的应用软件,还可能会出现新的文件格式,这样往往需要重新设置白名单程序规则,这项工作对于用户单位的网管来说是一项有难度的工作,往往需要厂商提供现场技术服务,以至于其技术团队的大部分人员转而去做售后技术支持工作,当“消防员”满世界跑;用户越多,市场占有率越大,运行维护的工作量也就越大,这种持久性的不断增长的售后服务工作,使得企业不堪重负。此外,透明加密技术还存在以下应用局限性:

(1)无法控制合法应用软件的网络功能。

      某些应用软件如WPS等,软件本身具备网盘(云存储)功能,一旦将其加入白名单程序,那么就可以将密文上传或另存到网盘。文件上传网盘并不遵从文件过滤驱动规则,根据白名单程序是被允许访问并自动解密的技术原理,此时上传到网盘的密文是被自动解密的,即自动变为明文而泄密。因此需要采用类似防火墙技术来阻止上传网盘,大大增加了系统复杂性。

(2)无法防止录屏、拷屏和截屏的行为。

     当合法用户打开密文后,可以使用录屏软件将内容录制下来,保存到本地,也可以用拷屏和截屏的操作将内容保存为一张图片文件。根据“白名单程序写加密、非白名单程序的写不加密”的技术原理,录屏和拷屏软件保存下来的文件是不加密的,实际为明文,可以随意外发外拷而泄密。因此在驱动外需要增加防止录屏、拷屏和截屏的功能模块。

(3)网络软件容易引发泄密风险。

      对于具备上传和外发功能的网络应用软件,一旦被误加入白名单程序库,或者被合法主程序启动起来,那么就存在极大的泄密风险。依据白名单程序是被允许访问并自动解密的技术原理,上传和外发出去的密文是被自动解密的,即为明文而泄密。

(4)无法实现加密环境和普通环境之间的自由切换。

     透明加密软件一旦安装后,系统被改造为一个单一的加密环境,再也无法返回普通环境;在加密环境中,对于白名单进程产生的所有数据都会被自动加密,无法实现只对企业文件加密,对个人文件、普通文件、临时文件、许可证文件和环境配置文件不加密的目标。

(5)透明加密技术只能对非结构化数据包括视频、音频、图片、图像、文档、文本等形式文件进行加密保护,不能对结构化数据如各种数据库应用系统进行防泄密保护,而目前信息化应用系统如OA、ERP、CRM、HR、项目管理软件、财务软件、税务软件、进销存软件等,都是基于数据库的应用,目前主要依靠系统本身提供的用户密码登录方式来控制,但对于登录以后的访问控制和数据转移就不能进行有效控制了。

(6)透明加密技术无法实现选择性加密。

       运用文件驱动技术实现的透明加密,是对白名单程序所产生的数据一刀切的加密,无法识别文件密级,也无法只对涉密文件加密而对非密文件不加密,从而限制了透明加密技术的应用范围。

七、透明加密技术的两个终极难题

      透明加密技术只能解决企业数据泄漏防护的一部分问题,不能满足全部需求,要结合应用层的各类防护,如某些编辑软件自身具有上网外发和云盘功能,需要加以控制,还要控制录屏、拷屏和截屏、文件水印、复制粘贴、文件另存为、外发、外拷、打印、刻录等,运用多种技术组合成为一个相对比较完整的方案。另外,必须收集全部的常用软件,尽可能多的收集各行各业的专用性软件,在开发环境里安装测试分析,制定出准确无误的白名单程序规则,这是一项工程浩大且需要不断更新维护的艰巨任务。即便如此,透明加密技术仍存在两个终极难题:

1、必须设置白名单程序规则,无法克服由此引发的一系列弊端

2、只能加密文件,不能加密数据库及数据库信息应用系统,有应用局限性

八、结论

      综上所述,要破解免设白名单程序规则难题,消除由此引起的所有缺点,达到或无限接近零技术支持和零售后服务的理想目标,透明加密技术有很长的路要走。单一的透明加密功能并不能够满足企业对信息安全保护的需求,多种技术的综合运用,才能成为一个相对比较完整的方案。尽管透明加密技术存在这样那样的瑕疵,但与其他数据泄漏防护技术相比,仍不失为是目前为止较好的技术。


侧栏导航