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