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

提交
查看更多評論
其他資訊
步進電機的控制原理及其單片機控制實現
嵌入式實時系統中跨平臺通信的實現
基于USB總線和89C51單片機的數據采集系統設計