[发明专利]基于分层文件系统的Windows内核文件透明过滤的方法在审
申请号: | 201410360078.4 | 申请日: | 2014-07-25 |
公开(公告)号: | CN104123371A | 公开(公告)日: | 2014-10-29 |
发明(设计)人: | 管海兵;龚路;戚正伟 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F21/60 |
代理公司: | 上海新天专利代理有限公司 31213 | 代理人: | 张宁展 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 分层 文件系统 windows 内核 文件 透明 过滤 方法 | ||
技术领域
本发明涉及云环境下隐私数据的保护方法,具体是一种基于分层文件系统(Layerfsd)的Windows内核文件透明过滤的方法,保护云环境下隐私数据。
背景技术
云环境下隐私数据的保护具有广泛的应用价值。通过实现文件透明加密,可以保护云环境下的隐私数据。通过文件透明过滤的方法,在写入文件时对文件内容进行加密,在读取文件时对文件内容进行解密,就实现了文件透明加密,如图1所示。
然而,在Windows操作系统中进行文件透明过滤具有实现上的困难。这是因为在Windows内核中,文件系统、虚拟内存管理器和缓存管理器紧密耦合,如图2所示。当用户通过ReadFile()API来读取文件时,首先会经过文件系统。如果文件系统发现虚拟内存中存在缓存的内容,就会使用缓存中的内容。在这种情况下,可以在文件系统之上安装一个过滤驱动,截获用户的访问并对返回的内容进行修改。当用户通过内存映射来访问文件时,情况则有所不同。如果文件的内容不在缓存中,就会产生缺页中断,并调用文件系统来获取文件的内容;如果文件的内容在缓存中,就不会产生缺页中断,即使在文件系统之上安装过滤驱动,也无法截获任何访问。
这就产生了一个问题,假设要实现一种文件透明加密,包含一个进程列表,在此列表中的进程才能访问文件的真实内容,通过在读取和写入时进行解密和加密;而其他进程只能访问原始的文件内容,即加密后的数据。使用普通的文件系统过滤方法无法实现上述需求,因为缓存中只能保存一种文件的内容,即明文或密文二者取其一。而用户总可以通过内存映射的方法,使得文件系统过滤驱动无法截获到任何请求。
这类问题对文件透明过滤在Windows平台上的应用产生了限制。例如,如果不解决这类问题,就无法实现同时支持明文、密文访问的文件透明加密系统。
在与Windows下文件透明加密的相关已公开专利CN102129540A和CN102567670A中,都使用了普通的文件系统过滤驱动,直接截获对文件的读取和写入操作,并加入加密和解密的动作,并未考虑缓存的影响,因此存在上述问题,无法做到根据进程的状态返回明文或者密文。
工业界广泛使用一种刷新缓存的方法,即当同一个文件在被机密进程和非机密进程访问之间,强制将有关的缓存清空。这样,当缓存中的内容非法时,缓存一定不会被命中,从而一定会请求文件系统提供内容,并经过安装在其上的过滤驱动。然而,这大大降低了整个系统的工作效率,尤其在不同状态的进程频繁切换时。
发明内容
本发明针对上述现有技术的不足,提出了一种基于分层文件系统(Layerfsd)的Windows内核文件透明过滤的方法,解决了上述Windows平台下文件透明过滤的问题。所述的分层文件系统驱动是指在原本的文件系统之上实现了一层新的抽象的文件系统。
本发明原理如下:
如图3所示,普通的文件系统过滤驱动仅仅截获、改变I/O请求的内容,处理后的请求仍然被请求发送到原来的文件系统,应用程序中看到的文件属于原来的文件系统。而本发明实现了一个分层的文件系统,通过在原文件系统上安装一个特殊的过滤驱动,该过滤驱动中包含一个分层的文件系统。部分符合条件I/O请求被转发到分层文件系统,应用程序中看到的文件属于该分层文件系统,原本的文件系统仅提供底层的功能支持;而另一部分不符合条件的I/O请求被转发到原文件系统。
本发明的具体技术解决方案如下:
一种基于分层文件系统的Windows内核文件透明过滤的方法,其特点在于,该方法包括如下步骤:
首先,将文件系统过滤驱动直接或间接地绑定在原有的文件系统驱动上,使之能够截获I/O管理器下发的IRP(I/O Request Packet)。这既可以通过传统的方法,即绑定文件系统的控制设备与卷设备;也可以实现为一个Mini-filter。当实现为一个Mini-filter时,我们需要注册绑定所有的IRP,不能遗漏。
然后,当用户请求操作系统创建或打开一个文件时,I/O管理器会请求创建一个文件对象,并下发功能号为IRP_MJ_CREATE的IRP,文件系统过滤驱动将截获该IRP,获取文件名和打开方式信息,并根据用户的选择,决定是否接管这个文件的I/O操作:
如果选择不接管这个文件的I/O操作,则直接下发原来的IRP到原文件系统;
如果选择接管这个文件的I/O操作,则创建一个FCB(File Control Block),该FCB属于分层文件系统,且满足三个要求:能和I/O管理器正常交互、能被过滤驱动识别、包含下层文件系统的文件句柄;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410360078.4/2.html,转载请声明来源钻瓜专利网。