張漪 張珊 昝麗霞 曾孟佳 黃旭
摘? 要:無線傳輸數據方式的發(fā)展代替了早期的串口通信,它包括點對點傳輸、藍牙、Wi-Fi等。本文主要介紹藍牙這種無線連接方式、藍牙傳輸過程中存在的問題以及解決方法。一個藍牙模塊中集成了藍牙芯片,能夠在近距離內發(fā)送接收無線電信號,故能夠起到信息傳輸的作用。這是較好的信息交流方式,它憑借功耗低、設備成本低、傳輸距離近的優(yōu)點在數據傳輸中得到了廣泛的應用。本文對于Android移動端的應用程序與藍牙模塊間數據通信傳輸進行研究,尋找一種簡單便捷安全的通信方式。
關鍵詞:藍牙技術;Android移動端;安全通信傳輸
中圖分類號:TN925? 文獻標識碼:A? 文章編號:2096-4706(2019)08-0056-04
Abstract:The development of wireless data transmission has replaced the early serial communication,which includes point-to-point transmission,Bluetooth,Wi-Fi and so on. This paper mainly introduces Bluetooth,the wireless connection mode,the problems in the process of Bluetooth transmission and the solutions. Bluetooth chip is integrated in a Bluetooth module,which can send and receive radio signals in close range,so it can play the role of information transmission. This is a better way of information exchange. It has been widely used in data transmission because of its low power consumption,low equipment cost and close transmission distance. This paper studies the data communication transmission between the application program of Android mobile terminal and Bluetooth module,looking for a simple,convenient and secure communication mode.
Keywords:Bluetooth technology;android mobile terminal;secure communication transmission
0? 引? 言
藍牙技術是一種無線傳輸技術,適用于短距離范圍內的通信傳輸。通過中間協(xié)議,實現藍牙在不同設備端口的傳輸,藍牙相對于Wi-Fi、4G等傳輸技術而言,具有低功耗、傳輸速度快、傳輸方便等特點,其采用的跳頻擴頻序列具有很強的抗干擾能力,適用于需求高的場合。最主要的一點是藍牙通信傳輸時在后臺運行保持信息通信,不需要人為建立通信過程[1]。于2010年提出的藍牙4.0是更進一步的藍牙技術,將經典藍牙、高速藍牙以及藍牙低功耗結合在一起[2]。經典藍牙用于信息的交互,在擁有藍牙接口的設備進行連接傳輸;高速藍牙用于高速數據交換,能夠實現在不同設備間進行傳輸。藍牙低功耗傳輸數據時保持較低的帶寬的較低的功耗[3]。但是在傳輸的過程中還存在一些安全因素。如藍牙的認證基于設備而不是用戶,當設備丟失時,仍可以進行通信,這會對用戶產生一定的損失。又如PIN碼的長度問題,短的容易受到攻擊,長的不便于記憶;藍牙配對的密鑰安全問題等。另外,需要考慮的是通過藍牙進行傳輸時要遵守哪些協(xié)議,一些協(xié)議是所有的傳輸過程都要遵守的,一些是根據具體的傳輸而定,協(xié)議的選擇至關重要。要進行安全快速的藍牙傳輸,需要解決上述問題,針對以上提出的一些問題以及潛在的其他的問題,我們做了一系列的研究,包括傳輸過程、安全問題以及解決方案等。
1? 傳輸過程
藍牙手機連接主要分為設置藍牙、搜索藍牙、連接藍牙、傳輸過程四個部分,如圖1所示[4]。
1.1? 設置藍牙
本文采用藍牙4.0版本,在3.0版本的基礎上,它涵蓋了藍牙技術、高速技術、低功耗技術。使用時更省電、成本低、無線傳輸距離遠,可廣泛應用于多種領域,是較好的選擇。藍牙模塊可以使用USB-TTL連接電腦,使用串口調試軟件進入AT模式進行基本的參數設置[5],如藍牙名稱(CSBLYMK)、模式、匹配密碼(第一次連接需要輸入密碼“1234”)。藍牙有兩種打開方式:請求打開藍牙,用戶同意;后臺代碼的編寫,自動打開藍牙。
1.2? 搜索藍牙
在Android端需打開藍牙的權限,允許設備可被周圍其他設備發(fā)現,并開始搜索藍牙。此過程基于藍牙芯片的功能——在近距離內發(fā)送和接收無線電信號[6],進而找到其他藍牙。此過程需設置一個終止條件,避免一直搜索,造成資源浪費。
藍牙主端設備發(fā)起呼叫,先進行查找,發(fā)現周圍可被查找的設備。主端設備找到從端藍牙設備后,與從端藍牙設備進行配對,此時需要輸入從端設備的PIN碼,也有設備不需要輸入PIN碼。
1.3? 藍牙連接
配對是兩個設備之間建立連接的過程。此期間兩個設備交換鏈路密鑰,鏈路建立成功后,主從兩端之間即可進行雙向的數據或語音通訊確??煽總鬏?,此后自動連接。在傳輸之前要選擇傳輸協(xié)議,根據傳輸方式的不同分別選擇ASCII碼協(xié)議和16進制協(xié)議[7]。本文主要介紹ASCII碼協(xié)議,在傳輸的過程中使用二進制,符合計算機的存儲方式,簡單快捷。
1.4? 傳輸過程
基于藍牙技術的無線數據傳輸過程主要通過傳輸層協(xié)議管理,這層負責藍牙設備和對方位置的確認,以及建立和管理藍牙設備之間的物理與邏輯鏈路[8]。在傳輸時可以將數據進行分組,可以提高傳輸的效率、系統(tǒng)的抗干擾能力等。在傳輸時,兩個手機的藍牙建立連接后,數據進行傳輸,對接收的信息進行儲存[9],然后將收集的信息進行監(jiān)控,根據系統(tǒng)中設置規(guī)律的規(guī)模,對藍牙設備傳輸的數據進行掃描和過濾,當數據能夠符合設置的規(guī)則時,才可以通過掃描。確保了傳輸的有效性和安全性。
2? 藍牙傳輸的安全性分析
在傳統(tǒng)信息傳輸中所存在的安全問題,同樣也存在于藍牙通信傳輸中。其安全問題會給信息傳輸造成不同程度的破壞,輕則數據傳輸受阻,重則藍牙無線網絡傳輸癱瘓。
2.1? 藍牙的安全問題
藍牙認證問題。藍牙身份認證的實質是與設備相關的設備認證,而并非涉及到使用者的身份信息認證。[10]身份認證的簡單意味著當使用者的設備丟失時,其他人也可以使用該設備進行身份認證,會造成使用者設備的信息泄露。若設備被不法分子撿到后,對使用者的損失不可估量。
藍牙PIN碼的長度問題。藍牙設備之間的配對密碼即藍牙的PIN碼,而藍牙的安全性依靠于PIN碼的安全性。使用者在設置PIN碼的時候通常會為了方便記憶而選擇較短的PIN碼,簡單短小的PIN碼更容易被破譯,受到攻擊的危害性也更大。[11]在第一次連接時需要輸入PIN碼,只有雙方設備輸入的PIN碼相同時才能連接,之后的連接則不需要輸入PIN碼。
藍牙設備的配對問題。查找相對的藍牙設備,配對時需要輸入密鑰,只有輸入的密鑰正確時才能完成配對。[12]若匹配的藍牙設備不安全或者密鑰加密不安全,那對信息的傳輸也會產生威脅。
2.2? 網絡傳輸面臨的安全問題
非法竊聽問題,即非法使用者監(jiān)聽藍牙傳輸的無線媒介信道。[13]當重要的傳輸信息被竊聽,而使用者不知,所形成的危害便可想而知了。
非法訪問問題,即非法使用者假裝成合法使用者對網絡上的資源進行訪問。這類非法訪問的行為通過網絡安全中的漏洞對重要信息進行破壞,使合法使用者無法正確獲得網絡信息。
耗能攻擊(又稱能源消耗攻擊)。藍牙設備在不傳輸數據的時候為了節(jié)約能量,會進入休眠的狀態(tài)。耗能攻擊針對藍牙設備的這一狀態(tài),不斷發(fā)送信息請求,破壞休眠狀態(tài),從而使藍牙設備耗能速度加快。[14]
3? 解決方案
3.1? 藍牙方面的安全問題
藍牙協(xié)議棧和安全體系如圖2所示,從應用程序級安全和鏈路級安全進行描述。
在應用程序級安全模式中,藍牙的安全結構[15]主要部件是安全管理器,其主要功能有關于存儲設備和業(yè)務等的安全信息存儲、對來自不同途徑的訪問請求進行響應、連接前的強制執(zhí)行與加密、初始化或是處理來自外部安全實體的輸入以建立穩(wěn)定信任關系、初始化信任關系并查詢相應用戶的PIN(個人識別碼)等。也正是因為安全管理器的作用,使得用戶接口設計更加靈活,可以避免和較低層的通信協(xié)議、邏輯鏈路控制與適配協(xié)議等多種復雜協(xié)議直接交互。這樣的用戶體驗和用戶設計更加靈活便捷,同時安全管理器的強大功能令應用程序級更加安全。
鏈路管理連接的主要流程:鏈路控制器對設備進行查詢、尋呼、掃描、錯誤處理等工作;邏輯鏈路控制、適配協(xié)議等上層協(xié)議提供復用、分組、重組的功能,可以在藍牙網絡中實現信息的交換。
和任何無線技術一樣的是,藍牙通信比較容易受到各種威脅和損耗,又因為藍牙技術應用于較多場景或設備,導致藍牙更加容易受到無線鏈路威脅和自身漏洞的影響甚至是攻擊。因此,藍牙技術標準規(guī)范定義了四種安全模式[16],提供不同方式、不同程度的保護措施:
安全模式1:藍牙設備屏蔽所有鏈路級安全機制,即無安全模式;
安全模式2:提供業(yè)務級的安全機制,其中訪問的安全策略較靈活,執(zhí)行強制業(yè)務級安全;
安全模式3:提供鏈路級的安全機制,在較低層協(xié)議對所有建立連接的應用程序強制執(zhí)行鏈路級安全。藍牙設備在鏈路完全建立之前啟動安全過程,在此模式下運行的藍牙設備為設備的所有連接授權認證和加密。該模式為所有上層應用提供公共的安全措施,但是缺少了一定的靈活性;
安全模式4:使用安全簡單配對策略,其中在鏈路密鑰生成時,橢圓曲線密鑰協(xié)議取代了過時密鑰。
為實現安全功能,可以采用一個安全管理器或其他類似邏輯設備,將傳輸、設備等所有重要信息保存在安全架構的設備數據庫中。此外,藍牙技術標準還定義了針對業(yè)務的三種安全級別,包括需要授權與鑒權的業(yè)務、僅需鑒權的業(yè)務和對所有設備均開放的業(yè)務,以不同級別來定義其屬性。
3.2? 認證問題
在藍牙安全的認證[8]問題上,要知道藍牙核心協(xié)議只能認證設備,大體上,應用藍牙安全架構使用安全管理器允許應用程序執(zhí)行更精細的安全策略,相應具體的鏈路層控制操作可對應用層實施安全控制。由此可知,借助應用層可以進行基于用戶的認證、訪問控制、授權等操作。
另外,規(guī)范中對于拒絕服務攻擊的防護沒有完善,BLE的應用受到一定程度的威脅。連接過程中會受到Dos攻擊,導致連接報文缺乏認證,這時攻擊者會采用發(fā)送虛假連接報文的方式,來大大延長連接建立時延,使得破壞BLE的優(yōu)良特性。
針對上述的問題,有關文獻提出利用設備共享的認證密鑰的方式[17]進行挑戰(zhàn)應答,從而使得連接報文快速認證。
3.3? PIN碼的長度問題
通過上文對關于PIN碼長度缺陷受到攻擊的描述,可以知道PIN的安全性對藍牙傳輸的安全性和穩(wěn)定性有很關鍵的影響,其安全性取決于PIN碼的復雜性[11],改善算法以抵御對PIN碼的攻擊,從而可知該條件是解決藍牙安全問題的有效方法,下面的算法是在安全性最大的安全模式3的基礎上實現的。
防御措施的算法思想可分為三部分:
第一步:當輸入的PIN碼不同且小于8位時,需將其修正為8位。注意,為避免不同長度的PIN碼錯誤的配對,需要在用戶輸入PIN碼之前就用修正算法為其修正;
第二步:取一定長度的當前時間段T=(系統(tǒng)時間st/當前時間段長度ct)的后兩個字節(jié);PIN=PIN(8Byte)^T;
第三步:將上步得到的PIN經過MD5算法之后可得32個16進制的字符串,同時取其中間16個字符作為新PIN的值,即算法E的最終輸入參數。
通過上面三步的變換,就算是在用戶輸入的較短的PIN碼的情況下也可以保證安全通信。因為在當前時間段ct的控制下,攻擊者要破解異或后的PIN值、8BytePIN碼、得到準確的當前時間段cs等才有可能會破解成功,而以現在的計算水平和破解水平來計算,只攻克8Byte就需要花費大概1個小時,這樣攻擊者就會很難獲取到原始的PIN碼。此外,即使攻擊者知道使用MD5算法,也無法得到原始PIN,第三步的異或操作使得PIN成為16Byte的字母數字的組合,這樣的PIN碼的長度和復雜度都已經遠遠超過現在的攻擊計算破解水平。
上述的算法大大提高了藍牙傳輸的安全性,但是在特殊情況下,還存在一些不足,比如當兩個設備可能因為當前時間段不同或找尋不到合適的時間段,就會引起配對失敗。相應的解決方法就是調整有效時間范圍和設置一定條件。
4? 結? 論
本文研究了無線傳輸中的藍牙傳輸和傳輸過程中遵守的協(xié)議,重點是傳輸過程中的安全問題以及相應的解決方案。藍牙作為一種便捷高速的傳輸媒介自被提出時起,很快就被世界范圍的以無線通信、物聯網、計算機等為發(fā)展方向的大規(guī)模的企業(yè)研究與推廣應用,現階段,經過技術的普及與市場的更迭,藍牙技術已經應用于社會的各個方面,為各個國家創(chuàng)造了很大的社會財富,同時,它也是一直被改進,力求達到更高要求。通過解決傳輸過程中藍牙的安全問題包括認證問題、PIN碼的長度問題、藍牙的設備配問題,確保傳輸過程更順暢,更安全,提高傳輸速率。而在這個負責的網絡傳輸和市場利潤化的大環(huán)境中,安全問題不容小覷,如非法竊聽、非法訪問、耗能攻擊等情況都存在著較大的潛在威脅,甚至是影響未來通信方向??紤]到傳輸過程的這些安全隱患,有效解決這些問題才能提供一個高效安全的傳輸過程。當然隨著各種技術的發(fā)展,存在著不可預估的風險,這樣想來,藍牙方面在發(fā)展過程中會出現更多的更有現實性的研究方向。
參考文獻:
[1] 兆雪.藍牙技術概況 [J].民辦教育研究,2009(10):89-92.
[2] 梁澤宇.物聯網中的藍牙技術應用研究 [J].數字技術與應用,2018,36(8):65-66.
[3] 李鵬,杜明輝,于巍巍.基于智能移動終端及藍牙的金屬探測器的研制 [J].計算機工程與應用,2017,53(16):205-210.
[4] 鄧俊波.手機+藍牙模塊的簡單玩法 [J].電子制作,2015(4):63-67.
[5] 萬燕,李麗麗.基于Android與BLE的藍牙通信系統(tǒng)的實現 [J].科技創(chuàng)新與應用,2018(16):15-17.
[6] 羅富財.基于Android平臺的藍牙通信系統(tǒng)的研究與實現[D].保定:華北電力大學,2013.
[7] 周鋒,吳頻頻,王素梅.一種基于藍牙的數據傳輸方法及其應用 [J].河南科技,2018(14):27-29.
[8] 錢志鴻,劉丹.藍牙技術數據傳輸綜述 [J].通信學報,2012,33(4):143-151.
[9] 羅春娟.手機藍牙文件傳輸機制的安全性分析 [J].電子技術與軟件工程,2015(9):229.
[10] 遲曉燕.基于藍牙的安全身份認證技術研究 [J].信息安全與技術,2011(11):11-13.
[11] 王麗美,費金龍,賀新征.防御藍牙PIN碼攻擊的研究與實現 [J].計算機應用,2009,29(4):941-943+955.
[12] 柳楊才,朱衛(wèi)國.藍牙技術及其安全性 [J].計算機光盤軟件與應用,2014,17(12):202-203.
[13] 彭會萍.藍牙中的安全措施及加密技術 [J].甘肅科技縱橫,2005,34(3):20-21.
[14] 丁偉雄,宋曉,楊定安.藍牙技術的安全機制 [J].中國科技信息,2005(3):16-18.
[15] 周海剛,肖軍模.藍牙網絡的安全威脅和安全技術 [J].電信技術,2002(12):22-24.
[16] 胡新和,楊博雄.藍牙系統(tǒng)的技術特點與安全機制 [J].咸寧學院學報,2004,24(3):60-63.
[17] 王啟林,李小鵬,郁濱,等.基于連接認證的低功耗藍牙泛洪攻擊防御方案 [J].計算機應用研究,2017,34(2):499-502+547.
作者簡介:張漪(1997-),女,漢族,浙江嘉興人,本科在讀,研究方向:物聯網工程應用;通訊作者:曾孟佳(1980-),女,漢族,湖北荊州人,計算機專業(yè)負責人,講師,碩士研究生,研究方向:物聯網工程應用及其智能算法。