-
USB
鎖定
- 中文名
- 通用串行總線
- 外文名
- Universal Serial Bus
- 外語縮寫
- USB
- 推出年代
- 1994
- 應用領域
- 計算機領域的接口技術
USB簡介
通用串行總線 (Universal Serial Bus,USB) 是一種新興的並逐漸取代其他接口標準的數據通信方式,由 Intel、Compaq、Digital、IBM、Microsoft、NEC及Northern Telecom 等計算機公司和通信公司於1995年聯合制定,並逐漸形成了行業標準。USB 總線作為一種高速串行總線,其極高的傳輸速度可以滿足高速數據傳輸的應用環境要求,且該總線還兼有供電簡單(可總線供電)、安裝配置便捷(支持即插即用和熱插拔)、 擴展端口簡易(通過集線器最多可擴展127 個外設)、傳輸方式多樣化(4 種傳輸模式),以及兼容良好(產品升級後向下兼容)等優點。
[1]
通用串行總線(universal serial bus,USB)自推出以來,已成功替代串口和並口,成為21世紀大量計算機和智能設備的標準擴展接口和必備接口之一,現已發展到USB 4版本。USB 具有傳輸速度快、使用方便、支持熱插拔、連接靈活、獨立供電等優點,可以連接鍵盤、鼠標、大容量存儲設備等多種外設,該接口也被廣泛用於智能 手機中。計算機等智能設備與外界數據的交互主要以網絡和USB接口為主。
[2]
USB發展歷程
2022年9月,USB-IF組織決定,正式刪除USB 3.x/USB4的商用命名方式,並取消SuperSpeed USB品牌。
[4]
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客户軟件
它是位於軟件結構的最高層,負責處理特定USB設備驅動器。客户程序層描述所有直接作用於設備的軟件入口。當設備被系統檢測到後,這些客户程序將直接作用於外圍硬件。這個共享的特性將USB系統軟件置於客户和它的設備之間,這就要根據USBD在客户端形成的設備映像由客户程序對它進行處理。
主機各層有以下功能:
檢測連接和移去的USB設備。
管理主機和USB設備間的數據流。
連接USB狀態和活動統計。
控制主控制器和USB設備間的電氣接口,包括限量能量供應。
HCD提供了主控制器的抽象和通過USB傳輸的數據的主控制器視角的一個抽象。USBD提供了USB設備的抽象和USBD客户與USB功能間數據傳輸的一個抽象。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數據傳輸
主控制器負責主機和USB設備間數據流的傳輸。這些傳輸數據被當作連續的比特流。每個設備提供了一個或多個可以與客户程序通信的接口,每個接口由0個或多個管道組成,它們分別獨立地在客户程序和設備的特定終端間傳輸數據。USBD為主機軟件的現實需求建立了接口和管道,當提出配置請求時,主控制器根據主機軟件提供的參數提供服務。
控制傳輸類型
等時(lsochronous)傳輸類型(或稱同步傳輸)
中斷傳輸類型
數據塊(Bulk)傳輸類型
USB總線標準
USB其總線標準主要 經歷:USB1.1——支持低速率( HalfSpeed)的1.5Mbps和全速率(FullSpeed)的 12Mbps;USB2.0——支持高速率(High Speed)的480Mbps; USB3.0——支持超高速率( SuperSpeed)的 5Gbps。標準的不斷提升,其本質就是信號傳輸速率的提升, 如此高速的傳輸速率對信號質量的要求也是水漲船高,如何在紛繁複雜的電路板中保證信號質量是USB設計中的重中之重。
[3]
USB接口軟件開發
要開發一個完整的USB接口,其過程較為複雜,除其硬件電路設計以外,還包括軟件設計過程,主要包括接口芯片固件編程、設備驅動開發和應用軟件設計等3個方面。USB接口芯片固件是其各種底層功能 函數,用於實現芯片讀寫等操作。設備驅動主要用於驅動USB設備,使連接上位機之後能被識別。其中,設備驅動還需要完成固件下載的工作,這樣用户才能應用設計的固件。完成接口芯片固件和設備驅動的編寫之後,編寫用户控制軟件,按照用户需求控制USB接口通信過程。
[1]
USB攻擊技術
USB擺渡攻擊
最早的USB攻擊是USB擺渡攻擊,即USB設備作為攻擊載體,通過USB設備植入病毒、木馬等進行軟件攻擊。當USB設備插入主機時,可以通過Autorun命令使惡意軟件直接運行,危害操作系統安全。為解決這一問題,微軟在Windows7中引入了複雜有效的文件訪問機制,對U盤等介質的Autorun命令進行了限制口。USB擺渡攻擊最典型的例子就是“震網”病毒,攜帶該病毒的U盤利用Autorun機制和插入內網計算機的機會,侵入到伊朗核設施控制網絡內,並逐步滲透到工業控制設備中,被稱為有史以來最複雜的網絡武器。
[2]
USB接口攻擊
USB接口攻擊技術是利用USB協議中所提供的接口類的特點進行偽裝、欺騙,從而繞過設備檢測機制完成攻擊。HID接口類就是USB接口攻擊中被廣泛使用的一類。此類攻擊利用USB設備與主機通信時的枚舉過程,將 USB設備枚舉為1個複合設備(如1個HID鍵盤和1個自定義HID設備等形式)。由於計算機對HID人機接口類設備的“高度可信”性,整個過程計算機不會發出任何預警。
[2]
USB設備檢測防護技術
隨着Windows7系統的面世,USB的安全問題曾得到緩解,但是在以Teensy為代表的USB HID攻擊技術出現後,USB的安全問題面臨空前挑戰,如何對USB設備進行安全監控已成為一個研究熱點。
[2]
USB存儲設備檢測防護技術
2010年以前,人們對USB設備安全技術的研究主要集中在設備管控方面。
2005年,張贊等人提出了基於IRP攔截技術的USB設備監控方式。其核心思想是攔截不符合安全策略的USB設備請求,即事先設定好一些安全策略,如果發現目標USB設備不符合相應的安全策略則進行報警,雖然在防護效果上有一定提升,但這樣對於USB設備使用的便捷性和用户體驗都會大打折扣。
[2]
2008年,李錦山等人發現一些惡意程序可以輕鬆繞過基於用户態的監控軟件。針對這一現象,他們提出了基於驅動層的USB存儲設備安全監控技術。該技術可以比較有效、完整地截獲USB數據包,為實現USB設備監聽提供了一定的幫助。
[2]
2010年,盧志剛等人提出了一種基於HID的USB監控技術——監控局域網內USB設備的數據流量並上傳服務器分析。但該技術分析力度有限,且需要部署專用服務器,不便於廣泛使用。
[2]
USB接口檢測防護技術
隨着以Teensy為首的惡意USB攻擊工具的面世,研究人員開始關注針對USB接口方面的檢測防護技術研究。 2012年,美國喬治梅森大學研究人員Wang等人提出了一種改進版的USB協議——USBSec。 該協議的核心思想是隻有主機與外設之間完成身份認證,才能進行USB設備的枚舉過程。該協議中的簽名算法使用Diffie-Hellman加密,主機向外設提供身份認證信息,外設根據自己的授權主機密鑰列表驗證該認證信息,如雙方驗證通過,則進行USB設備的枚舉過程,否則此次連接被終止。該技術通過雙向認證的手段加強了主機與外設之間的通信安全,防護性高,但是其修改了通用的USB協議,對於目前市面上普遍存在的USB設備不適用,侷限性大。
[2]
2013年,法國一家安全公司的研究人員Des— planques等人對惡意USB硬件進行了分析,他們認為這種攻擊方式發展迅速、危害極大,並就此提出了幾點防護建議:建議用户在使用USB設備時認真核實USB設備枚舉時向主機報告的特性,在使用時如發現異常要及時檢查硬件,同時還提出可以通過檢測HID設備的輸人速度來查找可 疑設備的想法。
[2]
2014年,Schumilo等人設計了一個USB防護工具,該工具通過改善設備驅動的內部邏輯來提高驅動層的安全性,從而保護那些可被利用的軟件漏洞。這種安全機制應用於USB驅動層,還不足以抵禦BadUSB等高級USB攻擊工具的攻擊。
[2]
2015年,Tian等人研究了一種名為Goo— dUSB的技術,通過添加用户所期望的功能來加強設備許可機制,該技術還引入了蜜罐技術對USB設備進行檢測和分析。此外,還有其他研究人員也提出了利用蜜罐技術進行USB設備檢測的方法,但是這類檢測和信任機制都是“一 次認證,終身免檢”,如果某些惡意設備通過了驗證機制,在之後的工作中激活惡意程序並對目標計算機發起攻擊,那麼這種檢測機制將毫無作用。
[2]
2015年,美國堪薩斯大學的研究人員Kang等人提出了一種針對惡意USB設備的硬件防火牆——USBProXy。他們認為由於USB接口的開放性和便利性,使得USB設計之初就沒有添加任何安全審計機 制。而USB設備在枚舉時需要向主機報告其特性,這就導致惡意USB設備通過向主機報告與其外觀功能不符的特性達到欺騙主機的目的,從而實現某些惡意功能。
[2]
USB設備檢測防護技術從根本上講是根據USB攻擊的特點實現和發展的。結合目前的USB設備檢測防護效果以及應用場景,USB設備檢測防護技術還有很多需要解決的問題,主要集中在 以下幾個方面:
1)可移植性弱。目前的USB設備檢測防護技術大多是針對特定的USB攻擊展開,只能檢測某種特定的USB攻擊且大都停留在預警階段,沒有作出進一步的響應。
[2]
2)功能不夠完善。USB設備檢測防護技術不僅要完成對惡意USB設備的識別與預警,同時還需要將惡意USB設備進行隔離或軟拔出。目前的技術大都完成了預警功能,有的還需要依靠用户自己判斷、識別,防禦效果不理想,安全問題依然嚴峻。
[2]
3)交互性差。目前所提供的USB設備檢測防護技術還未實現集檢測、預警、防護、隔離於一體的自動化防禦體系。有些技術雖然防禦效果良好,但改變了標準USB協議或犧牲了USB設備本身的便利性,與USB接口的設計初衷相反。此外還沒有一個完善的可視化交互平台。
[2]
- 參考資料
-
- 1. USB接口高速數據傳輸技術研究 .萬方.2019[引用日期2019-07-10]
- 2. USB設備安全技術研究綜述 .萬方.2018[引用日期2019-07-10]
- 3. 關於USB走線的信號完整性分析 .萬方.2018[引用日期2019-07-10]
- 4. 突然!USB 3.0/USB 4被正式取消:命名完全變了 .其他.2022-10-01