一种文件保护方法及系统的制作方法

文档序号:6602315阅读:176来源:国知局
专利名称:一种文件保护方法及系统的制作方法
技术领域
本发明涉及信息安全领域,特别涉及一种文件保护方法和系统。
背景技术
随着计算机技术的发展,各行各业都开始了信息化的大进化,尤其是各种金融公 司、软件开发公司等,敏感数据不断增多,需要进行保护的电子数据不断增多,这些电子数 据的安全大多关系着企业的生存,因此文件的保护越来越受到重视。同时,各种木马、病毒也越来月活动,恶意攻击者开发越来越多的非法程序植入他 人计算机,窃取各种敏感数据,同时窃取技术也越来越高。为了防止保密数据被窃取,出现 了越来越多的文件保护方法。最简单是方法是,对秘密文件进行隐藏,或是对文件加上密码 保存,但是这种方式及其脆弱,很容易通过扫面计算机或是暴力破解等手段破解文件,也出 现了更高安全性的手段。对需要保密的文件使用密钥进行加密,并且密钥是秘密保存的,例如保存在加密 锁中,加密锁一般为USB接口的智能设备,其可以与计算机进行了连接,和计算机一起完成 文件保护和权限管理的功能,在密钥被攻击者获取的情况下,可以保证文件的安全性,该方 法具体为,在计算机中安装一个文件保护程序,当合法的程序打开加密文件时,文件保护程 序使用密钥对文件进行解密,得到明文的文件以供合法者操作,当非法的程序试图打开加 密文件时,文件保护程序禁止其打开加密文件,并且不提供解密服务。但是这种方法仍然存在不安全性,在计算机操作系统中,当合法的程序打开并解 密受保护的文件时,操作系统会为解密得到的明文在缓存中分配一定的空间,并将这些明 文存放在缓存中,同时返回句柄,合法者即可以对受保护文件进行操作,当合法用户关闭受 保护文件时,在缓存中的受保护文件并不会立即清空,这时非法程序如果同样通过上层接 口访问该文件时,可直接得到受保护文件在缓存中的地址读出明文的数据。综上所述,现有的文件保护方案中存在缺陷,在合法的应用程序访问受保护文件 后,缓存中的明文数据不会立即被清除,导致非法应用程序在缓存中数据未清除时访问受 保护文件,可以得到缓存中的明文数据,使得受保护文件数据泄露。

发明内容
为了提高网络数据传输的安全性,本发明实施例提供了一种签名方法和系统。技 术方案如下一种签名方法,所述方法包括应用程序接收用户发出的对受保护文件进行操作的指令,所述受保护文件为经过 加密并以密文形式保存在磁盘中的文件,所述对受保护文件进行操作的指令包括打开、读、 写、关闭所述受保护文件的指令;接收到所述打开所述受保护文件的指令之后,打开所述受保护文件的操作包括
所述应用程序调用操作系统的上层接口,所述上层接口向文件系统发出打开所述受保护文件的指令;过滤驱动截获所述上层接口向文件系统发出的打开所述受保护文件的指令,并判 断所述应用程序是否为合法应用程序;如果合法,所述过滤驱动读取受保护文件的属性信 息,向所述文件系统发出在虚拟磁盘中创建所述受保护文件的影子文件的指令,所述文件 系统通过虚拟磁盘驱动在所述虚拟磁盘中创建所述影子文件,所述操作系统向所述应用程 序返回所述影子文件的句柄,引用计数值增加一个步长;其中,在所述虚拟磁盘中创建影子文件包括方法A和B A,所述过滤驱动通过所述文件系统读取所述受保护文件的属性信息,在所述虚拟 磁盘中创建所述影子文件,为所述影子文件随机命名,并写入所述受保护文件的属性信息, 所述影子文件的数据为空;或,B,所述过滤驱动通过所述文件系统读取所述受保护文件,并使用与主机连接的加 密锁中存储的密钥对所述受保护文件进行解密,得到明文,将明文放入所述虚拟磁盘中作 为影子文件的数据,并为所述明文随机命名,作为所述影子文件;接收到所述读所述受保护文件的指令之后,读所述受保护文件的操作包括所述应用程序发出根据所述句柄对文件进行读的指令;当创建影子文件使用方法A,所述影子文件的数据为空时,所述过滤驱动截获所述 应用程序发出的根据所述句柄对文件进行读的指令,从磁盘中读取所述受保护文件的预定 部分或全部,使用与所述主机连接的加密锁内存储的密钥对所述受保护文件的预定部分或 全部进行解密,得到所述受保护文件的预定部分的明文或全部明文,所述操作系统为所述 影子文件分配缓存空间中,并将所述预定部分的明文或全部明文放入所述操作系统为所述 影子文件分配的缓存空间,建立文件映射关系,所述应用程序完成对所述受保护文件的读 操作;当创建影子文件使用方法B,所述影子文件中的数据为受保护文件的明文时,所述 过滤驱动截获所述应用程序发出的根据所述句柄对文件进行读的指令,通过所述虚拟磁盘 驱动在所述虚拟磁盘中读取所述影子文件,所述操作系统为所述影子文件分配缓存空间, 并将所述虚拟磁盘中的明文放入所述操作系统为所述影子文件分配的缓存空间中,所述应 用程序完成对所述受保护文件的读操作;接收到所述写所述受保护文件的指令之后,写所述受保护文件的操作包括所述应用程序发出根据所述句柄对文件进行写操作的指令;所述应用程序在所述操作系统为所述影子文件分配的缓存中完成对所述明文的 受保护文件的写操作,所述写操作包括对所述受保护文件的插入新数据、修改、替换、编 辑;所述过滤驱动对所述修改后的受保护文件进行加密操作并保存;接收到所述关闭所述受保护文件的指令之后,关闭所述受保护文件的操作包括所述过滤驱动逐一关闭打开的所述影子文件的句柄,将所述引用计数值递减,递 减后检查所述引用计数值,当所述引用计数值为初值时,删除所述影子文件。优选地,所述应用程序接收用户发出的打开所述受保护文件的指令前,所述方法 还包括
所述操作系统启动,再自动加载所述过滤驱动、所述虚拟磁盘驱动,并在内存中创 建所述虚拟磁盘。优选地,当判断所述应用程序为不合法时,所述方法还包括所述上层接口通过所述文件系统找到所述受保护文件,所述操作系统为所述受保 护文件分配缓存,并将所述受保护文件读入缓存,所述读入缓存中的受保护文件为密文形 式;或,向所述应用程序返回错误,非法应用程序禁止访问所述受保护文件。优选地,所述过滤驱动使用与所述主机连接的加密锁内存储的密钥对所述受保护 文件的预定部分或全部进行解密,具体的为所述过滤驱动使用与所述主机连接的加密锁内存储的密钥以簇为单位对所述受 保护文件的预定部分或全部进行解密。相应地,当所述将预定部分的明文放入所述操作系统为所述影子文件分配的缓存 空间时,所述过滤驱动对所述修改后的受保护文件进行加密操作并保存,具体的包括所述过滤驱动将所述修改后的受保护文件的明文以簇为单位使用与所述主机连 接的加密锁内存储的密钥进行加密,并通过所述文件系统对磁盘中存储所述受保护文件的 簇进行修改。相应地,当所述将全部明文放入所述操作系统为所述影子文件分配的缓存空间 时,所述过滤驱动对所述修改后的受保护文件进行加密操作并保存,具体的包括所述过滤驱动将完整的所述修改后的受保护文件使用与所述主机连接的加密锁 内存储的密钥进行加密,覆盖所述磁盘中存储的所述受保护文件。优选地,所述上层接口为,所述操作系统提供的供所述应用程序调用,为所述应用 程序提供创建、打开、读取文件操作的功能的接口。优选地,所述过滤驱动判断所述应用程序是否合法,具体的包括在进行文件保护前,使合法的应用程序向所述过滤驱动进行注册,过滤驱动记录 所述合法的应用程序的注册信息,当存在应用程序通过调用上层接口发送访问受保护文件 的指令时,过滤驱动获取应用程序的信息,并判断与记录的合法应用程序的注册信息是否 相同,如果相同,则认为应用程序合法,如果不相同,则认为应用程序不合法,所述注册信息 包括所述合法的应用程序的名称、进程ID、路径,以及应用程序的注册表信息。优选地,所述应用程序接收用户发出的打开受保护文件的指令前,还包括对所述应用程序进行加壳处理,使得所述加壳后的应用程序在启动时判断是否有 合法的加密锁接入,如果有,则所述应用程序可以启动,否则,所述应用程序不能启动。优选地,所述引用计数值用于记录所述影子文件的句柄数,当未返回所述影子文 件的句柄时,所述引用计数值为初值,每返回一个所述影子文件的句柄,所述引用计数值增 加一个步长,每关闭一个所述影子文件的句柄,所述引用计数值递减一个步长。一种签名系统,所述系统包括所述文件保护驱动包括应用程序模块、上层接口模块、过滤驱动模块、文件系统 模块、虚拟磁盘驱动模块;所述应用程序模块,用于通过调用所述上层接口模块打开存储在磁盘中的受保护文件,并通过所述上层接口模块发出根据句柄对文件进行读操作和写操作的指令;所述上层接口模块,用于接收所述应用程序模块发出的对文件操作的指令,并通 过操作所述文件系统模块完成文件的打开、读、写、关闭的操作;所述过滤驱动模块,用于监控主机中对所述文件系统模块的操作,当发现预定义 的对所述文件系统模块的操作时,执行预设的附加操作,对所述预定义的对所述文件系统 模块的操作进行控制;所述文件系统模块,用于管理磁盘中存储的文件,可以在磁盘中完成建立文件,索 引文件,读取文件,修改文件的操作;所述虚拟磁盘驱动模块,用于当接收到所述过滤驱动模块通过所述文件系统模块 发出的创建所述受保护文件的影子文件的指令后,在虚拟磁盘中建立影子文件,当所述影 子文件建立完成后,操作系统向所述应用程序模块返回所述影子文件的句柄;所述加密锁包括验证模块和密钥存储模块;所述验证模块,用于在所述应用程序模块启动时,辅助验证是否有加密锁连接在 主机中,如果有,则所述应用程序模块可以启动,否则,所述应用程序模块不能启动。所述密钥存储模块,用于在所述过滤驱动模块对受保护文件进行加解密操作时, 提供加解密操作的密钥。优选地,所述应用程序模块包括验证单元、打开单元、读写单元所述验证单元,用于在所述应用程序模块启动时,验证主机是否连接有合法的加 密锁,如果有,所述应用程序模块可以启动,否则,所述应用程序模块不能启动;所述打开单元,用于在接收到所述用户发送的打开受保护文件的指令时,向所述 上层接口模块发出打开所述受保护文件的指令,并在接收到所述影子文件的句柄时,根据 所述句柄打开受保护文件;所述读写单元,用于在接收到所述操作系统返回的所述影子文件的句柄后,根据 所述句柄发出读写操作的指令。优选地,所述过滤驱动模块,具体的包括过滤单元、判断单元、解密单元、影子文 件创建单元;所述过滤单元,用于监控所述上层接口模块是否有打开所述受保护文件的操作, 当存在打开所述受保护文件的操作时,执行预设的附加操作;所述判断单元,用于在所述过滤单元截获预设的对所述文件系统模块的操作时, 判断打开受保护文件的应用程序是否合法,如果合法,则向所述文件系统模块发出创建影 子文件的指令,如果不合法,则直接打开所述受保护文件,打开所述受保护文件时,不进行 解密操作;所述解密单元,用于当接收到所述上层接口模块发送的根据所述句柄读或写所述 影子文件的指令时,向所述文件系统模块发出读取受保护文件的命令,并将读出的密文形 式的所述受保护文件进行解密操作,得到明文形式的受保护文件,放入操作系统为所述影 子文件分配的缓存中;所述影子文件创建单元,用于向所述文件系统模块发送创建影子文件的指令,并 为所述影子文件随机命名。相应地,所述预设的附加操作具体的为,判所述预设的附加操作具体的为,创建影
10子文件、对文件进行加解密、对数据进行个性化操作。相应地,所述文件系统模块还用于,当接收到所述影子创建单元发送的创建影子 文件的指令时,向所述虚拟磁盘驱动模块发送创建影子文件的指令。优选地,所述在虚拟磁盘中建立影子文件具体的为所述过滤驱动模块通过所述文件系统模块读取所述受保护文件的属性信息,在所 述虚拟磁盘中创建所述影子文件,并写入所述受保护文件的属性信息,所述影子文件的数 据为空。相应地,当所述影子文件的数据为空时,所述应用程序模块发出根据所述句柄对 文件进行读操作的指令后,还包括所述过滤驱动模块截获所述应用程序模块发出的根据所述句柄对文件进行读的 指令,从磁盘中读取所述受保护文件的预定部分或全部,使用所述加密锁内部存储的密钥 对所述受保护文件的预定部分或全部进行解密操作,得到所述受保护文件的预定部分的明 文或全部明文,所述操作系统为所述影子文件分配缓存空间,并将所述预定部分的明文或 全部明文放入所述操作系统为所述影子文件分配的缓存空间,建立文件映射关系。优选地,所述在虚拟磁盘中建立影子文件还具体的为所述过滤驱动模块通过所述文件系统模块读取所述受保护文件,并使用所述加密 锁中存储的密钥对所述受保护文件进行解密,得到明文,将所述明文放入所述虚拟磁盘中, 作为所述影子文件。相应地,所述应用程序模块发出根据所述句柄对文件读操作的指令后,还包括所述过滤驱动模块截获所述应用程序发出的根据所述句柄对文件进行读的指令, 向所述文件系统模块发送根据所述句柄对文件进行读的指令,并通过所述虚拟磁盘模块在 所述虚拟磁盘中读取所述影子文件,所述操作系统为所述影子文件分配缓存空间,并将所 述虚拟磁盘中的明文放入所述操作系统为所述影子文件分配的缓存空间,完成对所述受保 护文件的读操作。优选地,所述过滤驱动模块使用所述加密锁内部存储的密钥对所述受保护文件的 预定部分或全部进行解密操作,具体的为所述过滤驱动模块使用所述加密锁内部存储的密钥以簇为单位对所述受保护文 件的预定部分或全部进行解密操作。优选地,所述过滤驱动模块还包括加密单元,所述加密单元用于当所述将预定部分的明文放入所述操作系统为所述影子文件分配的缓存空间时, 所述加密单元将经过所述应用程序模块写操作修改的所述受保护文件的明文以簇为单位 进行加密,并通过所述文件系统模块对磁盘中存储的所述受保护文件进行修改;或,当所述将全部明文放入所述操作系统为所述影子文件分配的缓存空间时,所述加 密单元将经过所述应用程序模块写操作修改的所述受保护文件的明文以簇为单位进行加 密,覆盖磁盘中存储的所述受保护文件。优选地,所述过滤驱动模块还包括引用计数单元,所述引用计数单元用于记录所述影子文件的句柄数,当未返回所述影子文件的句柄时,所述引用计数单 元的计数值为初值,每返回一个所述影子文件的句柄,所述引用计数值增加一个步长,每关闭一个所述影子文件的句柄,所述引用计数值递减一个步长,当所述引用计数值递减为初 值时,删除所述影子文件。本发明实施例提供的技术方案带来的有益效果是通过在文件保护系统中加入影 子文件,将受保护文件的明文数据放入为影子文件分配的缓存空间中,并且影子文件存储 在虚拟磁盘中,虚拟磁盘对非常程序不可见,且影子文件不为非法程序所知,因此非常程序 无法通过访问影子文件得到缓存中受保护文件的明文数据,解决了在现有技术中存在合法 的程序访问受保护文件后,明文数据遗留在缓存未清除时,非法的程序可通过缓存地址对 明文数据进行访问的缺陷,具有更高的安全性。


图1为本发明具体实施例一提供的一种文件保护方法的流程图。图2为本发明具体实施例二提供的一种文件保护方法的流程图。图3为本发明具体实施例三提供的一种文件保护系统的框图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。实施例1本实施例提供了一种文件保护方法,本实施例以对在磁盘中存储的受保护文件 Encrypt, txt进行读操作为例进行说明,Encrypt, txt为存储在用户磁盘上的受保护文件, 并经过密钥加密,是以密文形式在磁盘上存储的。在用户对文件Encrypt, txt进行读取或修改操作时,需要进行解密操作,以使用 户能够在用户界面上得到明文的文件数据;在不同的操作系统中,需要相应的应用程序用以打开不同格式的文件,本实施例 以在windows XP系统中为例进行说明,在windows XP系统下对txt格式的文件进行读写 时,需要启动系统提供的程序not印ad. exe,并在系统中建立进程not印ad. exe, notepad, exe可以调用操作系统提供的接口 NtcreateFilejtReadFile等进行打开文件、建立文件、 读取文件等操作,即打开文件Encrypt, txt,需启动程序not印ad. exe ;在本实施例所提供的一种文件保护方法之前还包括,根据需要保护的文件,对操 作系统提供的合法的应用程序进行预处理,在本实施例中,Encrypt, txt为受保护文件,由 于受保护的文件为txt格式,则对应用程序not印ad. exe进行预处理,在本实施例中,优选 地,对not印ad. exe进行预处理为加壳处理,具体的为在not印ad. exe中加入代码,使得在 系统运行not印ad. exe时,先要检查主机上是否有合法的加密锁接入,如果有,则可以运行 该进程,否则,系统不能加载not印ad. exe进程;一种文件保护方法,参加图1,具体步骤如下步骤101,应用程序接收用户发出的打开受保护文件Encrypt, txt的命令;在本实施例中,具体的为,应用程序接收用户发出的读文件Encrypt, txt的命令, 其中,应用程序可能为合法应用程序或非法应用程序合法应用程序为上述经过加壳处理的程序not印ad. exe,并且有合法的加密锁接入,具有运行notepad, exe的权限;非法应用程序为未经授权访问受保护文件Encrypt, txt的程序;在本实施例中,步骤101开始前还包括启动操作系统,加载过滤驱动和虚拟磁盘 驱动,并在内存中建立虚拟磁盘,其中,过滤驱动和虚拟磁盘驱动为本发明所提供,过滤驱 动通过文件系统操作虚拟磁盘驱动,可以在虚拟磁盘中完成创建、修改、闪存文件等操作, 上述虚拟磁盘建立在内存中,可以提高读写速度,并且只对过滤驱动及过滤驱动认可的程 序可见;虚拟磁盘为在内存中模拟出一个磁盘分区,并在上面建立与磁盘存储相同的数据 存储格式,使得内存中被划分为虚拟磁盘的区域可以作为普通存储类磁盘使用。步骤102,应用程序调用操作系统上层应用接口准备打开受保护文件;在本实施例中,所述操作系统上层应用接口,为操作系统提供的用于操作文件 Encrypt, txt的接口,例如NtcreateFile、NtReadFile等,这些接口可以完成txt文件的建 立、读取等操作;步骤103,过滤驱动截取上层应用接口发送的指令,并判断应用程序是否合法,如 果不合法,执行步骤104,如果合法,则执行步骤105 ;所述过滤驱动,可以用于监控主机中对于文件系统的操作,当发生预定义的对文 件系统的操作时,执行预设的附加操作,或对预定义的对文件系统的操作进行控制。并且, 所述过滤驱动还具有判断发出打开受保护文件命令的应用程序是否合法的功能;其中,上述预定义的对文件系统的操作包括读写预设文件等,在本实施例中,预定 义的对文件系统的操作为读取受保护文件Encrypt, txt的操作;上述预设的附加操作包括,创建影子文件、对文件进行加解密、对数据进行个性化 操作等;过滤驱动判断应用程序是否合法,具体的为在对合法的应用程序进行加壳处理 时,使加壳后的应用程序向过滤驱动进行注册,过滤驱动记录合法的应用程序的注册信息, 当操作系统中存在应用程序通过调用上层应用接口发送打开受保护文件的指令时,过滤驱 动获取应用程序的信息,并判断与记录的合法应用程序的注册信息是否相符,如果相同,则 认为应用程序合法,如果不相同,则认为应用程序不合法。其中,上述注册信息包括应用程序的名称、进程ID、路径,以及应用程序的注册表
fn息等。步骤104,操作系统在磁盘上找到受保护文件Encrypt, txt,并为其分配缓存空 间,进行读取;在本步骤中,由于没有使用密钥进行解密,因此放入缓存并进行读取的文件 Encrypt, txt为密文形式;在本实施例中,本步骤还可以为返回错误,禁止非法应用程序对受保护文件 Encrypt, txt进行访问。步骤105,过滤驱动在虚拟磁盘中创建一个新文件作为受保护文件的影子文件,在 本实施例中,将受保护文件的影子文件命名为1. txt ;其中,过滤驱动创建受保护文件的影子文件具体包括步骤A,过滤驱动读取受保护文件的属性信息;
上述受保护文件的属性信息包括文件的大小、类型、创建时间等,其中受保护文件 的具体内容为加密存储,但是其属性信息可通过文件系统获得,为明文数据,过滤驱动通过 文件系统读取受保护文件的属性信息;步骤B,过滤驱动向文件系统发送在虚拟磁盘中建立1. txt的指令;步骤C,文件系统向虚拟磁盘驱动发送创建l.txt的指令,虚拟磁盘驱动建立 1. txt ;步骤D,在虚拟磁盘中为影子文件1. txt写入数据;在本实施例中,在为影子文件1. txt写入数据时包括两种方法方法1,将受保护文件Encrypt, txt的属性信息写入虚拟磁盘,作为影子文件 1. txt的属性,但是1. txt的数据为空;方法2,将受保护文件Encrypt, txt的属性信息写入虚拟磁盘,作为影子文件 1. txt的属性,同时过滤驱动将受保护文件Encrypt, txt中的数据读出,并使用与主机连接 的加密锁内存储的密钥进行解密,得到明文的数据,写入虚拟磁盘中作为影子文件l.txt 的数据;其中,在方法2中,对Encrypt, txt进行解密时,优选地以簇为单位对密文进行解 密,将Encrypt, txt中的预定部分或全部解密,得到预定部分的明文或全部的明文放入虚 拟磁盘中,作为l.txt的数据;在对受保护文件进行加解密操作时,不局限于以簇为单位进行解密,还可以以流 为单位进行解密、以字节为单位进行解密、以数据块为单位进行解密等;在过滤驱动为受保护文件Encrypt, txt创建影子文件时,影子文件的命名为随机 命名,即为影子文件随机生成一个名称,并且该名称与磁盘中所存储的其他文件名称不同, 在本实施例中,以为影子文件随机生成的名称为1. txt为例进行说明。步骤106,过滤驱动向应用程序返回影子文件1. txt的句柄;在本实施例中,认为影子文件1. txt的句柄为hltxt ;在本步骤中,还包括将引用计数值增加一个步长,优选地,将引用计数值增加1, 引用计数值记录打开的影子文件的句柄数,当未有影子文件的句柄返回时,将引用计数值 设置为初值0,当有影子文件的句柄被关闭时,将引用计数值递减一个步长。步骤107,应用程序发出根据句柄hltxt进行读操作的指令;步骤108,过滤驱动截获到根据句柄hltxt进行读操作的命令,读出磁盘中存储的 密文形式的受保护文件Encrypt, txt,并进行解密操作,将明文形式的Encrypt, txt内容读 入操作系统为1. txt分配的缓存当中;其中,过滤驱动对密文形式的Encrypt, txt进行解密操作,还包括,解密操作所使 用的密钥存储于与主机连接的加密锁中,受保护文件的加密方式可以选择对称加密或非对 称加密;将明文形式的Encrypt, txt内容读入操作系统为1. txt分配的缓存当中还包括 过滤驱动为缓存中的文件Encrypt, txt与磁盘中存储的密文的Encrypt, txt建立文件映射 关系,将磁盘中存储的受保护文件Encrypt, txt解密后分块读入缓存中,以节省缓存空间;在对受保护文件进行解密并将明文放入为影子文件分配的缓存时,可以包括如下 方法
方法一,将受保护文件的全部数据解密,并完整的放入为影子文件分配的缓存中, 这个适用于受保护文件比较小时;方法二,将受保护文件中需要访问的部分,以簇为单元进行解密,并将解密的部分 放入为影子文件分配的缓存中,这种方法适用于受保护文件比较大时,并优选地受保护文 件在进行加密保存时,以簇为单位进行加密。在本步骤中,上述描述的方法适用于步骤105中步骤D采用方法1时;在步骤D采用方法2时,步骤108还可以为过滤驱动截获到根据句柄hltxt进行读操作的指令,向文件系统发送读取影子文 件的指令,文件系统通过虚拟磁盘驱动读取影子文件1. txt中的数据,将1. txt中的数据放 入操作系统为影子文件分配的缓存中。步骤109,应用程序关闭打开的受保护文件Encrypt, txt。在本实施例中,步骤109后还可以包括过滤驱动逐一关闭打开的影子文件1. txt 的句柄,同时将引用计数值递减,每次递减后检查所述引用计数值,当引用计数值为初值0 时,删除所述影子文件。本实施例所提供的一种文件保护方法,通过在系统中安装一个过滤驱动,在合法 的应用程序访问受保护文件的过程中,首先并不打开真实的受保护文件,而是在虚拟磁盘 中建立受保护文件的影子文件,并更改为其他名称,为其分配缓存空间,再将受保护文件进 行解密操作读入缓存中,合法的应用程序通过影子文件的句柄打开受保护文件,其中,虚拟 磁盘只对合法程序可见,影子文件的句柄也只有合法程序可以得到,因此,避免了被非法恶 意程序获得句柄,而在缓存中将明文形式的受保护文件读出,因此,克服了现有技术中,当 文件读入缓存中不能进行有效保护的缺点,因此,本发明提供的一种文件保护方法具有更 好的安全性。实施例2在本实施例中,以对存储在磁盘上的受保护文件Encrypt, txt进行写操作为例进 行说明,其中,写操作包括,在原有文档Encrypt, txt的数据基础上插入新数据、编辑和修 改数据的操作;同实施例1,受保护文件Encrypt, txt加密后以密文的形式存储在磁盘上,以在 windows XP系统中为例,将用于打开文件Encrypt, txt的合法应用程序not印ad. exe进 行加壳处理,本实施例中的加壳处理具体的为在应用程序not印ad. exe中加入代码,使 得应用程序在运行时具有如下功能,在启动not印ad. exe时,检查是否有合法的加密锁接 入,当有合法的加密锁接入时,not印ad. exe可以运行,系统允许建立not印ad. exe进程,并 通过not印ad. exe对受保护文件Encrypt, txt进行写操作,当没有合法的加密锁接入时, notepad, exe不能运行;上述加密锁在接入主机时,可以提供对合法进程not印ad. exe需要的认证,并且, 在加密锁中秘密的存储有密钥,所述密钥用于对受保护文件Encrypt, txt进行加解密操 作;一种文件的保护方法,参加图2,具体的如下步骤201,应用程序接收用户发出的打开受保护文件Encrypt, txt的指令;在本实施例中,应用程序包括合法应用程序和非法应用程序;
15
合法应用程序为经过加壳处理的not印ad. exe,可将not印ad. exe与txt格式进行 关联,当用户打开文件Encrypt, txt时,notepad, exe启动,并验证是否有合法的加密锁接 入,如果有,则建立notepad, exe进程,可以通过not印ad. exe对Encrypt, txt进行操作;非法应用程序为攻击者写入,以窃取或修改受保护文件为目的的程序,不需加密 锁接入就可以启动;同实施例1,在步骤201前,还包括系统启动,加载过滤驱动和虚拟磁盘驱动,并 在内存中创建虚拟磁盘;步骤202,应用程序调用操作系统上层应用接口向文件系统发出打开受保护文件 的指令;其中,合法应用程序和非法应用程序都需要通过操作系统提供的上层接口打开受 保护文件,在Windows XP系统中,上述上层接口包括NtcreateFile、NtReadFile等;上述文件系统具体的为,操作系统通过文件系统管理磁盘上存储的文件,包括 FAT、NTFS 等。步骤203,过滤驱动截取操作系统上层接口向文件系统发出的打开受保护文件 Encrypt, txt的指令,并判断应用程序是否合法,如果不合法,执行步骤204,如果合法,则 执行步骤205 ;上述过滤驱动,可以用于监控所述主机系统中对文件系统的操作,当发生预定义 的对文件系统的操作时,执行预设的附加操作,或对预定义的对文件系统的操作进行控制, 并且,所述过滤驱动还具有判断发出打开受保护文件命令的应用程序是否合法的功能;在本实施例中,过滤驱动当截获到操作系统上层接口向文件系统发出的打开受保 护文件Encrypt, txt的指令时,可以挂起该命令,在对应用程序判断后,根据判断结果执行 相应的命令;其中,过滤驱动判断应用程序是否合法,具体的为在对合法的应用程序进行加壳 处理时,使加壳后的应用程序向过滤驱动进行注册,过滤驱动记录合法的应用程序的注册 信息,当操作系统中发现应用程序通过调用上层应用接口发送访问受保护文件的指令时, 过滤驱动获取应用程序的信息,并判断与记录的合法应用程序的注册信息是否相同,如果 相同,则认为应用程序合法,如果不相同,则认为应用程序不合法;上述注册信息包括应用程序的名称、进程ID、路径,以及应用程序的注册表信息寸。步骤204,操作系统通过文件系统打开文件Encrypt, txt,文件为密文形式;当步骤203中,过滤驱动判断应用程序为非法应用程序时,则通过文件系统打开 文件Encrypt, txt,将磁盘中存储的Encrypt, txt数据加载入缓存,系统为其分配缓存地址 并返回句柄,由于未进行解密操作,所显示的文件内容为密文;在本步骤后,还可以包括非法应用程序通过操作系统上层接口发送对文件 Encrypt, txt进行写操作的指令,上层接口向文件系统发出写数据的指令,过滤系统截获该 指令,禁止执行,并返回非法修改的错误。步骤205,过滤驱动创建一个新文件作为受保护文件的影子文件,在本实施例中, 将受保护文件的影子文件命名为1. txt ;其中,过滤驱动创建受保护文件的影子文件的过程与实施例1中步骤105中相同,这里不再赘述;步骤206,过滤驱动向合法的应用程序返回1. txt的句柄hltxt,打开文件受保护 文件;在本实施例中,具体的打开文件Encrypt, txt并得到明文数据的操作包括206a,过滤驱动返回1. txt的句柄hltxt ;206b,应用程序发出根据句柄hltxt读文件的指令;206c,过滤驱动读出受保护文件Encrypt, txt的数据,并进行解密操作,将明文形 式的Encrypt, txt内容放入操作系统为1. txt分配的缓存中,并建立文件映射关系;其中,步骤206c也可以为,过滤驱动从虚拟磁盘中读取影子文件l.txt的内容, 1. txt中存储的为受保护文件Encrypt, txt的明文数据;过滤驱动对密文形式的Encrypt, txt进行解密操作,具体地,解密操作所使用的 密钥存储于与主机连接的加密锁中,受保护文件的加密方式可以选择对称加密或非对称加 密;过滤驱动向合法的应用程序返回1. txt的句柄hltxt后,还可以包括过滤驱动将 引用计数值增加1。步骤207,应用程序发出根据句柄对向受保护文件Encrypt, txt指定位置进行写 操作的指令,并进行写操作;在本步骤中,对文件Encrypt, txt的写操作在缓存中完成,即修改的为缓存中存 储的Encrypt, txt中的数据;其中,所述写操作包括对原受保护文件的写入新数据、删除、替换、修改、编辑等操 作。步骤208,写操作结束,过滤驱动对缓存中的明文Encrypt, txt内容进行加密操作 并保存,得到修改后的受保护文件Encrypt, txt ;在本实施例中,过滤驱动对缓存中的明文Encrypt, txt内容进行加密操作并保 存,得到修改后的受保护文件Encrypt, txt,具体的包括如下方法方法一,在步骤206c中,将Encrypt, txt的明文完整的读入缓存中,以供用户在缓 存中对Encrypt, txt进行写操作,当写操作结束后,使用存储于缓存中的Encrypt, txt完整 覆盖存储于磁盘中的原受保护文件Encrypt, txt,得到修改后的受保护文件Encrypt, txt ;方法二,在对受保护文件进行加解密操作时,以簇为单位进行加解密操作,其中, 簇为磁盘存储介质的最小存储单元。在步骤206c中,将需要操作的Encrypt, txt文件部 分读入缓存中,在缓存中完成写操作后,以簇为单位对数据进行加密操作,将磁盘中存储的 Encrypt, txt文件中被修改的簇进行替换,并由文件系统为增加的数据部分分配新簇进行 存储,当簇中数据在文件Encrypt, txt中的位置发生改变时,文件系统记录簇的顺序,得到 修改后的受保护文件Encrypt, txt ;当步骤206c为过滤驱动从虚拟磁盘中读取影子文件l.txt的内容时,使用方 法三应用程序在缓存中完成对明文的Encrypt, txt的修改,并对虚拟磁盘中存储的 Encrypt, txt进行修改,当写操作完成后,将虚拟磁盘中明文的Encrypt, txt以簇为单位进 行加密,替换磁盘中存储的密文Encrypt, txt ;在本实施例中,步骤208后还可以包括过滤驱动逐一关闭打开的影子文件1. txt的句柄,同时将引用计数值递减,每次递减后检查所述引用计数值,当引用计数值为初值0 时,删除所述影子文件。本实施例所提供的文件保护方法,通过在内存中建立虚拟磁盘,并在虚拟磁盘中 建立影子文件的方法,克服了传统技术中的将受保护文件解密到缓存中,容易暴漏受保护 文件的缺点,在本发明中,所有的读写操作均是对影子文件进行的,并且虚拟磁盘只是合法 的应用程序可见,大大提高了文件数据的安全性。实施例3本实施例提供了一种文件保护系统,参加图2,上述一种文件保护系统包括,文件 保护驱动1和加密锁2 ;其中,文件保护驱动1包括应用程序模块11、上层接口模块12、过滤驱动模块 13、文件系统模块14、虚拟磁盘驱动模块15。具体地应用程序模块11,用于通过调用上层接口模块12打开存储在磁盘中的受保护文 件,并通过12上层接口模块发出根据句柄进行读操作和写操作的指令;进一步地,应用程序模块11包括验证单元111,用于在应用程序模块11启动时,验证主机是否连接有合法的加密 锁,如果有,所应用程序模块11可以启动,否则,应用程序模块11不能启动;打开单元112,用于在接收到用户发送的打开受保护文件的指令时,向上层接口模 块12发出打开受保护文件的指令,并在接收到所述影子文件的句柄时,根据上述句柄访问 受保护文件;读写单元113,用于在接收到操作系统返回的影子文件的句柄后,根据上述句柄发 出读和写操作的指令。上层接口模块12,用于接收应用程序模块11发出的对文件操作的指令,并通过操 作文件系统模块14完成文件的打开、读、写、关闭的操作;;过滤驱动模块13,用于监控主机中对于文件系统模块14的操作,当发现预定义的 对文件系统模块14的操作时,执行预设的附加操作,对上述预定义的对文件系统模块14的 操作进行控制;在本实施例中,优选地,上述预设的附加操作具体的为,创建影子文件、对文件进 行加解密、对数据进行个性化操作等;进一步地,过滤驱动模块13,具体的包括过滤单元131、判断单元132、解密单元 133、影子文件创建单元134;过滤单元131,用于监控上层接口模块12是否有打开受保护文件的操作,当存在 打开受保护文件的操作时,执行预设的附加操作;判断单元132,用于在过滤单元131截获预设的对文件系统模块14的操作时,判断 打开受保护文件的应用程序是否合法,如果合法,则向文件系统模块14发出创建影子文件 的指令,如果不合法,则直接打开受保护文件,打开受保护文件时,不进行解密操作,其中, 预设的对文件系统模块14的操作指的是对受保护文件的打开、读、写操作;解密单元133,用于当接收到上层接口模块12发送根据句柄对文件进行读或写操 作的指令时,向文件系统模块14发出读取受保护文件的命令,并将读出的密文形式的受保
18护文件进行解密操作,得到明文的受保护文件,放入操作系统为上述影子文件分配的缓存 中;影子文件创建单元134,用于向文件系统模块14发送创建影子文件的指令,并为 该影子文件随机命名。文件系统模块14,用于管理磁盘中存储的文件,可以在磁盘中完成建立文件,索引 文件,读取文件,修改文件的操作;虚拟磁盘驱动模块15,用于当接收到过滤驱动模块13通过文件系统模块14发出 的创建受保护文件的影子文件的指令后,在虚拟磁盘中建立影子文件,当影子文件建立完 成后,操作系统向应用程序模块11返回上述影子文件的句柄;加密锁2包括验证模块21和密钥存储模块22 ;验证模块21,用于在应用程序模块11启动时,辅助验证是否有加密锁连接在主机 中,如果有,则应用程序模块11可以启动,否则,应用程序模块11不能启动。密钥存储模块22,用于在过滤驱动模块14对受保护文件进行加解密操作时,提供 加解密操作的密钥;在虚拟磁盘中建立影子文件具体的为过滤驱动模块13通过文件系统模块14读取所述受保护文件的属性信息,在虚 拟磁盘中创建所述影子文件,并写入所述受保护文件的属性信息,所述影子文件的数据为 空;或,过滤驱动模块13通过文件系统模块14读取受保护文件,并使用加密锁2中存储 的密钥对受保护文件进行解密,得到明文,将明文放入上述虚拟磁盘中,作为影子文件;其中,当影子文件的数据为空时,应用程序模块11根据句柄发出读操作的指令 后,还包括过滤驱动模块13截获应用程序模块11发出的根据上述句柄进行读操作的指令, 从磁盘中读取受保护文件的预定部分或全部,使用加密锁2内部存储的密钥对受保护文件 的预定部分或全部进行解密操作,得到受保护文件的预定部分的明文或全部明文,操作系 统为影子文件分配缓存空间,并将预定部分的明文或全部明文放入操作系统为上述影子文 件分配的缓存空间,建立文件映射关系;应用程序模块11根据上述句柄发出读操作的指令后,还包括所述过滤驱动模块截获所述应用程序发出的根据所述句柄对文件进行读的指令, 向文件系统模块14发送根据上述句柄进行读操作的指令,并通过所述虚拟磁盘模块在所 述虚拟磁盘中读取影子文件,操作系统为上述影子文件分配缓存空间,并将所述虚拟磁盘 中的明文放入操作系统为上述影子文件分配的缓存空间,完成对受保护文件的读操作;过滤驱动模块13使用加密锁2内部存储的密钥对受保护文件的预定部分或全部 进行解密操作,具体的为过滤驱动模块13使用加密锁2内部存储的密钥以簇为单位对受保护文件的预定 部分或全部进行解密操作;在本实施例中,过滤驱动模块13还包括加密单元135,加密单元135用于当将预定部分的明文放入操作系统为上述影子文件分配的缓存空间时,加密单元135将经过应用程序模块11写操作修改的受保护文件的明文以簇为单位进行加密,并通过 文件系统模块14对磁盘中存储的受保护文件进行修改;或,当将全部明文放入操作系统为上述影子文件分配的缓存空间时,加密单元135将 经过应用程序模块11写操作修改的受保护文件的明文以簇为单位进行加密,覆盖磁盘中 存储的受保护文件。在本实施例中,过滤驱动模块13还可以包括引用计数单元136,引用计数单元136 用于记录影子文件的句柄数,当准备打开受保护文件并且未返回所述影子文件的句柄 时,所述引用计数单元136的计数值为初值,每返回一个上述影子文件的句柄,引用计数值 增加一个步长,每关闭一个上述影子文件的句柄,引用计数值递减一个步长,当引用计数值 递减为初值时,删除所述影子文件。本实施例所提供的系统,与实施例1、2所提供的方法相对应,并互做补充,在系统 中可以体现方法,并由方法可以推断得出系统。在本发明所提供的实施例中,所提供的各种操作及顺序仅为最优情况,在实际的 使用中并不一定严格按照上述实施例提供的操作顺序进行实施,并且文件名称等可以进行 协定的变化只要按照本发明所提供的方法以及通过本发明所提供的方法进行的没有创造 性的变换进行的实施均应该属于本发明的保护范围。以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则 之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种文件保护方法,其特征在于,所述方法包括应用程序接收用户发出的对受保护文件进行操作的指令,所述受保护文件为经过加密并以密文形式保存在磁盘中的文件,所述对受保护文件进行操作的指令包括打开、读、写、关闭所述受保护文件的指令;接收到所述打开所述受保护文件的指令之后,打开所述受保护文件的操作包括所述应用程序调用操作系统的上层接口,所述上层接口向文件系统发出打开所述受保护文件的指令;过滤驱动截获所述上层接口向文件系统发出的打开所述受保护文件的指令,并判断所述应用程序是否为合法应用程序;如果合法,所述过滤驱动读取受保护文件的属性信息,向所述文件系统发出在虚拟磁盘中创建所述受保护文件的影子文件的指令,所述文件系统通过虚拟磁盘驱动在所述虚拟磁盘中创建所述影子文件,所述操作系统向所述应用程序返回所述影子文件的句柄,引用计数值增加一个步长;其中,在所述虚拟磁盘中创建影子文件包括所述过滤驱动通过所述文件系统读取所述受保护文件的属性信息,在所述虚拟磁盘中创建所述影子文件,为所述影子文件随机命名,并写入所述受保护文件的属性信息,所述影子文件的数据为空;或,所述过滤驱动通过所述文件系统读取所述受保护文件,并使用与主机连接的加密锁中存储的密钥对所述受保护文件进行解密,得到明文,将明文放入所述虚拟磁盘中作为影子文件的数据,并为所述影子文件随机命名,作为所述影子文件;接收到所述读所述受保护文件的指令之后,读所述受保护文件的操作包括所述应用程序发出根据所述句柄对文件进行读的指令;当所述影子文件的数据为空时,所述过滤驱动截获所述应用程序发出的根据所述句柄对文件进行读的指令,从磁盘中读取所述受保护文件的预定部分或全部,使用与所述主机连接的加密锁内存储的密钥对所述受保护文件的预定部分或全部进行解密,得到所述受保护文件的预定部分的明文或全部明文,所述操作系统为所述影子文件分配缓存空间,并将所述预定部分的明文或全部明文放入所述操作系统为所述影子文件分配的缓存空间中,建立文件映射关系,所述应用程序完成对所述受保护文件的读操作;当所述影子文件中的数据为受保护文件的明文时,所述过滤驱动截获所述应用程序发出的根据所述句柄对文件进行读的指令,通过所述虚拟磁盘驱动在所述虚拟磁盘中读取所述影子文件,所述操作系统为所述影子文件分配缓存空间,并将所述虚拟磁盘中的明文放入所述操作系统为所述影子文件分配的缓存空间中,所述应用程序完成对所述受保护文件的读操作;接收到所述写所述受保护文件的指令之后,写所述受保护文件的操作包括所述应用程序发出根据所述句柄对文件进行写操作的指令;所述应用程序在所述操作系统为所述影子文件分配的缓存中完成对所述明文的受保护文件的写操作,所述写操作包括对所述受保护文件的插入新数据、修改、替换、编辑;所述过滤驱动对所述修改后的受保护文件进行加密操作并保存;接收到所述关闭所述受保护文件的指令之后,关闭所述受保护文件的操作包括所述过滤驱动逐一关闭打开的所述影子文件的句柄,将所述引用计数值递减,递减后检查所述引用计数值,当所述引用计数值为初值时,删除所述影子文件。
2.如权利要求1所述的方法,其特征在于,所述应用程序接收用户发出的打开所述受 保护文件的指令前,所述方法还包括所述操作系统启动,再自动加载所述过滤驱动、所述虚拟磁盘驱动,并在内存中创建所 述虚拟磁盘。
3.如权利要求1所述的方法,其特征在于,当判断所述应用程序为不合法时,所述方法 还包括所述上层接口通过所述文件系统找到所述受保护文件,所述操作系统为所述受保护文 件分配缓存,并将所述受保护文件读入缓存,所述读入缓存中的受保护文件为密文形式;或,向所述应用程序返回错误,非法应用程序禁止访问所述受保护文件。
4.如权利要求1所述的方法,其特征在于,所述过滤驱动使用与所述主机连接的加密 锁内存储的密钥对所述受保护文件的预定部分或全部进行解密,具体的为所述过滤驱动使用与所述主机连接的加密锁内存储的密钥以簇为单位对所述受保护 文件的预定部分或全部进行解密。
5.如权利要求4所述的方法,其特征在于,当所述将预定部分的明文放入所述操作系 统为所述影子文件分配的缓存空间时,所述过滤驱动对所述修改后的受保护文件进行加密 操作并保存,具体的包括所述过滤驱动将所述修改后的受保护文件的明文以簇为单位使用与所述主机连接的 加密锁内存储的密钥进行加密,并通过所述文件系统对磁盘中存储所述受保护文件的簇进 行修改。
6.如权利要求4所述的方法,其特征在于,当所述将全部明文放入所述操作系统为所 述影子文件分配的缓存空间时,所述过滤驱动对所述修改后的受保护文件进行加密操作并 保存,具体的包括所述过滤驱动将完整的所述修改后的受保护文件使用与所述主机连接的加密锁内存 储的密钥进行加密,覆盖所述磁盘中存储的所述受保护文件。
7.如权利要求1所述的方法,其特征在于,所述上层接口为,所述操作系统提供的供所 述应用程序调用,为所述应用程序提供创建、打开、读取文件操作的功能的接口。
8.如权利要求1所述的方法,其特征在于,所述过滤驱动判断所述应用程序是否合法, 具体的包括在进行文件保护前,使合法的应用程序向所述过滤驱动进行注册,过滤驱动记录所述 合法的应用程序的注册信息,当存在应用程序通过调用上层接口发送访问受保护文件的指 令时,过滤驱动获取应用程序的信息,并判断与记录的合法应用程序的注册信息是否相同, 如果相同,则认为应用程序合法,如果不相同,则认为应用程序不合法,所述注册信息包括 所述合法的应用程序的名称、进程ID、路径,以及应用程序的注册表信息。
9.如权利要求1所述的方法,其特征在于,所述应用程序接收用户发出的打开受保护 文件的指令前,还包括对所述应用程序进行加壳处理,使得所述加壳后的应用程序在启动时判断是否有合法的加密锁接入,如果有,则所述应用程序可以启动,否则,所述应用程序不能启动。
10.如权利要求1所述的方法,其特征在于,所述引用计数值用于记录所述影子文件的 句柄数,当未返回所述影子文件的句柄时,所述引用计数值为初值,每返回一个所述影子文 件的句柄,所述引用计数值增加一个步长,每关闭一个所述影子文件的句柄,所述引用计数 值递减一个步长。
11.一种文件保护系统,其特征在于,所述系统包括文件保护驱动和加密锁所述文件保护驱动包括应用程序模块、上层接口模块、过滤驱动模块、文件系统模块、 虚拟磁盘驱动模块;所述应用程序模块,用于通过调用所述上层接口模块打开存储在磁盘中的受保护文 件,并通过所述上层接口模块发出根据句柄对文件进行读操作和写操作的指令;所述上层接口模块,用于接收所述应用程序模块发出的对文件操作的指令,并通过操 作所述文件系统模块完成文件的打开、读、写、关闭的操作;所述过滤驱动模块,用于监控主机中对所述文件系统模块的操作,当发现预定义的对 所述文件系统模块的操作时,执行预设的附加操作,对所述预定义的对所述文件系统模块 的操作进行控制;所述文件系统模块,用于管理磁盘中存储的文件,可以在磁盘中完成建立文件,索引文 件,读取文件,修改文件的操作;所述虚拟磁盘驱动模块,用于当接收到所述过滤驱动模块通过所述文件系统模块发出 的创建所述受保护文件的影子文件的指令后,在虚拟磁盘中建立影子文件,当所述影子文 件建立完成后,操作系统向所述应用程序模块返回所述影子文件的句柄; 所述加密锁包括验证模块和密钥存储模块;所述验证模块,用于在所述应用程序模块启动时,辅助验证是否有加密锁连接在主机 中,如果有,则所述应用程序模块可以启动,否则,所述应用程序模块不能启动。所述密钥存储模块,用于在所述过滤驱动模块对受保护文件进行加解密操作时,提供 加解密操作的密钥。
12.如权利要求11所述的系统,其特征在于,所述应用程序模块包括验证单元、打开单 元、读写单元所述验证单元,用于在所述应用程序模块启动时,验证主机是否连接有合法的加密锁, 如果有,所述应用程序模块可以启动,否则,所述应用程序模块不能启动;所述打开单元,用于在接收到所述用户发送的打开受保护文件的指令时,向所述上层 接口模块发出打开所述受保护文件的指令,并在接收到所述影子文件的句柄时,根据所述 句柄打开受保护文件;所述读写单元,用于在接收到所述操作系统返回的所述影子文件的句柄后,根据所述 句柄发出读写操作的指令。
13.如权利要求11所述的系统,其特征在于,所述过滤驱动模块,具体的包括过滤单 元、判断单元、解密单元、影子文件创建单元;所述过滤单元,用于监控所述上层接口模块是否有打开所述受保护文件的操作,当存 在打开所述受保护文件的操作时,执行预设的附加操作;所述判断单元,用于在所述过滤单元截获预设的对所述文件系统模块的操作时,判断打开受保护文件的应用程序是否合法,如果合法,则向所述文件系统模块发出创建影子文 件的指令,如果不合法,则直接打开所述受保护文件,打开所述受保护文件时,不进行解密 操作;所述解密单元,用于当接收到所述上层接口模块发送的根据所述句柄读或写所述影子 文件的指令时,向所述文件系统模块发出读取受保护文件的命令,并将读出的密文形式的 所述受保护文件进行解密操作,得到明文形式的受保护文件,放入操作系统为所述影子文 件分配的缓存中;所述影子文件创建单元,用于向所述文件系统模块发送创建影子文件的指令,并为所 述影子文件随机命名。
14.如权利要求13所述的系统,其特征在于,所述预设的附加操作具体的为,创建影子 文件、对文件进行加解密、对数据进行个性化操作。
15.如权利要求13所述的系统,其特征在于,所述文件系统模块还用于,当接收到所述 影子创建单元发送的创建影子文件的指令时,向所述虚拟磁盘驱动模块发送创建影子文件 的指令。
16.如权利要求11所述的系统,其特征在于,所述在虚拟磁盘中建立影子文件具体的为所述过滤驱动模块通过所述文件系统模块读取所述受保护文件的属性信息,在所述虚 拟磁盘中创建所述影子文件,并写入所述受保护文件的属性信息,所述影子文件的数据为空。
17.如权利要求11所述的系统,其特征在于,所述在虚拟磁盘中建立影子文件还具体 的为所述过滤驱动模块通过所述文件系统模块读取所述受保护文件,并使用所述加密锁中 存储的密钥对所述受保护文件进行解密,得到明文,将所述明文放入所述虚拟磁盘中,作为 所述影子文件。
18.如权利要求16所述的系统,其特征在于,当所述影子文件的数据为空时,所述应用 程序模块发出根据所述句柄对文件进行读操作的指令后,还包括所述过滤驱动模块截获所述应用程序模块发出的根据所述句柄对文件进行读的指令, 从磁盘中读取所述受保护文件的预定部分或全部,使用所述加密锁内部存储的密钥对所述 受保护文件的预定部分或全部进行解密操作,得到所述受保护文件的预定部分的明文或全 部明文,所述操作系统为所述影子文件分配缓存空间,并将所述预定部分的明文或全部明 文放入所述操作系统为所述影子文件分配的缓存空间,建立文件映射关系。
19.如权利要求17所述的系统,其特征在于,所述应用程序模块发出根据所述句柄对 文件读操作的指令后,还包括所述过滤驱动模块截获所述应用程序发出的根据所述句柄对文件进行读的指令,向所 述文件系统模块发送根据所述句柄对文件进行读的指令,并通过所述虚拟磁盘模块在所述 虚拟磁盘中读取所述影子文件,所述操作系统为所述影子文件分配缓存空间,并将所述虚 拟磁盘中的明文放入所述操作系统为所述影子文件分配的缓存空间,完成对所述受保护文 件的读操作。
20.如权利要求18所述的系统,其特征在于,所述过滤驱动模块使用所述加密锁内部存储的密钥对所述受保护文件的预定部分或全部进行解密操作,具体的为所述过滤驱动模块使用所述加密锁内部存储的密钥以簇为单位对所述受保护文件的 预定部分或全部进行解密操作。
21.如权利要求18所述的系统,其特征在于,所述过滤驱动模块还包括加密单元,所述 加密单元用于当所述将预定部分的明文放入所述操作系统为所述影子文件分配的缓存空间时,所述 加密单元将经过所述应用程序模块写操作修改的所述受保护文件的明文以簇为单位进行 加密,并通过所述文件系统模块对磁盘中存储的所述受保护文件进行修改;或,当所述将全部明文放入所述操作系统为所述影子文件分配的缓存空间时,所述加密单 元将经过所述应用程序模块写操作修改的所述受保护文件的明文以簇为单位进行加密,覆 盖磁盘中存储的所述受保护文件。
22.如权利要求18所述的系统,其特征在于,所述过滤驱动模块还包括引用计数单元, 所述引用计数单元用于记录所述影子文件的句柄数,当未返回所述影子文件的句柄时,所述引用计数单元的 计数值为初值,每返回一个所述影子文件的句柄,所述引用计数值增加一个步长,每关闭一 个所述影子文件的句柄,所述引用计数值递减一个步长,当所述引用计数值递减为初值时, 删除所述影子文件。
全文摘要
本发明公开了一种文件保护方法和系统,属于信息安全领域。该方法包括应用程序接收用户发出的打开受保护文件的指令,所述应用程序调用操作系统的上层接口,所述上层接口向文件系统发出打开所述受保护文件的指令,过滤驱动截获所述上层接口向文件系统发出打开所述受保护文件的指令,如果判断得到所述应用程序合法,则所述过滤驱动为所述受保护文件在虚拟磁盘中创建影子文件,并返回影子文件的句柄,通过该句柄对受保护文件进行读写操作,克服了传统技术中缓存中的明文受保护文件容易泄露的缺点。
文档编号G06F21/62GK101853363SQ20101017205
公开日2010年10月6日 申请日期2010年5月7日 优先权日2010年5月7日
发明者于华章, 陆舟 申请人:北京飞天诚信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1