CN105335663B - 一种基于双像文件的加密文件*** - Google Patents

一种基于双像文件的加密文件*** Download PDF

Info

Publication number
CN105335663B
CN105335663B CN201510690514.9A CN201510690514A CN105335663B CN 105335663 B CN105335663 B CN 105335663B CN 201510690514 A CN201510690514 A CN 201510690514A CN 105335663 B CN105335663 B CN 105335663B
Authority
CN
China
Prior art keywords
file
image file
real image
data
virtual image
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
CN201510690514.9A
Other languages
English (en)
Other versions
CN105335663A (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 CN201510690514.9A priority Critical patent/CN105335663B/zh
Publication of CN105335663A publication Critical patent/CN105335663A/zh
Application granted granted Critical
Publication of CN105335663B publication Critical patent/CN105335663B/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/602Providing cryptographic facilities or services
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于双像文件的加密文件***,加密文件***中的每个加密文件都对应有一个虚拟的虚像文件,而与虚像文件对应的加密文件称为实像文件;当一个程序进程对虚像文件进行文件I/O操作时,加密文件***在内部将针对虚像文件的文件I/O操作转化为针对对应实像文件的操作;通过文件重定向,针对一种文件类型的受信进程和非受信息进程分别被允许对实像文件和虚像文件两类文件中的一类文件且仅一类文件直接进行文件I/O操作;当一个受信进程对一个对实像文件或虚像文件进行数据读取或存写操作时,数据被自动解密或加密;由于受信进程和非受信进程分别对不同文件操作,故具有不同的文件控制块和数据缓存,从而避免了暴力清缓存的问题。

Description

一种基于双像文件的加密文件***
技术领域
本发明属于信息安全技术领域,特别是一种基于双像文件的加密文件***。
背景技术
基于文件过滤器驱动(File Filter Driver)的透明文件加密***能在不影响用户使用习惯的情况下自动实现文件的加密和解密,是保证数据安全的重要技术手段。但目前的基于文件过滤器驱动的透明文件加密技术普遍存在如下问题。
目前的文件***(如Windows文件***)都是带缓存的文件***,即,当应用程序读取一个文件的数据时,文件***先看内存中是否缓存有应用程序要读取的内容,若有,则直接将内存中缓存的数据返回,否则,文件***从存储介质中读取一定数量文件数据(通常是几个页的数据,如通过文件的page读操作),然后一方面将读取的文件数据缓存在内存中,另一方面将应用程序所需数据返回给应用程序;当多个进程同时打开同一个文件时,它们共享文件缓存数据(在Windows文件***中,一个文件只有一个文件控制块FCB,因此多个进程同时打开同一个文件时,它们共享一个FCB和文件缓存)。
在基于文件过滤器驱动的文件加密***中,通常将程序进程分为受信进程和非受信进程,受信进程针对特定的文件类型而设定;一个受信进程被允许获得对应文件类型的加密文件的明文数据,而一个非受信进程则不被允许,比如Word程序的程序进程是Word文档加密文件的受信进程,能够获得Word文档加密文件中的明文数据,而浏览器进程作为Word文档的非受信进程则不被允许获得Word文档加密文件中的明文数据。这样,当一个受信进程读取一个加密文件时,内存中缓存的应该是明文数据,而当一个非受信进程读取一个加密文件时,内存中缓存的应该是密文数据。当一个受信进程和一个非受信进程交替读取一个加密文件时,文件加密***需要不断地清空内存中缓存的数据,以确保内存中缓存有正确的数据(明文或密文),这称为暴力刷缓存或暴力清缓存问题,暴力刷缓存或暴力清缓存降低了文件操作的效率;进一步地,当一个受信进程和一个非受信进程同时读取一个加密文件时,文件加密***就很难处理了,这时内存中缓存的数据有可能同时存在明文和密文数据,这既可能造成敏感数据泄漏,又使得受信进程无法正常工作。
针对透明文件加密中的数据缓存问题,人们提出一些解决方案,如双缓存方案等,双缓存方案设法使得受信进程和非受信进程针对同一个文件读取不同的缓存数据,方案复杂。
实际上,依据传统的文件过滤器驱动技术解决透明文件加密中暴力刷或清缓存是非常困难、技术难度很高的事。对此,有人从文件***入手来解决有关问题,即直接开发一个满足安全需求的透明加密文件***(一个自动实现文件加密、解密的文件***),而基于LayerFSD+多FCB的SEFS透明加密文件***即是这样的一个加密文件***(参见基于LayerFSD技术的SEFS透明加密平台技术***)。基于LayerFSD+多FCB的SEFS透明加密文件***让每个进程有自己的FCB和缓存,这样受信进程的缓存是明文,而非受信进程的缓存是密文。这样一个多FCB的加密文件***存在的问题是:1)多个进程同时访问一个文件时,内存利用率和文件访问效率低;2)改变了操作***管理文件数据和文件操作的方式,比如,操作***认为同一个文件应只有一个FCB和缓存,而对这种文件数据管理方式的改变的可能会遇到不可预料的问题;3)存在多个FCB和缓存中的数据不一致的问题。
发明内容
本发明的目的是提出一种基于双像文件的加密文件***,以克服现有技术的不足。
为了实现本发明的目的,本发明所提出的技术方案是:
一种基于双像文件的加密文件***,具体为:
所述加密文件***中的每个(真实存在的)文件都有一个对应的虚像文件;所述虚像文件是一种虚拟的、不真实存在的文件,而与虚像文件相对应的真实存在的文件称为实像文件;实像文件是加密文件(经加密的文件);加密文件与加密前的原有文件具有相同的文件类型(扩展名);每个虚像文件有一个文件路径,称为虚拟文件路径(非真实存在的文件路径);虚像文件的虚拟文件路径中包含有对应的实像文件的文件路径,或者通过虚像文件的虚拟文件路径可获得对应的实像文件的文件路径;实像文件和虚像文件互为对偶文件,即一个虚像文件是对应实像文件的对偶文件,而一个实像文件是对应虚像文件的对偶文件;当一个被允许对虚像文件直接进行文件I/O操作的程序进程对虚像文件进行文件I/O操作时,加密文件***在内部将针对虚像文件的文件I/O操作转化为针对对应实像文件的文件I/O操作。
在所述加密文件***中,对实像文件和虚像文件进行文件I/O操作的程序进程包括受信进程、非受信进程和操作***辅助文件I/O操作的***进程(如Windows System进程);所述受信进程是被允许获取加密文件的明文数据的程序进程,包括被允许直接访问实像文件获取加密文件的明文数据或通过访问虚像文件间接获取加密文件的明文数据的程序进程;所述非受信进程是不被允许获取加密文件的明文数据的程序进程,包括不被允许直接访问实像文件获取加密文件的明文数据或通过访问虚像文件间接获取加密文件的明文数据的程序进程;受信进程和非受信进程针对文件类型而设定(如Word程序的运行进程是Word文档的受信进程,而Internet Explorer的运行进程则不是);操作***辅助文件I/O操作的***进程不属于任一种文件类型的受信进程和非受信进程;当操作***辅助文件I/O操作的***进程辅助一个受信进程进行文件I/O操作时,操作***辅助文件I/O操作的***进程被允许获取加密文件的明文数据;当操作***辅助文件I/O操作的***进程辅助一个非受信进程进行文件I/O操作时,操作***辅助文件I/O操作的***进程不被允许获取加密文件的明文数据;
针对一种文件类型所设定的受信进程和非受信进程两类进程中的每一类进程,被允许对对应的文件类型的实像文件和虚像文件两类文件中的一类文件且仅一类文件直接进行文件I/O操作(如Word文档的受信进程,如Word程序进程,要么仅被允许对Word文档实像文件直接进行文件I/O操作,要么仅被允许对Word文档虚像文件直接进行文件I/O操作;若Word文档的受信进程仅被允许对Word文档实像文件直接进行文件I/O操作,则Word文档的非受信进程,如Internet Explorer的进程,仅被允许对Word文档虚像文件直接进行文件I/O操作);操作***辅助文件I/O操作的***进程被允许对任一种文件类型的实像文件和虚像文件直接进行文件I/O操作(它既可以对实像文件直接进行文件I/O操作,又可以对虚像文件直接进行文件I/O操作);
被允许对一种文件类型的实像文件或虚像文件直接进行文件I/O操作的程序进程被称为对应文件类型的实像文件或虚像文件的受许可的程序进程;针对一种文件类型所设定的受信进程或非受信进程只能是对应文件类型的实像文件和虚像文件两类文件中一类文件的受许可的程序进程;操作***辅助文件I/O操作的***进程是任一种文件类型的实像文件和虚像文件的受许可的程序进程(它既是实像文件也是虚像文件的受许可的程序进程);若受许可的程序进程是受信进程,则称为受许可的受信进程;若受许可的程序进程是非受信进程,则称为受许可的非受信进程;约定受信进程和非受信进程分别被允许对一种文件类型的实像文件和虚像文件两类文件中的哪一类文件直接进行文件I/O操作的规定称为受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定(根据受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定,一个受信进程或非受信进程只能是一种文件类型的实像文件和虚像文件两类文件中一类文件的受许可的程序进程,比如,如果根据受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定,Word文档的受信进程只能对Word文档实像文件直接进行I/O操作,Word文档的非受信进程只能对Word文档虚像文件直接进行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操作的***进程)
当一个受许可的程序进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据存写操作时(文件I/O写操作),加密文件***先检查确定要存写的数据是明文数据还是密文数据,若要存写的数据是明文数据,则加密文件***先将要存写的明文数据加密后再进行数据存写操作,若要存写的数据是密文数据,则直接进行数据存写操作;(此时,受许可的程序进程是非受信进程和/或操作***辅助文件I/O操作的***进程)
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,加密文件***对实像文件和虚像文件在内存中的文件控制块(File ControlBlock,FCB)及数据缓存(Cache)进行文件信息同步处理,所述文件信息包括文件长度(FileSize)、文件分配长度(File Allocation Size),以及影响文件I/O操作的其他文件信息;
在一个受许可的程序进程对一个实像文件或虚像文件进行数据存写操作之前或之后,加密文件***对实像文件和虚像文件在内存中的缓存数据(Cached data)进行同步处理。
需说明的是,在一个程序进程打开或创建一个文件、进行文件I/O操作的过程中,操作***辅助文件I/O操作的***进程,如Windows System进程,会参与文件I/O操作,如进行数据的Page读、Page写操作等,此时,操作***辅助文件I/O操作的***进程所进行的文件I/O操作被视为打开或创建文件、进行文件I/O操作的程序进程所进行的文件I/O操作的一部分,比如,如果打开或创建文件、进行文件I/O操作的是一个受信进程,则操作***辅助文件I/O操作的***进程针对受信进程打开或创建的文件所进行的文件I/O操作被视为是受信进程文件I/O操作的一部分;如果开或创建文件、进行文件I/O操作的程序进程是一个非受信进程,则操作***辅助文件I/O操作的***进程针对非受信进程打开或创建的文件所进行的文件I/O操作被视为是非受信进程文件I/O操作的一部分。
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定方案有多种,以下是两种可能的受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定方案。
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作许可规定方案一:
针对一种文件类型的受信进程和非受信进程两类进程中,只有非受信进程被允许对对应文件类型的实像文件直接进行文件I/O操作,非受信进程不被允许对对应文件类型的虚像文件直接进行文件I/O操作,只有受信进程被允许对对应文件类型的虚像文件直接进行文件I/O操作,受信进程不被允许对对应文件类型的实像文件直接进行文件I/O操作。
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作许可规定方案二:
针对一种文件类型的受信进程和非受信进程两类进程中,只有受信进程被允许对对应文件类型的实像文件直接进行文件I/O操作,受信进程不被允许对对应文件类型的虚像文件直接进行文件I/O操作,只有非受信进程被允许对对应文件类型的虚像文件直接进行文件I/O操作,非受信进程不被允许对对应文件类型的实像文件直接进行文件I/O操作。
当一个受许可的程序进程打开或创建一个实像文件或虚像文件时,加密文件***根据特征数据判断打开或创建的实像文件,或者打开或创建的虚像文件的对应实像文件,是加密文件还是非加密文件;
当一个受许可的程序进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据存写操作时(文件I/O写操作),加密文件***根据特征数据判断要存写的文件数据是明文数据还是密文数据。
加密文件***对实像文件和虚像文件进行文件信息和缓存数据同步处理的方案有多种,以下是几种可能的方案。
文件信息和缓存数据同步处理的方案一:
在加密文件***中引入一个文件同步过滤器驱动和一个文件同步进程;所述文件同步进程是一个运行在用户空间的程序进程;所述文件同步进程是实像文件和虚像文件的受许可的程序进程;
当文件同步进程以外的一个受许可的程序进程打开或创建一个实像文件或虚像文件后(如Windows的minifilter针对文件Create I/O操作的PostCreate处理),文件同步过滤器驱动检查打开或创建的文件在内存中的文件控制块中是否已创建有自定义的用户上下文(Custom User Context),若没有,则文件同步过滤器驱动在文件控制块中创建一个自定义的用户上下文;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,文件同步过滤器驱动向文件同步进程发出文件信息同步通知;
接收到文件信息同步通知后,文件同步进程打开或创建受许可的程序进程进行文件信息设置操作所针对的文件的对偶文件,设置对偶文件的文件信息,以使得文件同步进程和受许可的程序进程完成文件信息设置操作后,对偶文件的文件控制块及数据缓存中的文件信息与受许可的程序进程进行文件信息设置操作所针对的文件的文件控制块及数据缓存中的文件信息一致(一致不一定一样,因为考虑到可能的附加头部的因素;对于数据缓存,通过文件信息设置操作可使得数据缓存的文件长度一致);
文件同步过滤器驱动拦截到文件同步进程设置文件的文件信息的请求后,检查文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则让I/O操作敏感信息设置请求通过(向下传递、进行设置),否则,直接返回设置操作成功(无需进行更新操作);
在一个受许可的程序进程对一个实像文件或虚像文件进行文件数据存写操作之前或之后,文件同步过滤器驱动向文件同步进程发出文件缓存数据同步通知;
接收到文件缓存数据同步通知后,文件同步进程打开或创建受许可的程序进程进行文件数据存写操作所针对的文件的对偶文件,存写部分随机数据(此随机数据存写操作作为缓存数据同步的信号,以区分文件信息同步),然后关闭对偶文件;
文件同步过滤器驱动拦截到文件同步进程存写文件数据的请求后,检查文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则清空文件在内存中的缓存数据,然后直接返回数据存写操作成功(不向下传递、真正进行数据存写操作),否则,不进行清空操作,直接返回数据存写操作成功;
文件同步进程对一个实像文件或虚像文件的文件信息或缓存数据的同步操作,不触发新的同步处理操作(避免循环同步更新);
若所述加密文件***包括一个文件加密过滤器驱动,则文件同步过滤器驱动的同步更新功能由文件加密过滤器驱动实施。
文件信息和缓存数据同步处理的方案二:
在加密文件***中引入一个文件同步进程;所述文件同步进程是一个运行在用户空间的程序进程;所述文件同步进程是实像文件和虚像文件的受许可的程序进程;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,加密文件***向文件同步进程发出文件信息同步通知;
接收到文件信息同步通知后,文件同步进程打开或创建受许可的程序进程进行文件信息设置操作所针对的文件的对偶文件,设置对偶文件的文件信息,以使得文件同步进程和受许可的程序进程完成文件信息设置操作后,对偶文件的文件控制块及数据缓存中的文件信息与受许可的程序进程进行文件信息设置操作所针对的文件的文件控制块及数据缓存中的文件信息一致;
加密文件***接收到文件同步进程设置文件的文件信息的请求后,完成文件信息设置操作;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件数据存写操作之前或之后,加密文件***向文件同步进程发出文件缓存数据同步通知;
接收到文件缓存数据同步通知后,文件同步进程打开或创建受许可的程序进程进行文件数据存写操作所针对的文件的对偶文件,存写部分随机数据,然后关闭对偶文件;
加密文件***接收到文件同步进程存写文件数据的请求后,清空文件在内存中的缓存数据,然后直接返回数据存写操作成功(不真正进行数据存写操作);
文件同步进程对一个实像文件或虚像文件的文件信息或缓存数据的同步操作不触发新的同步处理操作(避免循环同步更新);
若所述加密文件***包括一个文件加密过滤器驱动,则文件同步过滤器驱动的文件信息和缓存数据同步处理功能由文件加密过滤器驱动实施。
文件信息和缓存数据同步处理的方案三:
在加密文件***中引入一个文件同步过滤器驱动;
当一个受许可的程序进程打开或创建一个实像文件或虚像文件后,文件同步过滤器驱动检查打开或创建的文件在内存中的文件控制块中是否已创建有自定义的用户上下文(Custom User Context),若没有,则文件同步过滤器驱动在文件控制块中创建一个自定义的用户上下文;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,文件同步过滤器驱动在内核层打开或创建受许可的程序进程进行文件信息设置操作所针对的文件的对偶文件,检查对偶文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则文件同步过滤器驱动通过文件I/O操作设置对偶文件的文件信息,或者直接设置对偶文件的文件控制块中的文件信息,且当设置的文件信息是文件长度或文件分配长度时,通过调用缓存管理函数重新设置文件的数据缓存大小,以使得文件同步过滤器和受许可的程序进程完成文件信息设置操作后,对偶文件的文件控制块及数据缓存中的文件信息与受许可的程序进程进行文件信息设置操作所针对的文件的文件控制块及数据缓存中的文件信息一致;若没有自定义的用户上下文,则不对对偶文件进行文件信息同步处理;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件数据存写操作之前或之后,文件同步过滤器驱动在内核层打开或创建受许可的程序进程进行文件数据存写操作所针对的文件的对偶文件,检查对偶文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则文件同步过滤器驱动清空对偶文件在内存中的缓存数据,否则,则不对对偶文件进行缓存数据清空操作;
若所述加密文件***包括一个文件加密过滤器驱动,则文件同步过滤器驱动的文件信息和缓存数据同步处理功能由文件加密过滤器驱动实施。
若在所述加密文件***中增加一个文件加密过滤器驱动,则所述加密文件***的文件加密处理功能,包括受信进程和非受信进程判别、文件打开或创建重定向、文件数据加密和解密、加密文件和非加密文件判别、将非加密文件加密成加密文件、存写数据是密文还是明文的判别、文件信息和缓存数据同步处理,中的部分或全部由文件加密过滤器驱动实施。
前面所述的两种受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定方案是静态的,即一个受信进程或非受信进程固定地被允许针对一个实像文件或虚像文件直接进行文件I/O操作,实际上,许可规定方案可以是动态的,即一个受信进程或非受信进程动态地被确定是否被允许针对一个实像文件或虚像文件直接进行文件I/O操作,以下是一种动态许可规定方案:
当一个受信进程打开或创建一个实像文件时,所述加密文件***检查是否已有非受信进程打开或创建了当前受信进程要打开或创建的实像文件,若有,则将当前受信进程打开或创建实像文件的操作重定向到当前受信进程要打开或创建的实像文件的对应虚像文件,否则,进一步检查是否已有其他受信进程打开或创建了当前受信进程要打开或创建的实像文件的对应虚像文件,若有,则将当前受信进程打开或创建实像文件的操作重定向到当前受信进程要打开或创建的实像文件的对应虚像文件,否则,当前受信进程被允许打开或创建其要打开或创建的实像文件;
当一个非受信进程打开或创建一个实像文件时,所述加密文件***检查是否已有受信进程打开或创建了当前非受信进程要打开或创建的实像文件,若有,则将当前非受信进程打开或创建实像文件的操作重定向到当前非受信进程要打开或创建的实像文件的对应虚像文件,否则,进一步检查是否已有其他非受信进程打开或创建了当前非受信进程要打开或创建的实像文件的对应虚像文件,若有,则将当前非受信进程打开或创建实像文件的操作重定向到当前非受信进程要打开或创建的实像文件的对应虚像文件,否则,当前非受信进程被允许打开或创建其要打开或创建的实像文件。
加密文件***可通过在文件控制块中作标记,记录一个实像文件或虚像文件当前被受信进程还是非受信进程打开或创建。
在动态许可规定方案下,加密文件***对其他文件I/O操作的处理与在静态许可规定方案下的一样。
从以上描述可以看到,基于本发明的技术方案,1)多个进程同时访问一个文件时,最多存在两个文件缓存,内存利用率和文件访问效率都得到提高;2)没有改变操作***管理文件数据和文件操作的方式,因为从操作***的角度,非受信进程访问的文件和受信进程访问的文件是两个不同的文件;3)两个FCB和缓存中的数据是同步更新的;4)避免了频繁清缓存,当受信进程和非受信进程同时打开一个文件时,无需清缓存,只有在出现受信进程和非受信进程同时打开文件,而其中一个进程对文件进行了文件信息和/或数据的修改操作时,才会针对一个文件的FCB及缓存数据进行文件信息更新和缓存清除操作。
附图说明
图1为本发明的***原理示意图。
图2为Windows下采用文件重定向过滤器驱动和用户空间文件***实施本发明的***结构。
图3为针对网络文件***采用文件加密过滤器驱动、文件重定向过滤器驱动实施本发明的***结构。
具体实施方式
下面结合附图和实施案例对本发明的具体实施进行描述。
实施例一、
Windows下采用文件过滤器驱动和用户空间文件***(File System in UserSpace,FUSE)实施本发明。
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定采用的是:允许非受信进程对实像文件直接进行文件I/O操作,允许受信进程对虚像文件直接进行文件I/O操作。
图2为Windows下采用文件过滤器驱动和用户空间文件***实施本发明的***结构,其中,文件重定向与同步过滤器驱动是一个文件过滤器驱动,FUSE文件驱动是用户空间文件***的文件***驱动,FUSE用户空间程序是用户空间文件***的用户空间程序;文件重定向和同步过滤器驱动负责实施受信进程或非受信进程的判别,根据文件I/O操作的许可规定进行文件打开或创建操作的重定向、以及文件信息和缓存数据的同步处理,而FUSE用户空间程序负责实施文件数据加密和解密、加密文件和非加密文件判别、将非加密文件加密成加密文件、存写数据是密文还是明文的判别,虚像文件和实像文件的对应,以及最终对实像文件的文件I/O操作;实像文件可以位于任何位置,如用户主机本地、网络服务器。
文件重定向与同步过滤器驱动的开发可以采用Windows文件过滤器驱动(filterdriver)或微过滤器驱动(mini-filter driver)技术开发。利用Windows文件过滤器驱动或微过滤器驱动进行受信进程和非受信进程判断已是成熟的技术,在此不多叙述;对于文件重定向,可以利用Windows过滤器驱动或微过滤器驱动实现reparse point功能(参见WDK的simrep.c代码)。
用户空间文件***的开发可利用Windows下的用户空间文件***技术进行开发,比如,利用Windows的文件驱动或文件过滤器驱动开发FUSE文件驱动,用Windows桌面开发技术开发FUSE用户空间程序,而FUSE文件驱动与FUSE用户空间程序之间通过Windows的内核层与用户层之间的通信机制进行通信;或者,使用已有的Windows FUSE框架进行开发双像文件***。在Windows环境下如何开发用户空间文件***,在公开的资料包括互联网上都有介绍,在此不多叙述。
一个实像文件对应的虚像文件的虚拟文件路径可采用的一种技术方案是:虚拟文件目录\实像文件路径,这里,虚拟文件目录是用户空间文件***中不存在的一个文件目录,而实像文件路径是进程要打开或创建的实像文件的完整路径包括文件所在文件盘(这里,原文件的完整路径中的文件盘指示可以采用内核层的表示,也可以采用用户层的表示;若采用用户层的表示,则将盘符后的冒号去掉,如D:转换成D)。
对文件数据的加密可以采用流加密或块加密。为了区分加密文件和非加密文件以及存放加密解密有关信息,可以给加密文件附加一个特别的、包含特征信息的头部(加密头部)。
若加密文件包含一个附加的加密头部,则:
当一个非受信程序进程打开或创建一个实像文件,或者当一个受信程序进程打开或创建一个虚像文件时,加密文件***根据加密头部的特征数据判断打开或创建的实像文件,或者打开或创建的虚像文件的对应实像文件,是加密文件还是非加密文件;
当一个非受信进程和操作***辅助文件I/O操作的***进程对加密文件***中的一个实像文件进行数据存写操作时,加密文件***的用户空间程序根据加密头部的特征数据判断要存写的文件数据是明文数据还是密文数据;
当受信进程和操作***辅助文件I/O操作的***进程对加密文件***中的一个虚像文件进行文件数据读取、存写操作时,FUSE文件驱动或FUSE用户空间程序要先对读取、存写数据的起始位置进行头部偏移处理,然后再转化为针对对应实像文件的数据读取、存写操作;
当受信进程和操作***辅助文件I/O操作的***进程对加密文件***中的一个虚像文件进行文件长度、文件分配长度设置操作时,FUSE文件驱动或FUSE用户空间程序也要先进行相应的头部偏移处理,然后再转化为针对对应实像文件的文件长度、文件分配长度设置操作。
文件控制块及数据缓存中的文件信息和缓存数据的同步处理或者由文件重定向与同步过滤器驱动单独完成,或者由文件重定向与同步过滤器驱动、FUSE用户空间程序一起完成;若由文件重定向与同步过滤器驱动、FUSE用户空间程序一起完成,则FUSE用户空间程序的运行进程实施文件同步进程的文件信息和缓存数据同步功能。
若文件信息和缓存数据的同步处理由文件重定向与同步过滤器驱动单独完成,则文件信息和缓存数据同步处理应在文件信息设置和数据存写之前进行,即在文件过滤器驱动处理预操作(Pre-operation)的阶段进行,这是因为Windows文件过滤器驱动在后操作处理阶段(Post-operation)由于IRQL限制的原因,很多操作不能直接进行。
若文件信息和缓存数据的同步处理由文件重定向与同步过滤器驱动、FUSE用户空间程序一起完成,则文件重定向与同步过滤器驱动同FUSE用户空间程序之间的数据交互通过Windows内核层与用户层的通信机制实施。文件信息和缓存数据同步处理可在文件信息设置或数据存写之前或之后进行,若在之后进行,则由于Windows文件过滤器驱动的后操作阶段的IRQL限制,文件重定向与同步过滤器驱动可能无法直接向FUSE用户空间程序发出同步通知,这时文件重定向与同步过滤器驱动可通过创建内核层的WorkItem发出同步通知。
在其他操作***上实施本发明,在具体实施上有些微小的差别,但总体思路上是一样的。
实施例二、
针对已有的在用户主***上被虚拟成一个本地盘的网络文件***实施本发明的方案。
***结构如图3所示。
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定采用的是:允许非受信进程对实像文件直接进行文件I/O操作,允许受信进程直接对虚像文件进行文件I/O操作。
网络文件***上的每个文件是实像文件,对应一个虚像文件,虚像文件的文件路径的构造的方法与实施案例一类似:将实像文件路径包含在虚像文件的路径中。
在用户主***上实施一个文件加密与同步过滤器驱动,其功能包括:受信进程和非受信进程判别、文件打开或创建重定向、文件数据加密和解密、加密文件和非加密文件判别、将非加密文件加密成加密文件、存写数据是密文还是明文的判别、文件控制块和缓存数据同步处理,即除了对文件数据的具体操作处理、以及将针对虚像文件的文件I/O操作转化为针对实像文件的文件I/O操作外的几乎其他所有其他功能。
在文件服务程序运行的主机上实施一个文件重定向过滤器驱动,其功能是文件重定向,将文件服务***程序打开或创建虚像的操作重定向到对应的实像文件,即将针对虚像文件的文件I/O操作转化为针对实像文件的文件I/O操作。
文件信息和缓存数据同步处理可以由文件加密与同步过滤器驱动单独完成,或者引入一个文件同步程序,由文件加密与同步过滤器驱动、文件同步程序进程一起完成。文件信息和缓存数据同步处理实施的一些要点同实施案例一。
文件加密过滤器驱动采用文件***驱动技术开发(如Windows的微过滤器驱动技术)。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

Claims (10)

1.一种基于双像文件的加密文件***,其特征是:
所述加密文件***中的每个文件都有一个对应的虚像文件;所述虚像文件是一种虚拟的、不真实存在的文件,而与虚像文件相对应的真实存在的文件称为实像文件;所述实像文件是加密文件;加密文件与加密前的原有文件具有相同的文件类型;每个虚像文件有一个文件路径,称为虚拟文件路径;虚像文件的虚拟文件路径中包含有对应的实像文件的文件路径,或者通过虚像文件的虚拟文件路径可获得对应的实像文件的文件路径;实像文件和虚像文件互为对偶文件,即一个虚像文件是对应实像文件的对偶文件,而一个实像文件是对应虚像文件的对偶文件;当一个被允许对虚像文件直接进行文件I/O操作的程序进程对虚像文件进行文件I/O操作时,加密文件***在内部将针对虚像文件的文件I/O操作转化为针对对应实像文件的文件I/O操作。
2.根据权利要求1所述的基于双像文件的加密文件***,其特征是:
对实像文件和虚像文件进行文件I/O操作的程序进程包括受信进程、非受信进程和操作***辅助文件I/O操作的***进程;所述受信进程是被允许获取加密文件的明文数据的程序进程,包括被允许直接访问实像文件获取加密文件的明文数据或通过访问虚像文件间接获取加密文件的明文数据的程序进程;所述非受信进程是不被允许获取加密文件的明文数据的程序进程,包括不被允许直接访问实像文件获取加密文件的明文数据或通过访问虚像文件间接获取加密文件的明文数据的程序进程;受信进程和非受信进程针对文件类型而设定;操作***辅助文件I/O操作的***进程不属于任一种文件类型的受信进程和非受信进程;当操作***辅助文件I/O操作的***进程辅助一个受信进程进行文件I/O操作时,操作***辅助文件I/O操作的***进程被允许获取加密文件的明文数据;当操作***辅助文件I/O操作的***进程辅助一个非受信进程进行文件I/O操作时,操作***辅助文件I/O操作的***进程不被允许获取加密文件的明文数据;
针对一种文件类型所设定的受信进程和非受信进程两类进程中的每一类进程,被允许对对应的文件类型的实像文件和虚像文件两类文件中的一类文件且仅一类文件直接进行文件I/O操作;操作***辅助文件I/O操作的***进程被允许对任一种文件类型的实像文件和虚像文件直接进行文件I/O操作;
被允许对一种文件类型的实像文件或虚像文件直接进行文件I/O操作的程序进程被称为对应文件类型的实像文件或虚像文件的受许可的程序进程;针对一种文件类型所设定的受信进程或非受信进程只能是对应文件类型的实像文件和虚像文件两类文件中一类文件的受许可的程序进程;操作***辅助文件I/O操作的***进程是任一种文件类型的实像文件和虚像文件的受许可的程序进程;若受许可的程序进程是受信进程,则称为受许可的受信进程;若受许可的程序进程是非受信进程,则称为受许可的非受信进程;约定受信进程和非受信进程分别被允许对一种文件类型的实像文件和虚像文件两类文件中的哪一类文件直接进行文件I/O操作的规定称为受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定;
当一个程序进程请求打开或创建一个实像文件时,所述加密文件***先判断打开或创建实像文件的程序进程是受信进程还是非受信进程,然后根据受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的许可规定,确定程序进程是否被允许对实像文件直接进行文件I/O操作,若不被允许,则加密文件***将程序进程打开或创建实像文件的操作重定向到程序进程要打开或创建的实像文件的对应虚像文件,在重定向后的文件打开或创建操作中,程序进程要打开或创建的实像文件的文件路径被转换成对应虚像文件的虚拟文件路径;若程序进程被允许对实像文件直接进行文件I/O操作,则程序进程直接打开或创建实像文件;
当一个受许可的程序进程打开或创建一个虚像文件时,加密文件***通过要打开或创建的虚像文件的虚拟文件路径获得对应实像文件的文件路径,并在加密文件***内部将针对虚像文件的打开或创建操作转化为针对实像文件的打开或创建操作;
当一个受许可的程序进程打开或创建一个实像文件或虚像文件时,若加密文件***发现打开或创建的实像文件,或者打开或创建的虚像文件的对应实像文件,是一个非加密的文件,则加密文件***将非加密的实像文件加密成加密文件;
当一个受许可的程序进程对一个被受信进程打开或创建的实像文件或虚像文件进行数据读取操作时,加密文件***将读取的加密数据解密后返回;
当一个受许可的程序进程对一个被受信进程打开或创建的实像文件或虚像文件进行数据存写操作时,加密文件***将要存写的明文数据加密后再进行数据存写操作;
当一个受许可的程序进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据读取操作时,加密文件***将读取的加密数据直接返回;
当一个受许可的程序进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据存写操作时,加密文件***先检查确定要存写的数据是明文数据还是密文数据,若要存写的数据是明文数据,则加密文件***先将要存写的明文数据加密后再进行数据存写操作,若要存写的数据是密文数据,则直接进行数据存写操作;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,加密文件***对实像文件和虚像文件在内存中的文件控制块及数据缓存进行文件信息同步处理,所述文件信息包括文件长度、文件分配长度,以及影响文件I/O操作的其他文件信息;
在一个受许可的程序进程对一个实像文件或虚像文件进行数据存写操作之前或之后,加密文件***对实像文件和虚像文件在内存中的缓存数据进行同步处理。
3.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作的一种许可规定是:
针对一种文件类型的受信进程和非受信进程两类进程中,只有非受信进程被允许对对应文件类型的实像文件直接进行文件I/O操作,非受信进程不被允许对对应文件类型的虚像文件直接进行文件I/O操作,只有受信进程被允许对对应文件类型的虚像文件直接进行文件I/O操作,受信进程不被允许对对应文件类型的实像文件直接进行文件I/O操作。
4.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
受信进程和非受信进程对实像文件和虚像文件直接进行文件I/O操作一种许可规定是:
针对一种文件类型的受信进程和非受信进程两类进程中,只有受信进程被允许对对应文件类型的实像文件直接进行文件I/O操作,受信进程不被允许对对应文件类型的虚像文件直接进行文件I/O操作,只有非受信进程被允许对对应文件类型的虚像文件直接进行文件I/O操作,非受信进程不被允许对对应文件类型的实像文件直接进行文件I/O操作。
5.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
当一个受许可的程序进程打开或创建一个实像文件或虚像文件时,加密文件***根据特征数据判断打开或创建的实像文件,或者打开或创建的虚像文件的对应实像文件,是加密文件还是非加密文件;
当一个受许可的程序进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据存写操作时,加密文件***根据特征数据判断要存写的文件数据是明文数据还是密文数据。
6.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
加密文件***对实像文件和虚像文件进行文件信息和缓存数据同步处理的一种方案如下:
在加密文件***中引入一个文件同步过滤器驱动和一个文件同步进程;所述文件同步进程是一个运行在用户空间的程序进程;所述文件同步进程是实像文件和虚像文件的受许可的程序进程;
当文件同步进程以外的一个受许可的程序进程打开或创建一个实像文件或虚像文件后,文件同步过滤器驱动检查打开或创建的文件在内存中的文件控制块中是否已创建有自定义的用户上下文,若没有,则文件同步过滤器驱动在文件控制块中创建一个自定义的用户上下文;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,文件同步过滤器驱动向文件同步进程发出文件信息同步通知;
接收到文件信息同步通知后,文件同步进程打开或创建受许可的程序进程进行文件信息设置操作所针对的文件的对偶文件,设置对偶文件的文件信息,以使得文件同步进程和受许可的程序进程完成文件信息设置操作后,对偶文件的文件控制块及数据缓存中的文件信息与受许可的程序进程进行文件信息设置操作所针对的文件的文件控制块及数据缓存中的文件信息一致;
文件同步过滤器驱动拦截到文件同步进程设置文件的文件信息的请求后,检查文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则让I/O操作敏感信息设置请求通过,否则,直接返回设置操作成功;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件数据存写操作之前或之后,文件同步过滤器驱动向文件同步进程发出文件缓存数据同步通知;
接收到文件缓存数据同步通知后,文件同步进程打开或创建受许可的程序进程进行文件数据存写操作所针对的文件的对偶文件,存写部分随机数据,然后关闭对偶文件;
文件同步过滤器驱动拦截到文件同步进程存写文件数据的请求后,检查文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则清空文件在内存中的缓存数据,然后直接返回数据存写操作成功,否则,不进行清空操作,直接返回数据存写操作成功;
文件同步进程对一个实像文件或虚像文件的文件信息或缓存数据的同步操作,不触发新的同步处理操作;
若所述加密文件***包括一个文件加密过滤器驱动,则文件同步过滤器驱动的同步更新功能由文件加密过滤器驱动实施。
7.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
加密文件***对实像文件和虚像文件进行文件信息和缓存数据同步处理的一种方案如下:
在加密文件***中引入一个文件同步进程;所述文件同步进程是一个运行在用户空间的程序进程;所述文件同步进程是实像文件和虚像文件的受许可的程序进程;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,加密文件***向文件同步进程发出文件信息同步通知;
接收到文件信息同步通知后,文件同步进程打开或创建受许可的程序进程进行文件信息设置操作所针对的文件的对偶文件,设置对偶文件的文件信息,以使得文件同步进程和受许可的程序进程完成文件信息设置操作后,对偶文件的文件控制块及数据缓存中的文件信息与受许可的程序进程进行文件信息设置操作所针对的文件的文件控制块及数据缓存中的文件信息一致;
加密文件***接收到文件同步进程设置文件的文件信息的请求后,完成文件信息设置操作;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件数据存写操作之前或之后,加密文件***向文件同步进程发出文件缓存数据同步通知;
接收到文件缓存数据同步通知后,文件同步进程打开或创建受许可的程序进程进行文件数据存写操作所针对的文件的对偶文件,存写部分随机数据,然后关闭对偶文件;
加密文件***接收到文件同步进程存写文件数据的请求后,清空文件在内存中的缓存数据,然后直接返回数据存写操作成功;
文件同步进程对一个实像文件或虚像文件的文件信息或缓存数据的同步操作不触发新的同步处理操作;
若所述加密文件***包括一个文件加密过滤器驱动,则文件同步过滤器驱动的文件信息和缓存数据同步处理功能由文件加密过滤器驱动实施。
8.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
加密文件***对实像文件和虚像文件进行文件信息和缓存数据同步处理的一种方案如下:
在加密文件***中引入一个文件同步过滤器驱动;
当一个受许可的程序进程打开或创建一个实像文件或虚像文件后,文件同步过滤器驱动检查打开或创建的文件在内存中的文件控制块中是否已创建有自定义的用户上下文,若没有,则文件同步过滤器驱动在文件控制块中创建一个自定义的用户上下文;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,文件同步过滤器驱动在内核层打开或创建受许可的程序进程进行文件信息设置操作所针对的文件的对偶文件,检查对偶文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则文件同步过滤器驱动通过文件I/O操作设置对偶文件的文件信息,或者直接设置对偶文件的文件控制块中的文件信息,且当设置的文件信息是文件长度或文件分配长度时,通过调用缓存管理函数重新设置文件的数据缓存大小,以使得文件同步过滤器和受许可的程序进程完成文件信息设置操作后,对偶文件的文件控制块及数据缓存中的文件信息与受许可的程序进程进行文件信息设置操作所针对的文件的文件控制块及数据缓存中的文件信息一致;若没有自定义的用户上下文,则不对对偶文件进行文件信息同步处理;
在一个受许可的程序进程对一个实像文件或虚像文件进行文件数据存写操作之前或之后,文件同步过滤器驱动在内核层打开或创建受许可的程序进程进行文件数据存写操作所针对的文件的对偶文件,检查对偶文件在内存中的文件控制块中是否有自定义的用户上下文,若有,则文件同步过滤器驱动清空对偶文件在内存中的缓存数据,否则,则不对对偶文件进行缓存数据清空操作;
若所述加密文件***包括一个文件加密过滤器驱动,则文件同步过滤器驱动的文件信息和缓存数据同步处理功能由文件加密过滤器驱动实施。
9.根据权利要求2所述的基于双像文件的加密文件***,其特征是:
若在所述加密文件***中增加一个文件加密过滤器驱动,则所述加密文件***的文件加密处理功能,包括受信进程和非受信进程判别、文件打开或创建重定向、文件数据加密和解密、加密文件和非加密文件判别、将非加密文件加密成加密文件、存写数据是密文还是明文的判别、文件信息和缓存数据同步处理,中的部分或全部由文件加密过滤器驱动实施。
10.根据权利要求1所述的基于双像文件的加密文件***,其特征是:
针对所述加密文件***的一种基于动态许可的文件I/O操作方案如下:
当一个受信进程打开或创建一个实像文件时,所述加密文件***检查是否已有非受信进程打开或创建了当前受信进程要打开或创建的实像文件,若有,则将当前受信进程打开或创建实像文件的操作重定向到当前受信进程要打开或创建的实像文件的对应虚像文件,否则,进一步检查是否已有其他受信进程打开或创建了当前受信进程要打开或创建的实像文件的对应虚像文件,若有,则将当前受信进程打开或创建实像文件的操作重定向到当前受信进程要打开或创建的实像文件的对应虚像文件,否则,当前受信进程被允许打开或创建其要打开或创建的实像文件;
当一个非受信进程打开或创建一个实像文件时,所述加密文件***检查是否已有受信进程打开或创建了当前非受信进程要打开或创建的实像文件,若有,则将当前非受信进程打开或创建实像文件的操作重定向到当前非受信进程要打开或创建的实像文件的对应虚像文件,否则,进一步检查是否已有其他非受信进程打开或创建了当前非受信进程要打开或创建的实像文件的对应虚像文件,若有,则将当前非受信进程打开或创建实像文件的操作重定向到当前非受信进程要打开或创建的实像文件的对应虚像文件,否则,当前非受信进程被允许打开或创建其要打开或创建的实像文件;
当一个程序进程打开或创建一个虚像文件时,加密文件***通过要打开或创建的虚像文件的虚拟文件路径获得对应实像文件的文件路径,并在加密文件***内部将针对虚像文件的打开或创建操作转化为针对实像文件的打开或创建操作;
当一个程序进程打开或创建一个实像文件或虚像文件时,若加密文件***发现打开或创建的实像文件,或者打开或创建的虚像文件的对应实像文件,是一个非加密的文件,则加密文件***将非加密的实像文件加密成加密文件;
当一个受信进程或操作***辅助文件I/O操作的***进程对一个被受信进程打开或创建的实像文件或虚像文件进行数据读取操作时,加密文件***将读取的加密数据解密后返回;
当一个受信进程或操作***辅助文件I/O操作的***进程对一个被受信进程打开或创建的实像文件或虚像文件进行数据存写操作时,加密文件***将要存写的明文数据加密后再进行数据存写操作;
当一个非受信进程或操作***辅助文件I/O操作的***进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据读取操作时,加密文件***将读取的加密数据直接返回;
当一个非受信进程或操作***辅助文件I/O操作的***进程对一个被非受信进程打开或创建的实像文件或虚像文件进行数据存写操作时,加密文件***先检查确定要存写的数据是明文数据还是密文数据,若要存写的数据是明文数据,则加密文件***先将要存写的明文数据加密后再进行数据存写操作,若要存写的数据是密文数据,则直接进行数据存写操作;
在一个程序进程对一个实像文件或虚像文件进行文件信息设置操作之前或之后,加密文件***对实像文件和虚像文件在内存中的文件控制块及数据缓存进行文件信息同步处理,所述文件信息包括文件长度、文件分配长度,以及影响文件I/O操作的其他文件信息;
在一个程序进程对一个实像文件或虚像文件进行数据存写操作之前或之后,加密文件***对实像文件和虚像文件在内存中的缓存数据进行同步处理。
CN201510690514.9A 2015-10-22 2015-10-22 一种基于双像文件的加密文件*** Active CN105335663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510690514.9A CN105335663B (zh) 2015-10-22 2015-10-22 一种基于双像文件的加密文件***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510690514.9A CN105335663B (zh) 2015-10-22 2015-10-22 一种基于双像文件的加密文件***

Publications (2)

Publication Number Publication Date
CN105335663A CN105335663A (zh) 2016-02-17
CN105335663B true CN105335663B (zh) 2018-08-03

Family

ID=55286182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510690514.9A Active CN105335663B (zh) 2015-10-22 2015-10-22 一种基于双像文件的加密文件***

Country Status (1)

Country Link
CN (1) CN105335663B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760779B (zh) * 2016-02-18 2018-06-22 武汉理工大学 一种基于fuse的双向文件加密***
CN106557684B (zh) * 2016-10-14 2019-09-27 北京金山安全软件有限公司 文件扫描方法、装置和终端设备
CN113824694B (zh) * 2021-08-24 2023-08-22 武汉联影医疗科技有限公司 文件的解密方法、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710345A (zh) * 2009-12-22 2010-05-19 成都市华为赛门铁克科技有限公司 一种文件的存储、读取方法、装置和存取***
CN103268455A (zh) * 2013-05-09 2013-08-28 华为技术有限公司 数据的访问方法及装置
CN103778384A (zh) * 2014-02-24 2014-05-07 北京明朝万达科技有限公司 一种基于身份认证的虚拟终端安全环境的保护方法及***
CN104021354A (zh) * 2014-06-23 2014-09-03 成都卫士通信息产业股份有限公司 计算机虚拟化环境中的数据防泄露方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853363B (zh) * 2010-05-07 2012-08-08 飞天诚信科技股份有限公司 一种文件保护方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710345A (zh) * 2009-12-22 2010-05-19 成都市华为赛门铁克科技有限公司 一种文件的存储、读取方法、装置和存取***
CN103268455A (zh) * 2013-05-09 2013-08-28 华为技术有限公司 数据的访问方法及装置
CN103778384A (zh) * 2014-02-24 2014-05-07 北京明朝万达科技有限公司 一种基于身份认证的虚拟终端安全环境的保护方法及***
CN104021354A (zh) * 2014-06-23 2014-09-03 成都卫士通信息产业股份有限公司 计算机虚拟化环境中的数据防泄露方法

Also Published As

Publication number Publication date
CN105335663A (zh) 2016-02-17

Similar Documents

Publication Publication Date Title
McDonald et al. StegFS: A steganographic file system for Linux
US9529735B2 (en) Secure data encryption in shared storage using namespaces
CN105426766B (zh) 一种基于影子文件的文件加密***
US8145900B2 (en) Crypto-pointers for secure data storage
CN105760779B (zh) 一种基于fuse的双向文件加密***
EP1012691B1 (en) Encrypting file system and method
US7716496B2 (en) Encryption/decryption management method in computer system having storage hierarchy
US20050262150A1 (en) Object-based storage
EP1970831A2 (en) Storage apparatus
CN103745162B (zh) 一种安全网络文件存储***
JP2017126319A (ja) コンピュータプログラム、秘密管理方法及びシステム
CN105335663B (zh) 一种基于双像文件的加密文件***
CN104301289B (zh) 用于安全性信息交互的设备
US7533133B1 (en) Externally managed file versions
CN105224882A (zh) 一种基于桥文件***的文件加密***
CN109656886B (zh) 基于键值对的文件***实现方法、装置、设备和存储介质
CN109725983A (zh) 一种数据交换方法、装置、相关设备及***
US20020172363A1 (en) Data security on a mobile device
US11151266B2 (en) Secure data storage and access during transition operations
CN114817994A (zh) 日志结构的安全数据存储方法及装置
CN108229190A (zh) 透明加解密的控制方法、装置、程序、存储介质和电子设备
CN104123371B (zh) 基于分层文件***的Windows内核文件透明过滤的方法
Factor et al. The OSD security protocol
JP2009020871A (ja) 外部記憶装置
US7568051B1 (en) Flexible UCB

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