關(guān)于藍(lán)牙安全機(jī)制的研究發(fā)布: 2010-10-20 00:46 | 作者: | 來源: | 字體: 小 中 大 摘要:簡要介紹了藍(lán)牙系統(tǒng)的安全機(jī)制。首先,對藍(lán)牙應(yīng)用協(xié)議棧作了簡單的介紹,接著重點(diǎn)研究了藍(lán)牙的安全機(jī)制和原理。其中對藍(lán)牙鏈接字管理及產(chǎn)生過程、鑒權(quán)過程和加密過程作了詳細(xì)的說明。最后給出一個(gè)藍(lán)牙應(yīng)用的實(shí)例,以加強(qiáng)對藍(lán)牙安全機(jī)制的總體認(rèn)識。 關(guān)鍵詞:藍(lán)牙,安全,結(jié)構(gòu),鑒權(quán),加密,字管理 隨著計(jì)算機(jī)網(wǎng)絡(luò)和移動電話技術(shù)的迅猛發(fā)展,人們感到越來越迫切需要發(fā)展小范圍的無線數(shù)據(jù)與語音通信技術(shù)。于是愛立信、IBM、英特爾、諾基亞和東芝等公司在1998年聯(lián)合推出一項(xiàng)新的無線網(wǎng)絡(luò)技術(shù),即藍(lán)牙技術(shù)。藍(lán)牙技術(shù)可以解決小型移動設(shè)備間的無線互連問題,它的硬件市場非常廣闊,涵蓋了局域網(wǎng)中的各類數(shù)據(jù)及語音設(shè)備,如計(jì)算機(jī)、移動電話、小型個(gè)人數(shù)字助理(PDA)等。藍(lán)牙技術(shù)面向的是移動設(shè)備間的小范圍連接,從本質(zhì)上說它是一種代替電纜的技術(shù)。為了保證移動設(shè)備間數(shù)據(jù)傳輸?shù)陌踩,該技術(shù)持應(yīng)用層和鏈路層的鑒權(quán)和加密,這也正是本文要討論的內(nèi)容。 一、藍(lán)牙應(yīng)用協(xié)議棧 1999年12月1日,Bluetooth SIG(Special Interest Group)發(fā)布了藍(lán)牙標(biāo)準(zhǔn)的最新版:1.0B版。藍(lán)牙標(biāo)準(zhǔn)包括兩大部分:Core和Profiles。Core是藍(lán)牙的核心,它主要定義了藍(lán)牙的技術(shù)細(xì)節(jié),而Profiles部分則定義了在藍(lán)牙的各種應(yīng)用中協(xié)議棧的組成。 藍(lán)牙標(biāo)準(zhǔn)主要定義的是底層協(xié)議,同時(shí)為保證和其它協(xié)議的兼容性,也定義了一些高層協(xié)議和相關(guān)接口。從ISO的OSI七層協(xié)議標(biāo)準(zhǔn)來看,藍(lán)牙標(biāo)準(zhǔn)主要定義的是物理層、鏈路層和網(wǎng)絡(luò)層的結(jié)構(gòu)。 1)射頻協(xié)議(RF/Radio Protocol):定義了藍(lán)牙發(fā)送器和接收器的各個(gè)參數(shù),包括發(fā)送器的調(diào)制特性,接收器的靈敏度、抗干擾性能、互調(diào)特性和接收信號強(qiáng)度指示等。 2)基帶/鏈路控制協(xié)議(Baseband/LC Protocol):定義了基帶部分協(xié)議和其它低層鏈路功能,是藍(lán)牙技術(shù)的核心。 3)鏈路管理協(xié)議(LMP):用于鏈路的建立、安全和控制,為此LMP定義了許多過程來完成不同的功能。 4)主機(jī)控制器接口(HCI:Host Controller Interface)協(xié)議:描述了主機(jī)控制接口功能上的標(biāo)準(zhǔn),提供了一個(gè)基帶控制器和鏈路管理器(LM)得知硬件狀態(tài)和控制寄存器命令的接口,在藍(lán)牙中起著中間層的作用:向下給鏈路控制器協(xié)議和鏈路管理協(xié)議提供接口,提供一個(gè)訪問藍(lán)牙基帶的統(tǒng)一方法。HCI是在硬件和軟件都包含的部分。 5)邏輯蓮路控制和適配協(xié)議(L2CAP:Logical Link Control and Adaptation Protocol):支持高層協(xié)議復(fù)用、幀的組裝和拆分、傳送QoS信息。L2CAP提供面各連接和非連接兩種業(yè)務(wù),允許高層最多達(dá)64kbit/s的數(shù)據(jù),以一種有限狀態(tài)機(jī)(FSM)的方式來進(jìn)行控制,目前只支持異步無連接鏈路(ACL)。 6)服務(wù)發(fā)現(xiàn)協(xié)議(SDP:Service Discover Protocol):如何發(fā)現(xiàn)藍(lán)牙設(shè)備所提供服務(wù)的協(xié)議,使高層應(yīng)用能夠得知可提供的服務(wù)。在兩個(gè)藍(lán)牙設(shè)備第一次通信時(shí),需要通過SDP來了解對方能夠提供何種服務(wù),并將自己可提供的服務(wù)通知對方。 7)高層協(xié)議:包括串口通信協(xié)議(RFCOMM)、電話控制協(xié)議(TCS)、對象交換協(xié)議(OBEX)、控制命令(AT-Command)、電子商務(wù)標(biāo)準(zhǔn)協(xié)議(vCard和vCalender)和PPP,IP,TCP,UDP等相關(guān)的Internet協(xié)議以及WAP協(xié)議。其中,串口通信協(xié)議是ETSI TS07.10標(biāo)準(zhǔn)的子集,并且加入了藍(lán)牙特有的部分;電話控制協(xié)議使用了一個(gè)以比特為基礎(chǔ)的協(xié)議,定義了在藍(lán)牙設(shè)備之間建立語音和數(shù)據(jù)呼叫的控制信令,對象交換協(xié)議提供了與IrDA協(xié)議系列相同的特性,并且使各種應(yīng)用可以在IrDA協(xié)議棧和藍(lán)牙協(xié)議棧上使用。兩個(gè)藍(lán)牙設(shè)備必須具有相同的協(xié)議組成才能夠相互通信。例如要在藍(lán)牙實(shí)現(xiàn)WAP應(yīng)用,則雙方都必須經(jīng)過基帶協(xié)議--L2CAP--RFCOMM--PPP---IP--UDP--WAP的路徑來實(shí)現(xiàn)。 二、藍(lán)牙系統(tǒng)安全性要求 由于藍(lán)牙系統(tǒng)簡單可靠,從而產(chǎn)生了各種不同的應(yīng)用,例如電腦、鼠標(biāo)、打印機(jī)、接入點(diǎn)、移動電話和話筒等都可以使用藍(lán)牙協(xié)議無線地連接在一起,進(jìn)行語音和數(shù)據(jù)的交換。同時(shí),還可以通過無線或有線的接入點(diǎn)(如PSTN、ISDN、LAN、XDSL)與外界相連。不同應(yīng)用對各自的系統(tǒng)必然提出不同的要求,并且不是所有的系統(tǒng)都對安全性有很高的要求。 先介紹幾個(gè)概念: 1)藍(lán)牙設(shè)備地址(BD_ADDR):是一個(gè)對每個(gè)藍(lán)牙單元唯一的48位IEEE地址。 2)個(gè)人確認(rèn)碼(PIN:Personal Identification Number):是由藍(lán)牙單元提供的1-16位(八進(jìn)制)數(shù)字,可以固定或者由用戶選擇。一般來講,這個(gè)PIN碼是隨單元一起提供的一個(gè)固定數(shù)字。但當(dāng)該單元有人機(jī)接口時(shí),用戶可以任意選擇PIN的值,從而進(jìn)入通信單元。藍(lán)牙基帶標(biāo)準(zhǔn)中要求PIN的值是可以改變的。 3)鑒權(quán)字:是長度為128位的數(shù)字,用于系統(tǒng)的鑒權(quán)。 4)加密字:長度8-128位,可以改變。這是因?yàn)椴煌膰矣性S多不同的對加密算法的要求,同時(shí)也是各種不同應(yīng)用的需要,還有利于算法和加密硬件系統(tǒng)的升級。 區(qū)分鑒權(quán)字和加密字的目的是在不降低鑒權(quán)過程作用的前提下使用更短的加密字。 雖然藍(lán)牙系統(tǒng)的跳頻機(jī)制對于來自系統(tǒng)內(nèi)部其它設(shè)備的偶然傳輸干擾起到了一定的保護(hù)作用,但是很顯然僅有這種保護(hù)是不夠的。它不能防止有人在兩個(gè)傳輸單元之間對數(shù)據(jù)的竊聽和偷取,尤其在無線傳輸數(shù)據(jù)時(shí),竊取數(shù)據(jù)者可以輕松地屏蔽自己而不讓用戶發(fā)現(xiàn),因此藍(lán)牙系統(tǒng)需要加入相應(yīng)的安全機(jī)制。在一般的系統(tǒng)中,通常對所傳輸?shù)臄?shù)據(jù)包進(jìn)行加密,但僅有這種做法是不夠的。更重要的是在通信連接建立以前,確保通信單元的安全性。例如用戶相同時(shí)跟幾個(gè)用戶通信,就需要對這些用戶進(jìn)行確認(rèn)。因此,在藍(lán)牙系統(tǒng)中間時(shí)運(yùn)用了鑒權(quán)和加密技術(shù)。 三、藍(lán)牙安全機(jī)制 1、字管理機(jī)制 藍(lán)牙鏈字是長度為128位的隨機(jī)數(shù),它是藍(lán)牙系統(tǒng)鑒權(quán)和加密的基礎(chǔ)。為了支持不同階段、模式的要求,藍(lán)牙系統(tǒng)在鏈路層上用了4種不同的字來保證系統(tǒng)的安全性。包括單元字KA組合字是KAB,臨時(shí)字Kmaster及初始化字Kinit。 單元字KA與組合字KAB僅產(chǎn)生方式不同,執(zhí)行的功能是完全相同的。也就是說,KAB是由兩個(gè)單元A,B共同產(chǎn)生的,而KA僅由一個(gè)單元A產(chǎn)生,因此KA在初始化階段產(chǎn)生后就基本不變了。系統(tǒng)的內(nèi)存比較小時(shí)通常選擇KA,而系統(tǒng)對穩(wěn)定性要求比較高時(shí)選擇KAB。 臨時(shí)字Kmaster只是臨時(shí)取代原始字。例如,當(dāng)主機(jī)想與多個(gè)子機(jī)通信時(shí)主機(jī)將用同一個(gè)加密字,因此把它存放在臨時(shí)字中,以便于使用。 初始化字Kinit僅僅在初始化階段有效,也主是單元字KA,KAB產(chǎn)生的階段,它不僅僅是初始化階段的一個(gè)臨時(shí)字,其產(chǎn)生需要一個(gè)PIN。 半永久性的鏈接字在特定的時(shí)間內(nèi)被稱作當(dāng)前鏈接字。當(dāng)前鏈接字和其它鏈接字一樣,用于鑒權(quán)和加密過程。此外,還用到了加密字KC,加密字被LM的命令激活后將自動被改變。 另外,鑒權(quán)字和加密字在不同的階段執(zhí)行不同的功能。例如:在兩個(gè)單元沒有建立連接的階段和已經(jīng)建立連接的階段有很大的不同,前者必須首先產(chǎn)生加密字,而后者可以繼續(xù)使用上次通信的加密字。相應(yīng)地不同的階段對字的管理是不一樣的。此外當(dāng)主機(jī)想廣播消息,而不是一個(gè)一個(gè)地傳送消息時(shí),需要特殊的字管理方法。正是藍(lán)牙系統(tǒng)有力的字管理機(jī)制,才使得系統(tǒng)具有很好的安全性,而且支持不同的應(yīng)用模式。 2.鏈接字的產(chǎn)生 初始化字Kunit的值以申請者的藍(lán)牙設(shè)備地址、一個(gè)PIN碼、PIN碼的長度和一個(gè)隨機(jī)數(shù)作為參數(shù),通過E22算法產(chǎn)生。而申請者相對校驗(yàn)者而言是需要通過驗(yàn)證的一方。因此,申請者需要正確的PIN碼和PIN碼的長度。一般來講,由HCI決定誰是申請者,誰是校驗(yàn)者。 當(dāng)PIN的長度少于16個(gè)八進(jìn)制數(shù)時(shí),可以通過填充藍(lán)牙設(shè)備地址的數(shù)據(jù)使其增大,因此如果循環(huán)使用E22可以使鏈接字的長度增長為128位。 初始化鏈接字Kint產(chǎn)生后,該單元將產(chǎn)生一個(gè)半永久字KA或KAB。如果產(chǎn)生的是一人KAB,則該單元將用一個(gè)隨機(jī)數(shù)LK_RAND周期性地加密藍(lán)牙設(shè)備地址,加密后的結(jié)果為LK_KA,而各自產(chǎn)生的LK_RAND與當(dāng)前的鏈接字進(jìn)行異或運(yùn)算后,分別產(chǎn)生新值,永為CA和CA,然后互相交換,從而得到了對方的LK_RAND,并以對方的LK_RAND和藍(lán)牙設(shè)備地址作為參數(shù),用E21函數(shù)產(chǎn)生新值LK_KB的異或運(yùn)算得到組合字KAB。當(dāng)KAB產(chǎn)生后,首先單向鑒權(quán)一次,看KAB變?yōu)楫?dāng)前鏈接字,而丟棄原先的鏈接字K。E22的工作原理與E21類似。 3.藍(lán)牙單元鑒權(quán) 在鑒權(quán)過程中,LM決定誰是校驗(yàn)者,誰是申請者。申請者和校驗(yàn)者必須同時(shí)擁有一個(gè)共同的當(dāng)前鏈接字。而這種口令-應(yīng)答方式的鑒權(quán)實(shí)際上是申請者發(fā)送一個(gè)隨機(jī)數(shù)RAND,隨后校驗(yàn)者用當(dāng)前密鑰字、申請者的藍(lán)牙設(shè)備地址和RAND作為加密算法的參數(shù)得到新值,記為SRES’。申請者以同樣的參數(shù)、算法得到的新值記為SRES。然后,申請者將SRES傳送給校驗(yàn)者,比較SRES’和SRES是否相等。如果相等,則鑒權(quán)通過;否則鑒權(quán)失敗。在間隔一定時(shí)間后系統(tǒng)重新鑒權(quán)。鑒權(quán)機(jī)制的安全性是相當(dāng)高的。更保險(xiǎn)的做法是采用雙向鑒權(quán),即一次鑒權(quán)成功后,調(diào)整申請者和校驗(yàn)者的角色,再次鑒權(quán)。鑒權(quán)成功以后,產(chǎn)生了鑒權(quán)編碼補(bǔ)償(ACO),以用于加密字的產(chǎn)生。 4.加密 為了保證藍(lán)牙系統(tǒng)的安全性,必須采用加密技術(shù)。但藍(lán)牙系統(tǒng)對數(shù)據(jù)包頭和控制字段并不加密。藍(lán)牙系統(tǒng)通過一個(gè)再同步的流加密算法對每一個(gè)負(fù)載加密,由LM最終決定是否加密。 最后需要注意的是,不僅要對數(shù)據(jù)包加密,而且要對加密過程的中間數(shù)據(jù)進(jìn)行加密,例如對鑒權(quán)編碼補(bǔ)償進(jìn)行加密,這樣才能防止系統(tǒng)被攻擊和數(shù)據(jù)被竊取。 四、簡單的使用例子 通過藍(lán)牙技術(shù)可以在無線耳機(jī)和移動電話之間建立通信。由于耳機(jī)沒有人機(jī)接口,因上耳機(jī)在生產(chǎn)的時(shí)候載入了一個(gè)固定的PIN,它是一個(gè)隨機(jī)的數(shù)字。在初始化階段,用戶從手機(jī)菜單中選取初始化耳機(jī)的命令,隨后耳機(jī)將自動發(fā)現(xiàn)手機(jī)并建立連接。此時(shí)用戶必須輸入耳機(jī)的PIN。如果輸入的PIN正確,則建立連接;否則不能建立連接。如果用戶不想讓每個(gè)人都與耳機(jī)建立通信,那么可以通過軟件要求使用耳機(jī)必須通過鑒權(quán)。 五、結(jié)語 藍(lán)牙系統(tǒng)提供了幾種內(nèi)在的安全機(jī)制,從而在一個(gè)比較廣泛的范圍內(nèi)保證了藍(lán)牙系統(tǒng)的安全性。這不僅對產(chǎn)品開發(fā)商有利,而且給用戶帶來很大的方便。藍(lán)牙技術(shù)把便攜式電腦、蜂窩移動電話和家用電器等用無線鏈路連接起來,將計(jì)算機(jī)與通信更加密切地結(jié)合起來,使人們能隨時(shí)隨地進(jìn)行數(shù)據(jù)信息的交換與傳輸。我們相信,藍(lán)牙技術(shù)將掀起無線連接與通信的革命。據(jù)預(yù)測,在最近幾年內(nèi)無線數(shù)據(jù)通信業(yè)務(wù)將迅速增長,因此電信業(yè)、計(jì)算機(jī)業(yè)、家電業(yè)都對藍(lán)牙技術(shù)很重視,認(rèn)為它將對未來的無線數(shù)據(jù)通信業(yè)務(wù)產(chǎn)生巨大的促進(jìn)作用。藍(lán)牙技術(shù)是無線數(shù)據(jù)通信最為重大的進(jìn)展之一,對藍(lán)牙安全機(jī)制的研究和應(yīng)用具有重要的意義。 節(jié)選自《現(xiàn)代電信科技》2002.3
掃碼關(guān)注5G通信官方公眾號,免費(fèi)領(lǐng)取以下5G精品資料
|
本周熱點(diǎn)本月熱點(diǎn)
最熱通信招聘
業(yè)界最新資訊最新招聘信息
最新技術(shù)文章
最新論壇貼子
|