CN102760104B - 一种usb设备控制方法 - Google Patents

一种usb设备控制方法 Download PDF

Info

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
Application number
CN201210209805.8A
Other languages
English (en)
Other versions
CN102760104A (zh
Inventor
付强
邓鸿
许勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Westone Information Industry Inc
Original Assignee
Chengdu Westone Information Industry Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201210209805.8A priority Critical patent/CN102760104B/zh
Publication of CN102760104A publication Critical patent/CN102760104A/zh
Application granted granted Critical
Publication of CN102760104B publication Critical patent/CN102760104B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及USB设备技术领域,本发明公开了一种USB设备控制方法,其具体包含以下步骤:首先通过USB下层过滤驱动拦截接入的所有USB设备,并获取接入的所有USB设备的设备描述符,根据设备描述符查询策略规则信息库,根据策略规则信息库中的策略信息识别出被禁止接入的USB设备和被允许接入的USB设备,最后根据识别结果对USB设备进行控制。客户可以根据自己的需要随时调整,使得USB设备有选择地被使用,方便了用户的使用,另外一方面将危险性高的USB设备进行禁用,保证了内部数据及系统的安全。

Description

一种USB设备控制方法
技术领域
本发明涉及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设备堆栈为层次结构,其具体包括物理设备对象、功能设备对象、上层过滤器、下层过滤器,其从上到下依序为上层过滤器、功能设备对象、下层过滤器、物理设备对象。
CN201210209805.8A 2012-06-25 2012-06-25 一种usb设备控制方法 Expired - Fee Related CN102760104B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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端口设备开关的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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