一种构造透明编码环境的方法

文档序号:6610012阅读:187来源:国知局
专利名称:一种构造透明编码环境的方法
技术领域
本发明涉及一种构造透明编码环境的方法,属于计算机安全技术领域。
技术背景近年来,随着计算机及其相关信息技术的不断发展,计算机系统在各个领域的应用越 来越广泛,作用也越来越重要,这就使计算机系统的数据安全成为一个不可忽视的问题, 各种宝贵的资料、重要的文件都需要得到理想的安全防护,保密信息的泄露将可能造成无 法弥补的损失,当前数据的安全防护方法主要是在计算机的应用层对文件进行编码加密处 理,但这种方法有以下缺陷1、无法实现不同用户具有不同的访问权限;2、只能对指定 的目录或文件进行加密处理,或者针对特定的文件格式或特定的软件进行文件编码处理, 不具有普遍性;3、大多是由用户选择文件进行编码处理,整个过程需要用户发起,不能做 到自动进行,无法实现一个透明的运行环境,操作不方便。为了解决以上问题,申请号为200610096441. 1的专利申请公开了在计算机系统中使用 的一种计算机数据安全防护方法,该方法在操作系统的文件系统驱动层插入一个文件过滤 驱动模块,拦截应用程序发出的文件读写操作,设立存有用户密钥和密码信息的电子钥匙, 电子钥匙插入USB接口使程序开启,系统自动为相应用户建立虚拟的"文件保险箱",对任 何以拷贝/粘贴方式添进保险箱的文件或文件夹进行保护,文件或文件夹以密文形式存在于 物理介质上,以明文形式存在于内存中,合法用户对加密文件的操作如同普通文件一样, 加解密过程对合法用户是透明的,当用户拔出电子钥匙,加密文件立刻隐藏。上述检索发现的已有技术固然对计算机中的数据具有一定的保护作用,而且解决了用 户的访问权限、防护文件的普遍性和对用户透明的问题,然而,这种方法是建立在对第一 作者完全信任的基础之上,被保护文件对于第一作者来说,不存在必要的保护处理,第一 作者的人为因素造成文件信息泄露成为可能,所以无法防范第一作者是这种方法的一个重 要的缺陷
发明内容
本发明要解决的技术问题是针对所述现有技术存在的不足,提出一种构造透明编码 环境的方法,在解决不同用户的不同访问权限、被防护文件的普遍性和对用户完全透明等 问题的基础上,实现包括防范第一作者泄露保密信息在内的全面的数据保护。为了解决以上技术问题,本发明构造透明编码环境的方法是采用WINDOWS内核H00K 技术对WINDOWS文件过滤驱动进行H00K,使文件操作请求进入HOOK后的文件操作相关的 例程中,并在每个要经过的例程中,加入监控逻辑和编码处理,对所有文件操作进行监控, 构造一个透明的编码环境,对加密文件追加扩展名。所述方法按照以下步骤进行创建和打开文件操作的监控逻辑和编码处理1) HOOKWindows的文件过滤驱动的相关例程,拦截I/O操作请求IRP;2) 从拦截的IRP请求中提取文件对象,并判断当前文件的性质,以及当前进程是否 为受监控进程;3) 提取文件后缀名,并判断文件对象是否在HASH表项中存在;4) 判断请求类型,若是创建文件请求,则创建文件,并给创建的文件加上加密后缀; 若是打开文件请求,则判断文件是否存在,若存在且不带后缀名,将文件标志为有加密标 志,若存在且带后缀名,执行操作打开文件;若不存在且不带后缀名,判断是否为系统文 件,若系统文件不存在,则执行创建文件请求,创建包含有加密标志的新文件,若为系统 文件,则停止操作;所述方法按照以下步骤进行写操作的监控逻辑和编码处理1) 判断当前进程是否为受监控进程,并设置是否是受监控的标志;2) 判断当前进程是否为系统进程或特定进程,若当前进程不是系统进程或特定进程, 拒绝环境外进程对加密文件的写操作;若当前进程是系统进程或特定进程,接受环境内进 程写入文件操作,并对文件加密;另外,所述方法的监控逻辑和编码处理还包括以下控制当写操作完成时,对写入缓存中的数据进行解密处理,以保证向缓存写入的是明文文
件数据;在系统环境内隐藏追加的后缀名,保证编码环境的透明; 査询文件名时,去掉追加的文件后缀名;对文件重命名时,将新命名后的文件的后缀名同时加上,保证了重命名文件的正常工作。本发明由于采用WINDOWS内核H00K技术对WINDOWS文件过滤驱动进行H00K,可实现 文件安全防护的普遍性;由于处于系统的核心态,合法用户感觉不到计算机的底层运行, 不需其他额外操作,并且隐藏对加密文件追加的扩展名,因此对用户完全透明;由于对 WINDOWS文件过滤驱动进行H00K,在文件操作经过的例程中完成逻辑监控,在任何时间,包 括第一作者在内的任何用户对文件的操作,都处于逻辑监控之下,形成了一个严密的编码 环境,防范包括第一作者在内的用户泄露保密信息,从而实现对WINDOWS系统的文件操作 彻底的监控,达到全面防护数据安全的目的。


图l为本发明的逻辑流程图。
具体实施方式
由于Windows中的所有的对文件的读写等操作都会通过Windows文件过滤驱动,因 此本发明采用对文件过滤驱动中的相关例程进行HOOK,拦截Windows文件过滤驱动来实 现透明的文件编码。当用户进行文件读写时,系统会相应的发出I/O读写请求IRP,这些 IRP请求首先会经过windows的文件过滤驱动,而我们对windows的文件过滤驱动的相 关例程进行了HOOK ,所以这些IRP请求会被我们的过滤驱动拦截,在拦截例程中我们对 用户的所有文件操作进行过滤,包括对用户读写内容的编码和文件创建时的初始化。在从 .我们对IRP请求的处理返回后,系统会在文件过滤驱动中继续完成剩余的数据读写操作, 从而保证了对所有文件读写等操作的透明保护。以上透明编码实现可以通用于windows 2000/xp/2003系统。透明编码环境涉及主要例程包括CreateRoutine() 、 ReadCompleteRoutine ()、 WriteRoutine() 、 WriteCompleteRoutine () 、 DirectoryControlRoutine() FilelnformationRoutine()。下面对上述例程中处理逻辑分别进行详细描述-1 、 CreateRout i ne () -该例程中实现当创建一个文件(包括打开文件)时,进行编码处理流程。具体流程伪代码如下BOOLEAN HasSuffix; PFILE—OBJECT FileObject; PHASH一ENTRY C羅n伍ntry;FileObject = currentlrpStack-〉FileObject; 〃从IRP中提取文件对象 CurrentEntry = FindFileObjectHashEntry(FileObject); 〃通过FileObject找到 If(!IsFileObjectDirectory(...)) then〃如果是文件If (IsProcessWatched (PID)) then〃当前进程是受监控进程 HasSuffix^FileNameHasEncryptSu伍x(01dFileName); 〃提取文件的后缀名 If (CurrentEntry != NULL) then 〃将当前加密标志设置为TRUE; If(创建文件)//当前操作是创建文件IF (!HasSuffix) then 〃如果文件名不带有加密后缀 〃将后缀名追加到后缀; EndifElse if(打开文件操作)thenIF (!HasSuffix) then //如果文件名不带有加密后缀〃将后缀名追加到后缀; Endif *If(FileExists) then 〃当前文件存在 IF (!HasSu伍x) then //如果文件名不带有加密后缀 〃将文件标志为有加密标志; EndifElse〃当前文件不存在IF (旧asSuffix)化611//不带后缀,可能为系统文件If(!FileExists) then7/如果系统文件不存在 If(当前操作是创建文件)then〃创建新文件包含有加密标志; EndifElse/Z不带后缀的文件存在〃 donothingj EndifEndif Endif EndifElse//我们允许未受监控的进程打开加密的文件,但不允许它读写加密的文件 〃 donothing;Endif Endif2、 ReadComp I eteRout i ne 0-该例程中实现当读操作请求到达时,对文件进行解密处理的流程。3、 WriteRoutine 0-该例程中实现当写操作请求到达时,对文件进行加密处理的流程。具体流程伪代码如下-If (CurrentEntry) thenif( CurrentEntry ) thenif(!CurrentEntry->Watched) then〃受监控的标志为FALSE 〃设置是否是受监控的标志CurrentEntry-〉Watched = IsProcessWatched( (ULONG) PsGetCurrentProcess());Endif〃由于系统启动时,某些加密文件己经被创建,但是其哈希表项中的Encrypted〃标志并未被设置,此处需要进行设置if( !CurrentEntry-〉Encrypted) thenCurrentEntry->Encrypted = FileNameHasEncryptSuffixA( flillPathName );Endifif( !CurrentEntry->Watched &&CurrentEntry->Encrypted &&当前进程不是系统进禾j &&当前进程不是特定进程)then〃环境外进程试图写入加密文件,操作被拒绝 return FILE—WRITENOTPERMITTED; endif〃由于系统缓存文件时,使用的可能是不同的FileObject对象,因此,当文 件名带有〃后缀时,必须对文件进行加密,这就要求一旦系统启动,非受监控进程必 须禁止往//加密文件中写数据if((当前进程是系统进程ll当前进程是特定进程)then if(CurrentEntry-〉Encrypte) thenCurrentEntry-〉 Watched = TRUE;Endifif( CurrentEntry->Watched) thenif( CurrentEntry->Encrypted) then
〃环境内进程写入文件,文件被加密 EndifEndifEndif Endif4、 . Wr iteCompleteRoutine 0:该例程中实现当写操作完成时,保证向缓存中写入的是明文数据,即对写入缓存中 的数据进行解密处理。具体流程伪代码如下if( CurrentEntry) thenif(CurrentEntry->Watched) then〃受监控的标志为TRUE if(CurrentEntry-〉Encrypted) then 〃文件内容是加密的//对加密的文件内容进行解密处理,保证写到缓存的数据为明文; Endif EndifEndif5、 DirectoryControI Routine 0-该例程中主要作用是保证用户在系统环境内看到的文件是透明的,即隐藏追加的后 缀名。具体流程伪代码如下If(是受监控的进程)thenIf(文件有追加的后缀)then 〃隐藏追加的后缀名Endif Endif6、 F iIeInformat i onRout i ne 0:该例程中主要作用是解决了如下两个问题1、 查询文件名时去掉追加的文件后缀名;2、 在对文件重命名时,将新命名后的文件的后缀名同时加上,保证了重命名 的正常工作。具体流程伪代码如下If(IRP—MJ—QUERYJNFORMATION) then〃査询文件请求 if( CurrentEntry && CurrentEntry-〉AppendedSuffix ) then 〃文件追加了后缀名〃隐藏后缀名; EndifElse if(FileRenamelnforaiation ) then 〃重命名请求 if( !IsFileObjectDirectory()) then 〃是文件if( CurrentEntry && CurrentEntry-〉Encrypted) then 〃是加密的文件 〃提取文件的后缀名 HasSuffix = FileNameHasEncryptSuffix( &tmpUniFileName); if( !HasSuffix) //没有追加的后缀名〃将重命名后的文件名加上后缀 Endif Endif Endif Endif
权利要求
1、一种构造透明编码环境的方法,其特征在于采用WINDOWS内核HOOK技术对WINDOWS文件过滤驱动进行HOOK,使文件操作请求进入HOOK后的文件操作相关的例程中,并在每个要经过的例程中,加入监控逻辑和编码处理,对所有文件操作进行监控,构造一个透明的编码环境,对加密文件追加扩展名。
2、 如权利要求书1所述的构造透明编码环境的方法,其特征在于进行创建和打开文件 操作中,包括以下步骤1) HOOKWindows的文件过滤驱动的相关例程,拦截I/O操作请求IRP;2) 从拦截的IRP请求中提取文件对象,并判断当前文件的性质,以及当前进程是否 为受监控进程;3) 提取文件后缀名,并判断文件对象是否在HASH表项中存在;4) 判断请求类型,若是创建文件请求,则创建文件,并给创建的文件加上加密后缀; 若是打开文件请求,则判断文件是否存在,若存在且不带后缀名,将文件标志为有加密标志,若存在且带后缀名,执行操作打开文件;若不存在且不带后缀名,判断是否为系统文 件,若系统文件不存在,则执行创建文件请求,创建包含有加密标志的新文件,若为系统 文件,则停止操作。
3、 如权利要求书1所述的构造透明编码环境的方法,其特征在于按照以下步骤进行写操作的监控逻辑和编码处理1) 判断当前进程是否为受监控进程,并设置是否是受监控的标志;2) 判断当前进程是否为系统进程或特定进程,若当前进程不是系统进程或特定进程, 拒绝环境外进程对加密文件的写操作;若当前进程是系统进程或特定进程,接受环境内进 程对加密文件的写操作,并对文件加密。
4、 如权利要求书1所述的构造透明编码环境的方法,其特征在于当写操作完成时,对 写入缓存中的数据进行解密处理,以保证向缓存写入的是明文文件数据。
5、 如权利要求书1所述的构造透明编码环境的方法,其特征在于在系统环境内隐藏追 加的后缀名,保证编码环境的透明。
6、 如权利要求书1所述的构造透明编码环境的方法,其特征在于査询文件名时,去掉 追加的文件后缀名。
7、 如权利要求书l所述的构造透明编码环境的方法,其特征在于对文件重命名时,将 新命名后的文件的后缀名同时加上,保证了重命名的正常工作。
全文摘要
本发明公开了一种构造透明编码环境的方法,采用WINDOWS内核HOOK技术对WINDOWS文件过滤驱动进行HOOK,使文件操作请求进入HOOK后的文件操作相关的例程中,在每个要经过的例程中,加入适当的监控逻辑和编码处理,对所有文件操作进行监控,给用户构造一个透明的编码环境,对加密文件追加扩展名、环境内隐藏扩展名,使编码处理在环境内对用户完全透明;环境外不隐藏扩展名,用户无法对环境外的加密文件进行任何正常操作,防范第一作者泄露保密信息,从而实现对WINDOWS系统的文件操作全面彻底的监控,达到全面防护数据安全的目的。
文档编号G06F21/22GK101101622SQ20071011858
公开日2008年1月9日 申请日期2007年7月10日 优先权日2007年7月10日
发明者俊 吕, 姜斌斌, 磊 张, 文中领, 陈华平 申请人:北京鼎信高科信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1