[发明专利]基于minifilter和usbkey的透明加解密文件驱动的方法有效
| 申请号: | 202010873281.7 | 申请日: | 2020-08-26 |
| 公开(公告)号: | CN112035885B | 公开(公告)日: | 2023-03-28 |
| 发明(设计)人: | 姚金龙;董仲舒;程杰;谷晶中;张阳光 | 申请(专利权)人: | 山谷网安科技股份有限公司 |
| 主分类号: | G06F21/64 | 分类号: | G06F21/64;G06F21/60 |
| 代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 张立强 |
| 地址: | 450000 河南省郑州市*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 minifilter usbkey 透明 解密 文件 驱动 方法 | ||
1.基于minifilter和usbkey的透明加解密文件驱动的方法,其特征在于,包括:
步骤1:加载驱动层,当驱动层加载时,调用DriverEntry函数,初始化用于申请内核缓冲区的数据结构链表、用于存储指定监控文件信息的锁,注册用于对文件进行操作的回调函数,以建立驱动通信监听服务;
步骤2:用户层解析用户配置文件,获取待监控信息;所述用户配置文件包括:加密的文件类型和加密的文件名中的至少一个、打开文件时的进程名以及用户设置的密码长度;
步骤2:用户层检测usbkey是否插入,若检测到usbkey,则与其建立连接;
步骤3:用户层与驱动层建立通信连接,所述驱动层为基于minifilter框架的驱动;
步骤4:用户层将待监控信息逐个发送至驱动层,驱动层根据所述待监控信息在文件创建回调函数内判断文件是否为指定监控文件,若为指定监控文件,则向用户层发送命令;用户层接收驱动层发送的命令并在usbkey中进行相应操作,将操作结果发送至驱动层;其中,所述命令包括创建密码命令和解开密码命令;
步骤4中,所述的若为指定监控文件,则向用户层发送命令,用户层接收驱动层发送的命令并在usbkey中进行相应操作,将操作结果发送至驱动层,具体包括:
步骤4.1:若为指定监控文件,驱动层则创建文件流结构体,并读取文件加密标志;
步骤4.2:若文件加密标志匹配,驱动层则读取文件尾数据中的加密的密码,向用户层发送解开密码命令和加密的密码,用户层将加密的密码放入usbkey对密码进行解密以获取源密码并将源密码发送至驱动层;
步骤4.3:驱动层将源密码和文件尾数据中的其他数据填充到文件流结构体中;
步骤4.4:若文件加密标志不匹配,驱动层则向用户层发送创建密码命令,用户层随机生成一个密码,将密码放入usbkey对密码进行加密,并将加密的密码和源密码发送至驱动层;
步骤4.5:驱动层将加密后的密码填充到文件流结构体中;
步骤5:驱动层在指定监控文件被执行打开操作、读操作、写操作和关闭操作中的一个或多个操作时对被执行操作进行拦截进而根据文件流结构体和操作结果对指定监控文件进行加解密,具体包括:
当指定监控文件被执行读操作时,在读操作完成之前,获取文件流结构体,若文件流结构体中包含已加密标志,则创建一个内核缓冲区;在读操作完成之后,根据源密码对内核缓冲区的数据进行解密,并将解密后的数据拷贝到用户缓冲区;
当指定监控文件被执行写操作时,在写操作完成之前,将用户缓冲区的数据进行加密,并将加密后的数据拷贝到内核缓冲区;
当指定监控文件被执行关闭操作时,在关闭操作完成之前,清理缓存,将文件流结构体写至文件尾指定偏移处。
2.根据权利要求1所述的方法,其特征在于,步骤4中的接收驱动层发送的命令并在usbkey中进行相应操作,包括:
若为创建密码命令,则随机生成一个密码,将密码放入usbkey对密码进行加密,并把加密的密码和源密码发送给驱动层;
若为解开密码命令,则将加密的密码放入usbkey对密码进行解密,获取源密码,将源密码发送至驱动层。
3.根据权利要求1所述的方法,其特征在于,所述命令还包括退出命令;
对应地,还包括:卸载驱动层,当卸载驱动层时,向用户层发送退出命令;
对应地,步骤4中,接收驱动层发送的命令并在usbkey中进行相应操作,包括:若为退出命令,则断开与驱动层的通信连接,并断开usbkey链接,释放资源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山谷网安科技股份有限公司,未经山谷网安科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010873281.7/1.html,转载请声明来源钻瓜专利网。





