移动介质管理系统设计与实现_第1页
移动介质管理系统设计与实现_第2页
移动介质管理系统设计与实现_第3页
移动介质管理系统设计与实现_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、针对移动存储介质的使用特点,提出了一种基于WindowsNT的移动存储介质安全管理系统的设计方案,讨论了基于波分复用(WDM) 分层驱动模型的实现原理,设计了用于增强身份验证安全性的一次性口令算法,采用3层密钥结构以及改进的加密模式,不仅提高了文件加密的安全强度,也保证了小群组内文件的安全共享。1移动存储介质安全管理系统的结构模型移动存储介质的安全管理依赖于操作系统所提供的安全机制以及对移动存储设备的管理机制,考虑到 目前计算机上使用的操作系统大多为Windows系统,Windows NT对移动设备的管理采用基于 WDM勺分层驱动模型,因此,移动存储介质的安全管理系统必须与Windows NT

2、进行集成才能实现相应功能。该系统包括3个功能模块:主机监控模块、USBKey模块、加解密模块。其结构模型如图I所示。上述结构设计的主要思想是根据Windows NT的分层驱动模型,通过开发联接在Hub上的过滤驱动程序,使上层应用程序将用户注册口令密文和登录口令传递给Hub过滤驱动程序,在内核模式下完成对用户的身份认证。认证过程中,为了增强安全性,采用一次性口令认证方案,具体方法是用户的登录口令固定,但 在内核模式下将其作为一次性口令生成算法的种子,生成下一次需要传递给 Hub过滤驱动进行验证的口令。为了实现数据安全存储,在移动存储介质中设置一个安全文件夹,通过开发文件系统过滤驱动对进岀安全 文

3、件夹的文件进行加解密。加密体制采用3层密钥结构,即私人密钥、大群组密钥、小群组密钥。加密文件时使用私人密钥与小群组密钥的组合(异或而成)作为加密密钥,私人密钥存储在USBKey中,并通过管理程序将其注入文件系统过滤驱动。小群组密钥则采用IDEA算法加密后保存在安全文件夹的扩展属性中,这个IDEA加密算法中使用的密钥为大群组密钥。2系统实现技术根据系统各模块的逻辑关系以及Windows NT系统支持的分层驱动模型和文件系统的结构特征,系统的实现包括在应用层的实现和内核模式下的实现,包括用户管理应用程序(MFileManSys.exe)、极小泄漏的USBKey认证方案、Hub过滤驱动程序(MHub

4、Filter . sys)和文件系统过滤驱动程序 (MFileFiher . sys)4个 部分。其中USBKey认证是基于挑战一响应模式的双向的、动态的和极小泄漏的认证。2. 1 Hub过滤驱动程序主机监控模块是通过 Hub过滤驱 动程序(MhubFiher . sys)实现的,主要功能是验证移动存储介质 使用者的身份,确保数据不被恶意拷贝。Hub过滤驱动程序的设计需要创建一个设备,并将这个设备挂接到ttub的设备堆栈中这样就可以捕获到操作系统发往Hub驱动程序的IRP,根据需要对IRP进行适当地处理,再将其下发到 Hub驱动程序。当用户插入移动存储介质后,Hub过滤驱动程序截取主功能号为I

5、RP_MJ_PNP次功能号为IRP_MN_QUERY_BUS_INF0RMAT1OlRP,在DispatchPnp分发例程中检查合法标志是否为1,如果为1,则调用Hub驱动程序创建该移动存储介质的PDO同时设置一个完成例程 MHub Contml Completion ,PDO创建完成后将完成例程中的合法性标志重新设为0。Hub过滤驱动程序的工作流程如图2。USBKy ft*d为了增强静态存储口令的安全有效性,在Hub过滤驱动程序中采用一次性口令算法。为了方便用户操作,由用户自己选择登录口令,并在一次性口令算法中将此作为一个种子,用来生成新的口令。一次性口 令算法是基于MD5算法的,具体过程如

6、图 2所示。生成新的口令后,将下次口令的验证码以及本次口令加 密后返回给用户管理程序,并且随着本次验证过程的结束,彻底删除新口令以及用户的登录口令。iHub ON聘带冶揣刪It静3QH Ep返出塔ref Asmh碍Msw配餐再么rap血if避彌动理洋椰vjd *A 丽*ERP MHS图2 Hub过滤驱动程序的工作流程2. 2文件系统过滤驱动程加密模块是整个管理系统的核心部分,主要功能是对进岀安全文件夹的数据实行透明加解密。加解密模块是通过文件系统过滤驱动程序序以一个DriverEntry例程作为入口,它联接于文件系统驱动程序的上面。除了 DriverEntry例程,还包括以下几个例程:File

7、FilterCreat()的分发例程;主功能号为 IRP MJ CREATIRP MJ CREATE NAMED PJPRP MJ CREATE MAILSLFileFiheControl()主功能号为IRP_MJ_FILE_SYSTEM_CONTR的分发例程;FileFiherDeviceloControl()主功能号为 IRP_MJ_DEVICE_CONTRO1分发例程;FileFilterAddDevice()相当于 AddDeviee函数;FileFilterRead()主功能号为IRP_MJ_REA啲分发例程;FileFilterWrite()主功能号为IRP_MJ_WRIT啲分发例

8、程;FileFiterClose()主功能号为IRP_MJ_CLEANUPIRP_MJ_CLOSE勺分发例程。2 . 2.1安全文件夹的实现(1)绑定移动存储介质的卷移动存储介质一旦被系统发现,就会在文件系统中生成一个卷(Volume),这个过程称为 Mounting。文件系统的控制设备对象(CDO)将收到一个主功能号为 IRP_MJ_FILE_SYSTEM_CONTRO次功能号为IRP_MN_MOUNT IRP,因此,只有绑定了所有的CDO才能截获 Mount请求的IRP。DriverEntry例程调用 loRegisterFsRegistrationChange(FSNotificatio

9、n)注册一个回调函数FSNotification,当系统中有任何文件系统被激活或者被注销的时候,注册过的回调函数都会被调用,这样就可以在所有文件系统被激活的时候对其进行绑定。在FSNotification 的File FiherAttach To FileSystem Device() 函数中,调用 FileFiherAddDevice()函数,绑定所有激活的CDO那么卷 Mount的lfuP也就能捕获到了。在FileFiheControl()分发例程中,如果IRP的次功能号为IRP_MN_MOUN僦对新Mount的卷实施绑定。注意,只有在卷 Mount过程结束后才能进行绑定,这就需要设定一个

10、完成函数,对于Windows XP系统可以采取事件等待完成的方法,如果Mount结束,在完成函数设置该事件后,再对卷进行绑定,而不是在完成函数中做这件事,因为完成函数的中断级别过高。(2)对安全文件夹的数据操作在移动存储介质中统一设定安全文件夹Secure_Folder_Notice ,对该文件夹中数据的读写操作,在内核下转化为主功能号分别为IRP_MJ_REA刖IRP_MJ_WRIT啲IRP,这些IRP中包括读/写卷的偏移地址及读/写长度。文件系统过滤驱动程序中的FileFiherRead() 接收到这些IRP后,提取路径,查看是否为安全文件夹的路径,如果是,则先设置一个完成函数,然后直接将

11、IRP下发,待到完成函数设置了事件后,再将IRP中的数据读岀,解密并通过完整性验证后将明文返回给应用程序,否则直接下发。File . FiherWrite() 接收到这些IRP后,同样先提取路径,如果是安全文件夹的路径,则将数据的杂凑值 同数据一起加密后再下发IRP,最终将密文存储到安全文件夹对应的物理磁盘中,否则直接下发。2. 2. 2加解密功能的实现在FileFiherDeviceloCont()中,用户管理程序注入的USBKey中的加密密钥保存在加密密钥结构filter_key中,并根据输入缓冲区的大小判断密钥是否得到了更新,如果更新则将其分别保存。加密密钥的结构如下:struct fi

12、lter_keyUNICODE_STRING USBKey; /表示注入的加密密钥UNICODE_STRING newUSBKey /表示注入的新更新的加密密钥UNICODE_STRING protectedkey ; /表示保存在安全文件夹扩展属性中的加密密钥UNICODE_STRING newprotectedkey ; /表示安全文件夹扩展属性中新更新的加密密钥;在读写卷的处理例程中将加密密钥取岀来,然后与解密后的存储在安全文件夹扩展属性中的加密密钥异或后生成加密算法的密钥 K。采用改进的基于 CBC的加密模式,文件被分成一个个64 bit的分组,设Pi是第i个分组的明文,Ci为第i个分

13、组的密文,KI为第i个加密密钥口令 K0=K假定C0为一个预定的64 bit的固定值。对于第一个分组,加密密钥Kt为C0与K0的异或值,然后用IDEA算法加密明文分组 P1与C0的异或值得到密文分组 C1;第二分组的加密密钥 K2为C1与K1的异或值,用IDEA算法加密明文分组 P2与C1的异或值得到密文分组 C2按照这种方法依次对所有分组用IDEA算法加密,具体过程如图 3。然后把这些加密后的分组传递给文件系统驱动程序,再通过移动存储介质驱动程序写入安全文件夹。解密过 程与之相反。2. 3用户管理应用程序(MFileManSys . exe)MFileManSys . exe为用户提供使用系

14、统的接口和界面,负责用户口令的管理和保存、口令文件的初始 化、USBKey配置文件的初始化和 USB Key中加密密钥的提取,并协调各功能模块间的相互配合,保证整个 系统功能的完整实现。用户管理应用程序还负责与驱动程序通信,使驱动程序能够获得完成其功能所需的 各种参数。本系统采用 DeviceloControl异步通信的方式实现用户管理应用程序与驱动程序之间的通信。3密钥管理3. 1密钥存储密钥的安全是整个系统的关键。在加密模块中,使用了3层密钥结构:USBKey中的加密密钥用来合成加解密文件时使用的密钥,即私人密钥;内核模式下非分页内存中的密钥用来加密需要保存在安全文件夹 扩展属性中的加密密

15、钥,即大群组的共享密钥;保存在安全文件夹扩展属性中的加密密钥用来合成加解密 文件时的密钥,即小群组的共享密钥。密钥大小均为128 bit。文件的加解密密钥分为两部分:私人密钥由USBKey产生,并在初始化 USBKey配置文件时保存在其文件中;小群组密钥采用IDEA加密算法加密后保存在安全文件夹的扩展属性中,大群组密钥保存在内核模式的非分页内存中。3. 2密钥更新因为密钥在整个系统中有着举足轻重的作用,因此当密钥不再使用或者被恶意者窃取后,应能及时地回收。由于其他两个密钥均为群组的共享密钥,所以通常对USBKey中的加密密钥进行更新,只需生成新的加密密钥,设置一个更新标志,用户管理程序检查更新标志,如果为1,就将新旧加密密钥都传递给驱动程序,驱动程序先将新iHDn密密钥分别保存,再用旧的加密密钥解密所有文件,然后再用新的加密密钥加密就可以了。最后用户管理程序将 USBKey中的新的加密密钥替代旧的加密密钥,并将新加密密钥字段彻底删除,同时将更新标志设为 0。图3文件的加密过程3. 3密钥备份如果用户丢失了 USBKey或者恶意者格式化了移动存储介质,这时就需要一种数据恢复机制。本系统采用密钥代理机制来恢复数据,即存在一个可以信任的机构拥有USBKey中的配置文件的备份以及存储在安全文件文件夹的扩展属性中的加密密钥明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论