CN102760104B - 一种usb设备控制方法 - Google Patents
一种usb设备控制方法 Download PDFInfo
- Publication number
- CN102760104B CN102760104B CN201210209805.8A CN201210209805A CN102760104B CN 102760104 B CN102760104 B CN 102760104B CN 201210209805 A CN201210209805 A CN 201210209805A CN 102760104 B CN102760104 B CN 102760104B
- Authority
- CN
- China
- Prior art keywords
- usb
- usb device
- descriptor
- equipment
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000001914 filtration Methods 0.000 claims description 12
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及USB设备技术领域,本发明公开了一种USB设备控制方法,其具体包含以下步骤:首先通过USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符,根据设备描述符查询策略规则信息库,根据策略规则信息库中的策略信息识别出被禁止接入的USB设备和被允许接入的USB设备,最后根据识别结果对USB设备进行控制。客户可以根据自己的需要随时调整,使得USB设备有选择地被使用,方便了用户的使用,另外一方面将危险性高的USB设备进行禁用,保证了内部数据及系统的安全。
Description
技术领域
本发明涉及USB设备技术领域,尤其涉及一种USB设备控制方法。
背景技术
随着计算机硬件的飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,其一般都采用越来越通用的USB接口与PC机进行连接。USB接口即插即用(PnP)概念的使用使硬件的安装过程得到了简化,这使用户感觉到了使用USB设备的方便。在给用户带来便利的同时,也给各类单位(尤其是涉密单位)带来了安全隐患。USB接口是内部网络信息泄密的一个重要途径,同时也是内部网络的病毒源,因此很多保密单位都采用物理上禁用USB端口。但由于USB设备种类繁多且使用广泛,仅仅简单而粗暴地禁用USB接口会使无威胁的外围设备如USB鼠标、键盘、USBKey等设备无法使用,这会给用户带来很多不便。
发明内容
针对上述的USB接口泄密,而如果简单采用物理禁用USB接口又不方便的技术问题,本发明公开了一种USB设备控制方法。
本发明的目的通过下述技术方案来实现:
一种USB设备控制方法,其具体包含以下步骤:首先通过USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符,根据设备描述符查询策略规则信息库,根据策略规则信息库中的策略信息识别出被禁止接入的USB设备和被允许接入的USB设备,最后根据识别结果对USB设备进行控制。
优选地,上述通过USB下层过滤驱动拦截具体包括以下步骤:I/O请求包先被送到USB设备堆栈的最上层驱动程序,然后过滤到下层的驱动程序,下层过滤驱动过滤该USB设备的所有I/O请求包。
优选地,上述USB设备堆栈为层次结构,其具体包括物理设备对象、功能设备对象、上层过滤器、下层过滤器,其从上到下依序为上层过滤器、功能设备对象、下层过滤器、物理设备对象。
优选地,上述获取接入的所有USB设备的设备描述符具体为:从USB设备的默认控制端点读取设备描述符,根据设备描述符中的类、子类及所使用的协议识别出USB设备。
优选地,上述从USB设备的默认控制端点读取设备描述符具体为:首先读取默认控制端点上的数据包容量的最大值,然后分块读出整个描述符。
本发明的有益效果:本发明首先采用USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符信息,根据设备描述符信息查询策略规则信息库,根据策略规则信息库中的策略信息识别出哪些USB设备被禁止接入,哪些USB设备被允许接入,比如允许接入USB接口的键盘,禁止接入USB接口的存储设备(如U盘、USB光驱等)。上述哪些USB设备被禁止接入,哪些USB设备被允许接入都保存在策略规则信息库中,客户可以根据自己的需要随时调整,使得USB设备有选择地被使用,如USB鼠标、键盘、USBKey等可以使用,带存储功能的USB设备如U盘、磁盘等不能使用,可以根据需要随时调整策略规则信息库,调整哪些USB设备可以使用,方便了用户的使用,另外一方面将危险性高的USB设备进行禁用,保证了内部数据及系统的安全。
附图说明
图1为本发明的USB设备控制方法的流程图。
图2为USB设备的设备堆栈。
具体实施方式
本发明公开了一种USB设备控制方法,如图1所示的本发明的USB设备控制方法的流程图,其具体包含以下步骤:首先通过USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符,根据设备描述符查询策略规则信息库,根据策略规则信息库中的策略信息识别出被禁止接入的USB设备和被允许接入的USB设备,最后根据识别结果对USB设备进行控制。本发明首先采用USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符信息,根据设备描述符信息查询策略规则信息库,根据策略规则信息库中的策略信息识别出哪些USB设备被禁止接入,哪些USB设备被允许接入,比如允许接入USB接口的键盘,禁止接入USB接口的存储设备(如U盘、USB光驱等)。上述哪些USB设备被禁止接入,哪些USB设备被允许接入都保存在策略规则信息库中,客户可以根据自己的需要随时调整,使得USB设备有选择地被使用,如USB鼠标、键盘、USBKey等可以使用,带存储功能的USB设备如U盘、磁盘等不能使用,可以根据需要随时调整策略规则信息库,调整哪些USB设备可以使用,方便了用户的使用,另外一方面将危险性高的USB设备进行禁用,保证了内部数据及系统的安全。
优选地,所述通过USB下层过滤驱动拦截具体包括以下步骤:I/O请求包(I/0 Request Package,简称IPR)先被送到USB设备堆栈的最上层驱动程序,然后过滤到下层的驱动程序,下层过滤驱动过滤该USB设备的所有I/O请求包。通过下层过滤驱动过滤掉该USB设备的所有I/O请求包。
优选地,所述USB设备堆栈为层次结构,其具体包括物理设备对象、功能设备对象、上层过滤器、下层过滤器,其从上到下依序为上层过滤器、功能设备对象、下层过滤器、物理设备对象。如图2所示的USB设备的设备堆栈,处于处于堆栈最底层的设备对象称为物理设备对象,或简称PDO,与其对应的驱动程序称为总线驱动程序。在设备对象堆栈的中间为功能设备对象,或简称FDO,其对应的驱动程序称为功能驱动程序。在FDO的上面和下面还会有一些过滤器设备对象。位于FDO的上面的过滤器设备对象称为上层过滤器,其对应的驱动程序称为上层过滤器驱动程序;位于FDO下面的过滤器设备对象称为下层过滤器,其对应的驱动程序称为下层过滤器驱动程序。有USB的操作都会使用IRP来完成,通常IRP先被送到设备堆栈的最上层驱动程序,然后逐渐过滤到下面的驱动程序,每一层驱动程序都可以决定如何处理IRP,它可以直接处理完成该IRP,也可以将该IRP传递给下层驱动,让下层驱动处理。
优选地,所述获取接入的所有USB设备的设备描述符具体为:从USB设备的默认控制端点读取设备描述符,根据设备描述符中的类、子类及所使用的协议识别出USB设备。USB设备硬件中的数据结构称为描述符,可以被主机软件识别。每个描述符开始于一个两字节的头,头中指出该描述符的字节长度(包括头)和描述符类型。事实上,如果我们不讨论特殊的串描述符,描述符的长度对于相同的描述符类型是固定的,即所有给定类型的描述符长度相同。每个设备都有一个唯一的设备描述符,它向主机软件标识该设备。主机使用GET_DESCRIPTOR控制事务直接从设备的0号端点读取该描述符。
该描述符在DDK中的定义如下:
typedef struct _USB_DEVICE_DESCRIPTOR {
UCHAR bLength;
UCHAR bDescriptorType;
USHORT bcdUSB;
UCHAR bDeviceClass;
UCHAR bDeviceSubClass;
UCHAR bDeviceProtocol;
UCHAR bMaxPacketSize0;
USHORT idVendor;
USHORT idProduct;
USHORT bcdDevice;
UCHAR iManufacturer;
UCHAR iProduct;
UCHAR iSerialNumber;
UCHAR bNumConfigurations;
} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR。
设备描述符的bLength域应等于18,bDescriptorType域应等于1,以指出该结构是一个设备描述符。bcdUSB域包含该描述符遵循的USB规范的版本号(以BCD编码)。现在,设备可以使用值0x0100或0x0110来指出它所遵循的是1.0版本还是1.1版本的USB规范。bDeviceClass、bDeviceSubClass、bDeviceProtocol指出设备类型。USB委员会的独立设备类工作组为每个设备类定义子类和协议代码。例如,音频类有控制、流,和MIDI流接口的子类代码。大容量存储类为使用各种端点的数据传输方法定义了协议代码。你可以为整个设备或仅在接口级指定一个类,但事实上,设备类、子类、和协议代码通常出现在接口描述符中而不是出现在设备描述符中。USB还为特殊类型的设备指定了一个特殊的设备类代码255,厂商可以使用这个代码指出其设备是一个非标准设备,并且在子类和协议域中填入厂商设定的值。例如,使用Anchor Chips芯片集的设备,其设备描述符中的类、子类,和协议代码全为255。USB设备类具体如下表所示。
类代码 | 描述 |
0 | 指出类代码存在于接口描述符中 |
1 | 操作模拟或数字音频、语音、和其它与声音相关的数字设备 |
2 | 电讯设备,如调制解调器、电话、应答机,等等 |
3 | 人类接口设备,如键盘、鼠标、麦克风,等等 |
4 | 显示器 |
5 | 含有实时物理反馈的人类接口设备,如力反馈游戏杆 |
6 | 执行电源管理的人类接口设备,如电池、充电器,等等 |
7 | 打印机 |
8 | 大容量存储设备,如磁盘和CD-ROM |
9 | USB hubs |
10 | 通信类数据设备 |
11 | 智能卡设备 |
13 | 内容安全设备 |
14 | USB视频设备 |
15 | 个人医疗设备 |
220 | 诊断设备 |
224 | 无线控制器设备 |
255 | 厂商定义的设备类 |
优选地,从USB设备的默认控制端点读取设备描述符具体为:首先读取默认控制端点上的数据包容量的最大值,然后分块读出整个描述符。设备描述符的bMaxPacketSize0域给出了默认控制端点(端点0)上的数据包容量的最大值,每个设备都必须提供0号控制端点,由于USB规范并没有为该端点规定一个单独的端点描述符,所以这个域是唯一描述这个端点的地方。因为这个域在设备描述符的偏移7处,所以即使该端点使用最小的传输容量(8字节)主机也能读到这个域。一旦主机知道了端点0的最大传输容量,它就可以分块读出整个描述符。idVendor(PID)和idProduct(VID)域指定厂商代码和厂商专用的产品标识。bcdDevice指出设备的发行版本号(0x0100对应版本1.0)。当主机软件检测设备时,这三个域决定了主机应该装入哪个驱动程序。
这里已经通过具体的实施例子对本发明进行了详细描述,提供上述实施例的描述为了使本领域的技术人员制造或适用本发明,这些实施例的各种修改对于本领域的技术人员来说是容易理解的。本发明并不限于这些例子,或其中的某些方面。本发明的范围通过附加的权利要求进行详细说明。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (3)
1.一种USB设备控制方法,其具体包含以下步骤:首先通过USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符,根据设备描述符查询策略规则信息库,根据策略规则信息库中的策略信息识别出被禁止接入的USB设备和被允许接入的USB设备,最后根据识别结果对USB设备进行控制;
其中,所述获取接入的所有USB设备的设备描述符具体为:从USB设备的默认控制端点读取设备描述符,根据设备描述符中的类、子类及所使用的协议识别出USB设备;并且所述从USB设备的默认控制端点读取设备描述符具体为:首先读取默认控制端点上的数据包容量的最大值,然后分块读出整个描述符;
所述设备描述符的bMaxPacketSize0域给出了默认控制端点上的数据包容量的最大值,一旦主机知道了默认控制端点的最大传输容量,就分块读出整个设备描述符。
2.如权利要求1所述的USB设备控制方法,其特征在于所述通过USB下层过滤驱动拦截具体包括以下步骤:I/O请求包先被送到USB设备堆栈的最上层驱动程序,然后过滤到下层的驱动程序,下层过滤驱动过滤该USB设备的所有I/O请求包。
3.如权利要求2所述的USB设备控制方法,其特征在于所述USB设备堆栈为层次结构,其具体包括物理设备对象、功能设备对象、上层过滤器、下层过滤器,其从上到下依序为上层过滤器、功能设备对象、下层过滤器、物理设备对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210209805.8A CN102760104B (zh) | 2012-06-25 | 2012-06-25 | 一种usb设备控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210209805.8A CN102760104B (zh) | 2012-06-25 | 2012-06-25 | 一种usb设备控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102760104A CN102760104A (zh) | 2012-10-31 |
CN102760104B true CN102760104B (zh) | 2015-07-08 |
Family
ID=47054566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210209805.8A Expired - Fee Related CN102760104B (zh) | 2012-06-25 | 2012-06-25 | 一种usb设备控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102760104B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440465B (zh) * | 2013-08-29 | 2018-04-06 | 成都卫士通信息安全技术有限公司 | 一种移动存储介质安全控制方法 |
CN104462940B (zh) * | 2013-09-18 | 2018-01-19 | 国家电网公司 | 计算机usb接口的监控方法和装置 |
CN104461950B (zh) * | 2013-09-25 | 2018-07-06 | 联想(北京)有限公司 | 一种信息处理方法及装置 |
CN104598400A (zh) * | 2014-12-15 | 2015-05-06 | 北京奇虎科技有限公司 | 一种外设管理的方法、装置及系统 |
CN104734785B (zh) * | 2015-01-26 | 2018-04-10 | 华北水利水电大学 | 一种可见光接收装置和可见光接收方法 |
EP3104296B1 (en) * | 2015-06-10 | 2019-12-18 | Alcatel Lucent | Usb attack protection |
CN105335661B (zh) * | 2015-09-25 | 2018-04-03 | 北京北信源软件股份有限公司 | 基于usb接口粒度的usb设备监控方法及装置 |
CN105160238A (zh) * | 2015-10-20 | 2015-12-16 | 国网江西省电力公司南昌供电分公司 | 一种可阻止未经安全认证的u盘连接计算机的盒子 |
CN105160260B (zh) * | 2015-10-20 | 2018-10-12 | 国网江西省电力公司南昌供电分公司 | 可鉴别是否是已认证移动存储介质的装置 |
CN106803317A (zh) * | 2016-12-28 | 2017-06-06 | 北京安天网络安全技术有限公司 | 一种前置atm安全检测系统及方法 |
CN106909828A (zh) * | 2017-01-10 | 2017-06-30 | 中电科华云信息技术有限公司 | 基于云桌面usb设备过滤方法 |
CN108427649B (zh) * | 2018-01-16 | 2020-09-15 | 广州杰赛科技股份有限公司 | Usb接口的接入管理方法、终端设备、系统及存储介质 |
CN109828793B (zh) * | 2019-01-28 | 2022-06-28 | 超越科技股份有限公司 | 基于国产操作系统的usb管控方法及系统 |
CN110096910A (zh) * | 2019-05-14 | 2019-08-06 | 北京天地和兴科技有限公司 | 一种基于文件过滤驱动的可信u盘实现方法 |
CN110825332B (zh) * | 2019-11-15 | 2023-05-26 | 江苏江波信息科技股份有限公司 | 一种在windows操作系统中使打印机设备即插即用的方法 |
CN111007783A (zh) * | 2019-12-28 | 2020-04-14 | 广东电科院能源技术有限责任公司 | 一种安全管控系统及方法 |
CN111240754B (zh) * | 2020-01-13 | 2023-10-27 | 中孚安全技术有限公司 | 一种在Linux内核中识别特定USB大容量存储设备的方法及系统 |
CN112068890A (zh) * | 2020-08-13 | 2020-12-11 | 中国电子科技集团公司第三十研究所 | 一种计算机外接设备控制方法、系统及存储介质 |
CN114186293A (zh) * | 2021-11-30 | 2022-03-15 | 北京博衍思创信息科技有限公司 | Usb设备与被保护设备的通信控制方法、装置及电子设备 |
CN114139226A (zh) * | 2021-11-30 | 2022-03-04 | 北京博衍思创信息科技有限公司 | Usb设备接入控制方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650700A (zh) * | 2009-09-17 | 2010-02-17 | 北京飞天诚信科技有限公司 | 一种支持多逻辑通道通信的方法和设备 |
CN102411488A (zh) * | 2011-12-13 | 2012-04-11 | 华为终端有限公司 | 移动终端图象显示的方法和移动终端 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839793B2 (en) * | 2001-03-28 | 2005-01-04 | Intel Corporation | Method and apparatus to maximize bandwidth availability to USB devices |
EP1248179A1 (en) * | 2001-04-03 | 2002-10-09 | Hewlett-Packard Company | Selective activation and deactivation of peripheral devices connected to a USB system |
US20040003135A1 (en) * | 2002-06-27 | 2004-01-01 | Moore Terrill M. | Technique for driver installation |
EP2136310A1 (en) * | 2008-06-19 | 2009-12-23 | SCM Microsystems GmbH | Host device system with USB port security |
CN101593252B (zh) * | 2009-05-27 | 2015-04-15 | 飞天诚信科技股份有限公司 | 一种计算机对usb设备进行访问的控制方法和系统 |
CN102332073A (zh) * | 2011-07-07 | 2012-01-25 | 曙光信息产业股份有限公司 | 一种控制usb端口设备开关的方法 |
-
2012
- 2012-06-25 CN CN201210209805.8A patent/CN102760104B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650700A (zh) * | 2009-09-17 | 2010-02-17 | 北京飞天诚信科技有限公司 | 一种支持多逻辑通道通信的方法和设备 |
CN102411488A (zh) * | 2011-12-13 | 2012-04-11 | 华为终端有限公司 | 移动终端图象显示的方法和移动终端 |
Non-Patent Citations (1)
Title |
---|
基于IRP拦截技术的USB设备监控系统;张赟等;《微电子学与计算机》;20051231;第179页至182页以及图2 * |
Also Published As
Publication number | Publication date |
---|---|
CN102760104A (zh) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102760104B (zh) | 一种usb设备控制方法 | |
US10997092B2 (en) | Enabling out-of-band hardware management via an in-band communications channel | |
AU2011240960B2 (en) | Dynamic configuration of connectors for system level communications | |
US8504823B2 (en) | Dynamic configuration of connectors for system-level communications | |
US8604915B2 (en) | Smart power sockets, boards, and plugs | |
US20120030399A1 (en) | Mobile phone device platform | |
US8135880B2 (en) | USB mass storage locking | |
WO2008045276A3 (en) | Dynamic medical object information base | |
CN103856556B (zh) | 基于云的应用程序账户管理 | |
US20050144353A1 (en) | Wireless virtual storage device | |
CN109660372A (zh) | 一种sdn的业务配置的方法及装置 | |
CN106506481A (zh) | 一种基于OpenStack的云桌面系统 | |
WO2019161582A1 (zh) | 一种移动存储设备及其加密方法与装置 | |
CN103092648B (zh) | 一种镜像升级方法、系统及用户设备和个人计算机 | |
CN108023921A (zh) | 一种第三方平台的接入方法和装置 | |
US20060101182A1 (en) | Usb device | |
CN107888663A (zh) | 一种分发文件的方法、设备及计算机可读介质 | |
JP2009181489A (ja) | 認証装置及び認証方法 | |
CN107562676B (zh) | 一种基于VB.net的通过USB与发电机组控制器通讯的方法 | |
KR20070015671A (ko) | 유에스비 호스트에 보안 콘트롤러를 부가하여 유에스비장치를 통제하는 방법 | |
CN206697236U (zh) | 一种无线传输硬盘 | |
CN103457624A (zh) | 外接式电子装置及储存装置的无线存取方法 | |
CN109165174A (zh) | 一种硬件信息采集方法、系统及电子设备和存储介质 | |
CN108170289A (zh) | 基于usb定制化键盘的驱动方法 | |
US9317505B2 (en) | Discovery, preview and control of media on a remote device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150708 |
|
CF01 | Termination of patent right due to non-payment of annual fee |