CN105574431B - 一种基于多像文件的加密文件系统 - Google Patents

一种基于多像文件的加密文件系统 Download PDF

Info

Publication number
CN105574431B
CN105574431B CN201510917010.6A CN201510917010A CN105574431B CN 105574431 B CN105574431 B CN 105574431B CN 201510917010 A CN201510917010 A CN 201510917010A CN 105574431 B CN105574431 B CN 105574431B
Authority
CN
China
Prior art keywords
file
directory
encrypted
data
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510917010.6A
Other languages
English (en)
Other versions
CN105574431A (zh
Inventor
龙毅宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN201510917010.6A priority Critical patent/CN105574431B/zh
Publication of CN105574431A publication Critical patent/CN105574431A/zh
Application granted granted Critical
Publication of CN105574431B publication Critical patent/CN105574431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

本发明涉及一种基于多像文件的加密文件系统,所述加密文件系统中的每个文件有多个文件映像:一个主像文件,多个A像文件以及一个B像文件;当一个非受信进程打开或创建一个主像文件时,文件打开或创建操作被重定向到一个对应A像文件,且不同非受信进程针对同一个主像文件重定向后的A像文件不相同;当一个受信进程打开或创建一个主像文件时,文件打开或创建操作被重定向到对应B像文件;加密文件系统将针对A像文件和B像文件的I/O操作转化为针对对应原文件的操作,并在操作过程中自动进行文件加密、解密处理;本发明不但避免了受信进程和非受信进程的缓存数据混合,而且避免非受信进程间由于数据存写操作而可能出现的明文数据泄露。

Description

一种基于多像文件的加密文件系统
技术领域
本发明属于信息安全技术领域,特别是一种基于多像文件的加密文件系统。
背景技术
透明文件加密系统能在不改变用户使用习惯的情况下自动实现文件的加密和解密,是保证数据安全的重要技术手段。在透明文件加密中,对加密文件进行文件I/O操作的程序进程分为受信进程和非受信进程,受信进程被允许获取加密文件的明文数据,而非受信进程则不被允许。在目前的计算机文件系统中,为了提高文件I/O操作的效率,文件I/O操作大多是采用缓存方式,即文件系统在计算机内存中缓存程序进程读取和/或存写的数据,且不同程序进程对同一个文件进行文件I/O操作时它们在内存中的数据缓存是共享的。带缓存的文件I/O给透明文件加密带来了额外的问题:当受信进程和非受信进程同时对一个加密文件进行文件I/O操作时,特别是交替进行文件数据读取、存写操作时,缓存中会交替出现明文数据和密文数据,这样会带来如下问题:一是非受信进程有可能读取到明文数据,造成数据泄密,二是导致程序进程不能正确处理数据,比如受信进程读取的是密文数据而无法正常处理。为了解决这一问题,人们常用的解决方案是:在受信进程和非受信进程交替对同一个文件进行文件I/O操作时,不断地刷写(flush)、清空(clear)缓存数据。这种方案的问题是:一是要频繁的刷写、清空缓存,导致出现所谓暴力刷缓存、清缓存的问题,二是在受信进程和非受信进程交替读取、存写数据时,要正确处理缓存刷写、清空是非常困难的。
针对透明文件加密存在的以上问题,本发明的申请人在其专利申请“一种基于双像文件的加密文件系统”(专利申请号:201510690514.9)中提出了一种基于双像文件的解决方案,基于此方案,受信进程和非受信进程各自使用自己独立的缓存,从而在出现受信进程和非受信进程对同一个文件进行文件I/O操作的情况下能有效地避免频繁刷缓存、清缓存(仅在很少的情况下要进行清缓存)。但专利申请201510690514.9中的方案也存在如下问题:一个非受信进程存写的文件数据有可能是明文数据(比如,浏览器下载、保存一个未加密的Word文档),这样在多个非受信进程对正在存写的文件进行文件I/O操作有可能出现数据泄露。对此问题的一种解决方案是:由双像加密文件系统的文件驱动或额外引入的一个文件过滤器在发现非受信进程存写的文件数据是明文数据时立即对明文数据进行加密。但这种解决方案一是太麻烦,二是不能完全解决数据泄露问题,比如,当非受信进程是以内存映射方式打开或创建文件并存写明文数据时,双像加密文件系统的文件驱动或额外引入的文件过滤器发现内存中的缓存的数据是明文数据时候可能已经晚了,缓存中的明文数据可能已被其他非受信进程读取了(虽然这种机率非常小)。
发明内容
本发明的目的是提出一种基于多像文件的加密文件系统,以克服现有技术方案的不足。
为了实现本发明的目的,本发明所提出的技术方案是:
一种基于多像文件的加密文件系统,所述系统如下:
所述加密文件系统中存储管理的每个文件是加密的文件;所述加密文件系统在计算机系统中对应(或装载mount为)一个文件盘或文件目录(即显示为一个文件盘或文件目录);所述加密文件系统中存储管理的每个文件在加密文件系统所对应的文件盘或文件目录中有多个文件映像:一个主像文件,多个A像文件以及一个B像文件,其中,主像文件是程序进程进行文件I/O操作直接针对的文件(除非重定向,程序进程不主动针对A像文件和B像文件直接进行文件I/O操作,用户也感受不到多个文件映像的存在);主像文件、A像文件和B像文件在加密文件系统中的对应文件(即加密文件)称为主像文件、A像文件和B像文件对应的原文件;主像文件、A像文件和B像文件与对应的原文件具有一样的文件名和文件类型(即文件扩展名);所述加密文件系统中的一个(原)文件所对应的A像文件的个数没有限制(理论上可以有无穷多个);
所述加密文件系统中存储管理的每个文件目录在加密文件系统所对应的文件盘或文件目录中同样有多个文件目录映像:一个主像文件目录,一个A像文件目录以及一个B像文件目录;主像文件目录、A像文件目录和B像文件目录在加密文件系统中的对应文件目录称为主像文件目录、A像文件目录和B像文件目录所对应的原文件目录(文件目录是实际上是一种特别的文件,可以不单独列出来处理,在此单独列出来处理提供更多的灵活性);
对所述加密文件系统中的加密文件(即原文件)进行文件I/O操作的程序进程包括受信进程、非受信进程和操作系统辅助文件I/O操作的系统进程(如Windows System进程);所述受信进程是操作系统辅助文件I/O操作的系统进程以外的被允许获取加密文件的明文数据的程序进程;所述非受信进程是操作系统辅助文件I/O操作的系统进程以外的不被允许取加密文件的明文数据的程序进程;受信进程和非受信进程针对文件类型而设定(如Word程序的运行进程是Word文档的受信进程,而Internet Explorer的运行进程则是Word文档的非受信进程);操作系统辅助文件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操作(比如Word文档的受信进程,如Word程序进程,仅被允许对一个Word文档的B像文件进行文件I/O操作,而Word文档的非受信进程,Internet Explorer的程序进程,仅被允许对一个Word文档的A像文件进行文件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像文件的文件I/O操作是数据存写操作时,若所述加密文件系统(通过特征数据,如特征头部)检查发现要存写的数据是明文数据,则所述加密文件系统先将明文数据加密后再存写到A像文件的对应原文件;
当一个受信进程对加密文件系统所对应的文件盘或文件目录中的一个对应文件类型(即受信进程定义所针对的文件类型)的主像文件进行文件打开或创建操作时,所述加密文件系统将受信进程的文件打开或创建操作重定向到主像文件所对应的原文件的B像文件(即转化为针对B像文件的文件打开或创建操作);
当接收到一个受信进程对一个对应文件类型的B像文件进行文件打开或创建操作的请求后,所述加密文件系统将针对B像文件的文件打开或创建操作转化成针对B像文件的对应原文件的文件打开或创建操作;
当接收到一个程序进程(受信进程或操作系统辅助文件I/O操作的系统进程)对一个已打开或创建的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操作。
若所述加密文件系统引入一个文件过滤器驱动,则所述加密文件系统的文件重定向(包括文件和文件目录重定向)和/或文件加密解密处理功能由文件过滤器驱动实施。
若在所述加密文件系统所在计算机系统中设置一个安全文件盘或安全文件目录(如通过一个安装配置程序设置),则将针对安全文件盘或安全文件目录中文件和文件目录的I/O操作映射到加密文件系统所对应的文件盘或文件目录中的一种方案如下:
(约定)安全文件盘或安全文件目录中的每个文件是加密文件系统存储管理的文件的映像,即安全文件盘或安全文件目录中(显现)的每个文件与加密文件系统中存储管理的每个文件相对应;安全文件盘或安全文件目录中的文件(映像)在加密文件系统中的对应文件称为安全文件盘或安全文件目录中的文件(映像)的对应原文件;
(约定)安全文件盘或安全文件目录中的每个文件目录是加密文件系统存储管理的文件目录的映像,即安全文件盘或安全文件目录中(显现)的每个文件目录与加密文件系统中存储管理的每个文件目录相对应;安全文件盘或安全文件目录中的文件目录(映像)在加密文件系统中的对应文件目录称为安全文件盘或安全文件目录中的文件目录(映像)的对应原文件目录;
引入一个文件过滤器驱动类型的文件重定向过滤器驱动;
当一个非受信进程对安全文件盘或安全文件目录中的一个对应文件类型(即非受信进程定义所针对的文件类型)的文件(映像)进行文件打开或创建操作时,所述文件重定向过滤器驱动将非受信进程的文件打开或创建操作重定向到要打开或创建的文件所对应的原文件在加密文件系统所对应的文件盘或文件目录中的一个A像文件;不同非受信进程重针对安全文件盘或安全文件目录中的同一个文件(映像)所进行的文件打开或创建操作经重定向后的A像文件各不相同;
当一个受信进程对安全文件盘或安全文件中的一个对应文件类型(即受信进程定义所针对的文件类型)的文件(映像)进行文件打开或创建操作时,所述文件重定向过滤器驱动将受信进程的文件打开或创建操作重定向到要打开或创建的文件所对应的原文件在加密文件系统所对应的文件盘或文件目录中的B像文件;
当一个程序进程打开或创建安全文件盘或安全文件目录中的一个文件目录(映像)时,所述文件重定向过滤器驱动将程序进程的文件目录打开或创建操作重定向到要打开或创建的文件目录所对应的原文件目录在加密文件系统所对应的文件盘或文件目录中的主像文件目录,或A像文件目录,或B像文件目录。
若通过所述文件重定向过滤器驱动将针对安全文件盘或安全文件目录中文件和文件目录的I/O操作映射到加密文件系统所对应的文件盘或文件目录中,则所述加密文件系统通过操作系统提供的文件盘或文件目录隐藏功能将加密文件系统对应的文件盘或文件目录隐藏。
当一个程序进程对一个A像文件或B像文件进行了修改文件信息或存写数据的文件I/O操作后,需要对被修改了文件信息或进行了缓存数据存写的A像文件或B像文件的对应原文件的所有A像文件和B像文件在内存中的文件控制块(File Control Block,FCB)中的文件信息以及缓存数据进行同步处理,所述被修改的文件信息包括文件长度、文件分配长度以及其他内存中的文件控制块中保存的影响文件I/O操作的文件信息。
所述加密文件系统实现被修改了文件信息或进行了缓存数据存写的A像文件或B像文件的对应原文件的所有A像文件和B像文件在内存中的文件控制块(File ControlBlock,FCB)中的文件信息以及缓存数据保持一致的一种方案如下:
引入一个运行在用户空间进行A像文件和B像文件在内存中的文件控制块中的文件信息和缓存数据同步更新的文件同步进程;所述文件同步进程被允许同时对A像文件和B像文件进行文件I/O操作;
所述加密文件系统记录每个当前被打开或创建的A像文件的文件路径(当一个A像文件被打开或创建时将其文件路径加入记录,当一个A像文件被关闭时将其文件路径从记录中删除);
若一个程序进程针对一个A像文件进行了修改文件信息的操作,则所述加密文件系统通知文件同步进程进行文件信息同步更新操作,通知中有文件信息被修改的A像文件的文件路径以及修改后的文件信息;所述文件同步进程接收到文件信息同步更新通知后,依次打开或创建文件信息被修改的A像文件所对应的原文件的其他当前被打开或创建的A像文件及B像文件,然后根据通知中的修改后的文件信息针对被打开或创建的各个A像文件和B像文件分别进行修改文件信息的操作(若修改的文件信息是文件长度和文件分配长度,则A像文件和B像文件之间的文件长度、文件分配长度设置会有差别,如有附加加密头部的差别);所述加密文件系统接收到文件同步进程针对A像文件和B像文件的文件信息修改操作请求后,根据请求对文件在内存中的文件控制块中的文件信息以及数据缓存进行设置,但不针对对应原文件进行文件信息修改的操作;
若一个程序进程针对一个A像文件进行了存写文件数据的操作,则所述加密文件系统通知文件同步进程进行缓存数据同步更新操作,通知中有进行了文件数据存写操作的A像文件的文件路径以及存写数据后的文件长度;所述文件同步进程接收到缓存数据同步更新通知后,依次打开或创建进行了文件数据存写操作的A像文件所对应的原文件的其他当前被打开或创建的A像文件及B像文件,然后针对被打开或创建的各个A像文件和B像文件分别先设置文件长度为零,然后再设置文件的长度为通知中给出的存写数据后的文件长度;所述加密文件系统接收到文件同步进程针对A像文件和B像文件进行文件长度设置的操作请求后,根据请求对文件在内存中的文件控制块中的文件长度以及数据缓存进行设置,但不针对对应原文件进行文件长度设置的操作;
若一个程序进程针对一个B像文件进行了修改文件信息的操作,则所述加密文件系统通知文件同步进程进行文件信息同步更新操作,通知中有文件信息被修改的B像文件的文件路径以及修改后的文件信息;所述文件同步进程接收到文件信息同步更新通知后,依次打开或创建文件信息被修改的B像文件所对应的原文件的各个当前被打开或创建的A像文件,然后根据通知中的修改后的文件信息针对被打开或创建的各个A像文件分别进行修改文件信息的操作(若修改的文件信息是文件长度和文件分配场地,则A像文件和B像文件之间的文件长度、文件分配长度设置会有差别,如有附加加密头部的差别);所述加密文件系统接收到文件同步进程针对A像文件的文件信息修改操作请求后,根据请求对文件在内存中的文件控制块中的文件信息以及数据缓存进行设置,但不针对对应原文件进行文件信息修改的操作;
若一个程序进程针对一个B像文件进行了存写文件数据的操作,则所述加密文件系统通知文件同步进程进行缓存数据同步更新操作,通知中有进行了文件数据存写操作的B像文件的文件路径以及存写数据后的文件长度;所述文件同步进程接收到缓存数据同步更新通知后,依次打开或创建进行了文件数据存写操作的B像文件所对应的原文件的各个当前被打开或创建的A像文件,然后针对被打开或创建的A像文件先设置文件长度为零,然后再设置文件的长度为通知中给出的存写数据后的文件长度;所述加密文件系统接收到文件同步进程针对A像文件的文件长度设置请求后,根据请求对文件在内存中的文件控制块中的文件长度以及数据缓存进行设置,但不针对对应原文件进行文件长度设置的操作。
前面所述的加密文件系统的一个原文件仅对应一个B像文件,一个原文件仅对应多个B像文件也是可以的。若所述加密文件系统的一个原文件对应多个B像文件,则一个原文件对应的B像文件的个数没有限制,且不同受信进程重针对同一个主像文件进行的文件打开或创建操作经重定向后的B像文件各不相同。
若所述加密文件系统的一个原文件对应多个B像文件,则前面所述的保持A像文件和B像文件在内存中的文件控制块(File Control Block,FCB)中的文件信息以及缓存数据一致的方案需要作如下补充:
所述加密文件系统记录当前被打开或创建的B像文件的文件路径(当一个B像文件被打开或创建时将其文件路径加入记录,当一个B像文件被关闭时将其文件路径从记录中删除);
当一个程序进程对一个A像文件进行了修改文件信息和/或存写数据的文件I/O操作后,所述文件加密系统通过所述文件同步进程对文件信息被修改或进行了数据存写操作的A像文件所对应的原文件的其他当前被打开或创建的A像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作的同时,也通过所述文件同步进程对文件信息被修改或进行了数据存写操作的A像文件所对应的原文件的所有当前被打开或创建的B像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作;
当一个程序进程对一个A像文件进行了修改文件信息和/或存写数据的文件I/O操作后,所述文件加密系统通过所述文件同步进程对文件信息被修改或进行了数据存写操作的A像文件所对应的原文件的当前被打开或创建的所有B像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作;
当一个程序进程对一个B像文件进行了修改文件信息和/或存写数据的文件I/O操作后,所述文件加密系统通过所述文件同步进程对文件信息被修改或进行了数据存写操作的B像文件所对应的原文件的当前被打开或创建的A像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作的同时,也通过所述文件同步进程对文件信息被修改或进行了数据存写操作的B像文件所对应的原文件的当前被打开或创建的其他B像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作。
前面所述的加密文件系统的一个原文件目录仅对应一个A像文件目录和B像文件目录,一个原文件目录对应多个A像文件目录和/或B像文件目录也是可以的。
若所述加密文件系统存储管理的一个文件目录在所述加密文件系统对应的文件盘或文件目录中对应多个A像文件目录,且当一个程序进程对加密文件系统所对应的文件盘或文件目录中的一个主像文件目录进行文件目录打开或创建操作时,所述加密文件系统将程序进程打开或创建主像文件目录的操作重定向到要打开或创建的主像文件目录的对应原文件目录的一个A像文件目录,则所述加密文件系统中的一个原文件目录对应的A像文件目录的个数没有限制,且不同程序进程针对加密文件系统对应的文件盘或文件目录中的同一个主像文件目录进行的文件目录打开或创建操作经重定向后的A像文件目录各不相同;
若所述加密文件系统存储管理的一个文件目录在所述加密文件系统对应的文件盘或文件目录中对应多个B像文件目录,且当一个程序进程对加密文件系统所对应的文件盘或文件目录中的一个主像文件目录进行文件目录打开或创建操作时,所述加密文件系统将程序进程打开或创建主像文件目录的操作重定向到要打开或创建的主像文件目录的对应原文件目录的一个B像文件目录,则所述加密文件系统中的一个原文件目录对应的B像文件目录的个数没有限制,且不同程序进程针对加密文件系统对应的文件盘或文件目录中的同一个主像文件目录进行的文件目录打开或创建操作经重定向后的B像文件目录各不相同。
从以上描述可以看到,基于本发明的技术方案,每个非受信进程有各自独立的数据缓存,因此,即便一个非受信进程存写了明文数据,也不会造成数据泄露;除非出现文件信息修改或数据存写的操作,无需对内存中的文件信息或数据缓存进行同步操作,避免了频繁刷缓存、清缓存的问题。
需指出的是,本发明虽然也支持采用多个B像文件的方式,即重定向后每个受信进程有各自独立的B像文件和独立的缓存,但这种方式目前看不出有什么额外的好处。还有,若将一个原文件对应多个A像文件改为一个原文件仅对应一个A像文件,则本发明的加密文件系统与发明专利申请201510690514.9中的基于双像文件的加密文件系统存在许多相似之处,但仍有所不同,比如,本发明中每个原文件有三个文件映像,而专利申请201510690514.9中仅两个,本发明中加密文件系统对受信进程和非受信进程都要进行文件重定向,而专利申请201510690514.9中仅对其中一个进行重定向,这在具体应用中可带来更多的灵活性;但是,若一个原文件仅对应一个A像文件,则所述加密文件系统自身或者通过一个文件过滤器驱动确保A像文件在内存中的缓存数据是密文数据(加密数据),这当然比较麻烦。
附图说明
图1为本发明的基于多像文件的加密文件系统原理示意图。
图2为基于本发明的用户空间加密文件系统原理示意图。
图3为基于本发明和用户空间文件系统的文件加密系统原理示意图。
图4为基于本发明和文件过滤器驱动的网络文件加密系统原理示意图。
具体实施方式
下面结合附图和实施案例对本发明的具体实施进行描述。
实施例一、基于多像文件的用户空间加密文件系统
如图2所示,利用本发明和用户空间文件系统(File System in User Space,FUSE)技术开发一个用户空间加密文件系统(一个存储密文的文件系统),包括FUSE文件驱动和FUSE用户空间进程,其中,FUSE文件驱动是用户空间文件系统的文件系统驱动,FUSE用户空间进程是用户空间文件系统进行文件I/O操作处理的用户空间程序的运行进程。受信进程和非受信进程判别、文件重定向、文件数据是明文还是密文的判别、文件数据加密和解密处理等功能(部分或全部)在FUSE文件驱动实施,或者(部分或全部)在FUSE用户空间进程(程序)实施。若这些功能(部分或全部)在FUSE文件驱动实施,则并非拿来一个现有的用户空间文件系统框架(如DokanX或DokanY)就能实现这些功能,而是需要根据本发明的功能要求对FUSE文件驱动进行定制开发;若这些功能在FUSE用户空间进程(程序)实施,则FUSE用户空间进程必须能获得进行文件I/O操作的程序进程的ID(这通常是没问题,很多已有用户空间文件系统框架如DokanX、DokanY都提供这种支持);无论这些功能在FUSE文件驱动实施还是在FUSE用户空间进程(程序)实施,都可以利用一个现有的用户空间文件系统框架(如Windows下的DokanX或DokanY)进行定制、开发。
对于用户空间加密文件系统中的原文件的各种文件映像的区分和文件路径的表示,可采用的一种方案如下。
假设用户空间加密文件系统在计算机中对应(显现或装载mount)的文件盘是K盘(对应文件盘符K:),加密文件系统中的一个原文件在K盘中的主像文件的文件路径是:
K:\Dir\SubDir1\SubDir2\...\sample.ext,
则该原文件在K盘中的A像文件的文件路径是:
K:\__@AFiles\<ImageID>\Dir\SubDir1\SubDir2\...\sample.ext,
该原文件在K盘中的B像文件的文件路径是:
K:\__@BFiles\<ImageID>\Dir\SubDir1\SubDir2\...\sample.ext,
这里,文件目录__@AFiles和__@BFiles用于表示和区分A像文件和B像文件,没有__@AFiles和__@BFiles的则是主像文件;<ImageID>是A像文件和B像文件的实例ID,用于区分同一个原文件的不同的A像文件和B像文件;若一个原文件只有一个A像文件或B像文件,则对应A像文件或B像文件的实例ID只有一个;若一个原文件有多个A像文件或B像文件,则对应A像文件或B像文件的实例ID的个数没有限制。
以上方案同时适合于普通文件和文件目录。
若A像文件或B像文件有多个,则<ImageID>在进行文件打开或创建操作重定向时动态确定,具体地,可采用如下方案之一。
<ImageID>实施方案一、
<ImageID>采用序列号0、1、2、…对应的字符串;加密文件系统记录每个原文件当前被打开或创建的A像文件或B像文件的<ImageID>;当将针对一个主像文件的文件打开或创建操作重定向到对应原文件的A像文件或B像文件时,加密文件系统选用A像文件或B像文件的一个未用的序列号作为<ImageID>,比如,随机选一个未用的序列号,或者选一个最小未用的序列号,或者选一个比已用序列号大1的序列号等。
<ImageID>实施方案二、
从某个固定时刻开始以毫秒为单位对时间进行计数,当对一个主像文件打开或创建操作进行重定向时,加密文件系统以当前时刻的时间计数值的字串作为重定向后的A像文件或B像文件的<ImageID>。
以上两个方案同时适合于普通文件和文件目录。
从以上方案可以看到,A像文件和B像文件的文件路径中包含有主像文件的文件路径,加密文件系统可通过A像文件或B像文件的文件路径确定程序进程要操作的主像文件,从而确定要操作的原文件。由于文件目录K:\__@AFiles\和K:\__@BFiles\在这里有特别的用途,因此,不能当作普通的文件目录使用。加密文件系统可检查一个文件的文件路径是否包含文件目录K:\__@AFiles\或K:\__@BFiles\,若包含,则进一步检查是K:\__@AFiles\还是K:\__@BFiles\,从而确定一个文件是主像文件、A像文件还是B像文件。
在进行文件打开或创建操作重定向时,加密文件系统需要判断一个打开或创建操作所针对的文件对象是普通文件还是文件目录,对此,可采用如下方案之一。
一种方案是加密文件系统在进行文件重定向前先检查文件打开或创建操作所针对的原文件是普通文件还是文件目录,比如通过检查文件I/O操作请求,或通过检查存储的文件,或针对文件进行文件I/O操作,这种方案稍微有点麻烦。
另一种方案是加密文件系统根据文件打开或创建操作中给出的文件的扩展名进行判断,若有扩展名,则是普通文件,若没有,则是文件目录。以文件扩展名作为普通文件和文件目录的判别依据,会出现误判,因为具有特定用途的普通文件通常是有扩展名的,没有扩展名的文件通常是文件目录,但是,也可能出现有扩展名的文件是文件目录的情况,也就是说采用这种方案,有可能把有扩展名的文件目录当作普通文件,但是,即便出现这种误判也不会产生任何问题,这是因为文件目录的内容无需保密的,因此,一个文件目录无论是作为文件目录被打开或创建,还是作为普通文件被受信进程或非受信进程打开或创建,都不会出现问题。
对于一个程序进程针对一个主像文件目录所进行的打开或创建操作,可采用不进行重定向的方案(直接转化为针对原文件的操作)。
FUSE用户空间进程可以兼作文件同步进程进行内存中的文件控制块中的文件信息和文件数据缓存的同步处理,具体地如下:
FUSE用户空间进程在内存中维护一个表,记录当前被打开或创建的A像文件和/或B像文件;FUSE用户空间进程在进行了针对A像文件或B像文件的文件信息修改或数据存写操作处理后,作为文件同步进程(以用户空间文件系统的使用进程的角色)针对A像文件和B像文件进行文件信息和文件数据缓存同步操作;而FUSE用户空间进程接收到自己针对A像文件和B像文件的文件I/O操作请求后,不针对A像文件和B像文件的对应原文件进行文件I/O操作(但FUSE文件驱动已针对请求对内存中的文件控制块中的文件信息和数据缓存进行了设置)。
实施例二、以基于多像文件的用户空间文件系统作为文件加密、解密桥梁的文件加密、解密系统
如图3所示,利用本发明并结合用户空间文件系统(File System in User Space,FUSE)在现有计算机文件系统的基础上构建一个透明文件加密系统,即构建一个针对计算机文件系统的一个文件盘或文件目录中的文件自动进行加密、解密的透明文件加密系统,具体实施方式如下。
用户将要实施文件加密、解密的文件盘或文件目录设置为一个安全文件盘或安全文件目录(用户通过一个安装配置程序设置)。
引入一个基于多像文件的用户空间文件系统,此用户空间文件系统将安全文件盘或安全文件目录作为自己存储文件的地方,即安全文件盘或安全文件目录中的文件就是用户空间文件系统存储管理的原文件;原文件相对于安全文件盘或安全文件目录的文件路径(相对路径)与原文件对应的主像文件相对于用户空间文件系统所对应的文件盘或文件目录的文件路径(相对路径)是一样的(即相对路径一样);A像文件和B像文件的文件路径及其与对应主像文件的文件路径的对应关系同实施例一。
引入一个文件重定向过滤器驱动,当一个程序进程要打开或创建安全文件盘或安全文件目录中的一个文件时,文件重定向过滤器驱动判断程序进程是非受信进程还是受信进程,并将非受信进程或受信进程的文件打开或创建操作重定向到程序进程要打开的文件的对应A像文件或B像文件;对应A像文件或B像文件相对于用户空间文件系统所对应的文件盘或文件目录的文件路径(相对路径)中包含有程序进程要打开的文件相对于安全文件盘或安全文件目录的文件路径(相对路径),比如,假设安全文件目录是D:\SecureDir,用户空间文件系统对应K盘,则若程序进程要打开的一个文件是:
D:\SecureDir\SSubDir1\Sample.ext,
则重定向后的文件路径是:
K:\__@AFiles\<ImageID>\SSubDir1\Sample.ext,或者
K:\__@BFiles\<ImageID>\SSubDir1\Sample.ext,取决于程序进程是非受信进程还是受信进程。
在进行重定向时,文件重定向过滤器驱动采用实施例一中给出的方案之一判断一个文件打开或创建操作所针对的文件是普通文件还是文件目录。
对于一个程序进程针对安全文件盘或安全文件目中的一个文件目录进行的打开或创建操作,不进行重定向,或者重定向到用户空间文件系统所对应文件盘或文件目录中的对应主像文件目录。
文件重定向过滤器驱动对用户空间文件系统的FUSE用户空间进程打开或创建安全文件盘或安全文件目录中的文件(即原文件)和文件目录(即原文件目录)的操作不进行重定向,对FUSE用户空间进程针对安全文件盘或安全文件目录中的已打开或创建的文件和文件目录所进行的文件I/O操作也不干预(即让文件I/O操作传递下去)。
实施例二中的用户空间文件系统除了不实施文件重定向功能外,按实施例一的实施方式实施本发明规定的其他功能。
实施例三、基于文件过滤器驱动和多像文件的网络文件透明加密系统
如图4所示,利用本发明结合文件过滤器驱动在现有网络文件系统的基础上构建一个网络文件透明加密系统,其中,在用户计算机上安装实施一个文件重定向与加密过滤器驱动,在网络文件服务器上安装实施一个文件重定向过滤器驱动。通过文件重定向与加密过滤器驱动、重定向过滤器驱动,网络文件服务器上的每个文件(原文件)在用户计算上的对应网络文件盘(比如K盘)中对应三种文件映像:主像文件、A像文件和B像文件,其中,主像文件的文件路径就是未安装实施文件重定向与加密过滤器驱动、重定向过滤器驱动时,网络文件在用户计算机上的文件路径;A像文件和B像文件的文件路径可采用实施例一同样的方案。用户计算机上的文件重定向与加密过滤器驱动负责实施受信进程和非受信进程判别、文件重定向、文件数据是明文还是密文的判别、文件数据加密和解密处理,其中,文件重定向功能将程序进程针对网络文件盘中主像文件的打开或创建操作重定向到A像文件或B像文件;网络文件服务器上的文件重定向过滤器驱动,负责将针对A像文件或B像文件的文件打开或创建操作重定向到A像文件或B像文件对应的原文件(在网络文件服务器上,主像文件直接对应原文件,因此,无需再重定向)。
对于一个程序进程打开或创建网络文件盘中的一个主像文件目录的操作,文件重定向与加密过滤器驱动、文件重定向过滤器驱动不进行重定向。
对用户计算机中A像文件和B像文件在内存中的文件控制块中的文件信息和缓存数据的同步操作处理,可按如下方案实施(参见专利申请“一种基于双像文件的加密文件系统”,专利申请号:201510690514.9):
当用户计算机中的一个程序进程对一个A像文件或B像文件进行了文件信息修改的操作后,文件重定向与加密过滤器驱动通知文件同步进程(图中未画)进行文件信息同步操作;文件同步进程依次打开或创建需要进行内存中的文件信息同步的A像文件和B像文件,然后进行文件信息修改(设置)操作;
当用户计算机中的一个程序进程对一个A像文件或B像文件进行了文件数据存写的操作后,文件重定向与加密过滤器驱动通知文件同步进程进行缓存数据同步操作;文件同步进程依次打开或创建需要进行缓存数据同步的A像文件和B像文件,向打开或创建的A像文件和B像文件存写一块数据(比如随机字串);文件重定向与加密过滤器驱动拦截到文件同步进程向A像文件或B像文件存写数据的操作请求后,调用缓存管理函数(如WindowsCache Manager的函数)(通过文件对象)清空文件缓存,之后不将存写数据的操作请求向下传递,而是直接返回操作成功。
在进行文件重定向时,文件重定向与加密过滤器驱动采用实施例一中给出的方案之一判断一个打开或创建操作所针对的文件对象是普通文件还是文件目录。
需指出的是,只要将用户计算机中的网络文件盘设置为安全文件盘,则利用实施例二同样可实现网络文件的透明加密。
以上实施例一、二涉及用户空间文件系统的开发实施,这目前已是成熟的技术,且目前已有很多针对不同的操作系统的用户空间文件系统框架,可在此基础上开发。
以上实施例二、三涉及文件过滤器驱动的开发实施。若用户计算机的操作系统是Windows系统,则文件过滤器驱动的开发可以采用Windows文件过滤器驱动(filterdriver)或微过滤器驱动(mini-filter driver)技术开发。利用Windows文件过滤器驱动或微过滤器驱动进行受信进程和非受信进程判断已是成熟的技术,在此不多叙述。
对于文件重定向,若是Windows系统,则可以采用Windows文件系统的reparsepoint功能(参见WDK的simrep.c代码)。
若用户计算机的操作系统是其他系统,则可以采用对应的技术开发。
另外,在以上三个实施例中,或者由用户空间文件系统、或者由文件过滤器驱动对重定向后的文件的重命名(rename)进行专门处理,以确保对重定向后的文件的重命名操作能正确执行和处理。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

Claims (9)

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所述的基于多像文件的加密文件系统,其特征是:
若所述加密文件系统引入一个文件过滤器驱动,则所述加密文件系统的文件重定向和/或文件加密解密处理功能由文件过滤器驱动实施。
3.根据权利要求1所述的基于多像文件的加密文件系统,其特征是:
若在所述加密文件系统所在计算机系统中设置一个安全文件盘或安全文件目录,则将针对安全文件盘或安全文件目录中文件和文件目录的I/O操作映射到加密文件系统所对应的文件盘或文件目录中的一种方案如下:
安全文件盘或安全文件目录中的每个文件是加密文件系统存储管理的文件的映像,即安全文件盘或安全文件目录中的每个文件与加密文件系统中存储管理的每个文件相对应;安全文件盘或安全文件目录中的文件在加密文件系统中的对应文件称为安全文件盘或安全文件目录中的文件的对应原文件;
安全文件盘或安全文件目录中的每个文件目录是加密文件系统存储管理的文件目录的映像,即安全文件盘或安全文件目录中的每个文件目录与加密文件系统中存储管理的每个文件目录相对应;安全文件盘或安全文件目录中的文件目录在加密文件系统中的对应文件目录称为安全文件盘或安全文件目录中的文件目录的对应原文件目录;
引入一个文件过滤器驱动类型的文件重定向过滤器驱动;
当一个非受信进程对安全文件盘或安全文件目录中的一个对应文件类型的文件进行文件打开或创建操作时,所述文件重定向过滤器驱动将非受信进程的文件打开或创建操作重定向到要打开或创建的文件所对应的原文件在加密文件系统所对应的文件盘或文件目录中的一个A像文件;不同非受信进程重针对安全文件盘或安全文件目录中的同一个文件所进行的文件打开或创建操作经重定向后的A像文件各不相同;
当一个受信进程对安全文件盘或安全文件中的一个对应文件类型的文件进行文件打开或创建操作时,所述文件重定向过滤器驱动将受信进程的文件打开或创建操作重定向到要打开或创建的文件所对应的原文件在加密文件系统所对应的文件盘或文件目录中的B像文件;
当一个程序进程打开或创建安全文件盘或安全文件目录中的一个文件目录时,所述文件重定向过滤器驱动将程序进程的文件目录打开或创建操作重定向到要打开或创建的文件目录所对应的原文件目录在加密文件系统所对应的文件盘或文件目录中的主像文件目录,或A像文件目录,或B像文件目录。
4.根据权利要求3所述的基于多像文件的加密文件系统,其特征是:
若通过所述文件重定向过滤器驱动将针对安全文件盘或安全文件目录中文件和文件目录的I/O操作映射到加密文件系统所对应的文件盘或文件目录中,则所述加密文件系统通过操作系统提供的文件盘或文件目录隐藏功能将加密文件系统对应的文件盘或文件目录隐藏。
5.根据权利要求1所述的基于多像文件的加密文件系统,其特征是:
当一个程序进程对一个A像文件或B像文件进行了修改文件信息或存写数据的文件I/O操作后,所述加密文件系统实现被修改了文件信息或进行了缓存数据存写的A像文件或B像文件的对应原文件的所有A像文件和B像文件在内存中的文件控制块中的文件信息以及缓存数据保持一致的一种方案如下:
所述被修改的文件信息包括文件长度、文件分配长度以及其他内存中的文件控制块中保存的影响文件I/O操作的文件信息;
引入一个运行在用户空间进行A像文件和B像文件在内存中的文件控制块中的文件信息和缓存数据同步更新的文件同步进程;所述文件同步进程被允许同时对A像文件和B像文件进行文件I/O操作;
所述加密文件系统记录每个当前被打开或创建的A像文件的文件路径;
若一个程序进程针对一个A像文件进行了修改文件信息的操作,则所述加密文件系统通知文件同步进程进行文件信息同步更新操作,通知中有文件信息被修改的A像文件的文件路径以及修改后的文件信息;所述文件同步进程接收到文件信息同步更新通知后,依次打开或创建文件信息被修改的A像文件所对应的原文件的其他当前被打开或创建的A像文件及B像文件,然后根据通知中的修改后的文件信息针对被打开或创建的各个A像文件和B像文件分别进行修改文件信息的操作;所述加密文件系统接收到文件同步进程针对A像文件和B像文件的文件信息修改操作请求后,根据请求对文件在内存中的文件控制块中的文件信息以及数据缓存进行设置,但不针对对应原文件进行文件信息修改的操作;
若一个程序进程针对一个A像文件进行了存写文件数据的操作,则所述加密文件系统通知文件同步进程进行缓存数据同步更新操作,通知中有进行了文件数据存写操作的A像文件的文件路径以及存写数据后的文件长度;所述文件同步进程接收到缓存数据同步更新通知后,依次打开或创建进行了文件数据存写操作的A像文件所对应的原文件的其他当前被打开或创建的A像文件及B像文件,然后针对被打开或创建的各个A像文件和B像文件分别先设置文件长度为零,然后再设置文件的长度为通知中给出的存写数据后的文件长度;所述加密文件系统接收到文件同步进程针对A像文件和B像文件进行文件长度设置的操作请求后,根据请求对文件在内存中的文件控制块中的文件长度以及数据缓存进行设置,但不针对对应原文件进行文件长度设置的操作;
若一个程序进程针对一个B像文件进行了修改文件信息的操作,则所述加密文件系统通知文件同步进程进行文件信息同步更新操作,通知中有文件信息被修改的B像文件的文件路径以及修改后的文件信息;所述文件同步进程接收到文件信息同步更新通知后,依次打开或创建文件信息被修改的B像文件所对应的原文件的各个当前被打开或创建的A像文件,然后根据通知中的修改后的文件信息针对被打开或创建的各个A像文件分别进行修改文件信息的操作;所述加密文件系统接收到文件同步进程针对A像文件的文件信息修改操作请求后,根据请求对文件在内存中的文件控制块中的文件信息以及数据缓存进行设置,但不针对对应原文件进行文件信息修改的操作;
若一个程序进程针对一个B像文件进行了存写文件数据的操作,则所述加密文件系统通知文件同步进程进行缓存数据同步更新操作,通知中有进行了文件数据存写操作的B像文件的文件路径以及存写数据后的文件长度;所述文件同步进程接收到缓存数据同步更新通知后,依次打开或创建进行了文件数据存写操作的B像文件所对应的原文件的各个当前被打开或创建的A像文件,然后针对被打开或创建的A像文件先设置文件长度为零,然后再设置文件的长度为通知中给出的存写数据后的文件长度;所述加密文件系统接收到文件同步进程针对A像文件的文件长度设置请求后,根据请求对文件在内存中的文件控制块中的文件长度以及数据缓存进行设置,但不针对对应原文件进行文件长度设置的操作。
6.根据权利要求1所述的基于多像文件的加密文件系统,其特征是:
若所述加密文件系统的一个原文件对应多个B像文件,则一个原文件对应的B像文件的个数没有限制,且不同受信进程重针对同一个主像文件进行的文件打开或创建操作经重定向后的B像文件各不相同。
7.根据权利要求5所述的基于多像文件的加密文件系统,其特征是:
若所述加密文件系统的一个原文件对应多个B像文件,则:
所述加密文件系统记录当前被打开或创建的B像文件的文件路径;
当一个程序进程对一个A像文件进行了修改文件信息和/或存写数据的文件I/O操作后,所述文件加密系统通过所述文件同步进程对文件信息被修改或进行了数据存写操作的A像文件所对应的原文件的其他当前被打开或创建的A像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作的同时,也通过所述文件同步进程对文件信息被修改或进行了数据存写操作的A像文件所对应的原文件的所有当前被打开或创建的B像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作;
当一个程序进程对一个B像文件进行了修改文件信息和/或存写数据的文件I/O操作后,所述文件加密系统通过所述文件同步进程对文件信息被修改或进行了数据存写操作的B像文件所对应的原文件的当前被打开或创建的A像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作的同时,也通过所述文件同步进程对文件信息被修改或进行了数据存写操作的B像文件所对应的原文件的当前被打开或创建的其他B像文件进行内存中的文件控制块中的文件信息以及缓存数据同步操作。
8.根据权利要求1所述的基于多像文件的加密文件系统,其特征是:
若所述加密文件系统存储管理的一个文件目录在所述加密文件系统对应的文件盘或文件目录中对应多个A像文件目录,且当一个程序进程对加密文件系统所对应的文件盘或文件目录中的一个主像文件目录进行文件目录打开或创建操作时,所述加密文件系统将程序进程打开或创建主像文件目录的操作重定向到要打开或创建的主像文件目录的对应原文件目录的一个A像文件目录,则所述加密文件系统中的一个原文件目录对应的A像文件目录的个数没有限制,且不同程序进程针对加密文件系统对应的文件盘或文件目录中的同一个主像文件目录进行的文件目录打开或创建操作经重定向后的A像文件目录各不相同;
若所述加密文件系统存储管理的一个文件目录在所述加密文件系统对应的文件盘或文件目录中对应多个B像文件目录,且当一个程序进程对加密文件系统所对应的文件盘或文件目录中的一个主像文件目录进行文件目录打开或创建操作时,所述加密文件系统将程序进程打开或创建主像文件目录的操作重定向到要打开或创建的主像文件目录的对应原文件目录的一个B像文件目录,则所述加密文件系统中的一个原文件目录对应的B像文件目录的个数没有限制,且不同程序进程针对加密文件系统对应的文件盘或文件目录中的同一个主像文件目录进行的文件目录打开或创建操作经重定向后的B像文件目录各不相同。
9.根据权利要求1所述的基于多像文件的加密文件系统,其特征是:
若所述加密文件系统的一个原文件仅对应一个A像文件,则:
当一个非受信进程对加密文件系统所对应的文件盘或文件目录中的一个对应文件类型的主像文件进行文件打开或创建操作时,不同非受信进程针对同一个主像文件进行的文件打开或创建操作重定向后的A像文件相同,且所述加密文件系统自身或者通过一个文件过滤器驱动确保A像文件在内存中的缓存数据是密文数据。
CN201510917010.6A 2015-12-10 2015-12-10 一种基于多像文件的加密文件系统 Active CN105574431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510917010.6A CN105574431B (zh) 2015-12-10 2015-12-10 一种基于多像文件的加密文件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510917010.6A CN105574431B (zh) 2015-12-10 2015-12-10 一种基于多像文件的加密文件系统

Publications (2)

Publication Number Publication Date
CN105574431A CN105574431A (zh) 2016-05-11
CN105574431B true CN105574431B (zh) 2018-08-03

Family

ID=55884545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510917010.6A Active CN105574431B (zh) 2015-12-10 2015-12-10 一种基于多像文件的加密文件系统

Country Status (1)

Country Link
CN (1) CN105574431B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742299B (zh) * 2020-05-27 2024-01-02 奇安信网神信息技术(北京)股份有限公司 文件压缩和解压缩方法以及文件压缩和解压缩装置
CN113824694B (zh) * 2021-08-24 2023-08-22 武汉联影医疗科技有限公司 文件的解密方法、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008974A (zh) * 2007-01-26 2007-08-01 北京飞天诚信科技有限公司 一种电子文件保护方法及系统
CN101853363A (zh) * 2010-05-07 2010-10-06 北京飞天诚信科技有限公司 一种文件保护方法及系统
CN103488954A (zh) * 2013-10-16 2014-01-01 武汉理工大学 一种文件加密系统
CN103825953A (zh) * 2014-03-04 2014-05-28 武汉理工大学 一种用户模式加密文件系统
CN104036191A (zh) * 2014-06-11 2014-09-10 上海睿海信息技术有限公司 一种基于文件过滤驱动和文件格式特征码的控制方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101008974A (zh) * 2007-01-26 2007-08-01 北京飞天诚信科技有限公司 一种电子文件保护方法及系统
CN101853363A (zh) * 2010-05-07 2010-10-06 北京飞天诚信科技有限公司 一种文件保护方法及系统
CN103488954A (zh) * 2013-10-16 2014-01-01 武汉理工大学 一种文件加密系统
CN103825953A (zh) * 2014-03-04 2014-05-28 武汉理工大学 一种用户模式加密文件系统
CN104036191A (zh) * 2014-06-11 2014-09-10 上海睿海信息技术有限公司 一种基于文件过滤驱动和文件格式特征码的控制方法

Also Published As

Publication number Publication date
CN105574431A (zh) 2016-05-11

Similar Documents

Publication Publication Date Title
US20210133353A1 (en) Method for accessing a database stored on a server using a relation
US7873168B2 (en) Secret information management apparatus and secret information management system
CN105760779B (zh) 一种基于fuse的双向文件加密系统
CN107257974A (zh) 用于提供隐私信息检索的系统、方法和装置
CN103745162B (zh) 一种安全网络文件存储系统
JP2003044343A (ja) 分散ファイル・システムのデータ・セキュリティ方法
WO2007056283A1 (en) System and method for data encryption keys and indicators
US8769302B2 (en) Encrypting data and characterization data that describes valid contents of a column
CN105224882B (zh) 一种基于桥文件系统的文件加密系统
US11757852B2 (en) Encryption key management for international data residency
US11151266B2 (en) Secure data storage and access during transition operations
CN108229190B (zh) 透明加解密的控制方法、装置、程序、存储介质和电子设备
CN110490741A (zh) 一种区块链中数据有效性及可控性管理的装置与方法
CN105574431B (zh) 一种基于多像文件的加密文件系统
CN114611123B (zh) 一种文件透明加解密方法和系统
CN107995147A (zh) 基于分布式文件系统的元数据加解密方法和系统
WO2024045407A1 (zh) 虚拟磁盘安全存储方法
CN105335663B (zh) 一种基于双像文件的加密文件系统
CN114036538A (zh) 一种基于虚拟块设备的数据库透明加解密实现方法及系统
US11328091B2 (en) Method for securing access to a relation
CN105590067B (zh) 一种基于用户空间文件系统的文件加密系统
AU2021107603B4 (en) Encryption key management for international data residency
CN106446702B (zh) 缓存信息处理方法及客户端
US20220309181A1 (en) Unstructured data access control
WO2022207163A1 (en) Method and apparatus for posting a user message of a user in an internet forum

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant