透明加密关键技术分析

2.2 HOOK技术分析
HOOK是捕获应用程序消息处理的技术,俗称钩子技术。它允许应用程序安装一个子程序到其它的程序中,以监视指定窗口某种类型的消息。当消息到达后,先交给钩子程序处理,然后再交给原程序处理,如图2所示。
HOOK技术主要包括用户模式下的APIHOOK技术和核心模式下的HOOK技术两类。在用户模式下,应用程序进程通过WindOWSAPI函数库,如Kernel32、User32、Gui32、Advapi.dll等动态链接库提供的丽数,形成其私有的导人地址表 (ImportAddressTable),并通过 IAT访问系统核心。API HOOK技术就是通过访问应用程序的私有地址,改变应用程序的IAT,即可过滤应用程序消息处理,完成加密和解密操作。在核心模式下,通常通过HOOK系统服务描述表(System Service Dispatch Table,SSDT)、中断捕述表 (Interrupt Description Table)和IRP(I/O Request Package)函数表来实现过滤操作。
  采用HOOK技术进行透明加密的特点足实现简单,但缺点是可靠性差,速度比较慢,而目必须针对每种应用程序、甚至每个版术进行定制开发。
2.3 驱动过滤技术
  如图l所示.Winf¨ws的内核驱动是分层的,每层驱动只有一个驱动对象,每个驱动对象可以包含多个设备对象,若干个设备对象(可以属于不同的驱动)依次绑定形成一个设备栈,最顶端的设备总是先接受到数据处理请求,处理完后依次向下传递. IRP(I/O Request Package,输入/输出请求包)是上下级设备间传递请求的重要数据结构。应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将I/O请求转化为相应的IRP数据,各层驱动程序根据自己的功能分部对1RP数据进行处理2。如果在不影响上下层驱动接口的情况下,在windows系统内核中加入新的驱动层,将新的驱动层设备对象加入到设备栈的相应位置,就可以捕获IRP数据,进行加解密处理后再向下传递,就可达到数据透明加密的目的  通过在不同驱动层加入过滤驱动,可以实现不同的透明加密技术.目前驱动过滤技术上要分为文件驱动过滤技术和内核级沙盒加密技术。
2.4 文件驱动过滤技术
  文件过滤驱动加密技术是在最高层驱动程序中加入过滤驱动,一般挂载在磁盘驱动之上,其主要目的是捕获windows系统对文件的种种操作行为,比如文件的创建、打开、读/写、改名,目录的创建、打开、枚举、改名、删除等。捕获对文件的操作,并对其进行过滤,能实现许多强大的功能,比如检查病毒、数据加密、数据备份、安全监控等。
    文件过滤驱动加密技术运行在受Windows保护的内核层,加、解密速度比HOOK技术快,解决了HOOK技术不能解决的问题,但稳定性一直不太理想,比如大文件破损、多进程软件同时操作某个文件时,一个进程加密,另一个进程不加密,交替访问文件,极易造成异常等。
2.5 内核级沙盒加密技术
    沙盒的实质就足一个虚拟空间。用户首先创建一个虚拟空间.在使用过程中,所有格式的涉密数据、文件等都可以放入这个虚拟空间,存入的时候,自动加密,读取时自动解密。这个虚拟空间是透明的,使用者感觉不到它的存在。内核级纵深沙盒加密技术融合了磁盘过滤驱动技术,卷过滤驱动技术,文件过滤驱动技术,网络过滤驱动(NDIS/TDI)技术等一系列内核级驱动技术,从上到下,纵深防御加密,每层驱动只做自己最擅长的工作。
    内核级沙盒加密技术的特点是,在使用前,要先初始化沙盒,创建成功之后,所有的文件,不论什么格式,都可以自动加、解密,所以无数据破损等问题,特点是加解密速度快,稳定,但技术相当复杂,研制难度较大。
3 透明加密技术的发展要求
  透明加密技术作为一门新兴的技术,正不断被应用到各个领域,但随着信息技术的不断发展和应用需求的不断变化,对透明加密技术也提出了更高的要求。
    1)透明加密效率必须不断提高
    计算机处理能力不断提升,磁盘存储空间越来越大,单个文件大小也越来越大,像一些设计类图纸,单个文件大小可达几个G。如何提高透明加密效率成为了必须要考虑的问题之一。
  2)应用系统支持要求越来越广
  Windows64位、LINUX、UNIX等计算机操作系统不断普及,苹果OS、Android、塞班等手机操作系统得到广泛应用,用着重考虑透明加密技术在这些平台上的应用。
  3)从单一加密向全方位发展
透明加密技术在加密方面表现出了其良好的特性,但对于数据泄漏防护而言,单一加密是不能满足需求的,还应该从内部网络授权访问,文件防打印、拷贝、网络发送扩散控制,预防木马和病毒等方面进行全方位的考虑,探索透明加密技术在这些领域的应用。

4 结束语
目前,我国大多数非涉密信息系统中,使用windows操作系统的用户不在少数,而透明加密技术与windows操作系统结合较为紧密,因此,对透明加密技术的研究具有相当的实用价值。然而,目前业界对于透明加密技术有待于进一步加强,该加密技术的安全性、可靠性也有待于进一步得到学术和技术层面的全面论证。

透明加密技术实现原理

作者:周道明,钱鲁锋,王路路 整理:超时代软件

近年米,信息技术迅猛发展,越来越多的信息和资料以数字形式存放在硬盘等数字存储设备中,并且随着信息共享技术的突破,通过移动存储设备、网络等介质交换数据越来越方便,但同时,核心数据的控制和管理也越来越难,如何保证核心数据不泄露逐渐成为了信息安全的热点问题。为此,很多单位采取了“完全封闭式的管理”、“堵塞或拆除计算机的USB接口,禁止上网”、“简易的身份认证”等各种方式防止核心数据泄露,但往往是顺此失彼,难以完全控制。如何建立完善的数据泄露防护体系、保护核心资源,已迫在眉睫。

 

数据加密作为数据保护的有效方式之一,越来越受到广泛认可,但传统的数据加密方式仔在加密速度慢、密码易被破 、无法防止文档被复制等缺点,难以满足需要。近年来,随着对加密技术的深入研究,透明加密技术正逐渐得到广泛应用.

 

实现原理

 

透明加密技术是近年来发展较为迅速的一种文件加密技术。所谓透明加密是指对使用者来说,数据的加、解密是自动的,不会影响其止常的操作习惯:采用这种技术,使用者保存数据时,系统将对数据自动进行加密,当使用者打开或编辑指定文件时,系统自动对已加密的文件进行解密,在硬盘上存储的是密文,在内存中存储的是明文,一旦离开使用环境,数据就无法得到自动解密的服务,从而达到保护数据内容的效果。共享文件夹加密,采用先进的透明加密技术,获得广大用户的好评。

 

透明加密技术的产生是与Windows操作系统的发展密不可分的。自WindowsNT问世以来,微软提出了系统分层的概念将操作系统设计为双模式多层驱动式结构,典型的Windows驱动程序层次结构如图1所示 。

0925

两个模式主要指用户模式和内核模式。通常情况下,应用程序运行在用户模式下,只能访问自己私有的内存空间,无法直接访问硬件,它对文件的操作只能通过调用Windows API函数进行,这为在用户模式下进行透明加解密提供了时机。如在写文件时,首先对文件数据进行加密,再调用Win32 API函数进行写操作 ;在读文件时,先调用Windows API函数读出加密的数据,再 自动进行解密。在调用WindowsAPI函数时截获消息并对数据进行加解密处理,是在用户模式下实现透明加解密的主要方式。

 

在核心模式下,应用程序对WindowsAPI函数的调用,最终将转化为不同的操作指令传递给I/O管理器,I/O管理器将不同的操作请求转化为IRP(I/ORequestPackage,输入/输出请求包),分发给各层驱动依次处理。Windows将驱动分成了以下三种 。总线型驱动程序主要用于管理一个逻辑的或物理的总线,比如PCI、USB等 ;功能型驱动程序用于管理某一 特定类型的设备,主要用于将一个设备的操作接口导出给操作系统 ;过滤型驱动程序位于功能型驱动程序的上层或下层,可增加或者改变一个设备或另一个驱动程序的行为。具备不同功能的各种驱动,分层合作,各司其职。过滤型驱动的出现,为在核心模式下实现数据透明加解密提供了手段。如写文件时,在上层过滤型驱动程序或下层过滤型驱动程序中可以首先截获 IRP,进行加密处理,然后再交给下层驱动处理;读文件时,在上层过滤型驱动程序或下层过滤型驱动程序中可以首先获取读到的加密数据,进行解密后交给上层驱动或应用程序。编写具备加解密功能的过滤型驱动,是在内核模式下实现透明加解密的主要方式。