藍(lán)牙技術(shù)提供了一種短距離的無線通信標(biāo)準(zhǔn),同其它無線技術(shù)一樣,藍(lán)牙技術(shù)的無線傳輸特性使它非常容易受到攻擊,因此安全機制在藍(lán)牙技術(shù)中顯得尤為重要。雖然藍(lán)牙系統(tǒng)所采用的跳頻技術(shù)已經(jīng)提供了一定的安全保障,但是藍(lán)牙系統(tǒng)仍然需要鏈路層和應(yīng)用層的安全管理。本文首先討論無線網(wǎng)絡(luò)的安全問題,然后介紹了在藍(lán)牙系統(tǒng)中采用的安全技術(shù)。
一、無線網(wǎng)絡(luò)中的安全問題
藍(lán)牙技術(shù)可以提供點對點和點對多點(廣播)的無線連接,采用藍(lán)牙技術(shù),多個藍(lán)牙設(shè)備能夠臨時組構(gòu)無線通信網(wǎng),實現(xiàn)信息的交換和處理。這種無線網(wǎng)絡(luò)的安全威脅來源于非法竊聽、非授權(quán)訪問和服務(wù)拒絕等,不同的安全威脅會給網(wǎng)絡(luò)帶來不同程度的破壞。
非法竊聽是指入侵者通過對無線信道的監(jiān)聽來獲取傳輸?shù)男畔ⅲ菍νㄐ啪W(wǎng)絡(luò)最常見的攻擊方法。這種威脅源于無線鏈路的開放性,但是由于無線傳輸距離受到功率和信噪比的限制,竊聽者必須與源結(jié)點距離較近。藍(lán)牙技術(shù)標(biāo)準(zhǔn)建議采用較低的發(fā)射功率,標(biāo)準(zhǔn)通信距離僅有十米,這在一定程度上保證了網(wǎng)絡(luò)的可靠性。
非法訪問是指入侵者偽裝成合法用戶來訪問網(wǎng)絡(luò)資源,以期達(dá)到破壞目的;或者是違反安全策略,利用安全系統(tǒng)的缺陷非法占有系統(tǒng)資源或訪問本應(yīng)受保護(hù)的信息。必須對網(wǎng)絡(luò)中的通信設(shè)備增加認(rèn)證機制,以防止非授權(quán)用戶使用網(wǎng)絡(luò)資源。
服務(wù)拒絕是指入侵者通過某些手段使合法用戶無法獲得其應(yīng)有的網(wǎng)絡(luò)服務(wù),這種攻擊方式在Internet中最為常見,也最為有效。在藍(lán)牙網(wǎng)絡(luò)中,這種威脅包括阻止合法用戶建立連接,或通過向網(wǎng)絡(luò)發(fā)送大量垃圾數(shù)據(jù)來破壞合法用戶的正常通信。對于這種威脅,通常可采用認(rèn)證機制和流量控制機制來防止。
耗能攻擊也稱為能源消耗攻擊,現(xiàn)有藍(lán)牙設(shè)備為節(jié)約電池能量,使用節(jié)能機制,在不進(jìn)行通信時進(jìn)入休眠狀態(tài)。能源消耗攻擊目的是破壞節(jié)能機制,如不停地發(fā)送連接請求,使設(shè)備無法進(jìn)入節(jié)能模式,最終達(dá)到消耗能量的目的。目前對這種攻擊還沒有行之有效的辦法。
二、藍(lán)牙采用的安全技術(shù)
藍(lán)牙技術(shù)標(biāo)準(zhǔn)除了采用上述的跳頻擴頻技術(shù)和低發(fā)射功率等常規(guī)安全技術(shù)外,還采用內(nèi)置的安全機制來保證無線傳輸?shù)陌踩浴?br>
1. 安全模式
在藍(lán)牙技術(shù)標(biāo)準(zhǔn)中定義了三種安全模式:
●安全模式1:無安全要求
●安全模式2:強制業(yè)務(wù)級安全
●安全模式3:強制鏈路級安全
安全模式1為無安全機制的模式,在這種模式下藍(lán)牙設(shè)備屏蔽鏈路級的安全功能,適于非敏感信息的數(shù)據(jù)庫的訪問。這方面的典型的例子有自動交換名片和日歷(即vCard和vCalendar)。
安全模式2提供業(yè)務(wù)級的安全機制,允許更多靈活的訪問過程,例如,并行運行一些有不同安全要求的應(yīng)用程序。在這種模式中,藍(lán)牙設(shè)備在信道建立后啟動安全性過程,也就是說它的安全過程在較高層協(xié)議進(jìn)行。
安全模式3提供鏈路級的安全機制,鏈路管理器對所有建立連接的應(yīng)用程序,以一種公共的等級強制執(zhí)行安全標(biāo)準(zhǔn)。在這種模式中,藍(lán)牙設(shè)備在信道建立以前啟動安全性過程,也就是說它的安全過程在較低層協(xié)議進(jìn)行。
2. 設(shè)備和業(yè)務(wù)的安全等級
藍(lán)牙技術(shù)標(biāo)準(zhǔn)為藍(lán)牙設(shè)備和業(yè)務(wù)定義安全等級,其中設(shè)備定義了三個級別的信任等級:
●可信任設(shè)備:設(shè)備已通過鑒權(quán),存儲了鏈路密鑰,在設(shè)備數(shù)據(jù)庫中標(biāo)識為“可信任”,可信任設(shè)備可以無限制的訪問所有的業(yè)務(wù);
●不可信任設(shè)備:設(shè)備已通過鑒權(quán),存儲了鏈路密鑰,但在設(shè)備數(shù)據(jù)庫中沒有標(biāo)識為“可信任,;不可信任設(shè)備訪問業(yè)務(wù)是受限的;
●未知設(shè)備:無此設(shè)備的安全性信息,為不可信任設(shè)備。
實現(xiàn)安全功能的途徑之一是采用一個安全管理器,這些信息保存在藍(lán)牙安全架構(gòu)的設(shè)備數(shù)據(jù)庫中,由安全管理器維護(hù)。
對于業(yè)務(wù),藍(lán)牙技術(shù)標(biāo)準(zhǔn)定義了三種安全級別:需要授權(quán)與鑒權(quán)的業(yè)務(wù)、僅需鑒權(quán)的業(yè)務(wù)以及對所有設(shè)備開放的業(yè)務(wù)。一個業(yè)務(wù)的安全等級由下述三個屬性決定,它們保存在業(yè)務(wù)數(shù)據(jù)庫中。
●需授權(quán)——只允許信任設(shè)備自動訪問的業(yè)務(wù)(例如,在設(shè)備數(shù)據(jù)庫中已登記的那些設(shè)備)。不信任的設(shè)備需要在授權(quán)過程完成后才能訪問該業(yè)務(wù)。授權(quán)總是需要鑒權(quán)以確認(rèn)遠(yuǎn)端設(shè)備是正確的設(shè)備。
●需鑒權(quán)——在連接到應(yīng)用程序之前,遠(yuǎn)端設(shè)備必須接受鑒權(quán)。
●需加密——在允許訪問業(yè)務(wù)前必須切換到加密模式下。
3. 鏈路級安全參數(shù)
藍(lán)牙技術(shù)在應(yīng)用層和鏈路層上提供了安全措施。鏈路層采用的四種不同實體來保證安全。所有鏈路級的安全功能都是基于鏈路密鑰的概念實現(xiàn)的,鏈路密鑰是對應(yīng)每一對設(shè)備單獨存儲的一些128位的隨機數(shù)。
4. 密鑰管理
藍(lán)牙系統(tǒng)用于確保安全傳輸?shù)拿荑有幾種,其中最重要的密鑰是用于兩個藍(lán)牙設(shè)備之間鑒權(quán)的鏈路密鑰。加密密鑰可以由鏈路密鑰推算出來,這將確保數(shù)據(jù)包的安全,而且每次傳輸都會重新生成。最后還有PIN碼,用于設(shè)備之間互相識別。
鏈路密鑰:一共有四種可能存在的鏈路密鑰,所有鏈路密鑰都是128位的隨機數(shù),它們或者是臨時的或者是半永久性的。
加密密鑰由當(dāng)前的鏈路密鑰推算而來。每次需要加密密鑰時它會自動更換。之所以將加密密鑰與鑒權(quán)密鑰分離開,是因為可以使用較短的加密密鑰而不減弱鑒權(quán)過程的安全性。
藍(lán)牙安全碼通常稱為PIN(個人識別號碼),是一個由用戶選擇或固定的數(shù)字,長度可以為16個字節(jié),通常采用四位十進(jìn)制數(shù)。用戶在需要時可以改變它,這樣就增加了系統(tǒng)的安全性。另外,同時在兩個設(shè)備輸入PIN比其中一個使用固定的PIN要安全得多。事實上它是唯一的可信的用于生成密鑰的數(shù)據(jù),典型情況是四位十進(jìn)制PIN碼與其他變量結(jié)合生成鏈路密鑰和加密密鑰。
5. 加密算法
藍(lán)牙系統(tǒng)加密算法為數(shù)據(jù)包中的凈荷(即數(shù)據(jù)部分)加密,其核心部分是數(shù)據(jù)流密碼機E0,它包括凈荷密鑰生成器,密鑰流生成器,和加/解密模塊。由于密鑰長度從8比特到128比特不等,信息交互雙方必須通過協(xié)商確定密鑰長度。
有幾種加密模式可供使用,如果使用了單元密鑰或者聯(lián)合密鑰,廣播的數(shù)據(jù)流將不進(jìn)行加密。點對點的數(shù)據(jù)流可以加密也可以不加密。如果使用了主密鑰,則有三種可能的模式:
●加密模式1:不對任何進(jìn)行加密;
●加密模式2:廣播數(shù)據(jù)流不加密,點對點數(shù)據(jù)流用臨時密鑰Kmaste進(jìn)行加密;
●加密模式3:所有數(shù)據(jù)流均用臨時密鑰Kmaste進(jìn)行加密。
每個應(yīng)用程序?qū)γ荑長度有嚴(yán)格的限制,當(dāng)應(yīng)用程序發(fā)現(xiàn)協(xié)商后得到的密鑰長度與程序要求不符,就會廢棄協(xié)商的密鑰長度。這主要是為了防止惡意用戶通過協(xié)商過程減小應(yīng)用程序密鑰長度,以便對系統(tǒng)造成破壞。
6. 認(rèn)證機制
兩個設(shè)備第一次通信時,借助“結(jié)對”初始化過程生成一個共用的鏈路密鑰,結(jié)對過程要求用戶輸入16字節(jié)(或128位)PIN到兩個設(shè)備,根據(jù)藍(lán)牙技術(shù)標(biāo)準(zhǔn),結(jié)對過程如下:
●根據(jù)用戶輸入的PIN生成一個共用隨機數(shù)作為初始化密鑰,此密鑰只用一次,然后即被丟棄。
●在整個鑒權(quán)過程中,始終檢查PIN是否與結(jié)對設(shè)備相符。
●生成一個普通的128位隨機數(shù)鏈路密鑰,暫時儲存在結(jié)對的設(shè)備中。只要該鏈路密鑰儲存在雙方設(shè)備中,就不再需要重復(fù)結(jié)對過程,只需實現(xiàn)鑒權(quán)過程。
●基帶連接加密不需要用戶的輸入,當(dāng)成功鑒權(quán)并檢索到當(dāng)前鏈路密鑰后,鏈路密鑰會為每個通信會話生成一個新的加密密鑰,加密密鑰長度依據(jù)對安全等級而定,一般在8~128比特之間,最大的加密長度受硬件能力的限制。
為防止非授權(quán)用戶的攻擊,藍(lán)牙標(biāo)準(zhǔn)規(guī)定,如果認(rèn)證失敗,藍(lán)牙設(shè)備會推遲一段時間重新請求認(rèn)證,每增加一次認(rèn)證請求,推遲時間就會增加一倍,直到推遲時間達(dá)到最大值。同樣認(rèn)證請求成功后,推遲時間也相應(yīng)地成倍遞減,直到達(dá)到最小值。
7. 藍(lán)牙安全架構(gòu)
藍(lán)牙安全架構(gòu)可以實現(xiàn)對業(yè)務(wù)的選擇性訪問,藍(lán)牙安全架構(gòu)建立在L2CAP層之上,特別是RFCOMM層。其它協(xié)議層對藍(lán)牙架構(gòu)沒有什么特別的處理,它們可能有其自身的安全特征。藍(lán)牙安全架構(gòu)允許協(xié)議棧中的協(xié)議強化其安全策略,例如,L2CAP在無繩電話方面強化了藍(lán)牙安全策略,RFCOMM則是在撥號網(wǎng)絡(luò)方面強化了藍(lán)牙安全策略,OBEX在文件傳輸和同步應(yīng)用方面使用自己的安全策略。藍(lán)牙安全架構(gòu)提供了一個靈活的安全框架,此框架指出了何時涉及用戶的操作,下層協(xié)議層需要哪些動作來支持所需的安全檢查等。在藍(lán)牙系統(tǒng)中,安全架構(gòu)是建立在鏈路級安全特征之上的,一般的架構(gòu)如圖1所示,其中實線為“問詢”過程,虛線為“注冊”過程。
安全管理器是藍(lán)牙安全架構(gòu)中最重要的部分,負(fù)責(zé)存儲與業(yè)務(wù)和設(shè)備安全有關(guān)的信息,響應(yīng)來自協(xié)議或應(yīng)用程序的訪問要求,連接到應(yīng)用程序前加強鑒權(quán)和加密,初始化或處理來自用戶或者外部安全控制實體的輸入,在設(shè)備級建立信任連接等。
三、藍(lán)牙安全技術(shù)存在的問題
用戶隱私:由于藍(lán)牙設(shè)備內(nèi)的藍(lán)牙地址具有全球唯一性,一旦這個地址與某用戶相關(guān)聯(lián),他的行動都可以被記錄,所以隱私就得不到保障。
PIN問題:為了初始化一個安全連接,兩個藍(lán)牙設(shè)備必須輸入相同的PIN碼。PIN是唯一的可信的用于生成密鑰的數(shù)據(jù),鏈路密鑰和加密密鑰都與它有關(guān)。用戶有可能將其存在設(shè)備上,或者輸入過于簡單,所以PIN易受到攻擊,解決的方法是使用較長的PIN,或者使用密鑰變更系統(tǒng)。
鏈路密鑰:鑒權(quán)和加密都是基于雙方共享的鏈路密鑰,這樣,某一設(shè)備很可能利用早就得到鏈路密鑰以及一個偽藍(lán)牙地址計算出加密密鑰,從而監(jiān)聽數(shù)據(jù)流。雖然這種攻擊需要花一些功夫,但貝爾實驗室已證實了其可能性。
藍(lán)牙技術(shù)把眾多的移動設(shè)備連接成網(wǎng)絡(luò),有著廣闊的應(yīng)用前景。它的底層協(xié)議棧是其技術(shù)的核心,一個個誘人的產(chǎn)品技術(shù)標(biāo)準(zhǔn)就建筑在這些底層標(biāo)準(zhǔn)上,而這些都需要安全機制的保證。隨著藍(lán)牙技術(shù)的逐步成功,它將擴展為更高的無線通信標(biāo)準(zhǔn),使藍(lán)牙技術(shù)具有蓬勃的生命力。
----《通信世界》