(南京信息工程大学计算机与软件学院 江苏 南京 210044)
摘 要:讨论了基于WDM分层驱动模型的文件系统过滤驱动的工作原理以及基于该原理的多策略加密系统的设计与实现,讨论了该系统的不足及改进的方向。
关键词:文件系统过滤驱动;文件安全;加密;IRP;WDM
中图法分类号: TP309 文献标识码: A
Multi-Rules Encryption System based on file system filter driver
FU De-sheng1, PAN Yi2
(Department of Computer & software , Nanjing University of Information Science & Technology
NanJing Jiangsu 210044,China)
Abstract: File system filter driver is one kind of means, which is used to solve the security problems of files. This paper simply illustrate the advantages and disadvantages of this technology, focused on the principle of file system filter driver which is based on WDM and the design and implementation of multi-rules encryption system based on file system filter driver, and discuss the lack of improvement of this system.
Keywords: file system filter driver; security of files; encryption; IRP; WDM
0 引言
随着计算机的普及,文件信息的安全性问题已经成为当今信息科学领域中最受关注的问题之一。目前,解决该问题最常用的技术手段是加密技术。加密技术的核心思想是通过在用户态请求到存储介质存储这条通路的某处添加自定义的处理例程,将明文信息转换成密文信息,并最终将密文信息保存在存储介质上。实现加密技术的方法可以分为两种:一种是通过硬件加密引擎实现,即CPU将数据发送给硬件加密引擎可以完成加密工作,这种技术的优点是速度快,安全性高,但是实现成本较高,交互性差。另一种是通过软件实现,具体实现方式分为基于用户模式和基于系统内核模式。基于用户模式方式实现较为容易,但是明文信统内核,得到系统内核保护,因此具有安全性较高、加密灵活、对用户透明等优点,但实现息容易被其它进程拦截,安全性不高。基于系统内核模式实现方式,由于软件工作在操作系的难度相对较大。
文件系统过滤驱动属于基于系统内核模式的实现方式。过滤驱动工作在文件系统驱动层和应用层之间,截获传输的请求并进行相应的加解密处理。文件系统过滤驱动作为一种内核态中间层驱动,只需对下层的文件系统驱动作相应的功能扩展,加密粒度灵活,可靠性强,效率高,易于扩充。
1 文件系统过滤驱动工作原理
Windows NT内核操作系统的驱动模型采用分层结构,如图1所示。图中左边是一个设备对象栈,设备对象是操作系统为帮助软件管理硬件而创建的数据结构。每个硬件至少包含一个物理设备对象(PDO)和功能设备对象(FDO),它们中间会存在一些过滤设备对象(FiDO)。驱动程序对象包含了一组处理I/O请求的例程。分层结构使I/O的请求过程更加清晰,影响到设备的每个操作使用I/O请求包(IRP,I/O Request Packag),每个I/O请求均由I/O管理器发出,并且依次从相应设备栈的顶端向下传递。每一层对应的驱动程序对象都可以调用相应的例程来处理IRP包。
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,它负责为用户建立、存入、读出、修改、转储文件,控制文件的存取与撤销。文件系统响应I/O请求的控制流程如图2所示。I/O请求由应用程序发出,经过WIN32子系统后送给I/O管理器,I/O管理器根据应用层的需要向文件系统发出I/O请求包,即IRP包。文件系统驱动程序对象收到IRP包后首先判断是否为Fast I/O请求,如果是,则交给Fast Dispatch例程处理,数据从缓存中得到并送给I/O管理器;如果不是,则由Dispatch例程来处理IRP包,数据会由磁盘驱动程序从磁盘分区中得到,然后也被送到I/O管理器。数据经过WIN32子系统的处理最终返回给应用程序。
(责任编辑:adminadmin2008)