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