秦玉海+陳杰+康小彤
摘 要 隨著個人藍(lán)牙設(shè)備的普及,藍(lán)牙通過公共頻段進(jìn)行信息傳輸?shù)姆绞绞沟盟{(lán)牙安全問題顯得越來越突出。同時(shí),基于藍(lán)牙技術(shù)實(shí)現(xiàn)通訊的軟件,如FireChat聊天軟件等大量興起,一方面成為公眾推崇私密通信的新寵,另一方面卻成為不法分子逃避監(jiān)管的工具。而由于藍(lán)牙技術(shù)短時(shí)間內(nèi)的快速發(fā)展,加之嗅探的困難性,很少有設(shè)備能夠?qū)崿F(xiàn)對藍(lán)牙通信數(shù)據(jù)的監(jiān)聽或是注入。本文重點(diǎn)關(guān)注藍(lán)牙底層協(xié)議,研究數(shù)據(jù)包結(jié)構(gòu)和藍(lán)牙設(shè)備微微網(wǎng)的建立過程,分析藍(lán)牙嗅探工作中存在的難點(diǎn),并借助現(xiàn)有的軟硬件證明藍(lán)牙嗅探的可行性。
關(guān)鍵詞 藍(lán)牙;嗅探;協(xié)議;微微網(wǎng)
中圖分類號 TP3 文獻(xiàn)標(biāo)識碼 A 文章編號 1674-6708(2017)194-0072-02
近年來,藍(lán)牙技術(shù)享有前所未有的聲望和發(fā)展速度,在移動設(shè)備上的覆蓋率更是驚人。事實(shí)上,藍(lán)牙已經(jīng)成為無線配件及智能設(shè)備的主要連接方式[1]。不幸的是,最近研究表明,藍(lán)牙所采用的兩級流加密模式存在許多缺陷,用戶隱私受到潛在危脅。另一方面,則是利用藍(lán)牙傳遞信息的新型通訊軟件被用于違法犯罪活動中,嚴(yán)重影響社會和諧安定。面對藍(lán)牙技術(shù)的發(fā)展,應(yīng)當(dāng)積極采取應(yīng)對措施,加強(qiáng)在藍(lán)牙嗅探方向的研究。
1 技術(shù)背景
1.1 藍(lán)牙
藍(lán)牙技術(shù)是一種支持短距離的無線數(shù)據(jù)交換方式。一個主設(shè)備和一個或多個從設(shè)備建立的藍(lán)牙網(wǎng)絡(luò)被稱為微微網(wǎng)(Piconet)。藍(lán)牙技術(shù)因其低功耗、低成本、靈活性強(qiáng)而被廣泛應(yīng)用于短距離無線通信中。根據(jù)實(shí)用需求,藍(lán)牙設(shè)備的最大發(fā)射功率也被分為三個等級[2],而其覆蓋范圍也隨著功率而變化。
目前,藍(lán)牙技術(shù)聯(lián)盟負(fù)責(zé)監(jiān)督藍(lán)牙規(guī)范的研究,管理認(rèn)證項(xiàng)目,并維護(hù)商標(biāo)權(quán)益[3]。
1.2 無線電層
藍(lán)牙協(xié)議棧最底層被稱為無線電層。藍(lán)牙技術(shù)采用2.4GHz工作頻段,該頻段是全世界公開通用的無線頻段(ISM Band),無需付費(fèi)和申請,保證了藍(lán)牙可以獲得更大的使用范圍。藍(lán)牙使用跳頻技術(shù),并以1 600跳/s的速率進(jìn)行跳頻,傳輸?shù)臄?shù)據(jù)將會分割成多個數(shù)據(jù)包,通過指定的79個藍(lán)牙信道分別傳輸數(shù)據(jù)包,每個信道占1MHz,藍(lán)牙的實(shí)際使用波段為2 400MHz~2 483.5MHz(包括防護(hù)頻帶)。這種方法導(dǎo)致了選擇性攔截的困難,因?yàn)楣粽咄枰肋B續(xù)的跳頻序列。
1.3 基帶層
基帶層負(fù)責(zé)管理物理連接,確保由藍(lán)牙設(shè)備組成的微微網(wǎng)內(nèi)各單元之間由射頻構(gòu)成的物理連接。每個藍(lán)牙設(shè)備都有一個唯一的48位藍(lán)牙設(shè)備地址(BD_ADDR),分為3個部分,包括24位的低端地址部分(LAP)、8位的高端地址部分(UAP)和16位的非有效地址部分(NAP)。該地址可以說是藍(lán)牙技術(shù)的運(yùn)算核心,負(fù)責(zé)幾乎所有藍(lán)牙正常工作的控制參數(shù),如密鑰、跳頻序列都是由此地址計(jì)算得到的。
1.4 數(shù)據(jù)包結(jié)構(gòu)
所有的藍(lán)牙數(shù)據(jù)包都按統(tǒng)一的結(jié)構(gòu)進(jìn)行封裝,由訪問碼、報(bào)頭和有效載荷組成。一個有效的數(shù)據(jù)包必須包含訪問碼,訪問碼用于數(shù)據(jù)同步和DC偏移補(bǔ)償。一個最簡單的藍(lán)牙數(shù)據(jù)包,如用于尋呼、查詢和相應(yīng)過程的ID包,可以僅包含一個68bit的訪問碼。藍(lán)牙通信過程中有一個非常重要的包——跳頻同步(FHS)包,它包含藍(lán)牙設(shè)備的BD_ADDR和時(shí)鐘信息。
1.5 連接的建立
為進(jìn)行藍(lán)牙數(shù)據(jù)傳輸,必須先建立連接。首先,主設(shè)備會廣播發(fā)送ID包作為查詢。此時(shí)所使用的是79個藍(lán)牙信道中的32個廣播信道。從設(shè)備收到這個包后,會發(fā)送一個FHS包,其中包含了從設(shè)備的BD_ADDR和時(shí)鐘信息。收到FHS包的主設(shè)備進(jìn)入尋呼狀態(tài),并按照從設(shè)備的跳頻序列計(jì)算出特定的應(yīng)答時(shí)間,發(fā)送ID包。從設(shè)備會固定間隔地掃描外部尋呼,在收到主設(shè)備的應(yīng)答ID包后,響應(yīng)該應(yīng)答,發(fā)送ID包。主設(shè)備收到從設(shè)備ID包后,發(fā)送FHS包確定連接的跳頻序列。最后,主從設(shè)備分別發(fā)送ID包和FHS包進(jìn)行驗(yàn)證,建立連接。
在微微網(wǎng)中,所有設(shè)備共享主設(shè)備的時(shí)鐘,以312.5?s為一個時(shí)鐘周期,兩個周期構(gòu)成625?s一個時(shí)間槽。通常情況下,主設(shè)備都會從雙數(shù)槽傳輸數(shù)據(jù),從設(shè)備從單數(shù)槽傳輸數(shù)據(jù)。
2 藍(lán)牙嗅探方案
2.1 藍(lán)牙嗅探的難點(diǎn)
藍(lán)牙嗅探的第一個障礙就是截獲藍(lán)牙跳頻序列。想要獲得一個完整的藍(lán)牙數(shù)據(jù)傳輸需要監(jiān)聽所有的79個藍(lán)牙信道,必須攔截和過濾獲得完整的數(shù)據(jù)包,這就要求必須知道正確的藍(lán)牙跳頻序列。獲得藍(lán)牙跳頻序列的方法有兩個,一種是依靠強(qiáng)大的軟硬件設(shè)備,另一種方法需要等待設(shè)備重新建立連接,并從建立連接的數(shù)據(jù)包中獲得跳頻序列。
另一個問題是常見藍(lán)牙硬件基于數(shù)據(jù)包的訪問碼自動進(jìn)行過濾。由于過濾行為發(fā)生在硬件層面,無法通過上層軟件的設(shè)計(jì)來解決,必須依靠相應(yīng)的硬件設(shè)備才能解決該問題。
2.2 藍(lán)牙抓包工具Wireshark
Wireshark作為一款常用的抓包工具而被廣泛使用。而1.12以上及版本的Wireshark中增添了藍(lán)牙協(xié)議標(biāo)準(zhǔn),意味著可以通過Wireshark對捕獲的藍(lán)牙數(shù)據(jù)包進(jìn)行分析,為嗅探工作提供了很大的便利。同時(shí),Wireshark也提供了監(jiān)聽本機(jī)藍(lán)牙接口的功能,能夠監(jiān)聽與本機(jī)相連的藍(lán)牙設(shè)備。圖1為用Wireshark抓取的藍(lán)牙數(shù)據(jù)包信息。
圖1中展示的是計(jì)算機(jī)與藍(lán)牙耳機(jī)建立連接過程中的部分?jǐn)?shù)據(jù)包。編號27為計(jì)算機(jī)作為主設(shè)備廣播發(fā)射的一個數(shù)據(jù)包,查詢附近的藍(lán)牙設(shè)備。編號28至編號31都是藍(lán)牙耳機(jī)對計(jì)算機(jī)的查詢響應(yīng),除編號28外的三個數(shù)據(jù)包中都含有耳機(jī)的BD_ADDR。自此,計(jì)算機(jī)與藍(lán)牙耳機(jī)通過互相發(fā)送數(shù)據(jù)包,逐步建立藍(lán)牙連接。
2.3 藍(lán)牙無線開發(fā)平臺Ubertooth
Ubertooth One是由Ubertooth項(xiàng)目組設(shè)計(jì)提供的一款用于藍(lán)牙研究的硬件。Ubertooth是一個開放源代碼的2.4GHz無線開發(fā)平臺,適用于藍(lán)牙監(jiān)測。Ubertooth One同樣通過USB接口與計(jì)算機(jī)相連。
利用Specan UI工具能夠直觀地觀測到實(shí)時(shí)的藍(lán)牙頻譜信息,如圖2所示。在圖2的觀測中存在一個與手機(jī)相連的藍(lán)牙耳機(jī)。
可以發(fā)現(xiàn),活躍的無線信號主要集中在2 403Hz到2 446Hz之間,意味著該手機(jī)與藍(lán)牙的數(shù)據(jù)傳輸主要集中在這些信道上。另外,2 402Hz、2 426Hz、2 480Hz為固定的廣播信道,用于對未連接設(shè)備間發(fā)送廣播數(shù)據(jù),連接建立和發(fā)現(xiàn)遠(yuǎn)程設(shè)備。這3個信道在頻譜上也有明顯的特點(diǎn)。
Ubertooth One也能支持選擇要監(jiān)聽的信道,或是捕獲藍(lán)牙數(shù)據(jù)包等功能。捕獲的藍(lán)牙數(shù)據(jù)包可以通過Wireshark等軟件進(jìn)行分析。通過Ubertooth One發(fā)送藍(lán)牙數(shù)據(jù)包目前為止還是不可能的,意味著不能使用Ubertooth One實(shí)現(xiàn)藍(lán)牙數(shù)據(jù)包的注入操作。
3 結(jié)論
藍(lán)牙嗅探方案的實(shí)現(xiàn),目前還存在不少的難點(diǎn)。另一方面來看,過高的門檻也杜絕了大量不法分子利用藍(lán)牙盜取公民信息的企圖。但是,諸如FireChat之類的,通過藍(lán)牙進(jìn)行通信的軟件常常被應(yīng)用在違法犯罪活動中,已經(jīng)嚴(yán)重危害了公共安全。深入研究藍(lán)牙技術(shù),積極研究藍(lán)牙嗅探方案,不但能解決當(dāng)前問題,更為將來的藍(lán)牙安全問題做好應(yīng)對準(zhǔn)備。
參考文獻(xiàn)
[1]Albazrqaoe W, Huang J, Xing G. Practical Bluetooth Traffic Sniffing: Systems and Privacy Implications[C]//International Conference on Mobile Systems, Applications,and Services.ACM,2016:333-345.
[2]李旭輝,梁曉煒.短距離無線通信技術(shù)在信息傳輸中的應(yīng)用[J].信息通信,2017(2).
[3]高宋偉,徐洪智,黃艷,等.基于Android的藍(lán)牙通信程序設(shè)計(jì)[J].電腦編程技巧與維護(hù),2015(11):44-46.endprint