QQ在线支持
商务支持电话
13906050680
技术支持电话
0592-2651619
首页->局域网监控-> 基于过滤驱动透明文件加密方法,透明文件加密技术
  • 摘要:基于过滤驱动透明文件加密方法,透明文件加密技术,加密软件原理,透明加密方法,文件加密,数据加密原理

     

    基于过滤驱动透明文件加密方法,透明文件加密技术

    [导读] 针对企业局域网文件安全问题,文中提出了一个基于过滤驱动的局域网透明文件安全加密方法,阐述了透明加密过程中加密进程获取、加密标志设置以及加密处理关键技术,同时还介绍了加密系统的几个主要功能模块。

    一、基于过滤驱动的透明文件安全加密方法

    在改进现有的文件安全加密技术的基础上,设计了基于文件过滤驱动的透明文件加密方法,如图2所示。

    基于过滤驱动的局域网透明文件加密方法

    新设计的方法主要分为两大部分:客户端和服务端。客户端模块的主要作用是给终端用户提供客户端身份认证、透明加密和解密服务、访问控制服务等功能。客户端按操作系统的运行可分为用户态和内核态,用户态主要实现通信代理、策略配置、密钥管理、读/写操作等功能,而内核模态主要实现过滤驱动技术也是要讨论的重点,用户态主要是为内核模态提供加密服务的;服务端模块的主要作用是方便管理员有效地控制整个加密系统,并为客户端提供策略分配服务,所有的客户端请求都将通过策略服务器得到响应。

    过滤驱动关键技术

    为了实现对文件的加解密与访问控制,需要拦截上层发送的包(r/o Request Packet,IRP),如图2所示。当拦截到加密写操作IRP包时,则申请新密钥与文件加密标志,从IRP指定的地址中读取明文,用对称加密算法对其加密,并且向下层传递IRP将密文写入磁盘上,最后在完成方法中恢复明文信息,同时把文件的相关信息记录到文件加密属性中,否则正常处理。

    当拦截到读操作IRP包时首先判断当前文件是否存在密钥,如果存在,则解密,否则直接把数据向下提交。

    以上分析了加解密的主要流程,下面将对获取机密进程、加密标志设置以及加密处理等关键技术进行研究。

    1、获取机密进程

    在经过加密的操作系统中,所有的进程被分为两类:机密进程和普通进程,但是由于进程的名字很容易被伪造,所以在内核中,可以对进程名与同名可执行文件的内容进行验证,来防止非法的仿冒行为。首先获取当前进程的名字,EPROCESS结构是Windows内部的每个进程都维护的一个保存进程名的结构。在内核模块的DriverEntry函数总会执行一个名为“Sys-tem”的进程,那么可以确定DriverEntry当前进程名为“System”。虽然不知道EPROCESS结构的具体内容,但是可以在EPROCESS中搜索“System”这个字符串,一旦搜索到,记录下偏移位置。

    这样,以后要从EPROCESS获得进程名字时,就可以直接从这个位置取了。下面介绍具体的伪代码实现。

    首先在获取进程名字之前要先进行初始化,初始化函数为cfCurPtocNamelnit,这个函数必须在DriverEntry中调用,否则cfCurProcName将不起作用。并且设置静态变量size_t_cf_proc_name_offset=0;保存要寻找的偏移位置,这个函数很简单。先通过PsGct-CurrentProcess得到当前EPROCFSS的位置,然后充分相信其中有一个字符串“System”,搜索后得到偏移位置保存在一个静态变量中,下面的cfCurProName函数就是获取程序名字的关键代码。

    ULONG cfCurProName( PUNICODE_STRING name)

    {

    PEPROCESS curproc;//声明一个EPROCESS指针

    ULONG i,need_len;

    if( s_cf_proc_name_offset==0)

    retum O;

    curpro= PsGetCurrentProcess();//获得当前进程,然后移动一个偏移位置得到进程名所在的位置

    }

    2、加密标志设置

    当机密进程获取一个文件时,如何判断这个文件是已经加密的还是未加密的,这需要在硬盘中保留一个文件是否已经被加密的信息,这种信息称为加密标志。这种信息必须保存在硬盘上,和文件一起存在。一个选择是,在文件以外的地方保存这个信息。比如另建一个隐藏文件,保存当前目录下其他文件的加密标志,但是这种方法非常麻烦,所以在此选择在文件内容中保存加密标志,在文件内容中保存加密标志也有两种选择:基于文件头和文件尾,基于文件尾比较容易实现但是有安全隐患,在此选择基于文件头,选择文件头的好处是稳固可靠,位置固定缺点是实现起来相对要困难。由于要实现对所有的机密进程隐藏这个头部,则所有文件都要增加一个偏移,下面给出了一个记事本隐藏文件头的设置偏移,比如记事本如果试图把文件大小设置为1kB,假设文件头为4kB大小,那么实际的文件应该被设置为SkB,实现的伪代码如下:

    //对所有设置请求进行修改,使之隐去前面的4kB文件头

    void , PIO_STACK_I.O-C.ATION irpsp)

    {

    PUCHAR buffcr=irp ->Associatedlrp. System-Buffer;//取得文件缓冲句柄

    NTSTATUS status;

    ASSERT( irp一>MajorFUNCTION=IRP_ MJ_SET_INFORMATION);//用于调试环境的声明

    switch( irpsp – >PArameters. SetFile. Filelnformation-Class)

    case FileAllocationlnformation:{

    ……//增加在FileAlloca-tionlnformation条件下的文件偏移

    }

    ……};

    }

    上面只给出了FileAllocationlnformation一种情况,其他情况类似,通过隐藏文件头,就可以在文件头设置加密标志。

    3、数据加密处理

    当上层的应用程序对某一类文件设置加密操作的规则,底层的过滤驱动层截取到文件创建的IRP请求时,则首先读取文件加密标志,根据加密标志来决定是否要进行加密操作,如果需要进行加密操作,则通过事先写好的加密函数一般使用AES加密算法,从服务器获取加密密钥对文件进行加密。当加密好文件之后根据写IRP请求将加密好的文件写入物理磁盘。

    当对数据加密过的文件进行读请求时,首先判断是否可以通过FastIODispatch例程在Cache管理器处获取。如果可以的话直接从Cache中读取明文,否则调用底层驱动从磁盘读取数据,在应用层获得服务器的解密密钥通过I/O完成例程对文件数据进行解密操作‘10 -12]。下面的代码主要针对文件的加密操作:

    NTSTATUS EFWrite (IN PDEVICE_OBJECT Devi-ceObject, IN PIRP Irp)

    {

    …..

    if( IS_ControI_MY _DEVICE_ OBJECT( DeviceOb-ject))

    {

    ……

    CompletionIoRequest(Irp, JO.NO—INCRF-MENT);//完成不需要加密的请求

    retum STATUS—IRP一- INVALID—DEVICE—RE-QUEST;

    }

    IoCopyCurrentFileToNextlrpStackLocation(IrP),//拷贝需要写入文件的数据到新开辟的MDL内存

    EncriptMyFile( dataBuffer,length,key);//加密函数的调用

    }

    解密操作类似。

    三、实验与结果分析

    建立测试环境如下:acer台式机一台,CPU为Pentium( R) Dual-Core E5300 2.60GHz,内存为2G,硬盘250G,操作系统为Windows XP( SP2)。

    通过配置了TXT文档的文件保护策略并使用了AES对称加密算法,在一个既有FAT分区也有NTFS格式分区的操作系统中,进行文件的操作,结果表明系统可以在FAT分区和NTFS分区很好的工作,对所有txt类型文件都进行了加密存储,写入的明文如图3所示:

    基于过滤驱动的局域网透明文件加密方法

    当在另外一台没有数据加密方法的电脑上看这些文件都是乱码,看不到真实信息,如图4所示:

    基于过滤驱动的局域网透明文件加密方法

    并且还对加密过程使用DebugView进行了检测,通过使用DebugView的检测可以对内核态程序的运行过程有一一个大致的了解,如图5所示:

    基于过滤驱动的局域网透明文件加密方法

    实验结果表明基于过滤驱动的文件加密方法可以在不改变用户的使用习惯的情况下很好地提供加密与解密操作。

    小知识之透明加密

    透明加密技术是近年来针对企业文件保密需求应运而生的一种文件加密技术。所谓透明,是指对使用者来说是未知的。当使用者在打开或编辑指定文件时,系统将自动对未加密的文件进行加密,对已加密的文件自动解密。文件在硬盘上是密文,在内存中是明文。一旦离开使用环境,由于应用程序无法得到自动解密的服务而无法打开,从而起来保护文件内容的效果。


    作者: AnyView(网络警)网络监控软件   时间: 2016-3-4 12:13:14   点击:     

    相关资讯:
    [网络监控软件在企业网管中应用实践] 降低局域网内网安全风险方法,怎样做好内网安全管理,局域网内网监控
    [网络监控软件在企业网管中应用实践] 如何防止网络内部员工信息泄密,信息加密,数据加密,防止内部员工泄密
    [网络监控软件在企业网管中应用实践] 部署透明加密软件,严密保护企业敏感数据,网络接入控制策略,敏感数据加密
    [网络监控软件在企业网管中应用实践] 面对数据泄漏企业该如何着手,防止信息泄露,部署数据加密,敏感数据控制
    [网络监控软件在企业网管中应用实践] EFS加密文件系统的应用心得,自动加密,透明文件加密软件
    [网络监控软件在企业网管中应用实践] 局域网网络监控和透明文件加密全攻略;上网行为管理和电脑监控系统解决方案
    [网络监控软件在企业网管中应用实践] 局域网管理和数据加密: 局域网文件加密技术解读,图纸文件自动加密系统
    [网络监控软件在企业网管中应用实践] 局域网管理和数据安全:数据加密和信息防泄露技术为重,封堵数据泄密途径
    [局域网监控互联网管理相关业界法规] 印刷、复印等行业复制国家秘密载体暂行管理办法
    [局域网监控互联网管理相关业界法规] 商业秘密—竞业限制范围不宜过大
■ AnyView(网络警)网络监控软件--功能检索
  • 服务电话:0592-2651619 / 13906050680 ; 钉钉:15359220936;微信:15359220936;Skype:Amoisoft;
  • 服务邮箱: Sales@amoisoft.com;Order@amoisoft.com;Tech@amoisoft.com;
  • 支持QQ:9908430(综合),850753251(购买1),573982850(购买2),969263561(技术1),53864605(技术2),332056791(技术3)
■ 联系我们获得支持和服务 ■ 信息留言反馈