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

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

 73人閱讀 評論(0) 收藏 舉報

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

 

一、藍牙應用協議棧

 

1999年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 Interface)協議:描述了主機控制接口功能上的標準,提供了一個基帶控制器和鏈路管理器(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)與外界相連。不同應用對各自的系統必然提出不同的要求,並且不是所有的系統都對安全性有很高的要求。

 

先介紹幾個概念:

 

1)藍牙設備地址(BD_ADDR):是一個對每個藍牙單元唯一的48位IEEE地址。

 

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決定誰是申請者,誰是校驗者。

 

當PIN的長度少於16個八進制數時,可以通過填充藍牙設備地址的數據使其增大,因此如果循環使用E22可以使鏈接字的長度增長爲128位。

 

初始化鏈接字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正確,則建立連接;否則不能建立連接。如果用戶不想讓每個人都與耳機建立通信,那麼可以通過軟件要求使用耳機必須通過鑑權。

 

五、結語

 

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

發佈了6 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章