通用串行总线(usb)过滤集线器的制造方法

文档序号:10687002阅读:452来源:国知局
通用串行总线(usb)过滤集线器的制造方法
【专利摘要】本发明涉及一种通用串行总线(USB)过滤集线器。一个方面包括由与主计算机系统通信的USB过滤集线器在所述USB过滤集线器的USB端口处接收来自USB设备的连接。另一方面包括由所述USB过滤集线器确定所述USB设备的类型。再一方面包括判定所述USB设备的类型是否有效。又一方面包括基于确定所述USB设备的类型有效,根据与所确定的USB设备的类型对应的预定命令集,经由所述USB过滤集线器来过滤在所述USB设备与所述主计算机系统之间传送的命令。
【专利说明】
通用串行总线(USB)过滤集线器
技术领域
[0001]本发明一般地涉及计算机系统,更具体地说,涉及用于计算机系统的通用串行总线(USB)过滤集线器(filter hub)。
【背景技术】
[0002]USB是用于将多种类型的设备对接到主计算机系统的串行总线标准。USB可以将诸如存储设备、鼠标设备、键盘、个人数字助理(PDA)、手柄和游戏杆、扫描仪、数码相机、打印机之类的计算机周边设备连接到主计算机系统。USB允许使用单一的标准化接口插座连接周边设备,从而通过允许在不重新引导主计算机系统的情况下将设备连接到主计算机系统以及断开与主计算机系统的连接来改善即插即用功能。

【发明内容】

[0003]各实施例包括用于通用串行总线(USB)过滤集线器的方法、系统和计算机程序产品。一个方面包括由与主计算机系统通信的USB过滤集线器在所述USB过滤集线器的USB端口处接收来自USB设备的连接。另一方面包括由所述USB过滤集线器确定所述USB设备的类型。再一方面包括判定所述USB设备的类型是否有效。又一方面包括基于确定所述USB设备的类型有效,根据与所确定的USB设备的类型对应的预定命令集,经由所述USB过滤集线器来过滤在所述USB设备与所述主计算机系统之间传送的命令。
【附图说明】
[0004]在说明书结尾处的权利要求中特别阐述并明确要求保护被视为各实施例的主题。当结合附图阅读下面的详细描述时,各实施例的上述以及其它特征和优点将变得显而易见,这些附图是:
[0005]图1示出根据一个实施例的USB过滤集线器;
[0006]图2示出根据一个实施例的使用USB过滤集线器的过程流;
[0007]图3示出根据一个实施例的检测恶意USB设备的过程流;
[0008]图4示出根据一个实施例的USB设备、USB过滤集线器与主计算机系统之间的通信的一个实例;
[0009]图5示出根据一个实施例的与USB过滤集线器结合使用的计算机系统。
【具体实施方式】
[0010]提供了USB过滤集线器的实施例,下面详细地介绍示例性实施例。USB设备可能具有多种安全漏洞(例如,BadUSB),这种漏洞允许恶意代码修改USB设备基本输入/输出系统(B1S),并且在所连接的主计算机系统上执行任意代码。例如,USB存储设备可以在主计算机系统的操作系统(OS)上注册为USB键盘,从而获得将任意命令输入到主计算机系统的能力。在另一实例中,USB设备可以欺骗网络适配器并允许到主计算机系统的恶意连接。USB设备还可能包含驻留B1S的病毒,这些病毒无法被扫描出。为了保护计算机系统免受此类恶意USB设备的侵害,USB过滤集线器用作USB设备与主计算机系统之间的接口。USB过滤集线器可以检测恶意设备,并且还限制可能被任何USB设备传送到主计算机系统的注册和命令类型。USB过滤集线器可以在不需要USB设备支持签名的固件(而是USB过滤集线器本身可以支持签名的固件)的情况下保护和检查所有USB旧设备。
[0011]USB过滤集线器可以是位于主计算机系统外部的物理设备,在某些实施例中,其位于主计算机系统与被连接到主计算机系统的任何USB设备之间。例如,USB过滤集线器可以具有插入主计算机系统的USB端口的USB适配器,以及其中插入USB设备的多个USB端口。在其它实施例中,USB过滤集线器可以位于主计算机系统的内部,并且用于过滤到主计算机系统的多个USB端口的连接。
[0012]图1示出根据一个实施例的包括外部USB过滤集线器的系统100的一个实施例。系统100包括主计算机系统101,该主计算机系统包括根集线器102和USB端口 103。如图1所示,USB过滤集线器104经由USB端口 103被连接到主计算机系统101;但这只是为了例示目的而示出,USB过滤集线器可以在各种实施例中通过任何适当的方式被连接到诸如主计算机系统1I之类的主计算机系统。主计算机系统1I可以包括任意适当数量的USB端口(诸如USB端口 103);可以通过以下方式禁用主计算机系统1I中的任何附加USB端口: S卩,将USB过滤集线器104连接到主计算机系统101以经由USB过滤集线器104进行到主计算机系统101的所有USB连接。USB过滤集线器104包括锁开关106,以及多个USB端口 105,这些端口可以连接到任意适当数量和类型的USB设备107A-NWSB设备107A-N与主计算机系统101之间的全部通信经由USB过滤集线器104发送。只是为了例示目的而示出图1,例如,在某些实施例中,USB过滤集线器可以位于主计算机系统的内部。此外,USB过滤集线器可以通过任何适当的方式被连接到主计算机系统。任意适当数量的USB设备可被连接到USB过滤集线器。
[0013]USB过滤集线器104可以基于USB设备的类型过滤USB协议以确保只有正确的设备命令被转发到主计算机系统101。命令过滤可以被USB过滤集线器104应用到任何类型的USB设备,其中包括但不限于网卡、鼠标、键盘、打印机或扫描仪。例如,对于包括存储设备的USB设备107A,USB过滤集线器104不允许来自USB设备的任何非存储命令被发送到主计算机系统101 WSB过滤集线器104还可以提供将USB设备107A-N的特性(specifics)与主计算机系统101隔离的通用接口。例如,在某些实施例中,USB过滤集线器104将所有存储设备作为通用类型(例如,闪存、光驱、HDD的通用类型)报告给主计算机系统,从而避免主计算机系统101上的OS针对任何USB设备安装特定驱动程序。在此类实施例中,主计算机系统上用于USB过滤集线器104的驱动程序包括对这些通用设备的支持。因此,主计算机系统101不会针对任何USB设备从网上搜索新驱动程序,从而避免找到有威胁的设备驱动程序。在多个实施例中,USB过滤集线器104与主计算机系统1I之间的接口可以是任何其它适当类型的接口(而非图1所示的USB端口 103),例如是诸如企业串行高级技术附件(eSATA)之类的存储接口。在此类实施例中,USB过滤集线器拒绝所有非存储设备。
[0014]USB过滤集线器104还可以要求每个USB设备107A-N的设备类型为静态,并且检测与设备类型注册有关的任何异常行为。在某些实施例中,可以在主计算机系统101上实现列出允许的USB设备类型的白名单。在某些实施例中,白名单可以指定被允许的不同类型设备的数量(例如,仅I个键盘)。白名单还可以允许单个USB设备注册为多个设备类型(例如,同时为相机和存储设备的单个USB设备107A)。在某些实施例中,USB过滤集线器104还可以使主计算机系统101要求用户确认特定类型的USB设备已被插入。
[0015]此外,恶意USB存储设备可以在不执行USB存储设备的任何实际物理拔/插的情况下,模拟先拔下该USB存储设备并且然后将新设备插入同一端口,借此尝试取消注册自身,然后例如重新注册为键盘。USB过滤集线器104可以检测此类取消注册尝试,并且将该USB存储设备标记为恶意设备。可以标记USB设备执行的不允许的动作,并且USB过滤集线器能够基于此标记指示该USB设备为恶意USB设备。在多个实施例中,该指示可以是可视指示(例如,闪烁的灯)、音频和/或被发送到主计算机系统的消息。USB过滤集线器104还停止将通信转发到恶意USB设备或停止从恶意USB设备转发通信。USB过滤集线器上的锁开关104也可被用于禁止当前连接的设备更改其注册类型,从而不会识别任何新设备。
[0016]在某些实施例中,USB过滤集线器104还确定USB设备上是否存在任何引导级木马(rootkit)活动。在某些实施例中,USB过滤集线器104不允许从任何USB设备107A-N执行主计算机系统101的B1S更新。USB过滤集线器104还不允许从任何USB设备107A-N引导主计算机系统101,或者可以将引导活动限于白名单列出的设备。物理锁开关106也可以被设置在USB过滤集线器104上,用户必须切换此开关才能显式启用从USB 107A引导。为了防止主计算机系统101上的文件系统攻击,USB过滤集线器104可以使用公司或个人密钥加密主计算机系统1I上的块存储。在多个实施例中,锁开关106可以针对所有USB端口 105启用引导,或者USB过滤集线器104可以包括相应锁开关,例如用于USB端口 105中的各个USB端口的锁开关106。在某些实施例中,锁开关106是物理锁开关。在某些实施例中,锁开关106还可以包括多个锁开关(例如,一个开关用于一个端口)。在其它实施例中,锁开关106包括软件组件,这样用户便可经由主计算机系统101设定和取消设定锁开关的各种设置。
[0017]USB过滤集线器104可以预加载有各种签名证书(诸如签名后的w1-fi证书以及签名后的以太网和路由表);因此,被插入集线器的USB设备107A-N不需要它们自己的签名证书。但是在某些实施例中,可以通过USB过滤集线器104允许USB设备107A上的USB固件的更新。USB过滤集线器104可以要求USB设备固件被签名。签名后的固件可被转发到USB过滤集线器104,USB过滤集线器104检验该签名,然后直接更新USB设备107A。不允许从主计算机系统1I对USB设备107A-N进行未签名的更新或直接更新。
[0018]主计算机系统101上的软件驱动程序可以关闭除了直接连接到USB过滤集线器104的一个或多个USB端口之外的所有其它USB端口 103。在某些实施例中,USB过滤集线器104驱动程序可以替换主计算机系统101上的USB驱动程序,从而将直接连接到主计算机系统101的任何其它USB设备锁定在外。在某些实施例中,如果两个USB过滤集线器被连接到单个主计算机系统101,则这两个USB过滤集线器只能在它们同时处于白名单上才能被启用。在某些实施例中,主计算机系统101上的USB端口 103的物理安全性可以使用定制电缆主机连接器来增强,该连接器可以装入现有的USB端口,从而防止USB过滤集线器104之外的USB设备直接连接到主计算机系统101。
[0019]图2示出根据一个实施例的由USB过滤集线器使用的过程200的一个实施例。参考图1介绍图2。首先,在方框201,USB过滤集线器104被插入主计算机系统101的USB端口 103;主计算机系统101上的任何其它USB端口可基于USB过滤集线器104被插入USB端口 103,而被根集线器102禁用。然后,在方框202,USB设备(例如,USB设备107A)被插入USB过滤集线器104上的USB端口 105中的一USB端口。然后在方框203,USB设备107A基于插入USB过滤集线器104而被加电,并且USB设备107A尝试向USB过滤集线器104注册并将其设备类型指示给USB过滤集线器10LUSB设备107A可以是任何适当类型的USB设备,其中包括但不限于存储设备、键盘、鼠标、扫描仪、以及摄像机。
[0020]然后,在方框204,USB过滤集线器104判定USB设备107A在方框203指示的设备类型是否为有效设备类型。在方框204的某些实施例中,USB过滤集线器104可以使主计算机系统101向用户显示提示,要求用户确认他们是否刚刚将方框203中指示的类型的设备连接到USB过滤集线器104。如果用户未确认设备类型,则USB设备107A被确定为恶意设备。在某些实施例中,例如可以在主计算机系统101或USB过滤集线器104上维护被允许设备的白名单。在某些实施例中,白名单可以包含每种类型的被允许设备的数量。例如,白名单可以指示只有一个键盘可被同时连接到主计算机系统101;因此,如果USB设备107A在另一键盘被连接到主计算机系统101之时尝试注册为键盘,设备类型便会被确定为无效。在其它实施例中,仅存储型设备可被连接到USB过滤集线器104;将不识别注册为另一类型设备的尝试。
[0021 ]如果在方框204确定USB设备107A指示的设备类型有效,则流程继续到方框205,其中USB设备107A经由USB过滤集线器104与主计算机系统101通信。USB过滤集线器104可以基于设备类型限制从USB设备107A发送到主计算机系统101的命令的类型。例如,USB存储设备只能使用预定存储命令集。来自USB设备107A的不是该设备类型的预定命令集的一部分的所有命令被USB过滤集线器104拦截,并且不会被传输到主计算机系统101。如果在方框204确定设备类型不是有效设备类型,则流程继续到方框206,并且USB设备107A被标记为恶意设备。恶意设备与主计算机系统101之间的通信被USB过滤集线器104阻止。可通过任何适当的方式将恶意设备的指示提供给用户。
[0022]图3示出根据一个实施例的用于在操作期间检测恶意USB设备的过程300。首先,在方框301,USB过滤集线器104从USB设备107A接收包括设备类型的注册尝试。接着,在方框302,USB过滤集线器104判定在方框301接收的注册尝试是否是响应于USB过滤集线器104中的USB设备107A的物理插入而接收的。在方框303,如果确定注册尝试并非是响应于USB过滤集线器104中的USB设备107A的物理插入而被接收的。则将USB设备107A标记为恶意设备。
[0023]可使用多种机制来区分图3的方框303中的物理插入事件。在某些实施例中,USB过滤集线器104可以具有物理插入检测能力。例如,内置于USB过滤集线器104中的光学检测器可以感测诸如USB设备107A-N中的任一者之类的USB设备何时位于或未位于USB端口 105中。在某些实施例中,USB端口 105可以均包括被配置为检测物理插入事件的微开关。在某些实施例中,插入事件检测例如也可以以电的方式完成,方式为:使集线器接地连接器分离并在USB设备被插入USB端口 105中的一个USB端口时检测是否存在导通性。在其它实施例中,USB设备可以具有独立的电源连接。在此类实施例中,给设备通电可能表现为利用电气检测的USB端口上的插入事件。但是,给USB设备加电不会被检测为USB过滤集线器104处的物理插入或拔下事件(也就是说,USB设备连接器保持位于USB端口中)。因此,在此类实施例中,用户可能被要求确认设备是否具有插入事件,或者设备是否只是被加电。在某些实施例中,可以通过注意USB连接器的电气行为,另外通过要求用户进行确认来检测加电事件。在其它实施例中,物理插入事件在设备未被直接插入集线器时发生,例如,存在一个连接在设备与USB过滤集线器104上的USB端口之间的电缆。在此类实施例中,电缆的设备端可能被断开连接,同时使另一端连接到USB过滤集线器104。在此类实施例中,不在集线器处将此检测为物理插入事件,并且要求用户确认插入事件。在某些实施例中,可以使用锁开关以避免要求用户将此类事件确认为插入事件。在其它实施例中,USB过滤集线器104上当前未连接任何USB设备的USB端口可在设定锁开关106时被停用。
[0024]图4示出根据图2和3的方法200和300的经由USB过滤集线器104在恶意USB设备107A与主计算机系统101之间的通信的一个实例。USB设备107A可以包括具有已感染固件的闪存驱动器,该闪存驱动器最初被注册为存储设备,之后尝试注册为键盘。用户将该USB驱动器插入集线器。USB设备107A首先向集线器注册(401) WSB过滤集线器104设定USB设备107A的地址(402),并且USB设备107A将包括设备类型的描述符发送到USB过滤集线器104(403) WSB过滤集线器104然后通过与主计算机系统101通信来针对设备检验该设备被允许且被期望使用(404和405)。当设备类型经过主计算机系统101检验时,USB过滤集线器104锁定该设备类型防止其进一步改变(406),并且完成向主计算机系统101进行通用设备USB设备注册(407和408)。设定配置(409和410),然后USB设备107A以正常模式执行操作,S卩,在USB设备107A与主计算机系统101之间发送和接收针对该设备类型被允许的命令(411和412)。然后在操作期间,USB设备107A尝试注册为不同设备类型(例如,键盘设备)以试图渗入主计算机系统101(413)。该注册尝试被USB过滤集线器104识别为未响应于该设备在USB过滤集线器104中的物理插入,因此USB过滤集线器104向主计算机系统101通知该入侵尝试(414)并且禁用该USB设备(415)。
[0025]图5示出可以与USB过滤集线器的多个实施例结合使用的计算机500的一个实例。上面介绍的各种操作可以利用计算机500的能力。计算机500的能力中的一种或多种可以被集成在此处介绍的任何元件、模块、应用和/或组件内。例如,计算机500可以包括主计算机系统101,并且USB过滤集线器104可被连接到输入/输出(I/O)设备570。
[0026]计算机500包括但不限于PC、工作站、膝上型计算机、PDA、掌上设备、服务器、存储装置等。一般而言,就硬件体系结构而言,计算机500可以包括经由本地接口(未示出)通信耦合的一个或多个处理器510、存储器520,以及一个或多个I/O设备570。本地接口例如可以是但不限于本领域中公知的一个或多个总线或其它有线或无线连接。本地接口可以具有诸如控制器、缓冲器(高速缓存)、驱动器、中继器以及接收器之类的附加元件以实现通信。此夕卜,本地接口可以包括地址、控制和/或数据连接以实现上述组件之间的适当通信。
[0027]处理器510是用于执行可被存储在存储器520中的软件的硬件。处理器510事实上可以是任何定制的或可商购的处理器、中央处理单元(CPU)、数字信号处理器(DSP)或与计算机500关联的多个处理器当中的辅助处理器,处理器510可以是基于半导体的微处理器(采取微芯片形式)或宏处理器。
[0028]存储器520可以包括易失性存储元件(例如,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)等之类的随机存取存储器(RAM))和非易失性存储元件(例如,R0M、可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、压缩盘-只读存储器(⑶-ROM)、磁盘、软盘、磁带仓、盒式磁带等)中的任一者或其组合。而且,存储器520可结合电、磁、光和/或其它类型的存储介质。需要指出,存储器520可具有分布式体系结构,其中各个组件彼此远离,但是可被处理器510访问。
[0029]存储器520中的软件可包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行命令的有序列表。根据示例性实施例,存储器520中的软件包括适当的操作系统(0/S)550、编译器540、源代码530和一个或多个应用560。如图所示,应用560包括多个用于实现示例性实施例的特征和操作的功能组件。根据示例性实施例,计算机500的应用560可表示各种应用、计算单元、逻辑、功能单元、进程、操作、虚拟实体和/或模块,但是应用560并非旨在作为限制。
[0030]操作系统550控制其它计算机程序的执行,并且提供调度、输入-输出控制、文件和数据管理、内存管理、通信控制以及相关服务。发明人构想用于实现示例性实施例的应用560可在所有可商购的操作系统上应用。
[0031]应用560可以是源程序、可执行程序(目标代码)、脚本或其它任何包括要执行的指令集的实体。当程序为源程序时,一般借助可能包括在存储器520中,也可能不包括在其中的编译器(例如,编译器540)、汇编器、解译器等转换该程序,以便结合0/S 550正确地执行操作。此外,应用560可使用具有数据和方法类的面向对象的程序设计语言,或具有例程、子例程和/或函数的过程式程序设计语言编写,例如但不限于:C、C++、C#、Pascal、BASIC、API调用、HTML、XHTML、XML、ASP脚本、FORTRAN、COBOL、Per 1、Ja va、ADA、.NET等。
[0032]I/O设备570可包括输入设备(例如但不限于鼠标、键盘、扫描仪、麦克风、相机等)。此外,I/O设备570还可包括输出设备(例如但不限于打印机、显示器等)。最后,I/O设备570可还包括同时传送输入和输出的设备(例如但不限于NIC或调制器/解调器(用于访问远程设备、其它文件、设备、系统或网络)、射频(RF)或其它收发器、电话接口、桥接器、路由器等)。1/0设备570还包括用于通过各种网络(例如因特网或内联网)通信的组件。
[0033]如果计算机500为PC、工作站、智能设备等,则存储器520中的软件可还包括基本输入输出系统(B1S)(为简化起见被省略)^1S是基本软件例程集,其在启动时初始化和测试硬件、启动0/S 550,并支持硬件设备之间的数据传输。B1S存储在某类只读存储器中(例如R0M、PR0M、EPR0M、EEPR0M等),从而使B1S可在激活计算机500时被执行。
[0034]当计算机500执行操作时,处理器510被配置为执行存储在存储器520内的软件,以传送发往或来自存储器520的数据,并且总体上根据软件控制计算机500的操作。应用560和0/S 550由处理器510整体或部分地读取,也可能在处理器510中缓冲,然后被执行。
[0035]当应用560在软件中实现时,需要注意,应用560实际可存储在任何计算机可读存储介质上,以便被任何计算机相关的系统或方法使用或与其结合使用。在本文件的上下文中,计算机可读存储介质可以是电、磁、光或其它物理设备或装置,这些设备或装置可包含或存储计算机程序,该程序可以被计算机相关的系统或方法使用或者与其结合使用。
[0036]应用560可体现在任何被指令执行系统、装置或者设备使用或者与其结合使用的计算机可读存储介质中,例如基于计算机的系统、包含处理器的系统或其它可从指令执行系统、装置或者设备取回指令并执行这些指令的系统。在本文件的上下文中,“计算机可读存储介质”可以是任何能够存储被指令执行系统、装置或者设备使用或与其结合使用的程序的装置。计算机可读程序介质例如可以是但不限于电的、磁的、光的、电磁的、或半导体的系统、装置、设备。
[0037]计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接(电的)、便携式计算机软盘(磁的或光的)、随机存取存储器(RAM)(电的)、只读存储器(ROM)(电的)、可擦式可编程只读存储器(EPROM、EEPROM或闪存)(电的)、光纤(光的)以及便携式紧凑磁盘存储器(CDROM、CD R/W)(光的)。需要注意,计算机可读存储介质甚至可以是程序被打印在其上或上面穿孔的纸张或其它适合的介质,因为所述程序可以通过例如光扫描所述纸张或其它介质被电子地捕获,然后被编译、解释或另外以适合的方式被处理(如果必要),然后被存储在计算机存储器中。
[0038]在示例性实施例中,当应用560在硬件中实现时,应用560可通过以下本领域公知的技术中的任一者或其组合实现:具有实现数据信号上逻辑功能的逻辑门的分立逻辑电路(多个)、具有适当的组合逻辑门的专用集成电路(ASIC)、可编程门阵列(PGA)、现场可编程门阵列(FPGA)等。
[0039]技术效果和优势包括保护计算机系统免受恶意USB设备侵害。
[0040]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0041]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是一一但不限于一一电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0042]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0043]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0044]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0045]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0046]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0047]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0048]以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
【主权项】
1.一种计算机实现的方法,包括: 由与主计算机系统通信的通用串行总线USB过滤集线器在所述USB过滤集线器的USB端口处接收来自USB设备的连接; 由所述USB过滤集线器确定所述USB设备的类型; 确定所述USB设备的类型有效;以及 基于确定所述USB设备的类型有效,根据与所确定的所述USB设备的类型对应的预定命令集,经由所述USB过滤集线器来过滤在所述USB设备与所述主计算机系统之间传送的命令。2.如权利要求1所述的方法,还包括: 由所述USB过滤集线器拦截来自USB存储设备的不是所述预定命令集的一部分的命令,使得被拦截的命令不被传输到所述主计算机系统;以及 基于所述被拦截的命令禁用所述USB设备。3.如权利要求1所述的方法,其中确定所述USB设备的类型有效包括检查被允许设备的白名单,其中所述白名单包括被允许设备类型的清单,以及每个被允许设备类型的相应被允许数量。4.如权利要求1所述的方法,其中确定所述USB设备的类型有效包括从所述主计算机系统的用户接收所述USB设备的类型有效的确认。5.如权利要求1所述的方法,其中所述USB过滤集线器包括锁开关,所述方法还包括基于所述锁开关,允许从与所述USB过滤集线器相连的所述USB设备引导所述主计算机系统。6.如权利要求1所述的方法,还包括检测所述USB设备的取消注册尝试,并且基于所述取消注册尝试禁用所述USB设备。7.如权利要求6所述的方法,其中所述取消注册尝试包括所述USB设备的物理拔下和插回的欺骗,并且其中所述检测包括以下之一:由光学检测器或开关对所述USB设备在所述USB端口中的存在的物理检测,以及基于所述USB过滤集线器的接地导通性对所述USB设备在所述USB端口中的存在的电气检测。8.如权利要求1所述的方法,其中所述USB过滤集线器位于所述主计算机系统的内部。9.如权利要求1所述的方法,其中所述USB过滤集线器位于所述主计算机系统的外部并被连接到所述主计算机系统的USB端口,并且所述方法还包括基于所述USB过滤集线器被连接到所述USB端口而禁用所述主计算机系统的附加USB端口。10.一种通用串行总线USB过滤集线器,包括: 存储器;以及 处理器,其与所述存储器通信地耦合,所述计算机系统被配置为执行一种方法,所述方法包括: 由与主计算机系统通信的所述USB过滤集线器在所述USB过滤集线器的USB端口处接收来自USB设备的连接; 由所述USB过滤集线器确定所述USB设备的类型; 确定所述USB设备的类型有效;以及 基于确定所述USB设备的类型有效,根据与所确定的所述USB设备的类型对应的预定命令集,经由所述USB过滤集线器来过滤在所述USB设备与所述主计算机系统之间传送的命令。11.如权利要求10所述的系统,还包括: 由所述USB过滤集线器拦截来自USB存储设备的不是所述预定命令集的一部分的命令,使得被拦截的命令不被传输到所述主计算机系统;以及基于所述被拦截的命令禁用所述USB设备。12.如权利要求10所述的系统,其中确定所述USB设备的类型有效包括检查被允许设备的白名单,其中所述白名单包括被允许设备类型的清单,以及每个被允许设备类型的相应被允许数量。13.如权利要求10所述的系统,其中确定所述USB设备的类型有效包括从所述主计算机系统的用户接收所述USB设备的类型有效的确认。14.一种计算机程序产品,包括: 包含程序指令的计算机可读存储介质,所述程序指令可由处理电路读取以使所述处理电路执行如权利要求1 -1 O中的一项所述的方法。
【文档编号】G06F13/40GK106055502SQ201610214293
【公开日】2016年10月26日
【申请日】2016年4月7日 公开号201610214293.2, CN 106055502 A, CN 106055502A, CN 201610214293, CN-A-106055502, CN106055502 A, CN106055502A, CN201610214293, CN201610214293.2
【发明人】S·R·赫茨勒, D·F·史密斯
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1