基于usb接口粒度的usb设备监控方法及装置的制造方法

文档序号:9579549阅读:378来源:国知局
基于usb接口粒度的usb设备监控方法及装置的制造方法
【技术领域】
[0001]本发明涉及信息安全技术领域,特别涉及一种基于USB接口粒度的USB设备监控方法及装置。
【背景技术】
[0002]随着计算机技术的发展,USB设备如U盘、移动硬盘等设备越来越普及,随之而来的一个非常显著的问题就是:如何保证这些设备的安全,比如有些涉密计算机不允许使用某些移动存储设备,但是却允许另一些USB存储设备访问,故而,USB设备监控方式就尤为重要。
[0003]现有技术的USB设备监控方式主要采用以下两种方式:
[0004]第一种为:应用层方式,即应用程序监控USB设备的插入、拔出动作,调用SetupAPI系列函数,对特定类别的USB进行禁止或启用。禁止时,其表现为设备管理器中相应设备被禁用(有一个红叉)。使用该方法最大的缺陷是安全性,用户可以手动启用设备,且该应用进程也可能被用户终止。其次,因为应用软件层次较高,无法获取所有USB设备的描述符。因此某些设备可能无法禁止,不能保证所有USB设备都能被监控到。
[0005]第二种为:基于设备粒度的USB过滤驱动方式,即拦截USB总线发来的URB数据包,优点是可安全有效地监控所有USB设备,但其以“USB设备”作为单位,导致对于USB复合设备(即包含多个接口的设备),要么全部禁止,要么全部放行,例如,安卓手机通常包含多个接口设备,如存储设备、ADB设备、媒体设备等。使用该方式,只能全部禁止这些接口设备,不能有选择的禁用某个接口设备,即监控粒度不够精细,容易产生非预期结果。

【发明内容】

[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于USB接口粒度的USB设备监控方法及装置。
[0007]依据本发明的一个方面,提供了一种基于USB接口粒度的USB设备监控方法,所述方法包括:
[0008]拦截由USB总线向待监控USB设备发送的配置USB请求块;
[0009]根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0010]当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0011]可选地,所述拦截由USB总线向待监控USB设备发送的配置USB请求块,进一步包括:
[0012]在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。
[0013]可选地,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。
[0014]可选地,所述根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,进一步包括:
[0015]根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取所述待监控USB设备所有USB接口对应的端点的句柄;
[0016]相应地,所述阻断该端点的数据传输,进一步包括:
[0017]对该端点的句柄进行阻断,以阻断该端点的数据传输。
[0018]可选地,当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。
[0019]依据本发明的另一个方面,提供了一种基于USB接口粒度的USB设备监控装置,所述装置包括:
[0020]配置拦截单元,用于拦截由USB总线向待监控USB设备发送的配置USB请求块;
[0021]端点确定单元,用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0022]传输阻断单元,用于当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0023]可选地,所述配置拦截单元,进一步用于在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块。
[0024]可选地,所述配置USB请求块包括:待监控USB设备所有USB接口对应的端点的句柄。
[0025]可选地,所述端点确定单元,进一步用于根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点,并获取待监控USB设备所有USB接口对应的端点的句柄;
[0026]相应地,所述传输阻断单元,进一步用于对该端点的句柄进行阻断,以阻断该端点的数据传输。
[0027]可选地,所述装置还包括:
[0028]传输允许单元,用于当正在传输数据的端点对应的USB接口不属于预设类型的USB接口时,允许该端点的数据传输。
[0029]本发明根据配置USB请求块来确定待监控USB设备所有USB接口对应的端点,当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,其采用底层技术,有效监控所有USB设备操作,无进程且不易卸载,安全性好,并且可以保证USB复合设备的各子设备独立,有选择的进行阻断,而不是阻断所有子设备,避免引发预期之外的副作用。
【附图说明】
[0030]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0031]图1是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;
[0032]图2是USB设备各描述符之间的关系不意图;
[0033]图3是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;
[0034]图4是本发明一种实施方式的基于USB接口粒度的USB设备监控装置的结构框图。
【具体实施方式】
[0035]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0036]图1是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;参照图1,所述方法包括:
[0037]SlOl:拦截由USB总线向待监控USB设备发送的配置USB请求块(Usb RequestBlock,URB);
[0038]需要说明的是,所述配置URB是所述待监控USB设备在枚举过程中,由USB总线向待监控USB设备发送的配置URB。
[0039]可理解的是,所述待监控USB设备为Windows系统中的USB设备。
[0040]所述枚举过程的具体过程如下:
[0041]USB总线的驱动程序会自动检测新插入的USB设备,然后读取USB设备内的设备描述符以查明插入的是何种设备,设备描述符中的厂商、产品标识以及其它描述符一同决定具体安装哪一个驱动程序。配置管理器调用USB总线的驱动程序中的AddDevice函数。AddDevice函数做以下工作:创建设备对象,把设备对象连接到USB总线的驱动程序堆栈上等,接着是StartDveiee例程。
[0042]StartDveiee例程的执行过程大致如下:首先为USB设备选择一个配置。大多数USB设备仅有一种配置。选定了某个配置后,接着应该选择配置中的一个或多个USB接口。选定了一个配置和一组USB接口后,会向总线的驱动程序发送配置选择URB,USB总线在接收到配置选择URB后,会按照所述配置选择URB创建配置句柄及接口句柄,为各接口创建对应的端点的句柄。
[0043]然后,所述总线会将创建的句柄写入接收到的配置选择URB中,以获得配置URB,并将获得的配置URB发送至所述USB设备。至此,设备的枚举过程全部结束。
[0044]S102:根据所述配置USB请求块来确定待监控USB设备所有USB接口对应的端点;
[0045]需要说明的是,拦截所述配置URB,即可获取待监控USB设备的所有描述符。每个USB都有一个设备描述符,描述设备整体情况,记录的了厂商、设备型号等信息。设备描述符之下是多个配置描述符,每次只能选择一个配置。再往下就是接口描述符,它描述了子设备的类别(如存储设备、打印机设备、HID设备等)。对于复合设备而言,一个配置可以有多个接口,每个接口代表一个子设备。每个接口又存在多个端点,端点是建立USB通讯连接,进行数据传输的实体。各描述符之间的关系,可参照图2。
[0046]S103:当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,以实现对USB设备的监控。
[0047]所述预设类型的USB接口可理解为设置于黑名单中的USB接口类型,相应地,除了所述预设类型的USB接口之外的其他类型的USB接口则可理解为设置与白名单中的USB接口类型。
[0048]另外,还可按照USB接口的接口描述符关键字段来判断是否属于预设类型的USB接口。
[0049]当然,为便于了解所述USB接口的状态,可通过调用控制DLL接口,设置回调函数。当USB设备插入/拔出时,可向用户通过显示、指示灯等方式提示收到通知,如果匹配到规贝IJ,还会显示USB设备的接口被阻断或放行的状态。
[0050]本实施方式根据配置USB请求块来确定待监控USB设备所有USB接口对应的端点,当正在传输数据的端点对应的USB接口属于预设类型的USB接口时,阻断该端点的数据传输,其采用底层技术,有效监控所有USB设备操作,无进程且不易卸载,安全性好,并且可以保证USB复合设备的各子设备独立,有选择的进行阻断,而不是阻断所有子设备,避免引发预期之外的副作用。
[0051]图3是本发明一种实施方式的基于USB接口粒度的USB设备监控方法的流程图;参照图3,所述方法包括:
[0052]S301:在检测到所述待监控USB设备向所述USB总线发送配置选择USB请求块后,拦截由所述USB总线向所述待监控USB设备发送的配置USB请求块;
[0053]可理解的是,若所述待监控USB设备未向所述USB总线发送配置选择USB请求块时,是无法得到所述配置USB请求块的,如果一直处于准备拦截所述配置US
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1