CN105590067A - 一种基于用户空间文件系统的文件加密系统 - Google Patents
一种基于用户空间文件系统的文件加密系统 Download PDFInfo
- Publication number
- CN105590067A CN105590067A CN201510956820.2A CN201510956820A CN105590067A CN 105590067 A CN105590067 A CN 105590067A CN 201510956820 A CN201510956820 A CN 201510956820A CN 105590067 A CN105590067 A CN 105590067A
- Authority
- CN
- China
- Prior art keywords
- file
- virtual
- space
- user
- secure
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于用户空间文件系统的加密文件系统,包括用户空间文件系统和文件重定向过滤器驱动;文件重定向过滤器驱动将程序进程针对安全文件盘或目录中一个文件的打开或创建操作重定向到用户空间文件系统中的一个虚拟文件;用户空间文件系统的FUSE用户空间进程将针对虚拟文件的文件I/O操作转化成针对重定向前的文件的文件I/O操作,并在文件I/O操作处理过程中根据程序进程是受信还是非受信进程自动进行文件加密和解密处理;用户空间文件系统的FUSE文件驱动不为被打开或创建的虚拟文件创建数据缓存,并将针对虚拟文件的所有I/O操作以非缓存方式处理;发明避免了缓存冗余、数据同步问题,简化了文件加密系统的实施。
Description
技术领域
本发明属于信息安全技术领域,特别是一种基于用户空间文件系统的文件加密系统。
背景技术
透明文件加密系统能在不改变用户使用习惯的情况下自动实现文件的加密和解密,是保证数据安全的重要技术手段。在透明文件加密中,对加密文件进行文件I/O操作的程序进程分为受信进程和非受信进程,受信进程被允许获取加密文件的明文数据,而非受信进程则不被允许。在目前的计算机文件系统中,为了提高文件I/O操作的效率,文件I/O操作大多是采用缓存方式,即文件系统在计算机内存中缓存程序进程读取和/或存写的数据,且不同程序进程对同一个文件进行文件I/O操作时它们在内存中的数据缓存是共享的。带缓存的文件I/O给透明文件加密带来了额外的问题:当受信进程和非受信进程同时对一个加密文件进行文件I/O操作时,特别是交替进行文件数据读取、存写操作时,缓存中会交替出现明文数据和密文数据,这样会带来如下问题:一是非受信进程有可能读取到明文数据,造成数据泄密,二是导致程序进程不能正确处理数据,比如受信进程读取的是密文数据而无法正常处理。为了解决这一问题,人们常用的解决方案是:在受信进程和非受信进程交替对同一个文件进行文件I/O操作时,不断地刷写(flush)、清空(clear)缓存数据。这种方案的问题是:一是要频繁的刷写、清空缓存,导致出现所谓暴力刷缓存、清缓存的问题,二是在受信进程和非受信进程交替读取、存写数据时,要正确处理缓存刷写、清空是非常困难的。
针对透明文件加密存在的以上问题,本发明的申请人在其专利申请“一种基于桥文件系统的文件加密系统”(申请号:201510614005.8)中提出了一种以用户空间文件系统作为受信进程进行文件I/O操作的桥梁的透明文件加密方案,但此方案也存在如下不足:
首先,存在冗余数据缓存及缓存数据不一致的问题,当一个受信进程以缓存文件I/O的方式打开或创建计算机文件系统中的一个安全文件盘或安全文件目录中的一个文件时,会存在两个数据缓存:一是受信进程在用户空间文件系统中打开或创建的文件的数据缓存,二是FUSE用户空间程序的程序进程在计算机文件系统中打开或创建的、受信进程在安全文件盘或安全文件目录中原本要打开或创建的文件的数据缓存;这种冗余的数据缓存不仅占用了较多的内存资源,特别是内核内存资源,而且会出现缓存数据不一致的情况:若非受信进程与受信进程打开或创建计算机文件系统中的一个安全文件盘或安全文件目录中的同一个文件,而非受信进程进行了数据存写操作,则非受信进程在计算机文件系统中打开或创建的文件的数据缓存与受信进程在用户空间文件系统打开或创建的文件的数据缓存中的数据会出现不一致的情况;
其次,当一个非受信进程对全文件盘或安全文件目录中的一个文件进行数据存写操作时,文件加密过滤器驱动要判断存写的文件数据是明文还是密文,若是明文则要将数据加密后再进行存写,而在内核层进行这种判断和数据加密也是比较麻烦的,特别地,当一个非受信进程以内存映射方式打开或创建文件并存写明文数据时,文件加密过滤器驱动要及时进行加密处理更加困难;
再有,当一个程序进程打开或创建安全文件盘或安全文件目录中的一个加密文件时,文件加密过滤器驱动要判断打开或创建文件的程序进程是受信进程还是非受信进程,并据此进行文件打开或创建操作重定向处理,而在内核层进行这种判断通常是比较麻烦的。
另外,本发明的申请人在专利申请“一种基于多像文件的加密文件系统”(申请号:201510917010.6)的实施案例二中也描述了一种借助用户空间文件系统对安全文件盘或安全文件目录中的文件自动进行加密、解密的方案,这个方案存在的问题是:
一是,要在用户空间文件系统构建一个多像文件系统,这比较麻烦;
二是,存在冗余数据缓存,当受信进程和非受信进程打开或创建计算机文件系统中一个安全文件盘或安全文件目录中的同一个文件时,对同一个文件会存在多个数据缓存:文件在用户空间文件系统中被打开或创建的每个A像文件和B像文件都有自己的数据缓存,FUSE用户空间进程在计算机文件系统中打开或换件文件有数据缓存,进一步地,若A像文件有多个,则多个A像文件有多个数据缓存,这么多的数据缓存会造成内存资源的浪费,特别是内核内存资源的浪费;
三是,要进行缓存数据同步,由于存在多个数据缓存,因此在出现文件信息修改和/或数据存写操作时,需要进行缓存数据的同步操作;
四是,当一个程序进程打开或创建安全文件盘或安全文件目录中的一个加密文件时,文件重定向过滤器驱动要判断打开或创建文件的程序进程是受信进程还是非受信进程,并据此进行文件重定向处理,而在内核层进行这种判断通常是比较麻烦的。
但是,我们可以注意到如下事实:一是,当将用户空间文件系统作为文件加密、解密的桥梁或工具时,在用户空间文件系统的文件数据缓存其实是没必要的,因为,程序进程要打开或创建的文件在计算机文件系统中已有数据缓存,二是,若在用户空间文件系统进行受信进程和非受信进程判别以及数据加密、解密处理,相应的技术实施将变得简单得多,本发明正是基于这两个事实。
发明内容
本发明的目的是提出一种基于用户空间文件系统的文件加密系统,以克服现有技术方案的不足。
为了实现本发明的目的,本发明所提出的技术方案是:一种基于用户空间文件系统的文件加密系统,具体如下。
所述文件加密系统是一个对用户计算机文件系统中的安全文件盘(磁盘逻辑分区)或安全文件目录中的文件自动进行加密和解密处理的系统;所述安全文件盘或安全文件目录是用户计算机文件系统中的一个文件盘或文件目录,存放在此文件盘或文件目录中的文件被所述文件加密系统加密成为加密文件;对所述安全文件盘或安全文件目录中的加密文件进行文件I/O操作的程序进程包括受信进程、非受信进程以及操作系统辅助文件I/O操作的系统进程(如WindowsSystem进程);所述受信进程是操作系统辅助文件I/O操作的系统进程以外的被允许获取加密文件的明文数据的程序进程;所述非受信进程是操作系统辅助文件I/O操作的系统进程以外的不被允许取加密文件的明文数据的程序进程;受信进程和非受信进程针对文件类型而设定(如Word程序的运行进程是Word文档的受信进程,而InternetExplorer的运行进程则不是);操作系统辅助文件I/O操作的系统进程不属于任一种文件类型的受信进程和非受信进程;当操作系统辅助文件I/O操作的系统进程辅助一个非受信进程对一个加密文件进行文件I/O操作时,操作系统辅助文件I/O操作的系统进程不被允许获取加密文件的明文数据;当操作系统辅助文件I/O操作的系统进程辅助一个受信进程对一个加密文件进行文件I/O操作时,操作系统辅助文件I/O操作的系统进程被允许获取加密文件的明文数据(操作系统辅助文件I/O操作的系统进程辅助一个程序进程所进行的文件I/O操作是被辅助的程序进程所进行的文件I/O操作的人一部分);
对所述安全文件盘(磁盘逻辑分区)或安全文件目录中的文件自动进行加密和解密处理的所述文件加密系统又包括用户空间文件系统和文件重定向过滤器驱动,其中:
用户空间文件系统:一个采用用户空间文件系统(UserSpaceFileSystem,FUSE)技术开发、用于对安全文件盘或安全文件目录中的文件进行加密和解密处理的系统;所述用户空间文件系统在用户计算机系统中对应一个文件盘或文件目录,即表现为一个文件盘或文件目录;所述用户空间文件系统对应的文件盘或文件目录称为虚拟文件盘或虚拟文件目录;所述虚拟文件盘或虚拟文件目录中的文件称为虚拟文件(这里的用户空间文件系统并不是用于存储管理文件的,仅是作为一个文件加密和解密的工具,因此,用户空间文件系统对应的文件盘或文件目录及其中“出现”的文件被分别称为虚拟文件盘或虚拟文件目录及虚拟文件);所述用户空间文件系统又包括FUSE文件驱动、FUSE用户空间程序,其中,FUSE文件驱动是所述用户空间文件系统的文件驱动,FUSE用户空间程序是用户空间文件系统中对文件I/O操作请求进行处理的用户空间程序;FUSE用户空间程序的程序进程(即运行进程)称为FUSE用户空间进程;当一个程序进程请求以缓存I/O方式打开或创建虚拟文件盘或虚拟文件目录中的一个虚拟文件时,所述用户空间文件系统的FUSE文件驱动不为打开或创建的虚拟文件在内存中创建数据缓存,即:即便程序进程请求以缓存I/O方式打开或创建虚拟文件,FUSE文件驱动也不为打开或创建的虚拟文件创建数据缓存;对于程序进程针对被打开或创建的虚拟文件进行的所有文件I/O操作,所述用户空间文件系统的FUSE文件驱动按非缓存I/O的方式进行响应处理,即:FUSE文件驱动将针对虚拟文件的所有文件I/O操作请求,包括数据读取和存写、文件信息设置和查询,都提交到FUSE用户空间进程进行处理(比如,在Windows下,即便是以缓存I/O方式打开的虚拟文件,FUSE文件驱动也将针对虚拟文件的非Page读、非Page写请求提交到FUSE用户空间进程,而不是提交到缓存管理器处理;对于针对虚拟文件的文件信息设置、查询请求,FUSE文件驱动也提交到FUSE用户空间进程,而不是针对缓存在内存中的文件控制块FCB中的文件信息进行设置、查询);
文件重定向过滤器驱动:一个拦截文件I/O操作请求并进行文件I/O操作重定向处理的文件过滤器驱动类型的驱动;当一个程序进程针对安全文件盘或安全文件目录中的一个文件进行文件打开或创建操作时,所述文件重定向过滤器驱动将文件打开或创建操作重定向到用户空间文件系统所对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件;重定向后的虚拟文件的文件路径中包含有重定向前程序进程要打开或创建的文件的文件路径信息(如何包含取决于具体实施方案);重定向前的文件同重定向后的虚拟文件之间存在一一对应的关系;重定向前的文件称为重定向后的虚拟文件的对应原文件;程序进程在所述安全文件盘或安全文件目录中要打开或创建、并被重定向的文件包括普通文件和文件目录(普通文件是存放数据的文件,而文件目录是存放文件组织信息及位置信息的文件),而文件目录又包括安全文件盘或安全文件目录自身及安全文件盘或安全文件目录的下级文件目录;
当接收到一个程序进程针对虚拟文件盘或虚拟文件目录中的一个虚拟文件(即重定向后的虚拟文件)进行文件打开或创建的操作请求后,所述用户空间文件系统的FUSE用户空间进程从程序进程请求打开或创建的虚拟文件的文件路径中获得重定向前的原文件的文件路径,然后按请求中给出的文件打开或创建方式(如缓存文件I/O或非缓存文件I/O)打开或创建虚拟文件对应的重定向前的原文件,之后将针对虚拟文件的文件I/O操作转化为针对重定向前的原文件的文件I/O操作;特别地:当所述用户空间文件系统的FUSE用户空间进程打开或创建安全文件盘或安全文件目录中的原文件时,若检查发现打开或创建的原文件是非加密的文件,则将非加密的原文件加密成加密的文件;当一个程序进程(即受信进程或操作系统辅助文件I/O操作的系统进程)对一个受信进程打开或创建的虚拟文件进行数据读取操作时,所述用户空间文件系统的FUSE用户空间进程将从虚拟文件的对应原文件读取的加密数据解密后再返回;当一个程序进程(即受信进程或操作系统辅助文件I/O操作的系统进程)对一个受信进程打开或创建的虚拟文件进行数据存写操作时,所述用户空间文件系统的FUSE用户空间进程将要存写的明文数据加密后再存写到虚拟文件的对应原文件;当一个程序进程(即非受信进程或操作系统辅助文件I/O操作的系统进程)对一个非受信进程打开或创建的文件进行数据读取操作时,所述用户空间文件系统的FUSE用户空间进程将从虚拟文件的对应原文件读取的加密数据直接返回;当一个程序进程(即非受信进程或操作系统辅助文件I/O操作的系统进程)对一个非受信进程打开或创建的虚拟文件进行数据存写操作时,若所述用户空间文件系统的FUSE用户空间进程检查发现要存写的数据是明文数据,则所述用户空间文件系统的FUSE用户空间进程将要存写的明文数据加密后再存写到虚拟文件的对应原文件(若检查确定要存写的数据是密文数据,则有两种可能,一是将加密数据直接存写到虚拟文件的对应原文件,二是先将数据解密,然后加密后再存写,具体是哪只方式,取决于具体实施要求,而后一种情况针对的是原有的加密文件的加密密钥与要存写的加密数据的加密密钥不同、而具体实施方案要求保持原有加密文件的加密密钥不变的情形);
所述文件重定向过滤器驱动对所述用户空间文件系统的FUSE用户空间进程针对所述安全文件盘或安全文件目录中的文件包括普通文件和文件目录所进行的文件打开或创建操作不进行重定向处理,对所述用户空间文件系统的FUSE用户空间进程针对所述安全文件盘或安全文件目录中的文件包括普通文件和文件目录所进行的文件I/O操作不干预。
当接收到一个程序进程针对虚拟文件盘或虚拟文件目录中的一个虚拟文件进行文件打开或创建操作的请求后,所述用户空间文件系统的FUSE用户空间进程判断进行文件打开或创建操作的程序进程是受信进程还是非受信进程(如通过进程ID获得进程名称,并进而根据进程名判断),并标记被打开或创建的虚拟文件是被受信进程还是非受信进程打开或创建的。
若用户计算机文件系统中的所述安全文件盘或安全文件目录不止一个,则当所述文件重定向过滤器驱动将一个程序进程针对安全文件盘或安全文件目录中的一个文件所进行的文件打开或创建操作重定向到用户空间文件系统对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件时,所述文件重定向过滤器驱动将重定向前的原文件的完整文件路径,包括文件所在文件盘,编码在重定向后的虚拟文件的文件路径中,而所述用户空间文件系统的FUSE用户空间进程从程序进程要打开或创建的(重定向后的)虚拟文件的文件路径中获得虚拟文件的对应原文件的完整文件路径。
所述用户空间文件系统的FUSE文件驱动接收到程序进程针对重定后的虚拟文件的文件重命名操作的请求后,从请求中获得针对虚拟文件的对应原文件进行重命名后的目标文件的文件路径(程序进程进行的文件重命名操作总是针对原文件的,因此,FUSE文件驱动接收到的文件重命名请求中包含有原文件在重命名后的目标文件的文件路径,比如,Windows文件系统中对文件进行重命名的设置文件信息的操作请求中的FILE_RENAME_INFORMATION数据结构中包含有原文件进行重命名后的目标文件的文件路径),然后将针对虚拟文件的对应原文件进行重命名后的目标文件的文件路径编码在针对虚拟文件进行重名后的目标文件的文件路径中(即针对虚拟文件进行重名后的目标文件的文件路径中包含有针对原文件进行重名后的目标文件的文件路径),而所述用户空间文件系统的FUSE用户空间进程根据针对虚拟文件进行重命名后的目标文件的文件路径中包含的针对原文件进行重命名后的目标文件的文件路径,针对虚拟文件的对应原文件进行文件重命名操作;特别地:若用户计算机文件系统中的所述安全文件盘或安全文件目录不止一个,则所述用户空间文件系统的FUSE文件驱动将原文件进行重命名后的目标文件的完整文件路径,包括重命名后的目标文件所在文件盘,编码在针对虚拟文件进行重名后的目标文件的文件路径中。
从以上描述可以看到,基于本发明的技术方案,由于用户空间文件系统不为被打开或创建的虚拟文件创建数据缓存,只有计算机文件系统会为FUSE用户空间进程在安全文件盘或安全文件目录中打开或创建的文件建立数据缓存,因此,对于安全文件盘或安全文件目录中的每个被程序进程打开或创建的文件最多只有一个文件数据缓存,因此,避免了冗余数据缓存的问题,也没有进行缓存数据同步的需要;进一步,受信进程和非受信进程的判别以及文件数据的加密、解密都在用户空间(FUSE用户空间进程或程序)中实施,这大大简化了文件加密系统的实施。
附图说明
图1为本发明的系统原理示意图。
具体实施方式
下面结合附图对本发明的具体实施进行描述。
用户空间文件系统的开发目前已是比较成熟的技术,无论是Windows系统、Linux系统还是Unix系统,都有相应的开发技术或开发框架(通过网络公开资料可获得这方面的资料甚至源码),因此,本发明的用户空间文件系统的实施可以在现有用户空间文件系统开发技术或开发框架的基础上,根据本发明中针对用户空间文件系统的功能要求(技术特征)进行开发实施,其中关键的一点是FUSE文件驱动不为程序进程请求以缓存方式打开或创建的虚拟文件创建数据缓存,并将程序进程针对虚拟文件的所有文件I/O操作以非缓存的方式(提交到FUSE用户空间进程)进行处理。
对于虚拟文件的文件路径的构造,可采用如下方案。
假设安全文件目录是D:\SecureDir,用户空间文件系统对应K盘,则:
若用户计算机文件系统中(限定)只可能有一个安全文件盘或文件目录,而程序进程要打开的一个文件是:
D:\SecureDir\SSubDir1\Sample.ext,
则重定向后的虚拟文件的文件路径是:
K:\SSubDir1\Sample.ext;
若用户计算机文件系统中可能(设定)有多个安全文件盘或文件目录,而程序进程要打开的一个文件是:
D:\SecureDir\SSubDir1\Sample.ext,
则重定向后的虚拟文件的文件路径是:
K:\__D\SSubDir1\Sample.ext;
这里用__D代表文件盘D(类似地,__E表示E盘,以此类推)。
因此,FUSE用户空间进程通过虚拟文件的文件路径即可获得程序进程要打开的原文件的文件路径。
对于文件重命名操作,FUSE文件驱动接收到针对虚拟文件的文件重命名操作请求后,根据接收到的文件重命名操作请求中包含的原文件重命名后的目标文件的文件路径信息,按照从原文件的文件路径构造虚拟文件的文件路径的同样方式,重新构造针对虚拟文件进行重命名操作的重命名目标文件的文件路径,比如,若原文件重命名前的文件路径是:
D:\SecureDir\SSubDir1\Sample.ext,
重命名后的目标文件的文件路径是:
D:\SecureDir\SSubDir1\Sample2.ext,
则FUSE文件驱动接收到的文件重命名操作请求中包含的重命名后的目标文件的文件路径是:
D:\SecureDir\SSubDir1\Sample2.ext,
对此,FUSE文件驱动重新构造的针对虚拟文件的重命名后的目标文件的文件路径是:
K:\SSubDir1\Sample2.ext,(仅存在一个安全文件盘或安全文件目录时)
或者,K:\__D\SSubDir1\Sample2.ext(存在多个安全文件盘或安全文件目录时)。
由于FUSE文件驱动按非缓存方式处理所有文件I/O操作,因此,若文件加密采用块加密的方式,则FUSE用户空间进程接收到的数据读取或存写操作请求中指示或给出的要读取或存在的数据可能不是正好在块加密数据块的边界上(这与操作系统及程序进程读、写数据的方式有关,比如,Windows下,对于读数据,无论Page还是非Page读,总是以4096的整数倍为边界,但写则不一定),对此,可按如下方式处理:
当一个程序进程针对受信进程打开或创建的一个虚拟文件进行数据读取操作时,FUSE程序进程按与块加密数据块边界对齐的方式从虚拟文件的对应原文件读取数据(按与块加密数据块边界对齐的方式,即读取数据的基本单位是块加密数据块,比如,若块加密数据块的大小是16字节,则以16字节为单位读取数据),且使得读取的数据中包含程序进程要读取的数据,然后解密读取的数据,向程序进程返回要读取的数据;
当一个程序进程针对受信进程打开或创建的一个虚拟文件进行数据存写操作时,若存写数据的首部和/或尾部不在块加密数据块的边界上,则FUSE程序进程先从虚拟文件的对应原文件读取包含要存写的数据的首部和/或尾部的数据块(大小为块加密数据块的大小,且与块加密数据块边界对齐),解密读取的数据块,然后将要存写的数据的首部和/或尾部填写到解密后的数据块中,形成一个与块加密数据块边界对齐的、包含要存写的数据的新的明文数据,将新的明文数据加密后再存写到虚拟文件的对应原文件;或者,当程序进程针对一个受信进程打开或创建的文件存写明文数据时,FUSE用户空间进程将不是位于块加密数据块边界的数据首部和尾部缓存在内存中,直到进行文件刷写(flush)或文件关闭(close)操作时,再将内存中累积的数据加密后存到虚拟文件的对应原文件(这时缓存中的“零碎”文件数据将合并成适合块加密的数据块);
当一个程序进程针对非受信进程打开或创建的一个虚拟文件进行数据读取操作时,FUSE程序进程直接从虚拟文件的对应原文件读取对应位置的数据然后返回(若有加密头部,则读取位置有头部偏移处理);
当一个程序进程针对非受信进程打开或创建的一个虚拟文件进行数据存写操作时,若存写的是密文数据,则FUSE程序进程直接将数据存写到虚拟文件的对应原文件的对应位置(若有加密头部,则存写位置有头部偏移处理);若存写的是明文数据,则FUSE程序进程按针对受信进程打开或创建的虚拟文件存写明文数据时一样的处理方式存写数据;或者,由于程序进程针对非受信进程打开或创建的文件所进行的数据存写通常是顺序存写,因此,FUSE程序进程可以在缓存中累积程序进程要存写的数据,将符合块加密的数据数据加密、存写,将不够块加密大小的数据继续留在缓存中。
FUSE程序进程如何判断安全文件盘或安全文件目录中被打开或创建的文件是加密的文件还是非加密的文件,如何判断一个程序进程针对一个非受信进程打开或创建的虚拟文件存写的数据是明文数据还是密文数据?对此,可以采用如下方案。
给加密文件加一个包含特征数据的头部,FUSE程序进程打开或创建安全文件盘或安全文件目录中的一个文件时,通过判断文件是否有特征头部从而确定文件是加密文件还是非加密文件;当一个程序进程对一个非受信进程打开或创建的虚拟文件进行数据存写操作时,FUSE程序进程在内存中累积要存写的数据(非受信进程存写文件数据通常是按顺序存写的,不会随机存写),并判断要存写的文件数据的起始部分是否包含特征头部,从而确定要存写的数据是明文数据还是密文数据。
对于文件重定向过滤器驱动,若用户计算机的操作系统是Windows系统,则文件重定向过滤器驱动的开发可以采用Windows文件过滤器驱动(filterdriver)或微过滤器驱动(mini-filterdriver)技术开发;特别地,对于文件重定向功能,可以利用Windows过滤器驱动或微过滤器驱动实现reparsepoint功能(参见WDK的simrep.c代码)。若用户计算机的操作系统是其他系统,则文件重定向过滤器驱动的开发可以采用对应的技术。
为了避免文件加密系统因某种原因未启动或未装载时用户或程序在安全文件盘或安全文件目录中存放未加密的文件,可采用如下技术方案:
文件存储位置迁移:
将安全文件盘或安全文件目录中的所有文件包括普通文件和文件目录存放到安全文件盘或安全文件目录中的一个设定的文件存储子目录下;然后将针对安全文件盘或安全文件目录中文件包括普通文件和文件目录的文件I/O操作映射为针对文件存储子目录中文件的文件I/O操作;而将针对安全文件盘或安全文件目录中文件的文件I/O操作映射为针对文件存储子目录中文件的文件I/O操作的方法包括:
映射方法一:当一个程序进程针对安全文件盘或安全文件目录中的一个文件进行文件打开或创建操作时,所述文件重定向过滤器先将文件打开或创建操作重定向到所述文件存储子目录中的一个文件(在重定向前的文件的文件路径中插入文件存储子目录形成重定向后的文件的文件路径),之后再将程序进程针对文件存储子目录中文件的文件打开或创建操作重定向到用户空间文件系统所对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件(重定向过滤器驱动进程两次重定向);
映射方法二:当一个程序进程针对安全文件盘或安全文件目录中的一个文件进行文件打开或创建操作时,文件重定向过滤器将针对文件存储子目录中文件的文件打开或创建操作重定向到用户空间文件系统所对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件,并将文件存储子目录插入到重定向后的虚拟文件的文件路径中(即假设程序进程直接要打开或创建的文件是文件存储子目录中的一个文件,也即将映射方法一的两步重定向合二为一);
文件存储子目录名混杂或警示:
给文件存储子目录指定一个随机生成的名字(比如,将一个随机数Base64编码后作为文件存储子目录的名字);或者,文件存储子目录的名字是一段警示信息,提示用户文件加密系统未启动或未装载(文件加密系统正常启动后,用户是看不到文件存储子目录的);
文件存储补漏:
所述文件加密系统启动后,若检查发现安全文件盘或安全文件目录中文件存储子目录以外的地方存放有文件包括普通文件和文件目录,则所述文件加密系统将安全文件盘或安全文件目录中文件存储子目录以外存放的文件包括普通文件和文件目录移到文件存储子目录中,并确保移到文件存储子目录中存放的(普通)文件是加密文件。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。
Claims (5)
1.一种基于用户空间文件系统的文件加密系统,其特征是:
所述文件加密系统是一个对用户计算机文件系统中的安全文件盘或安全文件目录中的文件自动进行加密和解密处理的系统;所述安全文件盘或安全文件目录是用户计算机文件系统中的一个文件盘或文件目录,存放在此文件盘或文件目录中的文件被所述文件加密系统加密成为加密文件;对所述安全文件盘或安全文件目录中的加密文件进行文件I/O操作的程序进程包括受信进程、非受信进程以及操作系统辅助文件I/O操作的系统进程;所述受信进程是操作系统辅助文件I/O操作的系统进程以外的被允许获取加密文件的明文数据的程序进程;所述非受信进程是操作系统辅助文件I/O操作的系统进程以外的不被允许取加密文件的明文数据的程序进程;受信进程和非受信进程针对文件类型而设定;操作系统辅助文件I/O操作的系统进程不属于任一种文件类型的受信进程和非受信进程;当操作系统辅助文件I/O操作的系统进程辅助一个非受信进程对一个加密文件进行文件I/O操作时,操作系统辅助文件I/O操作的系统进程不被允许获取加密文件的明文数据;当操作系统辅助文件I/O操作的系统进程辅助一个受信进程对一个加密文件进行文件I/O操作时,操作系统辅助文件I/O操作的系统进程被允许获取加密文件的明文数据;
对所述安全文件盘或安全文件目录中的文件自动进行加密和解密处理的所述文件加密系统又包括用户空间文件系统和文件重定向过滤器驱动,其中:
用户空间文件系统:一个采用用户空间文件系统技术开发、用于对安全文件盘或安全文件目录中的文件进行加密和解密处理的系统;所述用户空间文件系统在用户计算机系统中对应一个文件盘或文件目录,即表现为一个文件盘或文件目录;所述用户空间文件系统对应的文件盘或文件目录称为虚拟文件盘或虚拟文件目录;所述虚拟文件盘或虚拟文件目录中的文件称为虚拟文件;所述用户空间文件系统又包括FUSE文件驱动、FUSE用户空间程序,其中,FUSE文件驱动是所述用户空间文件系统的文件驱动,FUSE用户空间程序是用户空间文件系统中对文件I/O操作请求进行处理的用户空间程序;FUSE用户空间程序的程序进程称为FUSE用户空间进程;当一个程序进程请求以缓存I/O方式打开或创建虚拟文件盘或虚拟文件目录中的一个虚拟文件时,所述用户空间文件系统的FUSE文件驱动不为打开或创建的虚拟文件在内存中创建数据缓存,即:即便程序进程请求以缓存I/O方式打开或创建虚拟文件,FUSE文件驱动也不为打开或创建的虚拟文件创建数据缓存;对于程序进程针对被打开或创建的虚拟文件进行的所有文件I/O操作,所述用户空间文件系统的FUSE文件驱动按非缓存I/O的方式进行响应处理,即:FUSE文件驱动将针对虚拟文件的所有文件I/O操作请求,包括数据读取和存写、文件信息设置和查询,都提交到FUSE用户空间进程进行处理;
文件重定向过滤器驱动:一个拦截文件I/O操作请求并进行文件I/O操作重定向处理的文件过滤器驱动类型的驱动;当一个程序进程针对安全文件盘或安全文件目录中的一个文件进行文件打开或创建操作时,所述文件重定向过滤器驱动将文件打开或创建操作重定向到用户空间文件系统所对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件;重定向后的虚拟文件的文件路径中包含有重定向前程序进程要打开或创建的文件的文件路径信息;重定向前的文件同重定向后的虚拟文件之间存在一一对应的关系;重定向前的文件称为重定向后的虚拟文件的对应原文件;程序进程在所述安全文件盘或安全文件目录中要打开或创建、并被重定向的文件包括普通文件和文件目录,而文件目录又包括安全文件盘或安全文件目录自身及安全文件盘或安全文件目录的下级文件目录;
当接收到一个程序进程针对虚拟文件盘或虚拟文件目录中的一个虚拟文件进行文件打开或创建的操作请求后,所述用户空间文件系统的FUSE用户空间进程从程序进程请求打开或创建的虚拟文件的文件路径中获得重定向前的原文件的文件路径,然后按请求中给出的文件打开或创建方式打开或创建虚拟文件对应的重定向前的原文件,之后将针对虚拟文件的文件I/O操作转化为针对重定向前的原文件的文件I/O操作;特别地:当所述用户空间文件系统的FUSE用户空间进程打开或创建安全文件盘或安全文件目录中的原文件时,若检查发现打开或创建的原文件是非加密的文件,则将非加密的原文件加密成加密的文件;当一个程序进程对一个受信进程打开或创建的虚拟文件进行数据读取操作时,所述用户空间文件系统的FUSE用户空间进程将从虚拟文件的对应原文件读取的加密数据解密后再返回;当一个程序进程对一个受信进程打开或创建的虚拟文件进行数据存写操作时,所述用户空间文件系统的FUSE用户空间进程将要存写的明文数据加密后再存写到虚拟文件的对应原文件;当一个程序进程对一个非受信进程打开或创建的文件进行数据读取操作时,所述用户空间文件系统的FUSE用户空间进程将从虚拟文件的对应原文件读取的加密数据直接返回;当一个程序进程对一个非受信进程打开或创建的虚拟文件进行数据存写操作时,若所述用户空间文件系统的FUSE用户空间进程检查发现要存写的数据是明文数据,则所述用户空间文件系统的FUSE用户空间进程将要存写的明文数据加密后再存写到虚拟文件的对应原文件;
所述文件重定向过滤器驱动对所述用户空间文件系统的FUSE用户空间进程针对所述安全文件盘或安全文件目录中的文件包括普通文件和文件目录所进行的文件打开或创建操作不进行重定向处理,对所述用户空间文件系统的FUSE用户空间进程针对所述安全文件盘或安全文件目录中的文件包括普通文件和文件目录所进行的文件I/O操作不干预。
2.根据权利要求1所述的基于用户空间文件系统的文件加密系统,其特征是:
当接收到一个程序进程针对虚拟文件盘或虚拟文件目录中的一个虚拟文件进行文件打开或创建操作的请求后,所述用户空间文件系统的FUSE用户空间进程判断进行文件打开或创建操作的程序进程是受信进程还是非受信进程,并标记被打开或创建的虚拟文件是被受信进程还是非受信进程打开或创建的。
3.根据权利要求1所述的基于用户空间文件系统的文件加密系统,其特征是:
若用户计算机文件系统中的所述安全文件盘或安全文件目录不止一个,则当所述文件重定向过滤器驱动将一个程序进程针对安全文件盘或安全文件目录中的一个文件所进行的文件打开或创建操作重定向到用户空间文件系统对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件时,所述文件重定向过滤器驱动将重定向前的原文件的完整文件路径,包括文件所在文件盘,编码在重定向后的虚拟文件的文件路径中,而所述用户空间文件系统的FUSE用户空间进程从程序进程要打开或创建的虚拟文件的文件路径中获得虚拟文件的对应原文件的完整文件路径。
4.根据权利要求1所述的基于用户空间文件系统的文件加密系统,其特征是:
所述用户空间文件系统的FUSE文件驱动接收到程序进程针对重定后的虚拟文件的文件重命名操作的请求后,从请求中获得针对虚拟文件的对应原文件进行重命名后的目标文件的文件路径,然后将针对虚拟文件的对应原文件进行重命名后的目标文件的文件路径编码在针对虚拟文件进行重名后的目标文件的文件路径中,而所述用户空间文件系统的FUSE用户空间进程根据针对虚拟文件进行重命名后的目标文件的文件路径中包含的针对原文件进行重命名后的目标文件的文件路径,针对虚拟文件的对应原文件进行文件重命名操作;特别地:若用户计算机文件系统中的所述安全文件盘或安全文件目录不止一个,则所述用户空间文件系统的FUSE文件驱动将原文件进行重命名后的目标文件的完整文件路径,包括重命名后的目标文件所在文件盘,编码在针对虚拟文件进行重名后的目标文件的文件路径中。
5.根据权利要求1所述的基于用户空间文件系统的文件加密系统,其特征是:
所述文加密系统通过文件存储位置迁移、文件存储子目录名混杂或警示及文件存储补漏避免由于文件加密系统未启动或未装载造成用户或程序在安全文件盘或安全文件目录中存放的文件未加密;
所述文件存储位置迁移即将安全文件盘或安全文件目录中的所有文件包括普通文件和文件目录存放到安全文件盘或安全文件目录中的一个设定的文件存储子目录下;然后将针对安全文件盘或安全文件目录中文件包括普通文件和文件目录的文件I/O操作映射为针对文件存储子目录中文件的文件I/O操作;而将针对安全文件盘或安全文件目录中文件的文件I/O操作映射为针对文件存储子目录中文件的文件I/O操作的方法包括:
映射方法一:当一个程序进程针对安全文件盘或安全文件目录中的一个文件进行文件打开或创建操作时,所述文件重定向过滤器先将文件打开或创建操作重定向到所述文件存储子目录中的一个文件,之后再将程序进程针对文件存储子目录中文件的文件打开或创建操作重定向到用户空间文件系统所对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件;
映射方法二:当一个程序进程针对安全文件盘或安全文件目录中的一个文件进行文件打开或创建操作时,文件重定向过滤器将针对文件存储子目录中文件的文件打开或创建操作重定向到用户空间文件系统所对应的虚拟文件盘或虚拟文件目录中的一个虚拟文件,并将文件存储子目录插入到重定向后的虚拟文件的文件路径中;
所述文件存储子目录名混杂即给文件存储子目录指定一个随机生成的名字;
所述文件存储子目录名警示即文件存储子目录的名字是一段警示信息,提示用户文件加密系统未启动或未装载;
所述文件存储补漏即所述文件加密系统启动后,若检查发现安全文件盘或安全文件目录中文件存储子目录以外的地方存放有文件包括普通文件和文件目录,则所述文件加密系统将安全文件盘或安全文件目录中文件存储子目录以外存放的文件包括普通文件和文件目录移到文件存储子目录中,并确保移到文件存储子目录中存放的文件是加密文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510956820.2A CN105590067B (zh) | 2015-12-17 | 2015-12-17 | 一种基于用户空间文件系统的文件加密系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510956820.2A CN105590067B (zh) | 2015-12-17 | 2015-12-17 | 一种基于用户空间文件系统的文件加密系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105590067A true CN105590067A (zh) | 2016-05-18 |
CN105590067B CN105590067B (zh) | 2018-06-19 |
Family
ID=55929640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510956820.2A Active CN105590067B (zh) | 2015-12-17 | 2015-12-17 | 一种基于用户空间文件系统的文件加密系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105590067B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480281A (zh) * | 2017-08-23 | 2017-12-15 | 金钱猫科技股份有限公司 | 一种异构文件系统之间的统一视图的构建方法 |
CN114780042A (zh) * | 2022-05-06 | 2022-07-22 | 江苏安超云软件有限公司 | 提升nas存储性能的方法及装置、电子设备和存储介质 |
CN117349870A (zh) * | 2023-12-05 | 2024-01-05 | 苏州元脑智能科技有限公司 | 基于异构计算的透明加解密计算系统、方法、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1766883A (zh) * | 2004-10-28 | 2006-05-03 | 日本电气株式会社 | 基于秘密模式来切换要访问的文件夹的方法及计算机系统 |
CN101710345A (zh) * | 2009-12-22 | 2010-05-19 | 成都市华为赛门铁克科技有限公司 | 一种文件的存储、读取方法、装置和存取系统 |
CN101763225A (zh) * | 2010-01-22 | 2010-06-30 | 蓝盾信息安全技术股份有限公司 | 一种保护虚拟磁盘文件的系统及方法 |
CN103825953A (zh) * | 2014-03-04 | 2014-05-28 | 武汉理工大学 | 一种用户模式加密文件系统 |
CN104125069A (zh) * | 2014-07-07 | 2014-10-29 | 武汉理工大学 | 一种面向共享的安全文件目录文件加密系统 |
-
2015
- 2015-12-17 CN CN201510956820.2A patent/CN105590067B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1766883A (zh) * | 2004-10-28 | 2006-05-03 | 日本电气株式会社 | 基于秘密模式来切换要访问的文件夹的方法及计算机系统 |
CN101710345A (zh) * | 2009-12-22 | 2010-05-19 | 成都市华为赛门铁克科技有限公司 | 一种文件的存储、读取方法、装置和存取系统 |
CN101763225A (zh) * | 2010-01-22 | 2010-06-30 | 蓝盾信息安全技术股份有限公司 | 一种保护虚拟磁盘文件的系统及方法 |
CN103825953A (zh) * | 2014-03-04 | 2014-05-28 | 武汉理工大学 | 一种用户模式加密文件系统 |
CN104125069A (zh) * | 2014-07-07 | 2014-10-29 | 武汉理工大学 | 一种面向共享的安全文件目录文件加密系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480281A (zh) * | 2017-08-23 | 2017-12-15 | 金钱猫科技股份有限公司 | 一种异构文件系统之间的统一视图的构建方法 |
CN114780042A (zh) * | 2022-05-06 | 2022-07-22 | 江苏安超云软件有限公司 | 提升nas存储性能的方法及装置、电子设备和存储介质 |
CN117349870A (zh) * | 2023-12-05 | 2024-01-05 | 苏州元脑智能科技有限公司 | 基于异构计算的透明加解密计算系统、方法、设备和介质 |
CN117349870B (zh) * | 2023-12-05 | 2024-02-20 | 苏州元脑智能科技有限公司 | 基于异构计算的透明加解密计算系统、方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105590067B (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10223544B1 (en) | Content aware hierarchical encryption for secure storage systems | |
US10158483B1 (en) | Systems and methods for efficiently and securely storing data in a distributed data storage system | |
US8589697B2 (en) | Discarding sensitive data from persistent point-in-time image | |
US6249866B1 (en) | Encrypting file system and method | |
US7185205B2 (en) | Crypto-pointers for secure data storage | |
US7949693B1 (en) | Log-structured host data storage | |
US20080228770A1 (en) | Method for Performing Recoverable Live Context Migration in a Stacked File System | |
US8099605B1 (en) | Intelligent storage device for backup system | |
US9014372B2 (en) | Video file encryption and decryption method, device, and mobile terminal | |
US9830278B1 (en) | Tracking replica data using key management | |
US11249672B2 (en) | Low-cost backup and edge caching using unused disk blocks | |
CN105760779B (zh) | 一种基于fuse的双向文件加密系统 | |
CN105426766B (zh) | 一种基于影子文件的文件加密系统 | |
US9749132B1 (en) | System and method for secure deletion of data | |
US10903977B2 (en) | Hidden electronic file systems | |
US8364985B1 (en) | Buffer-caches for caching encrypted data via copy-on-encrypt | |
CN105224882B (zh) | 一种基于桥文件系统的文件加密系统 | |
US20060095380A1 (en) | System and method for logical shredding of data stored on worm media | |
CN105590067A (zh) | 一种基于用户空间文件系统的文件加密系统 | |
CN111581647A (zh) | 文件加密及解密方法、装置 | |
CN105335663B (zh) | 一种基于双像文件的加密文件系统 | |
US9063656B2 (en) | System and methods for digest-based storage | |
CN104036201A (zh) | 一种Windows操作系统下的应用层文件隐藏方法 | |
JP2002175210A (ja) | データの移動、複製方法及び暗号化、復号方法 | |
CN105574431A (zh) | 一种基于多像文件的加密文件系统 |
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 |