当前位置:主页>科 研>学术交流>

基于文件系统过滤驱动的多策略加密系统(3)

(4)FSDeviceIoControl例程
    为了让用户能对过滤驱动的功能有选择的进行控制,需要在驱动中加上与应用层进行通信的接口,通过该接口用户向过滤驱动发送用户权限、加密文件类型、加密路径以及算法密钥等信息,过滤驱动在获取这些信息以后根据用户权限采取不同的操作。在驱动中,与应用层进行通信需要涉及IRP_MJ_DEVICE_CONTROL包,因此要定义与之相对应的FSDeviceIoControl例程。
    过滤驱动是没有自己的设备名称的,为了能使驱动可以和应用层进行通信,需要为过滤驱动生成一个符号链接,通过下面的代码实现:
    RtlInitUnicodeString( &linkString, L”\\DosDevices\\LSFilter”);
    Status = IoCreateSymbolicLink( &linkString, &NameString );
    应用程序通过该符号链接识别过滤驱动,并将自定义的数据包封装在IRP_MJ_DEVICE_CONTROL包中发送给过滤驱动。FSDeviceIoControl例程则根据IRP_MJ_DEVICE_CONTROL包中的内容填写相应的结构体成员变量。
    (5)多策略的实现
    为了获取多条加密策略,驱动需要为策略分配一段不可分页内存,可以在DriverEntry例程中通过以下函数实现。
    ExAllocatePoolWithTag(NonPagedPool, sizeof(RULE) *21, SFLT_POOL_TAG);
    并且把分配所得内存的首地址传递给策略结构体的全局指针变量,在FSDeviceIoControl中通过这个指针变量将用户的设定信息存放到内存中,过滤驱动从内存中读取加密策略控制加密过程。 

3 实验与结果分析

    加密系统的应用层控制程序的程序界面如图3所示,控制程序要求用户输入需要加密的路径以及加密的文件类型,通过下一策略按钮可以实现多条加密策略的录入。


 
图3 文件系统控制程序界面

    在实验的Demo程序中要求对硬盘F分区下的所有以txt为后缀的文件进行读写加解密操作。文件写入的明文如图4所示:

 
 
图4 文件保存的明文

    卸载驱动以后,在没有进行解密操作的情况下,可以看到实际保存在存储介质上的密文,经过RC4算法加密的密文内容如图5所示:

 
 
图5 文件实际存储的密文

   

(责任编辑:adminadmin2008)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

容器是如何让“一切都是代码”成为现实的

容器是如何让“一切都是代码”成为现实的

现代应用的发展在很大程度上要归功于DevOps运动的蓬勃兴起以及该运动所产生的各种自动...[详细]

如何快速掌握一门新技术/语言/框架

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业。这种企业的核心竞争力与员工的知识和技能...[详细]

建高效数据中心有径可循

建高效数据中心有径可循

能耗问题一直是各大数据中心的心头之痛。有数据表明,2015年我国数据中心能耗预计将高...[详细]

2015黑帽大会:网络灾难后 重建IT安全

2015黑帽大会:网络灾难后 重建IT安全

在遭遇网络灾难后重建IT安全似乎是不可能完成的任务,但根据安全专家Christina Kubeck...[详细]

面对DNS劫持 企业移动应用该如何防护?

面对DNS劫持 企业移动应用该如何防护?

DNS(Domain Name System)劫持又称域名劫持,是指对正常的域名解析请求加以拦截,转而...[详细]

返回首页 返回顶部