USB设备安全接入监控方法转让专利

申请号 : CN201611010018.5

文献号 : CN106407793B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周宇傅尧徐宏杰杨贺曾燚王洋

申请人 : 北京众谊越泰科技有限公司

摘要 :

本发明提供一种USB设备安全接入监控方法,包括:构造USB设备安全接入监控架构,USB设备安全接入监控架构包括客户端和服务端;对于客户端,在其PCI层和USB驱动层之间新配置有USB设备监控单元;其中,USB设备监控单元包括USB过滤模块、I/O控制模块和缓存;服务端配置有服务端管理平台和数据库;数据库存储并实时维护USB设备ID注册表和USB设备阻止类型注册表。优点为:(1)为一种对USB设备本身无任何写入操作的安全监控方法,有助于提升USB设备的可用性和可靠性;(2)采用驱动的监控方式,具有监控可靠性高、难破解、性能稳定可靠的优点;(3)USB过滤模块可启动可禁用,使用灵活性好。

权利要求 :

1.一种USB设备安全接入监控方法,其特征在于,包括以下步骤:

步骤S1,构造USB设备安全接入监控架构,所述USB设备安全接入监控架构包括客户端和服务端;对于所述客户端,在其PCI层和USB驱动层之间新配置有USB设备监控单元;其中,所述USB设备监控单元包括USB过滤模块、I/O控制模块和缓存;所述I/O控制模块用于实现所述USB设备监控单元与服务端管理平台的通信;

所述客户端还配置有USB设备注册单元;所述服务端配置有服务端管理平台和数据库;

所述数据库存储并实时维护USB设备ID注册表和USB设备阻止类型注册表;其中,所述USB设备ID注册表用于存储已注册的USB设备ID;所述USB设备阻止类型注册表用于存储需要被拦截的USB设备类型;USB设备注册单元通过以下方法向服务端管理平台进行注册:USB设备注册单元首先获取授权的USB设备ID和授权的USB设备类型;然后,USB设备注册单元将授权的USB设备ID和授权的USB设备类型发送到服务端管理平台,由服务端管理平台将注册信息保存到数据库中;

步骤S2,当在客户端的用户层调用设备控制函数与USB驱动层进行通信时,立即启动所述I/O控制模块;所述I/O控制模块被启动后,立即向设备控制类派遣函数发送触发命令;所述设备控制类派遣函数判断所述触发命令是否正确,如果不正确,则设置返回值为假,并将所述返回值返回给所述I/O控制模块;如果正确,所述设备控制类派遣函数与所述服务端管理平台建立通信,接收来自于所述服务端管理平台的USB设备ID注册表、USB设备阻止类型注册表以及USB过滤模块是否启用的指令;

然后,所述设备控制类派遣函数将所述USB设备ID注册表和所述USB设备阻止类型注册表存储到所述缓存中;另外,如果为USB过滤模块禁用的指令,则所述设备控制类派遣函数取消BLOCK标志位;如果为USB过滤模块启用的指令,则设置BLOCK标志位;然后,所述设备控制类派遣函数设置返回值为真,并将所述返回值返回给所述I/O控制模块;

步骤S3,当客户端的USB插口被插入USB设备时,总线检测到USB插口被插入USB设备,然后,所述总线触发即插即用请求类派遣函数;

所述即插即用请求类派遣函数判断是否存在BLOCK标志位,如果不存在BLOCK标志位,执行S4;如果存在BLOCK标志位,执行S5;

步骤S4,所述即插即用请求类派遣函数禁用所述USB过滤模块;当USB设备插入USB插口,总线层将USB设备接入请求消息通过PCI层上传到USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;

步骤S5,包括:

步骤S5.1,所述即插即用请求类派遣函数启用所述USB过滤模块;

步骤S5.2,当总线层检测到USB设备接入请求消息时,所述总线层将所述USB设备接入请求消息通过PCI层上传到USB过滤模块;

步骤S5.3,所述USB过滤模块解析所述USB设备接入请求消息,得到USB设备的设备类型以及USB设备ID;然后,所述USB过滤模块从所述缓存中读取到USB设备阻止类型注册表,判断当前插入的USB设备的设备类型是否在所述USB设备阻止类型注册表中,如果不在所述USB设备阻止类型注册表中,则所述USB过滤模块将所述USB设备接入请求消息传输给上层的USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;如果在所述USB设备阻止类型注册表中,则执行S5.4;

步骤S5.4,所述USB过滤模块从所述缓存中读取到USB设备ID注册表,判断当前插入的USB设备的USB设备ID是否在所述USB设备ID注册表中,如果在所述USB设备ID注册表中,则所述USB过滤模块将所述USB设备接入请求消息传输给上层的USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;如果不在所述USB设备ID注册表中,则执行S5.5;

步骤S5.5,所述USB过滤模块将所接到的所述USB设备接入请求消息拦截,不再继续向上层的USB驱动层传送所述USB设备接入请求消息,因此,USB驱动层不会对当前插入的USB设备进行驱动,当前插入的USB设备未成功接入;

其中,所述USB设备阻止类型注册表用于存储以下类型的USB设备:网卡、可移动磁盘、游戏手柄、读卡器和照相机;

其中,当USB设备为可移动磁盘时,所述USB设备ID包括可移动磁盘的固件中VID、PID和SN;其中,VID代表制造商ID;PID代表产品ID;SN代表序列号。

说明书 :

USB设备安全接入监控方法

技术领域

[0001] 本发明属于可移动磁盘接入技术领域,具体涉及一种USB设备安全接入监控方法。

背景技术

[0002] 在企事业单位办公电脑中,经常存储有一些涉及本单位机密的信息和数据,因此对这些信息和数据的保护非常重要,一是要防止外泄露,二是要防止被病毒感染。
[0003] 实现上述目标的一种方法为:对接入电脑的U盘或移动硬盘等可移动磁盘进行监控,切断非法或染毒的可移动磁盘接入电脑,从而有效降低重要机密文件的泄露和遗失。
[0004] 现有技术中,对可移动磁盘接入监控方法是:在指定电脑上,使用专用的可移动磁盘注册软件,将可移动磁盘重新初始化为至少两个分区,其中一个为容量较小的自定义格式分区,用于保存验证信息;其他均为正常分区,用于验证通过后的正常使用。当可移动磁盘接入电脑后,电脑会读取可移动磁盘中自定义分区的验证信息。如果验证成功,可移动磁盘就可以正常的使用;如果验证失败,就禁止可移动磁盘对电脑的访问。
[0005] 上述方法存在的主要缺陷为:①在使用过程中,由于自定义格式的分区不是很稳定,容易造成分区损坏,以及验证信息的丢失,导致可移动磁盘无法使用。②所有的操作都是在应用层,容易被破解。③初始时,需要对可移动磁盘进行初始化,不能保留原有的数据,从而不方便用户使用。

发明内容

[0006] 针对现有技术存在的缺陷,本发明提供一种USB设备安全接入监控方法,可有效解决上述问题。
[0007] 本发明采用的技术方案如下:
[0008] 本发明提供一种USB设备安全接入监控方法,包括以下步骤:
[0009] 步骤S1,构造USB设备安全接入监控架构,所述USB设备安全接入监控架构包括客户端和服务端;对于所述客户端,在其PCI层和USB驱动层之间新配置有USB设备监控单元;其中,所述USB设备监控单元包括USB过滤模块、I/O控制模块和缓存;所述I/O控制模块用于实现所述USB设备监控单元与服务端管理平台的通信;
[0010] 所述客户端还配置有USB设备注册单元;所述服务端配置有服务端管理平台和数据库;所述数据库存储并实时维护USB设备ID注册表和USB设备阻止类型注册表;其中,所述USB设备ID注册表用于存储已注册的USB设备ID;所述USB设备阻止类型注册表用于存储需要被拦截的USB设备类型;
[0011] 步骤S2,当在客户端的用户层调用设备控制函数与USB驱动层进行通信时,立即启动所述I/O控制模块;所述I/O控制模块被启动后,立即向设备控制类派遣函数发送触发命令;所述设备控制类派遣函数判断所述触发命令是否正确,如果不正确,则设置返回值为假,并将所述返回值返回给所述I/O控制模块;如果正确,所述设备控制类派遣函数与所述服务端管理平台建立通信,接收来自于所述服务端管理平台的USB设备ID注册表、USB设备阻止类型注册表以及USB过滤模块是否启用的指令;
[0012] 然后,所述设备控制类派遣函数将所述USB设备ID注册表和所述USB设备阻止类型注册表存储到所述缓存中;另外,如果为USB过滤模块禁用的指令,则所述设备控制类派遣函数取消BLOCK标志位;如果为USB过滤模块启用的指令,则设置BLOCK标志位;然后,所述设备控制类派遣函数设置返回值为真,并将所述返回值返回给所述I/O控制模块;
[0013] 步骤S3,当客户端的USB插口被插入USB设备时,所述总线检测到USB插口被插入USB设备,然后,所述总线触发即插即用请求类派遣函数;
[0014] 所述即插即用请求类派遣函数判断是否存在BLOCK标志位,如果不存在BLOCK标志位,执行S4;如果存在BLOCK标志位,执行S5;
[0015] 步骤S4,所述即插即用请求类派遣函数禁用所述USB过滤模块;当USB设备插入USB插口,总线层将所述USB设备接入请求消息通过PCI层上传到USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;
[0016] 步骤S5,包括:
[0017] 步骤S5.1,所述即插即用请求类派遣函数启用所述USB过滤模块;
[0018] 步骤S5.2,当总线层检测到USB设备接入请求消息时,所述总线层将所述USB设备接入请求消息通过PCI层上传到USB过滤模块;
[0019] 步骤S5.3,所述USB过滤模块解析所述USB设备接入请求消息,得到USB设备的设备类型以及USB设备ID;然后,所述USB过滤模块从所述缓存中读取到USB设备阻止类型注册表,判断当前插入的USB设备的设备类型是否在所述USB设备阻止类型注册表中,如果不在所述USB设备阻止类型注册表中,则所述USB过滤模块将所述USB设备接入请求消息传输给上层的USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;如果在所述USB设备阻止类型注册表中,则执行S5.4;
[0020] 步骤S5.4,所述USB过滤模块从所述缓存中读取到USB设备ID注册表,判断当前插入的USB设备的及USB设备ID是否在所述USB设备ID注册表中,如果在所述USB设备ID注册表中,则所述USB过滤模块将所述USB设备接入请求消息传输给上层的USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;如果不在所述USB设备ID注册表中,则执行S5.5;
[0021] 步骤S5.5,所述USB过滤模块将所接到的所述USB设备接入请求消息拦截,不再继续向上层的USB驱动层传送所述USB设备接入请求消息,因此,USB驱动层不会对当前插入的USB设备进行驱动,当前插入的USB设备未成功接入。
[0022] 优选的,所述USB设备阻止类型注册表用于存储以下类型的USB设备:网卡、可移动磁盘、游戏手柄、读卡器和照相机。
[0023] 优选的,当USB设备为可移动磁盘时,所述USB设备ID包括可移动磁盘的固件中VID、PID和SN;其中,VID代表制造商ID;PID代表产品ID;SN代表序列号。
[0024] 本发明提供的USB设备安全接入监控方法具有以下优点:
[0025] (1)为一种对USB设备本身无任何写入操作的安全监控方法,由于不会对USB设备进行任何修改,因此,减少对USB设备的格式化操作,不改变USB设备的原有文件系统格式,不修改USB设备本身的任何信息,有助于提升USB设备的可用性和可靠性,并且监控效果优异;
[0026] (2)通过在USB驱动层和PCI层之间设置缓存区,缓存区预先存储已注册USB设备信息,因此,即便当网络不稳定时,仍可利用本地缓存的注册信息实现对插入的USB设备的监控。
[0027] (3)采用驱动的监控方式,具有监控可靠性高、难破解、性能稳定可靠的优点;
[0028] (4)USB过滤模块可启动可禁用,使用灵活性好。

附图说明

[0029] 图1为本发明提供的USB设备安全接入监控架构的结构示意图;
[0030] 图2为本发明提供的设备控制类派遣函数的执行流程图;
[0031] 图3为本发明提供的即插即用请求类派遣函数的执行流程图。
[0032] 图4为本发明提供的USB设备安全接入监控方法的整体流程图。

具体实施方式

[0033] 为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0034] 为方便对本发明进行理解,首先介绍重要名称在本发明中的含义:
[0035] 服务端管理平台:在服务器电脑中始终运行,提供管理人员操作的界面,以及与客户端数据传输的接口,并处理数据库的访问。
[0036] USB设备注册单元:将未授权接入电脑的USB设备注册为已授权接入设备。
[0037] USB设备监控单元:接收服务端传输的USB设备注册数据,根据授权的信息判断接入电脑的USB设备是否允许使用。
[0038] 结合图1-图3,本发明提供一种USB设备安全接入监控方法,可广泛应用于计算机终端安全管理领域,包括以下步骤:
[0039] 步骤S1,构造USB设备安全接入监控架构,所述USB设备安全接入监控架构包括客户端和服务端;对于所述客户端,在其PCI层和USB驱动层之间新配置有USB设备监控单元;其中,所述USB设备监控单元包括USB过滤模块、I/O控制模块和缓存;所述I/O控制模块用于实现所述USB设备监控单元与服务端管理平台的通信;
[0040] 所述客户端还配置有USB设备注册单元;所述服务端配置有服务端管理平台和数据库;所述数据库存储并实时维护USB设备ID注册表和USB设备阻止类型注册表;其中,所述USB设备ID注册表用于存储已注册的USB设备ID;所述USB设备阻止类型注册表用于存储需要被拦截的USB设备类型,例如,USB设备阻止类型注册表用于存储以下类型的USB设备:网卡、可移动磁盘、游戏手柄、读卡器和照相机等。而对于鼠标、键盘等常用的外设,则不需要进行拦截过滤。USB设备ID为USB设备唯一身份标识,例如,当USB设备为可移动磁盘时,可以由可移动磁盘的固件中VID、PID和SN组成USB设备唯一身份标识;其中,VID代表制造商ID;PID代表产品ID;SN代表序列号。
[0041] 另外,USB设备注册单元通过以下方法向服务端管理平台进行注册:USB设备注册单元首先获取授权的USB设备ID和授权的USB设备类型;然后,USB设备注册单元将授权的USB设备ID和授权的USB设备类型发送到服务端管理平台,由服务端管理平台将注册信息保存到数据库中。
[0042] 步骤S2,当在客户端的用户层调用设备控制函数与USB驱动层进行通信时,立即启动所述I/O控制模块;所述I/O控制模块被启动后,立即向设备控制类派遣函数发送触发命令;所述设备控制类派遣函数判断所述触发命令是否正确,如果不正确,则设置返回值为假,并将所述返回值返回给所述I/O控制模块;如果正确,所述设备控制类派遣函数与所述服务端管理平台建立通信,接收来自于所述服务端管理平台的USB设备ID注册表、USB设备阻止类型注册表以及USB过滤模块是否启用的指令;实际应用中,所述服务端管理平台向所述设备控制类派遣函数发送的注册信息等数据,可采用AES加密方式,从而保障数据传输安全性。
[0043] 然后,所述设备控制类派遣函数将所述USB设备ID注册表和所述USB设备阻止类型注册表存储到所述缓存中;另外,如果为USB过滤模块禁用的指令,则所述设备控制类派遣函数取消BLOCK标志位;如果为USB过滤模块启用的指令,则设置BLOCK标志位;然后,所述设备控制类派遣函数设置返回值为真,并将所述返回值返回给所述I/O控制模块;
[0044] 步骤S3,当客户端的USB插口被插入USB设备时,所述总线检测到USB插口被插入USB设备,然后,所述总线触发即插即用请求类派遣函数;
[0045] 所述即插即用请求类派遣函数判断是否存在BLOCK标志位,如果不存在BLOCK标志位,执行S4;如果存在BLOCK标志位,执行S5;
[0046] 步骤S4,所述即插即用请求类派遣函数禁用所述USB过滤模块;当USB设备插入USB插口,总线层将所述USB设备接入请求消息通过PCI层上传到USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;
[0047] 步骤S5,包括:
[0048] 步骤S5.1,所述即插即用请求类派遣函数启用所述USB过滤模块;
[0049] 步骤S5.2,当总线层检测到USB设备接入请求消息时,所述总线层将所述USB设备接入请求消息通过PCI层上传到USB过滤模块;
[0050] 步骤S5.3,所述USB过滤模块解析所述USB设备接入请求消息,得到USB设备的设备类型以及USB设备ID;然后,所述USB过滤模块从所述缓存中读取到USB设备阻止类型注册表,判断当前插入的USB设备的设备类型是否在所述USB设备阻止类型注册表中,如果不在所述USB设备阻止类型注册表中,则所述USB过滤模块将所述USB设备接入请求消息传输给上层的USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;如果在所述USB设备阻止类型注册表中,则执行S5.4;
[0051] 步骤S5.4,所述USB过滤模块从所述缓存中读取到USB设备ID注册表,判断当前插入的USB设备的及USB设备ID是否在所述USB设备ID注册表中,如果在所述USB设备ID注册表中,则所述USB过滤模块将所述USB设备接入请求消息传输给上层的USB驱动层;然后,返回S3,如此不断对插入的各个USB设备进行驱动接入;如果不在所述USB设备ID注册表中,则执行S5.5;
[0052] 步骤S5.5,所述USB过滤模块将所接到的所述USB设备接入请求消息拦截,不再继续向上层的USB驱动层传送所述USB设备接入请求消息,因此,USB驱动层不会对当前插入的USB设备进行驱动,当前插入的USB设备未成功接入。
[0053] 本发明采用USB设备监控单元的驱动层拦截原理:①该驱动共需要创建两个驱动设备,一个是USB过滤模块,用于监控USB设备的接入请求;另一个是IO控制模块,用于与服务端管理平台进行数据的传输。USB过滤模块和IO控制模块均位于USB驱动层和PCI层之间。②USB过滤模块获取到USB设备的接入请求时,比对当前插入的USB设备的ID和类型是否与本地缓存中的注册表相匹配,如果通过比对,为授权的USB设备的接入请求,则继续往下一层设备发送USB设备的接入请求,操作系统就会处理对应功能,实现USB设备的正常使用;如果不为授权的USB设备的接入请求,则USB过滤模块拦截该USB设备的接入请求,并不再继续向下一层设备发送,而是直接设定一个执行失败的返回值,则操作系统就不会处理对应的功能,导致USB设备未成功的接入,从而禁止未授权的USB设备对上层应用的访问,保证了非法或染毒的USB设备接入电脑,从而有效降低重要机密文件的泄露和遗失。
[0054] 本发明提供的USB设备安全接入监控方法,具有以下优点:
[0055] (1)为一种对USB设备本身无任何写入操作的安全监控方法,由于不会对USB设备进行任何修改,因此,减少对USB设备的格式化操作,不改变USB设备的原有文件系统格式,不修改USB设备本身的任何信息,有助于提升USB设备的可用性和可靠性,并且监控效果优异;
[0056] (2)通过在USB驱动层和PCI层之间设置缓存区,缓存区预先存储已注册USB设备信息,因此,即便当网络不稳定时,仍可利用本地缓存的注册信息实现对插入的USB设备的监控。
[0057] (3)采用驱动的监控方式,具有监控可靠性高、难破解、性能稳定可靠的优点;
[0058] (4)USB过滤模块可启动可禁用,使用灵活性好。
[0059] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。