關於藍芽安全機制的研究介紹

2021-06-16 09:23:31 字數 4592 閱讀 1980

2009-04-08 16:32

73人閱讀收藏 

舉報隨著計算機網路和移動**技術的迅猛發展,人們感到越來越迫切需要發展小範圍的無線資料與語音通訊技術。於是愛立信、ibm、英特爾、諾基亞和東芝等公司在2023年聯合推出一項新的無線網路技術,即藍芽技術。藍芽技術可以解決小型移動裝置間的無線互連問題,它的硬體市場非常廣闊,涵蓋了區域網中的各類資料及語音裝置,如計算機、移動**、小型個人數字助理(pda)等。藍芽技術面向的是移動裝置間的小範圍連線,從本質上說它是一種代替電纜的技術。為了保證移動裝置間資料傳輸的安全性,該技術持應用層和鏈路層的鑑權和加密,這也正是本文要討論的內容。

一、藍芽應用協議棧

2023年12月1日,bluetooth sig(special interest group)發布了藍芽標準的最新版:1.0b版。藍芽標準包括兩大部分:core和profiles。core是藍芽的核心,它主要定義了藍芽的技術細節,而profiles部分則定義了在藍芽的各種應用中協議棧的組成。

藍芽標準主要定義的是底層協議,同時為保證和其它協議的相容性,也定義了一些高層協議和相關介面。從iso的osi七層協議標準來看,藍芽標準主要定義的是物理層、鏈路層和網路層的結構。

1)射頻協議(rf/radio protocol):定義了藍芽傳送器和接收器的各個引數,包括傳送器的調製特性,接收器的靈敏度、抗干擾性能、互調特性和接收訊號強度指示等。

2)基帶/鏈路控制協議(baseband/lc protocol):定義了基帶部分協議和其它低層鏈路功能,是藍芽技術的核心。

3)鏈路管理協議(lmp):用於鏈路的建立、安全和控制,為此lmp定義了許多過程來完成不同的功能。

4)主機控制器介面(hci:host controller inte***ce)協議:描述了主機控制介面功能上的標準,提供了乙個基帶控制器和鏈路管理器(lm)得知硬體狀態和控制暫存器命令的介面,在藍芽中起著中間層的作用:向下給鏈路控制器協議和鏈路管理協議提供介面,提供乙個訪問藍芽基帶的統一方法。hci是在硬體和軟體都包含的部分。

5)邏輯蓮路控制和適配協議(l2cap:logical link control and adaptation protocol):支援高層協議復用、幀的組裝和拆分、傳送qos資訊。l2cap提供面各連線和非連線兩種業務,允許高層最多達64kbit/s的資料,以一種有限狀態機(fsm)的方式來進行控制,目前只支援非同步無連線鏈路(acl)。

6)服務發現協議(sdp:service discover protocol):如何發現藍芽裝置所提供服務的協議,使高層應用能夠得知可提供的服務。在兩個藍芽裝置第一次通訊時,需要通過sdp來了解對方能夠提供何種服務,並將自己可提供的服務通知對方。

7)高層協議:包括串列埠通訊協議(rfcomm)、**控制協議(tcs)、物件交換協議(obex)、控制命令(at-command)、電子商務標準協議(vcard和vcalender)和ppp,ip,tcp,udp等相關的internet協議以及wap協議。其中,串列埠通訊協議是etsi ts07.10標準的子集,並且加入了藍芽特有的部分;**控制協議使用了乙個以位元為基礎的協議,定義了在藍芽裝置之間建立語音和資料呼叫的控制信令,物件交換協議提供了與irda協議系列相同的特性,並且使各種應用可以在irda協議棧和藍芽協議棧上使用。兩個藍芽裝置必須具有相同的協議組成才能夠相互通訊。例如要在藍芽實現wap應用,則雙方都必須經過基帶協議--l2cap--rfcomm--ppp---ip--udp--wap的路徑來實現。

二、藍芽系統安全性要求

由於藍芽系統簡單可靠,從而產生了各種不同的應用,例如電腦、滑鼠、印表機、接入點、移動**和話筒等都可以使用藍芽協議無線地連線在一起,進行語音和資料的交換。同時,還可以通過無線或有線的接入點(如pstn、isdn、lan、xdsl)與外界相連。不同應用對各自的系統必然提出不同的要求,並且不是所有的系統都對安全性有很高的要求。

先介紹幾個概念:

2)個人確認碼(pin:personal identification number):是由藍芽單元提供的1-16位(八進位制)數字,可以固定或者由使用者選擇。一般來講,這個pin碼是隨單元一起提供的乙個固定數字。但當該單元有人機介面時,使用者可以任意選擇pin的值,從而進入通訊單元。藍芽基帶標準中要求pin的值是可以改變的。

3)鑑權字:是長度為128位的數字,用於系統的鑑權。

4)加密字:長度8-128位,可以改變。這是因為不同的國家有許多不同的對加密演算法的要求,同時也是各種不同應用的需要,還有利於演算法和加密硬體系統的公升級。

區分鑑權字和加密字的目的是在不降低鑑權過程作用的前提下使用更短的加密字。

雖然藍芽系統的跳頻機制對於來自系統內部其它裝置的偶然傳輸干擾起到了一定的保護作用,但是很顯然僅有這種保護是不夠的。它不能防止有人在兩個傳輸單元之間對資料的竊聽和偷取,尤其在無線傳輸資料時,竊取資料者可以輕鬆地遮蔽自己而不讓使用者發現,因此藍芽系統需要加入相應的安全機制。在一般的系統中,通常對所傳輸的資料報進行加密,但僅有這種做法是不夠的。更重要的是在通訊連線建立以前,確保通訊單元的安全性。例如使用者相同時跟幾個使用者通訊,就需要對這些使用者進行確認。因此,在藍芽系統中間時運用了鑑權和加密技術。

三、藍芽安全機制

1、字管理機制

藍芽鏈字是長度為128位的隨機數,它是藍芽系統鑑權和加密的基礎。為了支援不同階段、模式的要求,藍芽系統在鏈路層上用了4種不同的字來保證系統的安全性。包括單元字ka組合字是kab,臨時字kmaster及初始化字kinit。

單元字ka與組合字kab僅產生方式不同,執行的功能是完全相同的。也就是說,kab是由兩個單元a,b共同產生的,而ka僅由乙個單元a產生,因此ka在初始化階段產生後就基本不變了。系統的記憶體比較小時通常選擇ka,而系統對穩定性要求比較高時選擇kab。

臨時字kmaster只是臨時取代原始字。例如,當主機想與多個子機通訊時主機將用同乙個加密字,因此把它存放在臨時字中,以便於使用。

初始化字kinit僅僅在初始化階段有效,也主是單元字ka,kab產生的階段,它不僅僅是初始化階段的乙個臨時字,其產生需要乙個pin。

半永久性的鏈結字在特定的時間內被稱作當前鏈結字。當前鏈結字和其它鏈結字一樣,用於鑑權和加密過程。此外,還用到了加密字kc,加密字被lm的命令啟用後將自動被改變。

另外,鑑權字和加密字在不同的階段執行不同的功能。例如:在兩個單元沒有建立連線的階段和已經建立連線的階段有很大的不同,前者必須首先產生加密字,而後者可以繼續使用上次通訊的加密字。相應地不同的階段對字的管理是不一樣的。此外當主機想廣播訊息,而不是乙個乙個地傳送訊息時,需要特殊的字管理方法。正是藍芽系統有力的字管理機制,才使得系統具有很好的安全性,而且支援不同的應用模式。

2.鏈結字的產生

初始化字kunit的值以申請者的藍芽裝置位址、乙個pin碼、pin碼的長度和乙個隨機數作為引數,通過e22

演算法產生。而申請者相對校驗者而言是需要通過驗證的一方。因此,申請者需要正確的pin碼和pin碼的長度。一般來講,由hci決定誰是申請者,誰是校驗者。

初始化鏈結字kint產生後,該單元將產生乙個半永久字ka或kab。如果產生的是一人kab,則該單元將用乙個隨機數lk_rand周期性地加密藍芽裝置位址,加密後的結果為lk_ka,而各自產生的lk_rand與當前的鏈結字進行異或運算後,分別產生新值,永為ca和ca,然後互相交換,從而得到了對方的lk_rand,並以對方的lk_rand和藍芽裝置位址作為引數,用e21函式產生新值lk_kb的異或運算得到組合字kab。當kab產生後,首先單向鑑權一次,看kab變為當前鏈結字,而丟棄原先的鏈結字k。e22的工作原理與e21類似。

3.藍芽單元鑑權

在鑑權過程中,lm決定誰是校驗者,誰是申請者。申請者和校驗者必須同時擁有乙個共同的當前鏈結字。而這種口令-應答方式的鑑權實際上是申請者傳送乙個隨機數rand,隨後校驗者用當前金鑰字、申請者的藍芽裝置位址和rand作為加密演算法的引數得到新值,記為sres』。申請者以同樣的引數、演算法得到的新值記為sres。然後,申請者將sres傳送給校驗者,比較sres』和sres是否相等。如果相等,則鑑權通過;否則鑑權失敗。在間隔一定時間後系統重新鑑權。鑑權機制的安全性是相當高的。更保險的做法是採用雙向鑑權,即一次鑑權成功後,調整申請者和校驗者的角色,再次鑑權。鑑權成功以後,產生了鑑權編碼補償(aco),以用於加密字的產生。

4.加密

為了保證藍芽系統的安全性,必須採用加密技術。但藍芽系統對資料報頭和控制欄位並不加密。藍芽系統通過乙個再同步的流加密演算法對每乙個負載加密,由lm最終決定是否加密。

最後需要注意的是,不僅要對資料報加密,而且要對加密過程的中間資料進行加密,例如對鑑權編碼補償進行加密,這樣才能防止系統被攻擊和資料被竊取。

四、簡單的使用例子

通過藍芽技術可以在無線耳機和移動**之間建立通訊。由於耳機沒有人機介面,因上耳機在生產的時候載入了乙個固定的pin,它是乙個隨機的數字。在初始化階段,使用者從手機選單中選取初始化耳機的命令,隨後耳機將自動發現手機並建立連線。此時使用者必須輸入耳機的pin。如果輸入的pin正確,則建立連線;否則不能建立連線。如果使用者不想讓每個人都與耳機建立通訊,那麼可以通過軟體要求使用耳機必須通過鑑權。

五、結語

藍芽系統提供了幾種內在的安全機制,從而在乙個比較廣泛的範圍內保證了藍芽系統的安全性。這不僅對產品開發商有利,而且給使用者帶來很大的方便。藍芽技術把可攜式電腦、蜂窩移動**和家用電器等用無線鏈路連線起來,將計算機與通訊更加密切地結合起來,使人們能隨時隨地進行資料資訊的交換與傳輸。我們相信,藍芽技術將掀起無線連線與通訊的革命。據**,在最近幾年內無線資料通訊業務將迅速增長,因此電信業、計算機業、家電業都對藍芽技術很重視,認為它將對未來的無線資料通訊業務產生巨大的促進作用。藍芽技術是無線資料通訊最為重大的進展之一,對藍芽安全機制的研究和應用具有重要的意義

關於藍芽異常斷開的問題

在做藍芽開發的時候,遇到了藍芽會異常斷開的問題。專案需求的功能是要求連線兩個藍芽ble裝置。乙個藍芽a裝置要求的即時性不高,可以掃瞄一段時間然後停止掃瞄一段時間,但是另外乙個藍芽b裝置要求的即時行較高需要系統去不停的掃瞄 以便在發現裝置後能夠迅速的做出反應。就這樣在裝置連線上其中的a藍芽後,在掃瞄b...

關於藍芽的一些思考

藍芽和wifi,應該是我們日常中用得最多的兩種無線通訊協議了 兩個特性不同,導致了兩者的應用場景各佔一席之位 藍芽主要是低功耗,這使得他在各種可穿戴裝置中應用得最多了,藍芽還有另外乙個特性,跟手機互動時,不影響手機的其他功能,這一點在很多場景中給使用者更好的體驗,因為如果使用wif,手機就不能上網了...

關於蘋果藍芽的研究

之前有個研究任務安排給我 對藍芽耳機斷線通知進行分析研究,後來由於缺少裝置測試而終止,但是在前期分析研究中,獲益不少,故整理如下 一 要求 藍芽耳機掉線通知研究,看斷開能否得到通知,能否識別主動斷開,還是距離過遠而斷開,完成後提交研究報告和相關demo 二 分析 1 關於蘋果 藍芽 是雞肋 功能很有...