一种基于多像文件的加密文件系统的制作方法_3

文档序号:9810957阅读:来源:国知局
各自独立的数据缓存,因此,即便一个非受信进程存写了明文数据,也不会造成数据泄露;除非出现文件信息修改或数据存写的操作,无需对内存中的文件信息或数据缓存进行同步操作,避免了频繁刷缓存、清缓存的问题。
[0046]需指出的是,本发明虽然也支持采用多个B像文件的方式,即重定向后每个受信进程有各自独立的B像文件和独立的缓存,但这种方式目前看不出有什么额外的好处。还有,若将一个原文件对应多个A像文件改为一个原文件仅对应一个A像文件,则本发明的加密文件系统与发明专利申请201510690514.9中的基于双像文件的加密文件系统存在许多相似之处,但仍有所不同,比如,本发明中每个原文件有三个文件映像,而专利申请201510690514.9中仅两个,本发明中加密文件系统对受信进程和非受信进程都要进行文件重定向,而专利申请201510690514.9中仅对其中一个进行重定向,这在具体应用中可带来更多的灵活性;但是,若一个原文件仅对应一个A像文件,则所述加密文件系统自身或者通过一个文件过滤器驱动确保A像文件在内存中的缓存数据是密文数据(加密数据),这当然比较麻烦。
【附图说明】
[0047]图1为本发明的基于多像文件的加密文件系统原理示意图。
[0048]图2为基于本发明的用户空间加密文件系统原理示意图。
[0049]图3为基于本发明和用户空间文件系统的文件加密系统原理示意图。
[0050]图4为基于本发明和文件过滤器驱动的网络文件加密系统原理示意图。
【具体实施方式】
[0051]下面结合附图和实施案例对本发明的具体实施进行描述。
[0052]实施例一、基于多像文件的用户空间加密文件系统
[0053]如图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)进行定制、开发。
[0054]对于用户空间加密文件系统中的原文件的各种文件映像的区分和文件路径的表示,可采用的一种方案如下。
[0055]假设用户空间加密文件系统在计算机中对应(显现或装载mount)的文件盘是K盘(对应文件盘符K:),加密文件系统中的一个原文件在K盘中的主像文件的文件路径是:
[0056]K:\Dir\SubDirl\SubDir2\...\sample.ext,
[0057]则该原文件在K盘中的A像文件的文件路径是:
[0058]K:\—iAFiles\<ImageID>\Dir\SubDirl\SubDir2\...\sample.ext,
[0059]该原文件在K盘中的B像文件的文件路径是:
[0060]K:\—iBFiles\<ImageID>\Dir\SubDirl\SubDir2\...\sample.ext,
[0061]这里,文件目录__@AFi Ies和—OBFi Ies用于表示和区分A像文件和B像文件,没有—OAFiles和—OBFiles的则是主像文件;〈ImagelD〉是A像文件和B像文件的实例ID,用于区分同一个原文件的不同的A像文件和B像文件;若一个原文件只有一个A像文件或B像文件,则对应A像文件或B像文件的实例ID只有一个;若一个原文件有多个A像文件或B像文件,则对应A像文件或B像文件的实例ID的个数没有限制。
[0062]以上方案同时适合于普通文件和文件目录。
[0063]若A像文件或B像文件有多个,则〈ImagelD〉在进行文件打开或创建操作重定向时动态确定,具体地,可采用如下方案之一。
[0064]〈ImagelD〉实施方案一、
[0065]〈ImagelD〉采用序列号0、1、2、…对应的字符串;加密文件系统记录每个原文件当前被打开或创建的A像文件或B像文件的〈ImagelD〉;当将针对一个主像文件的文件打开或创建操作重定向到对应原文件的A像文件或B像文件时,加密文件系统选用A像文件或B像文件的一个未用的序列号作为〈ImagelD〉,比如,随机选一个未用的序列号,或者选一个最小未用的序列号,或者选一个比已用序列号大I的序列号等。
[0066]〈ImagelD〉实施方案二、
[0067]从某个固定时刻开始以毫秒为单位对时间进行计数,当对一个主像文件打开或创建操作进行重定向时,加密文件系统以当前时刻的时间计数值的字串作为重定向后的A像文件或B像文件的〈ImagelD)。
[0068]以上两个方案同时适合于普通文件和文件目录。
[0069]从以上方案可以看到,A像文件和B像文件的文件路径中包含有主像文件的文件路径,加密文件系统可通过A像文件或B像文件的文件路径确定程序进程要操作的主像文件,从而确定要操作的原文件。由于文件目录K:\—@4?1168\和1(:\—册?1168\在这里有特别的用途,因此,不能当作普通的文件目录使用。加密文件系统可检查一个文件的文件路径是否包含文件目录K: \—OAFiles\SK: \—OBFi les\,若包含,则进一步检查是K: \—OAFi 168\还是K: \_iBFiles\,从而确定一个文件是主像文件、A像文件还是B像文件。
[0070]在进行文件打开或创建操作重定向时,加密文件系统需要判断一个打开或创建操作所针对的文件对象是普通文件还是文件目录,对此,可采用如下方案之一。
[0071]—种方案是加密文件系统在进行文件重定向前先检查文件打开或创建操作所针对的原文件是普通文件还是文件目录,比如通过检查文件I/O操作请求,或通过检查存储的文件,或针对文件进行文件I/O操作,这种方案稍微有点麻烦。
[0072]另一种方案是加密文件系统根据文件打开或创建操作中给出的文件的扩展名进行判断,若有扩展名,则是普通文件,若没有,则是文件目录。以文件扩展名作为普通文件和文件目录的判别依据,会出现误判,因为具有特定用途的普通文件通常是有扩展名的,没有扩展名的文件通常是文件目录,但是,也可能出现有扩展名的文件是文件目录的情况,也就是说采用这种方案,有可能把有扩展名的文件目录当作普通文件,但是,即便出现这种误判也不会产生任何问题,这是因为文件目录的内容无需保密的,因此,一个文件目录无论是作为文件目录被打开或创建,还是作为普通文件被受信进程或非受信进程打开或创建,都不会出现问题。
[0073]对于一个程序进程针对一个主像文件目录所进行的打开或创建操作,可采用不进行重定向的方案(直接转化为针对原文件的操作)。
[0074]FUSE用户空间进程可以兼作文件同步进程进行内存中的文件控制块中的文件信息和文件数据缓存的同步处理,具体地如下:
[0075]FUSE用户空间进程在内存中维护一个表,记录当前被打开或创建的A像文件和/或B像文件;FUSE用户空间进程在进行了针对A像文件或B像文件的文件信息修改或数据存写操作处理后,作为文件同步进程(以用户空间文件系统的使用进程的角色)针对A像文件和B像文件进行文件信息和文件数据缓存同步操作;而FUSE用户空间进程接收到自己针对A像文件和B像文件的文件I/O操作请求后,不针对A像文件和B像文件的对应原文件进行文件I/O操作(但FUSE文件驱动已针对请求对内存中的文件控制块中的文件信息和数据缓存进行了设置)。
[0076]实施例二、以基于多像文件的用户空间文件系统作为文件加密、解密桥梁的文件加密、解密系统
[0077]如图3所示,利用本发明并结合用户空间文件系统(File System in User Space,FUSE)在现有计算机文件系统的基础上构建一个透明文件加密系统,即构建一个针对计算机文件系统的一个文件盘或文件目录中的文件自动进行加密、解密的透明文件加密系统,【具体实施方式】如下。
[0078]用户将要实施文件加密、解密的文件盘或文件目录设置为一个安全文件盘或安全文件目录(用户通过一个安装配置程序设置)。
[0079]引入一个基于多像文件的用户空间文件系统,此用户空间文件系统将安全文件盘或安全文件目录作为自己存储文件的地方,即安全文件盘或安全文件目录中的文件就是用户空间文件系统存储管理的原文件;原文件相对于安全文件盘或安全文件目录的文件路径(相对路径)与原文件对应的主像文件相对于用户空间文件系统所对应的文件盘或文件目录的文件路径(相对路径)是一样的(即相对路径一样);A像文件和B像文件的文件路径及其与对应主像文件的文件路径的对应关系同实施例一。
[0080]引入一个文件重定向过滤器驱动,当一个程序进程要打开或创建安全文件盘或安全文件目录中的一个文件时,文件重定向过滤器驱动判断程序进程是非受信进程还是受信进程,并将非受信进程或受信进程的文件打开或创建操作重定向到程序进程要打开的文件的对应A像文件或B像文件;对应A像文件或B像文件相对于用户空间文件系统所对应的文件盘或文件目录的文件路径(相对路径)中包含有程序进程要打开的文件相对于安全文件盘或安全文件目录的文件路径(相对路径),比如,假设安全文件目录是D: \SecureDir,用户空间文件系统对应K盘,则若程序进程要打开的一个文件是:
[0081 ] D:\SecureDir\SSubDirl\Sample.ext,
[0082]则重定向后的文件路径是:
[0083]K: \—iAFiles\<ImageID>\S
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1