共找到2條詞條名為USB的結果 展開

USB

應用在PC領域的介面技術

USB徠,是英文Universal Serial Bus(通用串列匯流排)的縮寫,是一個外部匯流排標準,用於規範電腦與外部設備的連接和通訊。是應用在PC領域的介面技術。

簡介


通用串列匯流排 (Universal Serial Bus,USB) 是一種新興的並逐漸取代其他介面標準的數據通信方式,由 Intel、Compaq、Digital、IBM、Microsoft、NEC及Northern Telecom 等計算機公司和通信公司於1995年聯合制定,並逐漸形成了行業標準。USB 匯流排作為一種高速串列匯流排,其極高的傳輸速度可以滿足高速數據傳輸的應用環境要求,且該匯流排還兼有供電簡單(可匯流排供電)、安裝配置便捷(支持即插即用和熱插拔)、擴展埠簡易(通過集線器最多可擴展127 個外設)、傳輸方式多樣化(4 種傳輸模式),以及兼容良好(產品升級後向下兼容)等優點。
通用串列匯流排(universal serial bus,USB)自推出以來,已成功替代串口和並口,成為21世紀大量計算機和智能設備的標準擴展介面和必備介面之一,現已發展到USB 3.2版本。USB 具有傳輸速度快、使用方便、支持熱插拔、連接靈活、獨立供電等優點,可以連接鍵盤、滑鼠、大容量存儲設備等多種外設,該介面也被廣泛用於智能 手機中。計算機等智能設備與外界數據的交互主要以網路和USB介面為主。

軟體結構


每個USB只有一個主機,它包括以下幾層:
匯流排介面
USB匯流排介面處理電氣層與協議層的互連。從互連的角度來看,相似的匯流排介面由設備及主機同時給出,例如串列介面機(SIE)。USB匯流排介面由主控制器實現。
USB系統用主控制器管理主機與USB設備間的數據傳輸。它與主控制器間的介面依賴於主控制器的硬體定義。同時,USB系統也負責管理USB資源,例如帶寬和匯流排能量,這使客戶訪問USB成為可能。USB系統還有三個基本組件:
主控制器驅動程序(HCD)這可把不同主控制器設備映射到USB系統中。HCD與USB之間的介面叫HCDI,特定的HCDI由支持不同主控制器的操作系統定義,通用主控制器驅動器(UHCD)處於軟結構的最底層,由它來管理和控制主控制器。UHCD實現了與USB主控制器通信和控制USB主控制器,並且它對系統軟體的其他部分是隱蔽的。系統軟體中的最高層通過UHCD的軟體介面與主控制器通信。
USB驅動程序(USBD)它在UHCD驅動器之上,它提供驅動器級的介面,滿足現有設備驅動器設計的要求。USBD以I/O請求包(IRPs)的形式提供數據傳輸架構,它由通過特定管道(Pipe)傳輸數據的需求組成。此外,USBD使客戶端出現設備的一個抽象,以便於抽象和管理。作為抽象的一部分,USBD擁有預設的管道。通過它可以訪問所有的USB設備以進行標準的USB控制。該預設管道描述了一條USBD和USB設備間通信的邏輯通道。
主機軟體
在某些操作系統中,沒有提供USB系統軟體。這些軟體本來是用於向設備驅動程序提供配置信息和裝載結構的。在這些操作系統中,設備驅動程序將應用提供的介面而不是直接訪問USBDI(USB驅動程序介面)結構。
USB客戶軟體
它是位於軟體結構的最高層,負責處理特定USB設備驅動器。客戶程序層描述所有直接作用於設備的軟體入口。當設備被系統檢測到后,這些客戶程序將直接作用於外圍硬體。這個共享的特性將USB系統軟體置於客戶和它的設備之間,這就要根據USBD在客戶端形成的設備映像由客戶程序對它進行處理。
主機各層有以下功能:
檢測連接和移去的USB設備。
管理主機和USB設備間的數據流。
連接USB狀態和活動統計。
控制主控制器和USB設備間的電氣介面,包括限量能量供應。
HCD提供了主控制器的抽象和通過USB傳輸的數據的主控制器視角的一個抽象。USBD提供了USB設備的抽象和USBD客戶與USB功能間數據傳輸的一個抽象。USB系統促進客戶和功能間的數據傳輸,並作為USB設備的規範介面的一個控制點。USB系統提供緩衝區管理能力並允許數據傳輸同步於客戶和功能的需求。

硬體結構


USB採用四線電纜,其中兩根是用來傳送數據的串列通道,另兩根為下游(Downstream)設備提供電源,對於任何已經成功連接且相互識別的外設,將以雙方設備均能夠支持的最高速率傳輸數據。USB匯流排會根據外設情況在所兼容的傳輸模式中自動地由高速向低速動態轉換且匹配鎖定在合適的速率。USB是基於令牌的匯流排。類似於令牌環網路或FDDI基於令牌的匯流排。USB主控制器廣播令牌,匯流排上設備檢測令牌中的地址是否與自身相符,通過接收或發送數據給主機來響應。USB通過支持懸掛/恢復操作來管理USB匯流排電源。USB系統採用級聯星型拓撲,該拓撲由三個基本部分組成:主機(Host),集線器(Hub)和功能設備。
主機,也稱為根,根結或根Hub,它做在主板上或作為適配卡安裝在計算機上,主機包含有主控制器和根集線器(Root Hub),控制著USB匯流排上的數據和控制信息的流動,每個USB系統只能有一個根集線器,它連接在主控制器上,一台計算機可能有多個根集線器。
集線器是USB結構中的特定成分,它提供叫做埠(Port)的點將設備連接到USB匯流排上,同時檢測連接在匯流排上的設備,並為這些設備提供電源管理,負責匯流排的故障檢測和恢復。集線可為匯流排提供能源,亦可為自身提供能源(從外部得到電源)。
功能設備通過埠與匯流排連接。USB同時可做Hub使用。

數據傳輸


主控制器負責主機和USB設備間數據流的傳輸。這些傳輸數據被當作連續的比特流。每個設備提供了一個或多個可以與客戶程序通信的介面,每個介面由0個或多個管道組成,它們分別獨立地在客戶程序和設備的特定終端間傳輸數據。USBD為主機軟體的現實需求建立了介面和管道,當提出配置請求時,主控制器根據主機軟體提供的參數提供服務。
USB支持四種基本的數據傳輸模式:控制傳輸,等時傳輸,中斷傳輸及數據塊傳輸。每種傳輸模式應用到具有相同名字的終端,則具有不同的性質。
控制傳輸類型
徠支持外設與主機之間的控制,狀態,配置等信息的傳輸,為外設與主機之間提供一個控制通道。每種外設都支持控制傳輸類型,這樣主機與外設之間就可以傳送配置和命令/狀態信息。
等時(lsochronous)傳輸類型(或稱同步傳輸)
支持有周期性,有限的時延和帶寬且數據傳輸速率不變的外設與主機間的數據傳輸。該類型無差錯校驗,故不能保證正確的數據傳輸,支持像計算機-電話集成系統(CTI)和音頻系統與主機的數據傳輸。
中斷傳輸類型
支持像遊戲手柄,滑鼠和鍵盤等輸入設備,這些設備與主機間數據傳輸量小,無周期性,但對響應時間敏感,要求馬上響應。
數據塊(Bulk)傳輸類型
支持印表機,掃描儀,數碼相機等外設,這些外設與主機間傳輸的數據量大,USB在滿足帶寬的情況下才進行該類型的數據傳輸。
USB採用分塊帶寬分配方案,若外設超過當前帶寬分配或潛在的要求,則不能進入該設備。同步和中斷傳輸類型的終端保留帶寬,並保證數據按一定的速率傳送。集中和控制終端按可用的最佳帶寬來傳輸傳輸數據。

匯流排標準


USB其匯流排標準主要 經歷:USB1.1——支持低速率( HalfSpeed)的1.5Mbps和全速率(FullSpeed)的 12Mbps;USB2.0——支持高速率(High Speed)的480Mbps; USB3.0——支持超高速率( SuperSpeed)的 5Gbps。標準的不斷提升,其本質就是信號傳輸速率的提升,如此高速的傳輸速率對信號質量的要求也是水漲船高,如何在紛繁複雜的電路板中保證信號質量是USB設計中的重中之重。

介面軟體開發


要開發一個完整的USB介面,其過程較為複雜,除其硬體電路設計以外,還包括軟體設計過程,主要包括介面晶元固件編程、設備驅動開發和應用軟體設計等3個方面。USB介面晶元固件是其各種底層功能 函數,用於實現晶元讀寫等操作。設備驅動主要用於驅動USB設備,使連接上位機之後能被識別。其中,設備驅動還需要完成固件下載的工作,這樣用戶才能應用設計的固件。完成介面晶元固件和設備驅動的編寫之後,編寫用戶控制軟體,按照用戶需求控制USB介面通信過程。

攻擊技術


從USB誕生開始,利用USB的攻擊從未停止。近些年來,這種類型的攻擊呈現了爆髮式的增長,相比以往的攻擊手段,USB攻擊技術種類多樣、威脅巨大。

擺渡攻擊

最早的USB攻擊是USB擺渡攻擊,即USB設備作為攻擊載體,通過USB設備植入病毒、木馬等進行軟體攻擊。當USB設備插入主機時,可以通過Autorun命令使惡意軟體直接運行,危害操作系統安全。為解決這一問題,微軟在Windows7中引入了複雜有效的文件訪問機制,對U盤等介質的Autorun命令進行了限制口。USB擺渡攻擊最典型的例子就是“震網”病毒,攜帶該病毒的U盤利用Autorun機制和插入內網計算機的機會,侵入到伊朗核設施控制網路內,並逐步滲透到工業控制設備中,被稱為有史以來最複雜的網路武器。

介面攻擊

USB介面攻擊技術是利用USB協議中所提供的介面類的特點進行偽裝、欺騙,從而繞過設備檢測機制完成攻擊。HID介面類就是USB介面攻擊中被廣泛使用的一類。此類攻擊利用USB設備與主機通信時的枚舉過程,將 USB設備枚舉為1個複合設備(如1個HID鍵盤和1個自定義HID設備等形式)。由於計算機對HID人機介面類設備的“高度可信”性,整個過程計算機不會發出任何預警。

檢測防護技術


隨著Windows7系統的面世,USB的安全問題曾得到緩解,但是在以Teensy為代表的USB HID攻擊技術出現后,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攻擊則變得力不從心。
介面檢測防護技術
隨著以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介面的設計初衷相反。此外還沒有一個完善的可視化交互平台。