張尚韜
摘要:為了開展藍牙OBEX協(xié)議漏洞挖掘的相關(guān)技術(shù)研究,該研究首先概述了OBEX的基本概念,接著詳細分析了藍牙OBEX協(xié)議格式,并著重研究OBEX對象模型、會話模型及請求/響應(yīng)數(shù)據(jù)包格式,為今后藍牙OBEX協(xié)議漏洞挖掘研究打下基礎(chǔ)。
關(guān)鍵詞:藍牙;OBEX;模型
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)16-0045-03
Abstract:In order to carry out the relevant technical research on the vulnerability mining of Bluetooth OBEX protocol, this study first outlines the basic concept of OBEX, then analyzes the format of Bluetooth OBEX protocol in detail, and focuses on the obex object model, session model and request / response packet format, which lays the foundation for the future research on the vulnerability mining of Bluetooth OBEX protocol.
Key words: Bluetooth; OBEX; model
1 OBEX基本概念
[OBEX]是對象交換協(xié)議最初紅外數(shù)據(jù)協(xié)會IrDA(Infrared Data Association)開發(fā)的用于紅外數(shù)據(jù)鏈路上數(shù)據(jù)對象交換的會話層協(xié)議。后來作為小范圍無線通信系統(tǒng)的藍牙采納了該協(xié)議,這使得原先基于紅外鏈路的OBEX應(yīng)用可能很方便地移植到藍牙上來或在兩者之間進行切換。協(xié)議能夠支持文件傳遞、同步等多個應(yīng)用,能夠讓不同的設(shè)備間完成簡單便捷的交換。藍牙[OBEX]協(xié)議被普遍地運用于智能手機、平板電腦、數(shù)字相機等各個設(shè)備間以此完成數(shù)據(jù)的傳遞[1-4]。
對OBEX協(xié)議進行格式分析須了解OBEX在藍牙棧中所處的層次結(jié)構(gòu)。圖1描述了OBEX在藍牙協(xié)議棧中的地位。
圖1給出了OBEX在藍牙體系中的層次以及基于[OBEX]的部分應(yīng)用。在層次組成的藍牙協(xié)議棧中,[OBEX]是一類面向應(yīng)用層的協(xié)議,工作于協(xié)議棧的頂端,能夠完成文件傳遞,同步等各項操作,也可以讓不同的設(shè)備間完成簡單便捷的交換??山粨Q的內(nèi)容包括文件、圖像以及應(yīng)用支持的各種數(shù)據(jù)資料。對象交換使用的是建立在查詢/應(yīng)答基礎(chǔ)上的[Client/Server]模式,任意兩個藍牙設(shè)備都能夠構(gòu)成主從聯(lián)系,發(fā)起方是主,接收者為從。
藍牙的核心協(xié)議和應(yīng)用規(guī)范由SIG制定,它的版本也在不斷升級,[OBEX]協(xié)議自身劃分了兩大部分:數(shù)據(jù)對象模型以及會話協(xié)議。前者涵蓋了即將傳遞的數(shù)據(jù)對象的各類資料和對象自身。整個模型的成立是建立在不同標準下的可分析的信息頭,比較接近于HTTP當中所界定的信息頭定義。會話協(xié)議中還提出了數(shù)據(jù)傳輸?shù)木唧w流程,[OBEX]采用基于二進制分組的客戶機/服務(wù)器模式當作整個流程的具體模型[5-6]。下面分別介紹這兩種模型。
2 OBEX對象模型
對象模型不但要分析對象自身,并且還要分析除此以外的各種描繪信息,詳細措施就是使用不同的對象頭。用于針對性地描述對象的某一點,名稱、類別等,如文件[test.txt]就包含下列幾大對象頭:名稱、類別、長度以及文件自身。
對象頭常見格式為:<頭ID>+<值>。頭ID為單字節(jié)的無符號整數(shù),用于分辨識別對象頭涵蓋哪些內(nèi)容及對應(yīng)的數(shù)值屬于什么格式;頭的值存在多個字節(jié),相應(yīng)的格式也要按照頭ID進行設(shè)定。全部的對象頭都是能夠選擇的,按照應(yīng)用的具體狀況,可以選擇全部或局部應(yīng)用,還可以一個都不用。頭ID的作用是使對象頭易于解析,并使對象頭可以按任意順序出現(xiàn),還可以使應(yīng)用程序很容易地跳過不支持的對象頭。
[OBEX]定義了一組常用的對象頭,它也支持[HTTP]對象頭,還支持用戶自定義的對象頭,滿足了絕大多數(shù)設(shè)備的需要。頭ID的最高2位表示對象頭的編碼方式,低6位是對象頭的具體含義。編碼方式?jīng)Q定了對象頭的長度,這樣不支持的對象頭可以被完整地丟棄,而不會影響對下一對象頭的解析。頭ID最高兩位含義見表1。
3 OBEX會話模型
會話協(xié)議中描繪了[OBEX]會話的主要構(gòu)造,涵蓋了設(shè)備之間的會話格式以及對應(yīng)的操作編碼[8]。[OBEX]會話出現(xiàn)于某次[OBEX]連接中,只需要在連接初期傳遞一次設(shè)備信息,同時狀態(tài)信息可以一直維持。發(fā)起連接請求的叫作[OBEX]客戶端,接受的那端叫作[OBEX]服務(wù)端。[OBEX]格式是請求/應(yīng)答對,客戶端傳遞出請求之后,等候服務(wù)端的反饋,之后發(fā)出下一條請求。一對請求/應(yīng)答也稱為一個操作。在進行連接時,雙方會商議數(shù)據(jù)包的內(nèi)存大小,如果請求超過這個大小,就需要分幾次進行發(fā)送。在這樣的狀況下,每個請求數(shù)據(jù)包都要有應(yīng)答數(shù)據(jù)包與其對應(yīng)。一個操作事實上就是一個請求/應(yīng)答數(shù)據(jù)包,而最終的那個數(shù)據(jù)包會存在特定的標識。兩個數(shù)據(jù)包對應(yīng)的格式是相同的,根據(jù)順序依次為:1字節(jié)的操作碼,2字節(jié)的數(shù)據(jù)包長度,后面對對象頭的需求不固定,數(shù)量也同樣能夠設(shè)定為多個。操作碼最高位叫作完成位,代表該數(shù)據(jù)包是否為最終的那個數(shù)據(jù)包。同時其長度與對象頭的長度比較相似,同樣是采用網(wǎng)絡(luò)字節(jié)的排序進行傳遞,同時包括了操作碼以及長度所占據(jù)的三大字節(jié)。由于長度只有2字節(jié),因此數(shù)據(jù)包長度不可以超出65535。對象頭只可以置于一個數(shù)據(jù)包當中,不可以使用多個。對象頭排序也并未進行具體的規(guī)定,不過可以將描述目標的對象頭置于其自身前面。
按照設(shè)備實際狀況,客戶端以及服務(wù)端既可以只選擇一個做也可以一起做。而請求的具體操作碼界定情況如表3所示。
應(yīng)答操作碼還有一個稱呼叫作應(yīng)答碼,是將一個[HTTP]狀態(tài)碼進行編碼同時壓縮至1個字節(jié)低7位,其實際含義可以參照對應(yīng)的[HTTP]文檔。
上面兩個表格里面的操作碼、響應(yīng)碼中括號里的數(shù)其最高位是“1”時的對應(yīng)值,該位意味著這是請求時的最終的那個數(shù)據(jù)包。如采用“Put”操作傳遞一個較大的對象過程中,要采用許多的“Put”數(shù)據(jù)包才能夠?qū)崿F(xiàn),不過僅僅是最后的一個“Put”包會獲得最高位設(shè)置。
4 總結(jié)
通過以上研究,我們認識了藍牙OBEX協(xié)議,對藍牙OBEX協(xié)議的對象模型、會話模型及請求/響應(yīng)數(shù)據(jù)包格式有深入的了解,為下一步開展藍牙OBEX協(xié)議格式規(guī)范研究奠定基礎(chǔ)。
參考文獻:
[1] 張文安,洪榛,朱俊威,陳博.工業(yè)控制系統(tǒng)網(wǎng)絡(luò)入侵檢測方法綜述[J].控制與決策,2019,34(11):2277-2288.
[2] 王群,李馥娟,周倩.網(wǎng)絡(luò)空間安全體系結(jié)構(gòu)及其關(guān)鍵技術(shù)研究[J].南京理工大學(xué)學(xué)報,2019,43(04):495-504.
[3] 楊世超.物聯(lián)網(wǎng)云平臺接入安全技術(shù)研究[A].中國通信學(xué)會.2019年全國公共安全通信學(xué)術(shù)研討會優(yōu)秀論文集[C].中國通信學(xué)會:中國通信學(xué)會,2019:5.
[4] 陸英.大數(shù)據(jù)時代使用藍牙的風險及解決方案[J].計算機與網(wǎng)絡(luò),2019,45(14):52-53.
[5] 蔣綱,周敬利,余勝生,等.基于Bluetooth OBEX協(xié)議的文件傳輸技術(shù)的研究[J].小型微型計算機系統(tǒng),2003,24(4): 687-690.
[6] David Kammer,Gordon McNutt,Brian Senese,Jennifer Bray.Bluetooth Application Developers Guide[M].Elsevier Science Ltd.2005.
[7] Infrared Data Association,(IrDA)Object Exchange Protocol OBEX Version 1.3[EB/OL].http://www.irda.org.oct,2008.
[8] Specification of the Bluetooth System vl.l Profile Part K:SerVice Discovery Application Profile.Bluetooth SIG,2001:48-50.
【通聯(lián)編輯:代影】