一种涉密文件的保护方法

文档序号:6370058阅读:234来源:国知局
专利名称:一种涉密文件的保护方法
技术领域
本发明涉及一种涉密文件的保护方法,具体说是一种与第三方的文件管理软件集成,为其实现涉密文件在客户端计算机上的安全使用和防泄密功能的软件实现方法。
背景技术
企业计算机中存在大量涉密的电子文件,包含了技术、经营的大量信息和数据,企业迫切需要加强对这些涉密文件的管理、保证文件安全。目前,业界已经开发出了各种各样的文件管理软件,它们的工作模式都很相似都是在一台作为文件服务器的计算机上集中管理文件并控制文件权限,用户通过联网的客户端计算机访问与操作服务器文件。尽管现有的文件管理软件很好解决了用户的数据管理需求,但是它们在终端数据的安全性上普遍存在着如下缺陷用户为了浏览和编辑文件的内容,会将服务器上的涉密文件下载到本地,这些下载文件很容易被从客户端计算机上复制走,造成泄密和损失。 一种解决方法是开发一套全新的、包含了终端数据安全功能的文件管理软件。但是因为现有的各种文件管理软件都是针对不同的行业与应用领域的特定用户需求设计和开发的,它们之间存在很大差异,所以想要开发一种能适应各个行业、通用的文件管理软件,是非常困难的。事实上,在文件管理软件领域中,也从来没有出现一种能满足所有行业的用户需求的软件产品。还有一种方法是加密计算机上的文件来防止数据泄露。目前常用的加密方法是透明加密,它们大都采用文件进程相关的方式,即可以设置指定进程只对特定后缀的文件加解密,其他文件不作处理。比如在加密软件中设置某种文件管理软件的客户端程序和Word程序对doc文件透明加解密,这样用户通过文件管理软件的客户端程序下载的doc文件就被自动加密了,并且用客户端的Word程序也能正常的打开和编辑这个加密文件。文件透明加密具有不改变用户操作习惯,无需用户干预等优点,但也不可避免地造成一些问题。首先,文件加密的方法则存在很大的风险因为文件的内容毕竟被加密了,如果文件自动加解密的过程中出现意外情况(比如断电)、或者读写加密文件的应用程序(如word、excel等)自身出现了错误中断,都容易导致文件的损坏。另一个问题是加密软件的开发工作量大、很难做稳定。因为各行业的用户需要保护的涉密文件类型众多,它们涉及的应用程序数量更多,加密软件需要稳定地支持和兼容如此多的应用程序(包括程序的各个版本),集成开发与测试的工作量大到难以想象。更严重的问题是加密软件中使用的进程相关的工作策略(即指定进程只对特定后缀文件加解密)将导致加密的扩大化问题,比如为了保护一个涉密doc文件,必须设置word程序对所有doc文件都自动地加解密,这样就会把客户端计算机上的很多不需要加密的doc文件也加密了,它们也就无法和外界交流了,如果用户要发出文件就必须先申请加密系统的管理员解密它。这种状况给用户的正常工作带来了很大麻烦
发明内容
发明目的为了解决目前的文件管理软件在终端数据安全上存在的缺陷,以及克服透明加密软件的文件损坏风险以及开发复杂、加密扩大化的问题,本发明提出了一种借鉴了沙箱工作原理的方法。用户通过文件管理软件的客户端程序下载文件时,将下载的文件重定向到客户端计算机的一个虚拟磁盘中,所有浏览和编辑文件的操作也都在该虚拟磁盘中进行;然后控制文件操作过程中修改和新建的文件也都被重定向到虚拟磁盘中和禁止未经重定向控制的进程访问该虚拟磁盘;最后,文件编辑完成后从虚拟磁盘中上传文件到服务器,完成一次文件的修改过程。用户可以正常使用虚拟磁盘中的文件,而不能复制与转存出来,就如同一个只进不出的沙箱。使用该方法开发的安全软件,可以与第三方的文件管理软件集成,为其实现涉密文件在客户端计算机上的安全使用和防泄密,提高用户的数据安全管理水平。技术方案本发明的具体技术方案主要包含服务器、客户端、客户端的虚拟磁盘、客户端的重定向4个程序模块。其中虚拟磁盘和重定向模块都是系统的底层驱动,它们相互间的关系如图I所不。首先,是虚拟磁盘模块,用于在每个客户端计算机上存放涉密文件,比如用户通 过第三方文件管理软件的客户端程序从服务器上下载的文件,可以使用文件虚拟磁盘,或内存虚拟磁盘实现(虚拟磁盘中保存的文件下面简称为“磁盘文件”)。磁盘内的所有数据都是加密的,必须设置正确的密钥才能加载该磁盘。为了防止泄密,需要控制对虚拟磁盘的访问许可,本技术方案使用在虚拟磁盘上附加一个文件过滤驱动的方法,达到只允许沙箱进程(见下面“重定向模块”中所述,沙箱进程的读写文件操作被重定向到虚拟磁盘中)访问磁盘文件的效果。对于被允许访问磁盘文件的进程,其读出和写入文件的数据都不加密,数据在虚拟磁盘驱动中自动完成加解密过程。(虚拟磁盘的工作过程如图2所示)。其次是重定向模块,用于保护客户端上的虚拟磁盘文件的安全。为了防止磁盘文件被复制和转存出磁盘,本技术方案采用了重定向的方法首先,将所有打开虚拟磁盘文件的进程(如W0rd、excel软件)包括它们的子进程的文件读写操作都重定向到虚拟磁盘(这些被重定向的进程下面简称为“沙箱进程”,沙箱进程的判断流程如图3所示),这样用户在沙箱进程中复制和转存出来的所有文件就仍然被保存到了虚拟磁盘中;然后,为了防止没有被重定向控制的进程(简称为“非沙箱进程”)访问磁盘文件,在重定向模块中保存了一个记录所有沙箱进程的列表,并将它提供给前述虚拟磁盘模块的文件过滤驱动,由过滤驱动来控制只有沙箱进程才能访问磁盘文件。如此就将涉密文件控制在了虚拟磁盘的内部使用,文件的使用人在浏览和编辑文件的过程中也无法将文件复制和转存出来。(重定向模块的工作过程如图4所示,沙箱进程的文件重定向过程如图5所示)。然后是服务器模块,用于客户端模块的登录验证和设置客户端的工作策略。工作策略包括了进程策略和重定向策略。进程策略设置客户端上的特定程序是默认的沙箱进程,比如需要集成的第三方文件管理软件的客户端程序,只要它一启动,就会将它加入沙箱进程,这样通过客户端程序下载的服务器文件就会被重定向到虚拟磁盘中了。(文件下载的工作流程如图6所示)重定向策略设置在沙箱进程的文件重定向操作中需要排除的文件路径,即对这些特定的文件路径,沙箱进程的读或者写文件操作不被重定向处理。最后是客户端模块,用于管理和操作虚拟磁盘中的涉密文件。本技术方案中通过客户端模块操作虚拟磁盘文件的过程如图7所示首先,客户端模块作为默认的沙箱进程,有权访问虚拟磁盘的文件;然后,客户端模块拥有一个程序界面,用户能在界面中看到、管理和打开磁盘文件(磁盘文件中包含了管理软件的客户端程序从服务器上下载的涉密文件),比如用户在客户端界面中查看磁盘文件,并使用Windows系统的API函数ShellExecute ()打开选择的磁盘文件进行浏览和编辑,由于用此种方式启动的应用程序(如WOrd、excel程序)是客户端模块的子进程,按照前述“重定向模块”中的“沙箱进程的子进程也是沙箱进程”的软件工作逻辑,它也成为了一个沙箱进程;最后,为了保证磁盘文件的安全,客户端模块中不提供复制磁盘文件到虚拟磁盘之外的功能,或者加密从虚拟磁盘中导出的文件,使加密文件不能直接打开使用,只有将加密文件导入虚拟磁盘之后,文件在磁盘中解密,用户才能在磁盘内部打开和使用这个文件。有益效果综上所述,本发明不需要透明加解密文件,也能实现用户终端的数据安全效果,让涉密文件既能为终端用户使用(打开、浏览和编辑),还不能被带出泄密。与现有的透明加密软件相比,本发明具有如下优点。(I)无需透明(或自动)地加解密文件,也就没有因为加解密过程中出现意外与错误而损坏文件的风险,极大提升了软件的可靠性。 (2)由于不需要象加密软件那样根据进程和文件类型设定安全策略,本发明的工作策略非常简单,通用性强,能大大降低对各种各样的应用软件的集成开发与测试的工作量。(3)由于本发明中客户端的文件分为两个部分保存在虚拟磁盘中的涉密文件和虚拟磁盘外的非涉密文件,本技术方案只对虚拟磁盘中的涉密文件进行安全防护与控制,不会影响到磁盘之外的文件,不存在加密软件那样的加密扩大化问题,所以不会给用户增加麻烦。


图I各I旲块关系不意图。图2虚拟磁盘的工作过程示意图。图3沙箱进程的判断流程示意图。图4重定向模块的工作过程示意图。图5沙箱进程的文件重定向过程示意图。图6文件下载的工作流程示意图。图7通过客户端模块操作虚拟磁盘文件的过程示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的实施例仅仅用于解释本发明,并不用于限定本发明。I、本实施例的系统环境是微软的Windows2000及以上版本的操作系统;实现的功能是与第三方的文件管理软件集成,让用户在客户端计算机上安全的操作(如打开、浏览、编辑)从服务器下载的涉密文件,即控制用户在使用下载文件的过程中,不能通过复制、另存等手段将文件带出客户端计算机,从而确保涉密文件的安全。
2、按照本方法实现的文件安全软件,包含了服务器、客户端、客户端的虚拟磁盘、客户端的重定向4个程序模块。其中虚拟磁盘和重定向模块都是系统的底层驱动,它们相互间的关系如图I所不。3.虚拟磁盘模块。虚拟磁盘模块,用于在每个客户端计算机上存放涉密文件,比如存放用户通过第三方文件管理软件的客户端程序从服务器上下载的文件,可以使用文件虚拟磁盘,或内存虚拟磁盘实现(虚拟磁盘中保存的文件下面简称为“磁盘文件”)。虚拟磁盘的工作过程如图2所示,首先必须设置正确的密钥,否则拒绝加载;当创建了设备对象后,为了防止泄密,需要控制对虚拟磁盘的访问许可,本技术方案使用在虚拟磁盘上附加一个文件过滤驱动的方法任何对虚拟磁盘的I/O请求(IRP)会首先被文件 过滤驱动拦截,并在过滤驱动中判断数据访问进程是否是“沙箱进程”,如果是,就将IRP请求传向虚拟磁盘,如不是,就禁止访问。最后对虚拟磁盘的读写进行处理写入时根据密钥加密,读取时根据密钥解密。需要注意的是,本实施例中,通过文件过滤驱动与重定向模块通讯,获取当前系统的沙箱进程信息,来判断沙箱进程。2、重定向模块。本实施例中,重定向模块是一个文件微过滤驱动,通过在底层拦截沙箱进程的文件打开和读写操作并重定向回虚拟磁盘,来达到保护虚拟磁盘文件安全的目的。重定向模块的工作过程如图4所示首先,将所有打开虚拟磁盘文件的进程(如word.excel软件)包括它们的子进程都加入到沙箱进程列表;然后,在重定向模块中处理沙箱进程的IRP请求,将其重定向到虚拟磁盘中。本实施例中,沙箱进程的文件重定向过程如图5所示首先,重定向模块与客户端模块通讯,判断当前进程和文件路径是否在重定向策略中(即是否是需要排除、不进行文件重定向的情况),如果是,就不进行文件重定向、正常操作文件。否则就进入文件重定向流程在沙箱进程打开文件(IRP_MJ_CREATE)时,先判断在虚拟磁盘中有无此目标文件的重定向文件,如果有,就修改打开的文件路径使其指向沙箱中的已经存在的重定向文件,也就是让沙箱进程优先打开虚拟磁盘中的文件,如没有,就还是打开虚拟磁盘外的目标文件;在沙箱进程写文件(IRP_MJ_WRITE)时,先判断文件路径,如果目标文件在虚拟磁盘之外,就先将目标文件拷贝到虚拟磁盘的重定向目录下,然后修改写文件的路径使其指向这个重定向文件,让沙箱进程将文件内容写到重定向文件中去。本实施例中,在操作系统启动时自动运行重定向模块,启动后使用PsSetCreateProcessNotifyRoutine ()函数(函数类型V0ID (*PCREATE_PR0CESS_N0TIFY_ROUTINE) (IN HANDLE Parentld, IN HANDLE Processld, IN BOOLEAN Create);)向操作系统注册一个进程回调函数,该函数在有新进程创建或者进程结束的时候被调用。在进程创建的时候,重定向模块先与客户端模块通讯,判断当前进程是否在进程策略中(即是否需要默认加入沙箱进程的程序),如果是,就将其加入沙箱进程列表;如不是,再从回调的参数中取得创建该进程的父进程,并判断父进程是否沙箱进程列表中,如果是,就把当前进程也加入沙箱进程列表中。(沙箱进程的判断流程如图3所示)。3.服务器模块。服务器模块用于客户端模块的登录验证和设置客户端的工作策略。工作策略包括了进程策略和重定向策略。进程策略设置客户端上的特定程序是默认的沙箱进程,比如需要集成的第三方文件管理软件的客户端程序,这样只要它一启动,就会将它加入沙箱进程,这样通过客户端程序下载的服务器文件就会被重定向到虚拟磁盘中了。(文件下载的工作流程如图6所示)重定向策略设置在沙箱进程的文件重定向操作中需要排除的文件路径,即对这些特定的文件路径,沙箱进程的读或者写文件操作不被重定向处理。本实施例中,以对微软的Microsoft Visual SourceSafe (VSS)版本控制软件的集成为例,工作策略设置如下。进程策略对VSS的客户端程序SSEXP. EXE,启动时默认加入沙箱进程。这样,用户通过VSS客户端下载的VSS服务器文件就会被重定向到虚拟磁盘中保护起来;文件在虚拟磁盘中完成编辑上传(签出)服务器时,同样会重定向VSS客户端的读文件操作,将保存在虚拟磁盘中的文件上传服务器。重定向策略对进程SSEXP. EXE,文件读写时,排除VSS的文件库路径(Database Path),比如排除“\\192. 168. 41. 2\safecode”,SSEXP. EXE对这个路径下的文件读写不进行重定向操作。4.客户端模块。客户端模块,用于管理和操作虚拟磁盘中的涉密文件。本实施例中,通过客户端模块操作虚拟磁盘文件的过程如图7所示首先,客户端模块作为默认的沙箱进程,有权访问虚拟磁盘的文件;然后,客户端模块拥有一个程序界面,用户能在界面中能看到、管理和打开磁盘文件(磁盘文件中包含了管理软件的客户端程序从服务器上下载的涉密文件)。本实施例中,用户在客户端界面中查看虚拟磁盘文件,并使用Windows系统的API函数ShellExecute ()打开选择的磁盘文件进行浏览和编辑,由于用此种方式启动的应用程序(如WOrd、excel程序)是客户端模块的子进程,按照前述“重定向模块”中的“沙箱进程的子进程也是沙箱进程”的软件工作逻辑,它也成为了一个沙箱进程,这样用户在文件使用过程中的所有数据输出(如利用word程序中的另存为、导出pdf功能)都将被重定向回虚拟磁盘中;最后,为了保证磁盘文件的安全,本实施例中,当从客户端模块中导出虚拟磁盘文件时,会加密导出的文件,并且加密文件不能打开使用,只有在客户端模块中将加密文件导入虚拟磁盘时解密导入的文件,此时用户才能在虚拟磁盘内部打开和使用这个文件。通过上述文件导出一》加密、文件导入一》解密的方式,本实施例就实现了在不同的客户端计算机之间安全地交流虚拟磁盘中的文件。综上所述,应用本发明的方法,可以开发出一套稳定性高、风险小、适应领域广泛的文件安全软件,提高企业的数据安全管理水平。
权利要求
1.一种涉密文件的保护方法,借鉴了沙箱原理,其特征如下 一个虚拟磁盘系统,用于在每个客户端计算机上存放涉密文件; 一个重定向模块,用于保护客户端上的虚拟磁盘文件的安全; 一个服务器模块,用于客户端模块的登录验证和设置客户端的工作策略; 一个客户端模块,用于管理和操作虚拟磁盘中的涉密文件。
2.权利要求I所述的虚拟磁盘系统,其特征是 可以使用文件虚拟磁盘,也可以是内存虚拟磁盘;虚拟磁盘中保存的文件下面简称为磁盘文件; 磁盘内的所有数据都是加密的,必须设置正确的密钥才能加载该磁盘; 磁盘上附加了一个文件过滤驱动,用于控制哪些进程有权访问磁盘文件; 对于被允许访问磁盘文件的进程,其读出和写入文件的数据都不加密,数据在虚拟磁盘驱动中自动完成加解密过程。
3.权利要求I所述的重定向模块,其特征是 以进程为单位,重定向进程的打开和读写文件操作,被重定向的进程下面简称为沙箱进程; 所有沙箱进程的文件重定向的目标位置都是权力I所述的虚拟磁盘; 保存了所有沙箱进程的列表信息,并且提供给权利要求2所述的文件过滤驱动,用于在过滤驱动中控制只有沙箱进程才能访问磁盘文件; 如果一个进程的父进程是沙箱进程,它也被加入沙箱进程。
4.权利要求I所述的在服务器模块中设置客户端的工作策略,其特征是 工作策略包括了进程策略和重定向策略; 进程策略设置客户端上的特定程序是默认的沙箱进程,只要它一启动,就成为沙箱进程; 进程策略中包含了文件管理软件的客户端程序; 重定向策略设置在沙箱进程的文件重定向操作中需要排除的文件路径,即对这些特定的文件路径,沙箱进程的读或者写文件操作不被重定向处理。
5.权利要求I所述的客户端模块,其特征是 是一个默认的沙箱进程,有权访问磁盘文件; 拥有一个程序界面,用户能在界面中能查看和管理磁盘文件; 用户在客户端模块中查找和打开磁盘文件进行浏览和编辑,打开文件的进程作为客户端模块的子进程,也成为一个沙箱进程; 客户端模块中不提供复制磁盘文件到虚拟磁盘之外的功能,或者加密从虚拟磁盘中导出的文件,使加密文件不能直接打开使用,只有将加密文件导入虚拟磁盘之后,文件在磁盘中解密,用户才能在磁盘内部打开和使用这个文件。
全文摘要
本发明公开了一种涉密文件的保护方法,借鉴了沙箱原理。用户通过文件管理软件的客户端程序下载文件时,将下载的文件重定向到客户端计算机的一个虚拟磁盘中,所有浏览和编辑文件的操作也都在该虚拟磁盘中进行;然后控制文件操作过程中修改和新建的文件也都被重定向到虚拟磁盘中和禁止未经重定向控制的进程访问该虚拟磁盘;最后,文件编辑完成后从虚拟磁盘中上传文件到服务器,完成一次文件的修改过程。用户可以正常使用虚拟磁盘中的文件,而不能复制与转存出来,就如同一个只进不出的沙箱。使用该方法开发的安全软件,可以与第三方的文件管理软件集成,为其实现涉密文件在客户端计算机上的安全使用和防泄密,提高用户的数据安全管理水平。
文档编号G06F3/06GK102708326SQ20121016009
公开日2012年10月3日 申请日期2012年5月22日 优先权日2012年5月22日
发明者廖健, 廖声亮, 陆芳 申请人:南京赛孚科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1