USB

2022-05-22 95阅读

温馨提示:这篇文章已超过707天没有更新,请注意相关的内容是否还可用!

USB

USB,是英文Universal Serial Bus的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。

USB

USB简介

通用串行总线 (Universal Serial Bus,USB) 是一种新兴的并逐渐取代其他接口标准的数据通信方式,由 Intel、Compaq、Digital、IBM、Microsoft、NEC及Northern Telecom 等计算机公司和通信公司于1995年联合制定,并逐渐形成了行业标准。USB 总线作为一种高速串行总线,其极高的传输速度可以满足高速数据传输的应用环境要求,且该总线还兼有供电简单、安装配置便捷、 扩展端口简易、传输方式多样化,以及兼容良好等优点。通用串行总线(universal serial bus,USB)自推出以来,已成功替代串口和并口,成为21世纪大量计算机和智能设备的标准扩展接口和必备接口之一,现已发展到USB 4.0版本。USB 具有传输速度快、使用方便、支持热插拔、连接灵活、独立供电等优点,可以连接键盘、鼠标、大容量存储设备等多种外设,该接口也被广泛用于智能 手机中。计算机等智能设备与外界数据的交互主要以网络和USB接口为主。

USB软件结构

每个USB只有一个主机,它包括以下几层:总线接口USB总线接口处理电气层与协议层的互连。从互连的角度来看,相似的总线接口由设备及主机同时给出,例如串行接口机。USB总线接口由主控制器实现。USB系统用主控制器管理主机与USB设备间的数据传输。它与主控制器间的接口依赖于主控制器的硬件定义。同时,USB系统也负责管理USB资源,例如带宽和总线能量,这使客户访问USB成为可能。USB系统还有三个基本组件:主控制器驱动程序这可把不同主控制器设备映射到USB系统中。HCD与USB之间的接口叫HCDI,特定的HCDI由支持不同主控制器的操作系统定义,通用主控制器驱动器处于软结构的最底层,由它来管理和控制主控制器。UHCD实现了与USB主控制器通信和控制USB主控制器,并且它对系统软件的其他部分是隐蔽的。系统软件中的最高层通过UHCD的软件接口与主控制器通信。USB驱动程序它在UHCD驱动器之上,它提供驱动器级的接口,满足现有设备驱动器设计的要求。USBD以I/O请求包的形式提供数据传输架构,它由通过特定管道传输数据的需求组成。此外,USBD使客户端出现设备的一个抽象,以便于抽象和管理。作为抽象的一部分,USBD拥有缺省的管道。通过它可以访问所有的USB设备以进行标准的USB控制。该缺省管道描述了一条USBD和USB设备间通信的逻辑通道。主机软件在某些操作系统中,没有提供USB系统软件。这些软件本来是用于向设备驱动程序提供配置信息和装载结构的。在这些操作系统中,设备驱动程序将应用提供的接口而不是直接访问USBDI结构。USB客户软件它是位于软件结构的最高层,负责处理特定USB设备驱动器。客户程序层描述所有直接作用于设备的软件入口。当设备被系统检测到后,这些客户程序将直接作用于外围硬件。这个共享的特性将USB系统软件置于客户和它的设备之间,这就要根据USBD在客户端形成的设备映像由客户程序对它进行处理。主机各层有以下功能:检测连接和移去的USB设备。管理主机和USB设备间的数据流。连接USB状态和活动统计。控制主控制器和USB设备间的电气接口,包括限量能量供应。HCD提供了主控制器的抽象和通过USB传输的数据的主控制器视角的一个抽象。USBD提供了USB设备的抽象和USBD客户与USB功能间数据传输的一个抽象。USB系统促进客户和功能间的数据传输,并作为USB设备的规范接口的一个控制点。USB系统提供缓冲区管理能力并允许数据传输同步于客户和功能的需求。

USB硬件结构

USB采用四线电缆,其中两根是用来传送数据的串行通道,另两根为下游设备提供电源,对于任何已经成功连接且相互识别的外设,将以双方设备均能够支持的最高速率传输数据。USB总线会根据外设情况在所兼容的传输模式中自动地由高速向低速动态转换且匹配锁定在合适的速率。USB是基于令牌的总线。类似于令牌环网络或FDDI基于令牌的总线。USB主控制器广播令牌,总线上设备检测令牌中的地址是否与自身相符,通过接收或发送数据给主机来响应。USB通过支持悬挂/恢复操作来管理USB总线电源。USB系统采用级联星型拓扑,该拓扑由三个基本部分组成:主机,集线器和功能设备。主机,也称为根,根结或根Hub,它做在主板上或作为适配卡安装在计算机上,主机包含有主控制器和根集线器,控制着USB总线上的数据和控制信息的流动,每个USB系统只能有一个根集线器,它连接在主控制器上,一台计算机可能有多个根集线器。集线器是USB结构中的特定成分,它提供叫做端口的点将设备连接到USB总线上,同时检测连接在总线上的设备,并为这些设备提供电源管理,负责总线的故障检测和恢复。集线可为总线提供能源,亦可为自身提供能源。功能设备通过端口与总线连接。USB同时可做Hub使用。

USB数据传输

主控制器负责主机和USB设备间数据流的传输。这些传输数据被当作连续的比特流。每个设备提供了一个或多个可以与客户程序通信的接口,每个接口由0个或多个管道组成,它们分别独立地在客户程序和设备的特定终端间传输数据。USBD为主机软件的现实需求建立了接口和管道,当提出配置请求时,主控制器根据主机软件提供的参数提供服务。USB支持四种基本的数据传输模式:控制传输,等时传输,中断传输及数据块传输。每种传输模式应用到具有相同名字的终端,则具有不同的性质。控制传输类型支持外设与主机之间的控制,状态,配置等信息的传输,为外设与主机之间提供一个控制通道。每种外设都支持控制传输类型,这样主机与外设之间就可以传送配置和命令/状态信息。等时传输类型支持有周期性,有限的时延和带宽且数据传输速率不变的外设与主机间的数据传输。该类型无差错校验,故不能保证正确的数据传输,支持像计算机-电话集成系统和音频系统与主机的数据传输。中断传输类型支持像游戏手柄,鼠标和键盘等输入设备,这些设备与主机间数据传输量小,无周期性,但对响应时间敏感,要求马上响应。数据块传输类型支持打印机,扫描仪,数码相机等外设,这些外设与主机间传输的数据量大,USB在满足带宽的情况下才进行该类型的数据传输。USB采用分块带宽分配方案,若外设超过当前带宽分配或潜在的要求,则不能进入该设备。同步和中断传输类型的终端保留带宽,并保证数据按一定的速率传送。集中和控制终端按可用的最佳带宽来传输传输数据。

USB总线标准

USB其总线标准主要 经历:USB1.1——支持低速率的1.5Mbps和全速率的 12Mbps;USB2.0——支持高速率的480Mbps; USB3.0——支持超高速率的 5Gbps。标准的不断提升,其本质就是信号传输速率的提升, 如此高速的传输速率对信号质量的要求也是水涨船高,如何在纷繁复杂的电路板中保证信号质量是USB设计中的重中之重。

USB接口软件开发

要开发一个完整的USB接口,其过程较为复杂,除其硬件电路设计以外,还包括软件设计过程,主要包括接口芯片固件编程、设备驱动开发和应用软件设计等3个方面。USB接口芯片固件是其各种底层功能 函数,用于实现芯片读写等操作。设备驱动主要用于驱动USB设备,使连接上位机之后能被识别。其中,设备驱动还需要完成固件下载的工作,这样用户才能应用设计的固件。完成接口芯片固件和设备驱动的编写之后,编写用户控制软件,按照用户需求控制USB接口通信过程。

USB攻击技术

从USB诞生开始,利用USB的攻击从未停止。近些年来,这种类型的攻击呈现了爆发式的增长,相比以往的攻击手段,USB攻击技术种类多样、威胁巨大。

USB摆渡攻击

最早的USB攻击是USB摆渡攻击,即USB设备作为攻击载体,通过USB设备植入病毒、木马等进行软件攻击。当USB设备插入主机时,可以通过Autorun命令使恶意软件直接运行,危害操作系统安全。为解决这一问题,微软在Windows7中引入了复杂有效的文件访问机制,对U盘等介质的Autorun命令进行了限制口。USB摆渡攻击最典型的例子就是“震网”病毒,携带该病毒的U盘利用Autorun机制和插入内网计算机的机会,侵入到伊朗核设施控制网络内,并逐步渗透到工业控制设备中,被称为有史以来最复杂的网络武器。

USB接口攻击

USB接口攻击技术是利用USB协议中所提供的接口类的特点进行伪装、欺骗,从而绕过设备检测机制完成攻击。HID接口类就是USB接口攻击中被广泛使用的一类。此类攻击利用USB设备与主机通信时的枚举过程,将 USB设备枚举为1个复合设备(如1个HID键盘和1个自定义HID设备等形式)。由于计算机对HID人机接口类设备的“高度可信”性,整个过程计算机不会发出任何预警。

USB设备检测防护技术

随着Windows7系统的面世,USB的安全问题曾得到缓解,但是在以Teensy为代表的USB HID攻击技术出现后,USB的安全问题面临空前挑战,如何对USB设备进行安全监控已成为一个研究热点。

USB存储设备检测防护技术

2010年以前,人们对USB设备安全技术的研究主要集中在设备管控方面。2005年,张赞等人提出了基于IRP拦截技术的USB设备监控方式。其核心思想是拦截不符合安全策略的USB设备请求,即事先设定好一些安全策略,如果发现目标USB设备不符合相应的安全策略则进行报警,虽然在防护效果上有一定提升,但这样对于USB设备使用的便捷性和用户体验都会大打折扣。2008年,李锦山等人发现一些恶意程序可以轻松绕过基于用户态的监控软件。针对这一现象,他们提出了基于驱动层的USB存储设备安全监控技术。该技术可以比较有效、完整地截获USB数据包,为实现USB设备监听提供了一定的帮助。2009年,Gao等人针对USB存储设备提出了接入管控技术。其设计了一套访问控制管理系统,对U盘进行身份认证并记录。2010年,卢志刚等人提出了一种基于HID的USB监控技术——监控局域网内USB设备的数据流量并上传服务器分析。但该技术分析力度有限,且需要部署专用服务器,不便于广泛使用。以上这些USB防护技术主要面向USB存储设备,通过监控USB存储设备的操作行为达到检测目的,但没有根据USB设备本身进行防护技术研究,因此对于针对USB接口的高级USB攻击则变得力不从心。

USB接口检测防护技术

随着以Teensy为首的恶意USB攻击工具的面世,研究人员开始关注针对USB接口方面的检测防护技术研究。 2012年,美国乔治梅森大学研究人员Wang等人提出了一种改进版的USB协议——USBSec。 该协议的核心思想是只有主机与外设之间完成身份认证,才能进行USB设备的枚举过程。该协议中的签名算法使用Diffie-Hellman加密,主机向外设提供身份认证信息,外设根据自己的授权主机密钥列表验证该认证信息,如双方验证通过,则进行USB设备的枚举过程,否则此次连接被终止。该技术通过双向认证的手段加强了主机与外设之间的通信安全,防护性高,但是其修改了通用的USB协议,对于目前市面上普遍存在的USB设备不适用,局限性大。2013年,法国一家安全公司的研究人员Des— planques等人对恶意USB硬件进行了分析,他们认为这种攻击方式发展迅速、危害极大,并就此提出了几点防护建议:建议用户在使用USB设备时认真核实USB设备枚举时向主机报告的特性,在使用时如发现异常要及时检查硬件,同时还提出可以通过检测HID设备的输人速度来查找可 疑设备的想法。2014年,Schumilo等人设计了一个USB防护工具,该工具通过改善设备驱动的内部逻辑来提高驱动层的安全性,从而保护那些可被利用的软件漏洞。这种安全机制应用于USB驱动层,还不足以抵御BadUSB等高级USB攻击工具的攻击。2015年,Tian等人研究了一种名为Goo— dUSB的技术,通过添加用户所期望的功能来加强设备许可机制,该技术还引入了蜜罐技术对USB设备进行检测和分析。此外,还有其他研究人员也提出了利用蜜罐技术进行USB设备检测的方法,但是这类检测和信任机制都是“一 次认证,终身免检”,如果某些恶意设备通过了验证机制,在之后的工作中激活恶意程序并对目标计算机发起攻击,那么这种检测机制将毫无作用。2015年,美国堪萨斯大学的研究人员Kang等人提出了一种针对恶意USB设备的硬件防火墙——USBProXy。他们认为由于USB接口的开放性和便利性,使得USB设计之初就没有添加任何安全审计机 制。而USB设备在枚举时需要向主机报告其特性,这就导致恶意USB设备通过向主机报告与其外观功能不符的特性达到欺骗主机的目的,从而实现某些恶意功能。USB设备检测防护技术从根本上讲是根据USB攻击的特点实现和发展的。结合目前的USB设备检测防护效果以及应用场景,USB设备检测防护技术还有很多需要解决的问题,主要集中在 以下几个方面:1)可移植性弱。目前的USB设备检测防护技术大多是针对特定的USB攻击展开,只能检测某种特定的USB攻击且大都停留在预警阶段,没有作出进一步的响应。2)功能不够完善。USB设备检测防护技术不仅要完成对恶意USB设备的识别与预警,同时还需要将恶意USB设备进行隔离或软拔出。目前的技术大都完成了预警功能,有的还需要依靠用户自己判断、识别,防御效果不理想,安全问题依然严峻。3)交互性差。目前所提供的USB设备检测防护技术还未实现集检测、预警、防护、隔离于一体的自动化防御体系。有些技术虽然防御效果良好,但改变了标准USB协议或牺牲了USB设备本身的便利性,与USB接口的设计初衷相反。此外还没有一个完善的可视化交互平台。

目录[+]