文件管理方法、装置、电子设备及存储介质与流程

文档序号:24129228发布日期:2021-03-02 16:48阅读:100来源:国知局
文件管理方法、装置、电子设备及存储介质与流程

[0001]
本申请涉及数据保护技术领域,尤其涉及一种文件管理方法、装置、电子设备及存储介质。


背景技术:

[0002]
沙箱是一种虚拟系统程序,模拟了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。相关技术中,可以通过挂钩应用程序接口(api,application programming interface)的方式实现对沙箱文件的管理。
[0003]
然而,通过挂钩api的方式实现对沙箱文件的管理,存在兼容性的问题。


技术实现要素:

[0004]
为解决相关技术问题,本申请实施例提供一种文件管理方法、装置、电子设备及存储介质。
[0005]
本申请实施例的技术方案是这样实现的:
[0006]
本申请实施例提供了一种文件管理方法,包括:
[0007]
通过过滤管理器监测电子设备的文件管理进程;
[0008]
监测到文件管理进程时,所述过滤管理器(英文可以表示为filter manager)通过调用第一类回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面(英文可以表示为desktop)中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;其中,
[0009]
所述电子设备包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是第一微过滤器(英文可以表示为minifilter)向所述过滤管理器注册的;所述多个桌面中各桌面对应的文件目录下的文件基于所述第一minifilter进行了隔离。
[0010]
上述方案中,
[0011]
所述电子设备包含的多个桌面包括第一类桌面和第二类桌面;所述第一类桌面对应的系统操作权限低于所述第二类桌面对应的系统操作权限;
[0012]
在所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下的文件的操作的情况下,所述第一类回调函数允许执行所述文件管理进程对应的文件管理操作;
[0013]
在所述文件管理进程对应的文件管理操作包含所述第一类桌面针对所述第二类桌面对应的文件目录下的文件的操作的情况下,所述第一类回调函数禁止执行所述文件管理进程对应的文件管理操作。
[0014]
上述方案中,
[0015]
所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下第一文件的读取操作;
[0016]
在所述文件管理进程未携带第一标识的情况下,所述第一类回调函数针对所述第
一类桌面对应的文件目录下的第一文件执行所述文件管理进程对应的文件管理操作;所述第一标识表征相应文件管理操作具备文件编辑权限;
[0017]
在所述文件管理进程携带所述第一标识的情况下,所述第一类回调函数针对所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作。
[0018]
上述方案中,
[0019]
在所述第二类桌面对应的文件目录下不存在所述第一文件对应的重定向文件的情况下,所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件,针对生成的重定向文件执行所述文件管理进程对应的文件管理操作。
[0020]
上述方案中,所述方法还包括:
[0021]
所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件时,所述过滤管理器通过调用第二类回调函数,对所述重定向文件进行加密处理;所述第二类回调函数是第二微过滤器(minifilter)向所述过滤管理器注册的;所述第二minifilter对应的海拔高度(英文可以表示为altitude)的值低于所述第一minifilter对应的altitude的值。
[0022]
上述方案中,所述方法还包括:
[0023]
所述第一类回调函数读取所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件时,所述过滤管理器通过调用所述第二类回调函数,对读取的文件内容进行解密处理。
[0024]
上述方案中,
[0025]
所述文件管理进程对应的文件管理操作包含在所述第二类桌面对文件目录进行遍历查询的操作;
[0026]
所述第一类回调函数在待查询文件目录中呈现所述第一类桌面和所述第二类桌面对应的文件目录。
[0027]
本申请实施例还提供了一种文件管理装置,包括:过滤管理器和第一minifilter;其中,
[0028]
所述过滤管理器,用于监测电子设备的文件管理进程;监测到文件管理进程时,通过调用第一类回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;其中,
[0029]
所述电子设备包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是所述第一minifilter向所述过滤管理器注册的;所述多个桌面中各桌面对应的文件目录下的文件基于所述第一minifilter进行了隔离。
[0030]
本申请实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
[0031]
所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
[0032]
本申请实施例还提供了一种存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
[0033]
本申请实施例提供的文件管理方法、装置、电子设备及存储介质,通过过滤管理器监测电子设备的文件管理进程;监测到文件管理进程时,所述过滤管理器通过调用第一类
回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;其中,所述电子设备包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是第一minifilter向所述过滤管理器注册的;所述多个桌面中各桌面对应的文件目录下的文件基于所述第一minifilter进行了隔离。本申请实施例的方案,基于电子设备自身的minifilter框架,实现了多个桌面中各桌面对应的文件目录下的文件的隔离,如此,在所述多个桌面包含沙箱桌面和非沙箱桌面的情况下,能够实现沙箱文件和非沙箱文件之间的隔离,并减少对沙箱文件进行管理时的兼容性问题,提升用户体验。
附图说明
[0034]
图1为本申请实施例文件管理方法的流程示意图;
[0035]
图2为本申请实施例的应用场景示意图;
[0036]
图3为本申请应用实施例沙箱文件系统的结构示意图;
[0037]
图4为本申请应用实施例文件隔离层实现文件重定向的场景示意图;
[0038]
图5为本申请应用实施例文件加解密层实现文件透明加密和透明解密的场景示意图;
[0039]
图6为本申请应用实施例文件加解密层基于回调函数实现文件透明加密和透明解密的场景示意图;
[0040]
图7为本申请应用实施例安全桌面示意图;
[0041]
图8为本申请应用实施例个人桌面示意图;
[0042]
图9为本申请实施例文件管理装置的结构示意图;
[0043]
图10为本申请实施例电子设备的硬件结构示意图。
具体实施方式
[0044]
以下结合附图及实施例对本申请的技术方案作进一步详细的阐述。
[0045]
相关技术中,通过挂钩api的方式实现对沙箱文件的管理,针对沙箱内写入、修改的文件自动转存至沙箱的文件系统,沙箱进程在读文件时,优先匹配沙箱的文件系统文件,匹配失败则读取正常文件系统文件的内容。然而,上述方案在实际应用时可能存在以下兼容性问题:
[0046]
第一,通过挂钩api的方式实现对沙箱文件的管理,需要先插入(即注入)一个模块到进程,由于插入模块的时机无法控制,从而导致执行挂钩api对应的操作的时机不可控制,挂钩api对应的操作可能包括进程监控、文件目录重定向等,如果执行挂钩api对应的操作的时机过晚,可能会带来兼容性问题。
[0047]
第二,通过挂钩api的方式实现对沙箱文件的管理,存在挂钩api受到系统环境、系统版本等因素的影响导致挂钩失败的可能,如果挂钩失败,则无法完整地实现对沙箱文件的管理流程,进而出现兼容性问题。
[0048]
第三,通过挂钩api的方式实现对沙箱文件的管理,可能会带来一些对软件性能上的开销,比如,导致软件启动速度变慢等。
[0049]
第四,电子设备的操作系统可能不支持通过挂钩api的方式实现对沙箱文件的管
理,方案实现较为复杂。
[0050]
基于此,在本申请的各种实施例中,基于电子设备自身的minifilter框架,实现了多个桌面中各桌面对应的文件目录下的文件的隔离,如此,在所述多个桌面包含沙箱桌面和非沙箱桌面的情况下,能够实现沙箱文件和非沙箱文件之间的隔离,并减少对沙箱文件进行管理时的兼容性问题,提升用户体验。
[0051]
本申请实施例提供了一种文件管理方法,应用于电子设备,如图1所示,所述方法包括以下步骤:
[0052]
步骤101:通过过滤管理器监测所述电子设备的文件管理进程;
[0053]
步骤102:监测到文件管理进程时,所述过滤管理器通过调用第一类回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;
[0054]
其中,所述电子设备包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是第一minifilter向所述过滤管理器注册的;所述多个桌面中各桌面对应的文件目录下的文件基于所述第一minifilter进行了隔离。
[0055]
这里,需要说明的是,所述电子设备可以是任一具备多桌面形态的电子设备,比如pc、手机等;所述pc可以包括台式电脑、笔记本电脑、平板电脑等。另外,所述电子设备的操作系统为微软视窗(microsoft windows,简称为windows)操作系统;所述电子设备包含的多个桌面是指所述电子设备包含的至少两个桌面;桌面是指打开所述电子设备并成功登录windows操作系统之后所述电子设备呈现的主屏幕区域;所述第一minifilter可以理解为微型过滤驱动程序;所述过滤管理器是微软为windows操作系统提供的驱动,所述过滤管理器为minifilter提供一些可调用的基本的库,并用来管理minifilter。“所述过滤管理器通过调用第一类回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作”是指:所述第一类回调函数的功能包括“确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作”。
[0056]
具体地,在本申请的各种实施例中,所述电子设备包含的多个桌面中每个桌面对应一个虚拟的工作空间,所述多个桌面使用同一个物理磁盘,该磁盘上并未划分出各桌面的使用区域,用户针对相应桌面进行操作时电子设备呈现的画面为相应桌面对应的工作空间。另外,所述多个桌面中各桌面对应的工作空间可以利用基于统一端点管理(uem,unified endpoint management)实现的沙箱进行隔离,所述第一minifilter可以是沙箱中的一个功能模块,用于对各桌面对应的文件目录下的文件进行隔离。实际应用时,所述多个桌面中各桌面还可以基于沙箱进行进程隔离、网络隔离、注册表隔离、剪切板隔离和服务隔离等,以提高用户数据的安全性。
[0057]
实际应用时,用户可以根据需求设置所述电子设备包含的多个桌面中各桌面对应的系统操作权限,示例性地,如图2所示,用户可以在电子设备200中设置三个桌面:桌面a、桌面b和桌面c,其中,桌面a可以具备登录第一企业的内网的权限,但不具备访问公网(也可以称为广域网)的权限(例如浏览普通网页的权限);桌面b可以具备访问公网的权限,但不具备登录第一企业的内网的权限;桌面c可以具备视频和音频的播放权限,但不具备登录第一企业的内网的权限以及访问公网的权限;所述多个桌面中的每个桌面的任务栏201可以
包含桌面切换按钮202,用户可以通过所述桌面切换按钮202实现桌面的切换,比如桌面a到桌面c的切换、桌面c到桌面b的切换等。当然,用户也可以根据需要对所述电子设备包含的多个桌面中各桌面对应的系统操作权限进行分级,使得用户无法通过系统操作权限的级别较低的桌面打开或编辑系统操作权限的级别较高的桌面对应的文件目录下的文件。
[0058]
示例性地,用户可以将上述桌面a和桌面d设置为安全桌面,桌面d具备登录第二企业的内网的权限,但不具备访问公网的权限,并将桌面a和桌面d对应的系统操作权限设置为一级;同时,将上述桌面b、上述桌面c和桌面e设置为个人桌面,桌面e具备访问公网的权限,但不具备登录第二企业的内网的权限,并将桌面b、桌面c和桌面e对应的系统操作权限设置为二级;基于所述第一minifilter,通过文件重定向的方式对安全桌面对应的文件目录下的文件和个人桌面对应的文件目录下的文件进行隔离,使得用户无法通过个人桌面打开或编辑安全桌面对应的文件目录下的文件,但可以通过安全桌面打开个人桌面对应的文件目录下的文件或者对自身对应的文件目录下的重定向文件进行编辑。这里,安全桌面对应的文件目录下的文件可以理解为沙箱内的文件(可以简称为沙箱文件),沙箱文件即重定向文件,安全桌面对应的文件目录即为重定向文件目录;个人桌面对应的文件目录下的文件可以理解为沙箱外的文件(可以称为非沙箱文件),非沙箱文件即非重定向文件。另外,用户对个人桌面和安全桌面的操作方式(比如文件管理操作方式)完全相同,即用户无法感知使用个人桌面和使用安全桌面的差别,无需对自身的使用习惯进行改变,不需要进行文件复制,操作简单方便。
[0059]
基于此,在一实施例中,所述电子设备包含的多个桌面包括第一类桌面(即上述个人桌面)和第二类桌面(即上述安全桌面);所述第一类桌面对应的系统操作权限低于所述第二类桌面对应的系统操作权限;所述允许或禁止执行所述文件管理进程对应的文件管理操作,可以包括:
[0060]
在所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下的文件的操作的情况下,所述第一类回调函数允许执行所述文件管理进程对应的文件管理操作;
[0061]
在所述文件管理进程对应的文件管理操作包含所述第一类桌面针对所述第二类桌面对应的文件目录下的文件的操作的情况下,所述第一类回调函数禁止执行所述文件管理进程对应的文件管理操作。
[0062]
实际应用时,所述第一minifilter在初始化的过程中,可以向所述过滤管理器注册多个功能不同的第一类回调函数,在所述过滤管理器监测到文件管理进程时,可以根据所述文件管理进程对应的文件管理操作的类型,调用相应类型的第一类回调函数。示例性地,所述第一类回调函数可以包含第一文件打开函数、第一文件重命名函数、第一目录查询函数和第一文件删除函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含打开文件操作的情况下,所述过滤管理器可以调用所述第一文件打开函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含文件重命名操作的情况下,所述过滤管理器可以调用所述第一文件重命名函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含文件目录查询操作的情况下,所述过滤管理器可以调用所述第一目录查询函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含删除文件操作的情况下,所述过滤管理器可以调用所述第一文件删除函数。
[0063]
实际应用时,所述电子设备的文件管理进程可以携带桌面标识,并包含所述文件管理进程对应的文件管理操作所针对的文件存储路径,所述第一类回调函数被调用后,可以根据所述文件管理进程携带的桌面标识,确定所述文件管理进程在所述终端包含的多个桌面中对应的桌面,再根据确定的桌面对应的系统操作权限,确定是否有权限通过所述确定的桌面针对所述文件管理进程对应的文件存储路径执行相应的文件管理操作。示例性地,所述第一类回调函数被调用后,在根据所述文件管理进程携带的桌面标识确定所述文件管理进程对应的桌面为安全桌面、并确定相应文件管理操作所针对的文件存储路径为个人桌面对应的文件目录的情况下,可以确定所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下的文件的操作。
[0064]
实际应用时,为了使得用户能够通过安全桌面查看个人桌面对应的文件目录下的文件,在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含文件目录查询操作的情况下,所述过滤管理器可以调用所述第一目录查询函数;所述第一目录查询函数被调用后,可以将全部个人桌面对应的文件目录和当前安全桌面对应的文件目录合并呈现给用户。
[0065]
基于此,在一实施例中,所述文件管理进程对应的文件管理操作包含在所述第二类桌面对文件目录进行遍历查询的操作;所述允许执行所述文件管理进程对应的文件管理操作,可以包括:
[0066]
所述第一类回调函数在待查询文件目录中呈现所述第一类桌面和所述第二类桌面对应的文件目录。
[0067]
其中,所述呈现所述第一类桌面和所述第二类桌面对应的文件目录,可以包括:
[0068]
呈现每个第一类桌面对应的文件目录;并呈现当前第二类桌面对应的文件目录。
[0069]
实际应用时,用户可以通过只读模式或可编辑模式打开文件。当用户通过安全桌面以只读模式打开个人桌面对应的文件目录下的文件时,由于用户无法对打开的文件进行编辑,文件内容不会发生改变,所述第一类函数可以直接为用户呈现个人桌面对应的文件目录下的文件。当用户通过安全桌面以可编辑模式打开个人桌面对应的文件目录下的文件时,为了使得用户后续对打开的文件进行编辑的内容对个人桌面不可见,所述第一类函数可以对个人桌面对应的文件目录下的文件进行重定向,为用户呈现安全桌面对应的文件目录下的相应重定向文件。
[0070]
基于此,在一实施例中,所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下第一文件的读取操作;所述允许执行所述文件管理进程对应的文件管理操作,可以包括:
[0071]
在所述文件管理进程未携带第一标识的情况下,所述第一类回调函数针对所述第一类桌面对应的文件目录下的第一文件执行所述文件管理进程对应的文件管理操作;所述第一标识表征相应文件管理操作具备文件编辑权限;
[0072]
在所述文件管理进程携带所述第一标识的情况下,所述第一类回调函数针对所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作。
[0073]
具体地,实际应用时,在所述文件管理进程携带所述第一标识的情况下,所述第一类回调函数可以判断所述第二类桌面对应的文件目录下是否存在所述第一文件对应的重
定向文件,若存在,说明用户通过安全桌面对第一文件进行过至少一次编辑操作,所述第一类函数可以直接针对所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作;若不存在,说明用户通过安全桌面对第一文件首次进行编辑操作,所述第一类函数需要先在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件,再针对生成的重定向文件执行所述文件管理进程对应的文件管理操作。
[0074]
基于此,在一实施例中,所述针对所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作,包括:
[0075]
所述第一类回调函数判断所述第二类桌面对应的文件目录下是否存在所述第一文件对应的重定向文件;
[0076]
在所述第二类桌面对应的文件目录下存在所述第一文件对应的重定向文件的情况下,所述第一类回调函数针对所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作;
[0077]
在所述第二类桌面对应的文件目录下不存在所述第一文件对应的重定向文件的情况下,所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件,针对生成的重定向文件执行所述文件管理进程对应的文件管理操作。
[0078]
其中,所述在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件,可以包括:
[0079]
所述第一类回调函数将所述第一文件复制到所述第二类桌面对应的文件目录下,形成所述第一文件对应的重定向文件。
[0080]
实际应用时,为了进一步保障沙箱文件的安全性,在生成非沙箱文件对应的重定向文件时,可以对重定向文件进行加密处理,使得安全桌面对应的文件目录下的文件均为加密后的文件,如此,即便所述电子设备丢失,沙箱文件也不会被泄露,进一步保障了沙箱文件的安全性。
[0081]
基于此,在一实施例中,所述方法还可以包括:
[0082]
所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件时,所述过滤管理器通过调用第二类回调函数,对所述重定向文件进行加密处理;所述第二类回调函数是第二minifilter向所述过滤管理器注册的;所述第二minifilter对应的altitude的值低于所述第一minifilter对应的altitude的值。
[0083]
这里,所述第二minifilter可以理解为微型过滤驱动程序。
[0084]
实际应用时,所述第二minifilter在初始化的过程中,可以向所述过滤管理器注册多个功能不同的第二类回调函数,在所述过滤管理器监测到文件管理进程时,可以根据所述文件管理进程对应的文件管理操作的类型,调用相应类型的第二类回调函数。示例性地,所述第二类回调函数可以包含第二文件打开函数、文件读取函数和文件编辑函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含打开文件操作的情况下,所述过滤管理器可以调用所述第二文件打开函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含读取文件操作的情况下,所述过滤管理器可以调用所述文件读取函数;在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含文件编辑操作的情况下,所述过滤管理器可以调用所述文件编辑函数。
[0085]
这里,所述第二minifilter对应的altitude的值低于所述第一minifilter对应的
altitude的值是指:所述过滤管理器调用所述第一类回调函数的时刻早于调用所述第二类回调函数的时刻。示例性地,在所述过滤管理器监测到的文件管理进程对应的文件管理操作包含打开文件操作的情况下,所述过滤管理器先调用所述第一文件打开函数,再调用所述第二文件打开函数。
[0086]
具体地,实际应用时,在所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下第一文件的读取操作,所述文件管理进程携带所述第一标识,且所述第二类桌面对应的文件目录下不存在所述第一文件对应的重定向文件的情况下,所述过滤管理器可以先调用所述第一类函数,再调用所述第二类函数;所述第一类函数对所述文件管理进程对应的文件管理操作进行重定向处理,所述第二类函数对重定向文件进行加密处理,如此,进一步保障了沙箱文件的安全性,提升了用户体验。
[0087]
实际应用时,在需要读取沙箱文件时,由于磁盘上存储的沙箱文件为加密后的文件,在读取文件后,需要先对读取的内容进行解密处理,再呈现给用户。
[0088]
基于此,在一实施例中,所述方法还可以包括:
[0089]
所述第一类回调函数读取所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件时,所述过滤管理器通过调用所述第二类回调函数,对读取的文件内容进行解密处理。
[0090]
这里,基于所述第二minifilter向所述过滤管理器注册的第二类回调函数,实现了对沙箱文件的加密处理和解密处理,无需用户手动对沙箱文件进行加密和解密,用户在文件管理过程中也无法感知对沙箱文件的加密处理和解密处理,即实现了沙箱文件的透明加密处理和透明解密处理,提升了用户体验。
[0091]
实际应用时,为了避免所述过滤管理器在所述文件管理进程对应的文件管理操作针对非沙箱文件的情况下调用所述第二类回调函数,造成对计算资源的浪费,所述第一类函数可以确定是否需要对所述文件管理进程对应的文件管理操作进行重定向,并向所述过滤管理器返回第二标识,所述第二标识表征是否需要对所述文件管理进程对应的文件管理操作进行重定向;所述过滤管理器可以根据所述第二标识对相应文件进行标记,在后续监测到针对标记过的文件的文件管理进程时,可以根据相应文件的标记确定是否需要调用所述第二类函数。当然,实际应用时,也可以根据需求,由第二类回调函数判断是否需要对所述文件管理进程对应的文件管理操作进行重定向,并根据判断结果为相应文件添加标记。
[0092]
实际应用时,由于用户无法感知当前操作的桌面是安全桌面还是个人桌面,可能无法区分沙箱文件和非沙箱文件,为了使得用户能够对沙箱文件和非沙箱文件进行区分,所述过滤管理器根据所述第二标识对相应文件进行标记时,还可以对沙箱文件(即需要对相应文件管理进程对应的文件管理操作进行重定向的文件)的图标进行标记,示例性地,可以在沙箱文件的图标上添加锁形小图标,以供用户对沙箱文件和非沙箱文件进行区分。如此,能够进一步提升用户体验。
[0093]
本申请实施例提供的文件管理方法,通过过滤管理器监测电子设备的文件管理进程;监测到文件管理进程时,所述过滤管理器通过调用第一类回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;其中,所述电子设备包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是第一minifilter向所述过滤管理器注册的;所述多个
桌面中各桌面对应的文件目录下的文件基于所述第一minifilter进行了隔离。本申请实施例的方案,基于电子设备自身的minifilter框架,实现了多个桌面中各桌面对应的文件目录下的文件的隔离,如此,在所述多个桌面包含沙箱桌面和非沙箱桌面的情况下,能够实现沙箱文件和非沙箱文件之间的隔离,并减少对沙箱文件进行管理时的兼容性问题,提升用户体验。
[0094]
下面结合应用实施例对本申请再作进一步详细的描述。
[0095]
本申请应用实施例利用电子设备的文件系统自带的minifilter框架,实现了一个更可靠、兼容性问题更少、更安全的沙箱文件系统,包括文件隔离功能和文件透明加解和解密功能。具体地,在本申请应用实施例提供的沙箱文件系统中,沙箱内的进程(即安全桌面对应的进程)可以看到沙箱外的所有文件(即个人桌面对应的文件目录下的文件),并可以访问沙箱外的所有文件。用户通过安全桌面对沙箱外的文件进行写入操作或修改操作时,沙箱文件系统会自动将用户写入或修改的文件转存至沙箱内的文件目录(即安全桌面对应的文件目录)下。沙箱内的进程在读取文件时,会优先在沙箱内的文件目录下进行文件匹配,若匹配失败,则会在沙箱外的文件目录下确定并读取相应文件。而沙箱外的进程(即个人桌面对应的进程)尝试读取沙箱内的文件时,会被沙箱文件系统拒绝。另外,沙箱文件系统自动将用户写入或修改的文件转存至沙箱内的文件目录时,会对转存的文件进行自动加密,即沙箱内的文件均为加密后的文件;在沙箱内的进程读取沙箱内的文件时,沙箱文件系统会先对读取的文件进行解密,再呈现给用户。由此可见,沙箱内的进程能够以透明加密和透明解密的方式访问沙箱内的文件。
[0096]
图3为本申请应用实施例沙箱文件系统的结构示意图,示出了整个沙箱文件系统的概况。具体地,沙箱文件系统包括用于实现文件隔离功能的文件隔离层(即上述第一minifilter)及用于实现文件透明加解和解密功能的文件加解密层(即上述第二minifilter);其中,文件隔离层和文件加解密层能够向过滤管理器注册不同类型的回调函数,所述回调函数可以接收过滤管理器发送的特定输入/输出(英文可以表示为i/o)操作的pre操作的回调或post操作的回调;特定i/o操作(即上述文件管理进程对应的文件管理操作)可以包括文件打开、文件读取、文件写入、文件关闭等操作;通过过滤管理器对回调函数的调用,文件隔离层和文件加解密层能够监视或跟踪沙箱文件系统数据,比如,在将每个指定类型的i/o操作(即特定i/o操作)传递到沙箱文件系统之前,过滤管理器将调用pre操作对应的回调函数,在沙箱文件系统处理了特定类型的i/o操作之后,过滤管理器将调用post操作对应的回调函数。这里,文件隔离层的altitude高于文件加解密层,这样,文件隔离层会更早的收到i/o操作pre回调的通知,更早的对文件操作进行隔离。
[0097]
实际应用时,过滤管理器会监控文件管理进程,根据监控到的文件管理进程对应的文件管理操作(比如文件访问操作以及新建文件、修改文件等文件编辑操作),先调用文件隔离层相应的回调函数,再调用文件加解密层相应的回调函数;文件隔离层相应的回调函数被调用后,在文件管理操作包含通过安全桌面对非沙箱文件(即上述沙箱外的文件)进行的操作的情况下,通过文件重定向技术将相应非沙箱文件重定向到沙箱内进行操作,在将相应非沙箱文件重定向到沙箱内进行操作的过程中,相应非沙箱文件会经过文件加解密层(即文件加解密层相应的回调函数被调用),将相应文件内的数据加密并存储到磁盘,后续沙箱内的进程读取该文件时也会在经过文件隔离层(即文件隔离层相应的回调函数被调
用)后经过文件加解密层,读取相应文件内的数据解密后返回给过滤管理器以呈现给用户,如此,实现了以透明加密和透明解密的方式访问沙箱文件(即上述沙箱内的文件)。
[0098]
示例性地,文件隔离层向过滤管理器注册的回调函数(即上述第一类回调函数)可以包括:irp_mj_create(即上述第一第一文件打开函数)、irp_mj_directory_control(即上述第一目录查询函数)、irp_mj_set_information(即上述第一文件重命名函数)和irp_mj_cleanup(即上述第一文件删除函数),分别用于监控文件打开操作、目录查询操作、文件重命名操作以及文件删除操作。文件隔离层向过滤管理器注册的回调函数(即上述第二类回调函数)可以包括:irp_mj_create(即上述第二文件打开函数)、irp_mj_read(即上述文件读取函数)和irp_mj_write(即上述文件编辑函数),分别用于监控文件打开操作、文件读取操作和文件写入操作;其中,irp_mj_read被调用时,需要对文件进行透明解密处理;irp_mj_write被调用时,需要对文件进行透明加密处理。
[0099]
下面结合图4至图6对沙箱文件系统的功能进行详细说明。
[0100]
如图4所示,过滤管理器监控到文件打开操作(即监测到对应文件打开操作的进程)时,调用irp_mj_create,irp_mj_create确定当前桌面为安全桌面,并获取文件打开操作对应的文件路径,根据所述文件路径判断文件打开操作针对的目标文件是否在隔离区(即沙箱内)存在,若存在,则重定向文件到隔离区;若不存在,则判断文件打开操作对应的文件打开参数(所述参数携带在相应进程信息中)是否带有“写”标记(即上述第一标识);若带有“写”标记,则重定向文件到隔离区;若不带有“写”标记,则直接打开操作的文件。这里,文件隔离层利用文件重定向技术,实现了沙箱进程对文件编辑操作(即带有“写”标记的文件打开操作)进行了隔离。具体地,进行文件重定向时,可以在注册的irp_mj_create的pre操作回调中,通过调用系统函数ioreplacefileobjectname修改pre回调参数中的文件对象的文件的路径为重定向的路径,返回status_reparse(即上述第二标识)给过滤管理器,过滤管理器会将这一次的文件操作重定向到修改后的路径,整个文件重定向的过程是由过滤管理器通过调用回调函数来去管理控制的。
[0101]
如图5所示,过滤管理器监控到文件编辑操作(即监测到对应文件编辑操作的进程)时,先调用文件隔离层注册的回调函数,再调用文件加解密层注册的回调函数,在文件加解密层,相应的回调函数会对文件的读写进行透明加密和透明解密,这里透明加密和透明解密只针对沙箱进程访问隔离区文件的情况,当沙箱进程的文件操作被重定向时,文件隔离层中相应的回调函数会将相应文件拷贝到隔离区,在文件拷贝操作在经过文件加解密层(即文件加解密层的回调函数被调用)时相应文件会被加密到磁盘上,当沙箱进程再次去读取该文件时,经过文件加解密层,会将读取到的文件数据进行解密。另外,在图5中,“在隔离目录下”的情况指相应文件为沙箱文件的情况;“不在隔离目录下”的情况指相应文件为非沙箱文件的情况,此时文件加解密层不关注针对该文件的操作,即无需对非沙箱文件进行透明加密和透明解密。实际应用时,文件加解密层的回调函数被调用后,也可以通过文件隔离层对应的minifilter提供的接口,向文件隔离层查询相应文件是否需要加密或解密。
[0102]
如图6所示,对于沙箱进程,在监控到沙箱进程对应文件打开操作的情况下,过滤管理器调用文件加解密层注册的irp_mj_create,irp_mj_create获取文件路径,通过文件路径判断文件打开操作对应的文件是否在隔离目录(即沙箱内的重定向目录)下;若在隔离目录下,irp_mj_create可以对相应文件进行标记,以表征后续针对该文件的操作需要进行
透明加密和透明解密;若不在隔离目录下,irp_mj_create也可以对相应文件进行标记,以表征后续针对该文件的操作不需要进行透明加密和透明解密,可以直接读取原文件。在监控到沙箱进程对应文件读取操作的情况下,过滤管理器调用文件加解密层注册的irp_mj_read,irp_mj_read根据相应文件的标记判断是否需要对相应文件进行透明解密;若需要,irp_mj_read可以返回解密后的文件数据;若不需要,irp_mj_read可以不对相应文件进行解密,直接返回文件中本身的数据。在监控到沙箱进程对应数据写入文件的操作的情况下,过滤管理器调用文件加解密层注册的irp_mj_write,irp_mj_write根据相应文件的标记判断是否需要对相应文件进行透明加密;若需要,irp_mj_write可以对写入的数据进行加密处理;若不需要,irp_mj_write可以直接写入数据到相应文件。
[0103]
实际应用时,还可以通过文件隔离层,实现用户在沙箱中既可以看到沙箱内的文件也可以看到沙箱外的文件(即用户通过安全桌面既可以看到重定向文件也可以看到非重定向文件);具体地,文件隔离层向过滤管理器注册irp_mj_directory_control的post操作回调,过滤管理器监控到沙箱进程对应遍历查询文件目录的操作时,调用irp_mj_directory_control;irp_mj_directory_control收到调用通知后,将沙箱文件目录和非沙箱文件目录进行合并,返回给过滤管理器以呈现给用户,如此,能够实现在沙箱中可以看到所有文件的效果(此时电子设备包含一个安全桌面和一个个人桌面)。
[0104]
示例性地,在电子设备包含一个安全桌面和一个个人桌面的情况下,如图7所示的安全桌面既能够呈现沙箱内的文件(图7中带锁形标记的文件)也能够呈现沙箱外的文件(图7中不带锁形标记的文件);假设沙箱内的文件中“测试.txt”为用户通过安全桌面对个人桌面的文件进行编辑后产生的,那么如图8所示的个人桌面仅能够呈现未经用户通过安全桌面进行编辑的版本的“测试.txt”文件(即图8中的“测试.txt”文件不带锁形标记)。
[0105]
本应用实施例提供的沙箱文件系统,具备以下优点:
[0106]
(1)minifilter随着系统启动便开始工作,对进程进行监测的时机足够早;
[0107]
(2)minifilter采用的是微软提供的框架,在正常情况下向系统注册回调函数时不易产生程序错误;并且,可以直接监控系统所有进程的文件操作,实现方便;
[0108]
(3)实现了沙箱文件和非沙箱文件之间的隔离,减少了对沙箱文件进行管理时的兼容性问题,提升了用户体验;
[0109]
(4)实现了对沙箱文件的透明加密和透明解密,即用户几乎不会感觉到加解密过程的存在,提升了用户体验。
[0110]
为了实现本申请实施例的方法,本申请实施例还提供了一种文件管理装置,设置在电子设备上,如图9所示,该装置包括:过滤管理器901和第一minifilter902;其中,
[0111]
所述过滤管理器901,用于监测所述电子设备的文件管理进程;监测到文件管理进程时,通过调用第一类回调函数,确定所述文件管理进程在所述电子设备包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;其中,
[0112]
所述电子设备包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是所述第一minifilter 902向所述过滤管理器901注册的;所述多个桌面中各桌面对应的文件目录下的文件基于所述第一minifilter 902进行了隔离。
[0113]
其中,在一实施例中,所述电子设备包含的多个桌面包括第一类桌面和第二类桌面;所述第一类桌面对应的系统操作权限低于所述第二类桌面对应的系统操作权限;
[0114]
在所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下的文件的操作的情况下,所述第一类回调函数允许执行所述文件管理进程对应的文件管理操作;
[0115]
在所述文件管理进程对应的文件管理操作包含所述第一类桌面针对所述第二类桌面对应的文件目录下的文件的操作的情况下,所述第一类回调函数禁止执行所述文件管理进程对应的文件管理操作。
[0116]
在一实施例中,所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下第一文件的读取操作;
[0117]
在所述文件管理进程未携带第一标识的情况下,所述第一类回调函数针对所述第一类桌面对应的文件目录下的第一文件执行所述文件管理进程对应的文件管理操作;所述第一标识表征相应文件管理操作具备文件编辑权限;
[0118]
在所述文件管理进程携带所述第一标识的情况下,所述第一类回调函数针对所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作。
[0119]
在一实施例中,在所述第二类桌面对应的文件目录下不存在所述第一文件对应的重定向文件的情况下,所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件,针对生成的重定向文件执行所述文件管理进程对应的文件管理操作。
[0120]
在一实施例中,所述文件管理装置还包括第二minifilter;其中,
[0121]
所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件时,所述过滤管理器901通过调用第二类回调函数,对所述重定向文件进行加密处理;所述第二类回调函数是所述第二minifilter向所述过滤管理器注册的;所述第二minifilter对应的altitude的值低于所述第一minifilter 902对应的altitude的值。
[0122]
在一实施例中,所述第一类回调函数读取所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件时,所述过滤管理器901通过调用所述第二类回调函数,对读取的文件内容进行解密处理。
[0123]
在一实施例中,所述文件管理进程对应的文件管理操作包含在所述第二类桌面对文件目录进行遍历查询的操作;
[0124]
所述第一类回调函数在待查询文件目录中呈现所述第一类桌面和所述第二类桌面对应的文件目录。
[0125]
实际应用时,所述过滤管理器901、所述第一minifilter 902和所述第二minifilter可由所述文件管理装置中的处理器实现。
[0126]
需要说明的是:上述实施例提供的文件管理装置在管理文件时,仅以上述各程序模块的划分进行举例说明,实际应用时,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的文件管理装置与文件管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0127]
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备,如图10所示,电子设备1000包括:
[0128]
通信接口1001,能够与其他电子设备进行信息交互;
[0129]
处理器1002,与所述通信接口1001连接,以实现与其他电子设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法;
[0130]
存储器1003,用于存储能够在所述处理器1002上运行的计算机程序。
[0131]
具体地,所述处理器1002用于执行以下操作:
[0132]
通过过滤管理器监测所述电子设备1000的文件管理进程;
[0133]
其中,监测到文件管理进程时,所述过滤管理器通过调用第一类回调函数,确定所述文件管理进程在所述电子设备1000包含的多个桌面中对应的桌面;并允许或禁止执行所述文件管理进程对应的文件管理操作;
[0134]
所述电子设备1000包含的多个桌面中各桌面对应的系统操作权限相同或不同;所述第一类回调函数是第一minifilter向所述过滤管理器注册的;所述多个桌面中各桌面对应的文件目录下的文件基于所述第一minifilter进行了隔离。
[0135]
其中,在一实施例中,所述电子设备1000包含的多个桌面包括第一类桌面和第二类桌面;所述第一类桌面对应的系统操作权限低于所述第二类桌面对应的系统操作权限;
[0136]
在所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下的文件的操作的情况下,所述处理器1002通过所述第一类回调函数允许执行所述文件管理进程对应的文件管理操作;
[0137]
在所述文件管理进程对应的文件管理操作包含所述第一类桌面针对所述第二类桌面对应的文件目录下的文件的操作的情况下,所述处理器1002通过所述第一类回调函数禁止执行所述文件管理进程对应的文件管理操作。
[0138]
在一实施例中,所述文件管理进程对应的文件管理操作包含所述第二类桌面针对所述第一类桌面对应的文件目录下第一文件的读取操作;
[0139]
在所述文件管理进程未携带第一标识的情况下,所述处理器1002通过所述第一类回调函数针对所述第一类桌面对应的文件目录下的第一文件执行所述文件管理进程对应的文件管理操作;所述第一标识表征相应文件管理操作具备文件编辑权限;
[0140]
在所述文件管理进程携带所述第一标识的情况下,所述处理器1002通过所述第一类回调函数针对所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件执行所述文件管理进程对应的文件管理操作。
[0141]
在一实施例中,在所述第二类桌面对应的文件目录下不存在所述第一文件对应的重定向文件的情况下,所述处理器1002通过所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件,针对生成的重定向文件执行所述文件管理进程对应的文件管理操作。
[0142]
在一实施例中,所述处理器1002通过所述第一类回调函数在所述第二类桌面对应的文件目录下生成所述第一文件对应的重定向文件时,所述过滤管理器通过调用第二类回调函数,对所述重定向文件进行加密处理;所述第二类回调函数是第二minifilter向所述过滤管理器注册的;所述第二minifilter对应的altitude的值低于所述第一minifilter对应的altitude的值。
[0143]
在一实施例中,所述处理器1002通过所述第一类回调函数读取所述第二类桌面对应的文件目录下所述第一文件对应的重定向文件时,所述过滤管理器通过调用所述第二类
回调函数,对读取的文件内容进行解密处理。
[0144]
在一实施例中,所述文件管理进程对应的文件管理操作包含在所述第二类桌面对文件目录进行遍历查询的操作;
[0145]
所述处理器1002通过所述第一类回调函数在待查询文件目录中呈现所述第一类桌面和所述第二类桌面对应的文件目录。
[0146]
需要说明的是:所述处理器1002具体执行上述操作的过程详见方法实施例,这里不再赘述。
[0147]
当然,实际应用时,电子设备1000中的各个组件通过总线系统1004耦合在一起。可理解,总线系统1004用于实现这些组件之间的连接通信。总线系统1004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统1004。
[0148]
本申请实施例中的存储器1003用于存储各种类型的数据以支持电子设备1000的操作。这些数据的示例包括:用于在电子设备1000上操作的任何计算机程序。
[0149]
上述本申请实施例揭示的方法可以应用于处理器1002中,或者由处理器1002实现。处理器1002可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1002可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器1002可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器1003,处理器1002读取存储器1003中的信息,结合其硬件完成前述方法的步骤。
[0150]
在示例性实施例中,电子设备1000可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
[0151]
可以理解,本申请实施例的存储器1003可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read-only memory)、可擦除可编程只读存储器(eprom,erasable programmable read-only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read-only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd-rom,compact disc read-only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随
机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其他适合类型的存储器。
[0152]
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器1003,上述计算机程序可由电子设备1000的处理器1002执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd-rom等存储器。
[0153]
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
[0154]
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
[0155]
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1