SubDirl\Sample.ext,或者
[0084]K:\__@BFiles\〈ImageID>\SSubDirl\Sample.ext,取决于程序进程是非受信进程还是受?目进程。
[0085]在进行重定向时,文件重定向过滤器驱动采用实施例一中给出的方案之一判断一个文件打开或创建操作所针对的文件是普通文件还是文件目录。
[0086]对于一个程序进程针对安全文件盘或安全文件目中的一个文件目录进行的打开或创建操作,不进行重定向,或者重定向到用户空间文件系统所对应文件盘或文件目录中的对应主像文件目录。
[0087]文件重定向过滤器驱动对用户空间文件系统的FUSE用户空间进程打开或创建安全文件盘或安全文件目录中的文件(即原文件)和文件目录(即原文件目录)的操作不进行重定向,对FUSE用户空间进程针对安全文件盘或安全文件目录中的已打开或创建的文件和文件目录所进行的文件I/O操作也不干预(即让文件I/O操作传递下去)。
[0088]实施例二中的用户空间文件系统除了不实施文件重定向功能外,按实施例一的实施方式实施本发明规定的其他功能。
[0089]实施例三、基于文件过滤器驱动和多像文件的网络文件透明加密系统
[0090]如图4所示,利用本发明结合文件过滤器驱动在现有网络文件系统的基础上构建一个网络文件透明加密系统,其中,在用户计算机上安装实施一个文件重定向与加密过滤器驱动,在网络文件服务器上安装实施一个文件重定向过滤器驱动。通过文件重定向与加密过滤器驱动、重定向过滤器驱动,网络文件服务器上的每个文件(原文件)在用户计算上的对应网络文件盘(比如K盘)中对应三种文件映像:主像文件、A像文件和B像文件,其中,主像文件的文件路径就是未安装实施文件重定向与加密过滤器驱动、重定向过滤器驱动时,网络文件在用户计算机上的文件路径;A像文件和B像文件的文件路径可采用实施例一同样的方案。用户计算机上的文件重定向与加密过滤器驱动负责实施受信进程和非受信进程判别、文件重定向、文件数据是明文还是密文的判别、文件数据加密和解密处理,其中,文件重定向功能将程序进程针对网络文件盘中主像文件的打开或创建操作重定向到A像文件或B像文件;网络文件服务器上的文件重定向过滤器驱动,负责将针对A像文件或B像文件的文件打开或创建操作重定向到A像文件或B像文件对应的原文件(在网络文件服务器上,主像文件直接对应原文件,因此,无需再重定向)。
[0091]对于一个程序进程打开或创建网络文件盘中的一个主像文件目录的操作,文件重定向与加密过滤器驱动、文件重定向过滤器驱动不进行重定向。
[0092]对用户计算机中A像文件和B像文件在内存中的文件控制块中的文件信息和缓存数据的同步操作处理,可按如下方案实施(参见专利申请“一种基于双像文件的加密文件系统,,,专利申请号:201510690514.9):
[0093]当用户计算机中的一个程序进程对一个A像文件或B像文件进行了文件信息修改的操作后,文件重定向与加密过滤器驱动通知文件同步进程(图中未画)进行文件信息同步操作;文件同步进程依次打开或创建需要进行内存中的文件信息同步的A像文件和B像文件,然后进行文件信息修改(设置)操作;
[0094]当用户计算机中的一个程序进程对一个A像文件或B像文件进行了文件数据存写的操作后,文件重定向与加密过滤器驱动通知文件同步进程进行缓存数据同步操作;文件同步进程依次打开或创建需要进行缓存数据同步的A像文件和B像文件,向打开或创建的A像文件和B像文件存写一块数据(比如随机字串);文件重定向与加密过滤器驱动拦截到文件同步进程向A像文件或B像文件存写数据的操作请求后,调用缓存管理函数(如WindowsCache Manager的函数)(通过文件对象)清空文件缓存,之后不将存写数据的操作请求向下传递,而是直接返回操作成功。
[0095]在进行文件重定向时,文件重定向与加密过滤器驱动采用实施例一中给出的方案之一判断一个打开或创建操作所针对的文件对象是普通文件还是文件目录。
[0096]需指出的是,只要将用户计算机中的网络文件盘设置为安全文件盘,则利用实施例二同样可实现网络文件的透明加密。
[0097]以上实施例一、二涉及用户空间文件系统的开发实施,这目前已是成熟的技术,且目前已有很多针对不同的操作系统的用户空间文件系统框架,可在此基础上开发。
[0098]以上实施例二、三涉及文件过滤器驱动的开发实施。若用户计算机的操作系统是Windows系统,则文件过滤器驱动的开发可以采用Windows文件过滤器驱动(filterdriver)或微过滤器驱动(min1-filter driver)技术开发。利用Windows文件过滤器驱动或微过滤器驱动进行受信进程和非受信进程判断已是成熟的技术,在此不多叙述。
[00"] 对于文件重定向,若是Windows系统,则可以采用Windows文件系统的reparsepoint功能(参见WDK的simrep.c代码)。
[0100]若用户计算机的操作系统是其他系统,则可以采用对应的技术开发。
[0101]另外,在以上三个实施例中,或者由用户空间文件系统、或者由文件过滤器驱动对重定向后的文件的重命名(rename)进行专门处理,以确保对重定向后的文件的重命名操作能正确执行和处理。
[0102]其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
【主权项】
1.一种基于多像文件的加密文件系统,其特征是: 所述加密文件系统中存储管理的每个文件是加密的文件;所述加密文件系统在计算机系统中对应一个文件盘或文件目录;所述加密文件系统中存储管理的每个文件在加密文件系统所对应的文件盘或文件目录中有多个文件映像:一个主像文件,多个A像文件以及一个B像文件,其中,主像文件是程序进程进行文件I/O操作直接针对的文件;主像文件、A像文件和B像文件在加密文件系统中的对应文件称为主像文件、A像文件和B像文件对应的原文件;主像文件、A像文件和B像文件与对应的原文件具有一样的文件名和文件类型;所述加密文件系统中的一个文件所对应的A像文件的个数没有限制; 所述加密文件系统中存储管理的每个文件目录在加密文件系统所对应的文件盘或文件目录中同样有多个文件目录映像:一个主像文件目录,一个A像文件目录以及一个B像文件目录;主像文件目录、A像文件目录和B像文件目录在加密文件系统中的对应文件目录称为主像文件目录、A像文件目录和B像文件目录所对应的原文件目录; 对所述加密文件系统中的加密文件进行文件I/O操作的程序进程包括受信进程、非受信进程和操作系统辅助文件I/O操作的系统进程;所述受信进程是操作系统辅助文件I/O操作的系统进程以外的被允许获取加密文件的明文数据的程序进程;所述非受信进程是操作系统辅助文件I/O操作的系统进程以外的不被允许取加密文件的明文数据的程序进程;受信进程和非受信进程针对文件类型而设定;操作系统辅助文件I/O操作的系统进程不属于任一种文件类型的受信进程和非受信进程;当操作系统辅助文件I/O操作的系统进程辅助一个非受信进程对一个对应文件类型的加密文件进行文件I/O操作时,操作系统辅助文件I/o操作的系统进程不被允许获取加密文件的明文数据;当操作系统辅助文件I/O操作的系统进程辅助一个受信进程对一个对应文件类型的加密文件进行文件I/O操作时,操作系统辅助文件I/o操作的系统进程被允许获取加密文件的明文数据; 非受信进程仅被允许对对应文件类型的原文件所对应的A像文件进行文件I/O操作;受信进程仅被允许对对应文件类型的原文件所对应的B像文件进行文件I/O操作;操作系统辅助文件I/O操作的系统进程被允许对任一种文件类型的原文件的A像文件和B像文件进行文件I/O操作; 当一个非受信进程对加密文件系统所对应的文件盘或文件目录中的一个对应文件类型的主像文件进行文件打开或创建操作时,所述加密文件系统将非受信进程的文件打开或创建操作重定向到主像文件所对应的原文件的一个A像文件;不同非受信进程重针对同一个主像文件进行的文件打开或创建操作经重定向后的A像文件各不相同; 当接收到一个非受信进程对一个对应文件类型的A像文件进行文件打开或创建操作的请求后,所述加密文件系统将针对A像文件的文件打开或创建操作转化成针对A像文件的对应原文件的文件打开或创建操作; 当接收到一个程序进程对一个已打开或创建的A像文件进行文件I/O操作的请求后,所述加密文件系统将针对A像文件的文件I/O操作转化成针对A像文件的对应原文件的文件I/O操作;特别地:当针对A像文件的文件I/O操作是数据存写操作时,若所述加密文件系统检查发现要存写的数据是明文数据,则所述加密文件系统先将明文数据加密后再存写到A像文件的对应原文件; 当一个受信进程对加密文件系统所对应的文件盘或文件目录中的一个对应文件类型的主像文件进行文件打开或创建操作时,所述加密文件系统将受信进程的文件打开或创建操作重定向到主像文件所对应的原文件的B像文件; 当接收到一个受信进程对一个对应文件类型的B像文件进行文件打开或创建操作的请求后,所述加密文件系统将针对B像文件的文件打开或创建操作转化成针对B像文件的对应原文件的文件打开或创建操作; 当接收到一个程序进程对一个已打开或创建的B像文件进行文件I/O操作的请求后,所述加密文件系统将针对B像文件的文件I/O操作转化成针对B像文件的对应原文件的文件I/O操作;特别地:当针对B像文件的文件I/O操作是读取数据时,所述加密文件系统将从B像文件对应的原文件读取的加密数据解密成明文数据后再返回;当针对B像文件的文件I/O操作是存写数据时,所述加密文件系统将要存写的明文数据加密后再存写到B像文件对应的原文件; 当一个程序进程对加密文件系统所对应的文件盘或文件目录中的一个主像文件目录进行文件目录打开或创建操作时,所述加密文件系统不将针对主像文件目录的打开或创建操作进行重定向,直接将程序进程针对主像文件目录的文件目录I/O操作转化成针对主像文件目录的对应原文件目录的文件目录I/O操作; 或者,当一个程序进程对加密文件系统所对应的文件盘或文件目录中的一个主像文件目录进行文件目录打开或创建操作时,所述加密文件系统将程序进程打开或创建主像文件目录的操作重定向到要打开或创建的主像文件目录所对应的原文件目录的A像文件目录或B像文件目录,之后将程序进程针对A像文件目录或B像文件目录的文件目录I/O操作转化成针对A像文件目录或B像文件目录的对应原文件目录的文件目录I/O操作。2.根据权利要求1所述的基于多像文件的加密文件系统,其特征是: 若所述加密文件系统引入一个文件过滤器驱动,则所述加密文