摘 要
藍牙是當下流行的短距離通信技術,藍牙標準中的配對機制可以在主從設備之間快速建立連接,連接建立以后可以避免第三方的竊聽和篡改。為了解決藍牙技術在工業物聯網中的安全應用問題,首先分析了藍牙協議的安全機制,其次分析工業物聯網應用場景對藍牙通信的安全需求,并研究現有藍牙安全機制與工業物聯網藍牙需求的差異。最后提出了適用于工業物聯網終端的藍牙安全方案,可以實現基于合法身份的、分布式的鑒權及接入控制功能。
內容目錄:
0 引 言
1 藍牙技術安全概述
1.1 藍牙安全版本
1.2 低功耗藍牙安全
1.3 典型配對流程分析
2 工業物聯網藍牙應用場景
3 工業物聯網藍牙模組安全研究
3.1 工業物聯網藍牙風險
3.2 工業物聯網藍牙方案
4 結 語
?0??藍牙技術安全概述
藍牙技術是一種工作在 2.4 GHz ISM 免授權頻段的短距離無線個人局域網(Wireless Personal Area Network,WPAN)技術,目前廣泛應用于各類個人智能設備中,可實現固定設備與移動設備之間的數據交換功能。藍牙標準在信息安全方面依靠配對機制可以在主從設備之間快速建立連接,連接建立以后可以避免第三方的竊聽和篡改。如今,藍牙已經成為多種消費電子產品的標配,同時,藍牙技術被應用于各類工業物聯網終端中。工業物聯網場景對信息安全的要求遠高于消費領域 [1],因此,藍牙技術信息安全也成為工業物聯網應用必須研究的問題。本文針對藍牙技術的安全機制進行研究,分析了藍牙協議的安全防護機制與工業物聯網場景的安全需求差別。本文在兼容藍牙安全機制整體框架的基礎上,應用國密標識密碼算法,實現了基于身份的藍牙分布式接入控制方案,為藍牙技術在工業物聯網領域的安全應用和標準化提供了解決思路。
?1??藍牙技術安全概述
藍牙安全技術隨著藍牙版本的演進而變化,各版本的藍牙在安全方案中又細分為不同的安全模式和操作方法。
1.1 藍牙安全版本
藍牙技術標準由藍牙技術聯盟(Bluetooth Special Interest Group,SIG)管理,目前最新版本為藍牙 5.1。藍牙各版本的安全機制不盡相同, 一般將藍牙 3.0 及其之前版本稱為傳統藍牙。
2010 年藍牙推出 4.0 版本,藍牙 4.0 及其以后的版本稱為低功耗藍牙(Low Energy,LE),傳統藍牙與低功耗藍牙的安全機制在安全算法、密鑰體系上存在較大差異。低功耗藍牙與傳統藍牙相比在安全算法強度和隱私特性上有較大提升 [2],目前,在主流終端中常以低功耗藍牙應用為主,因此,本文以低功耗藍牙作為研究對象。
1.2 低功耗藍牙安全
藍牙安全的應用場景設定為兩個互不信任的藍牙設備,在操作人員的控制下,可以快速、簡單地建立連接,連接通道可以防止中間人攻擊、防止空口報文被竊聽和篡改 [3]。藍牙安全機制包括配對、綁定、設備鑒權、加密和完整性保護 5 個安全流程。在藍牙協議棧中,與藍牙安全強相關的模塊為 SM(安全管理)和鏈路層。其中 SM 負責配對、綁定和鑒權的流程管理,并在上述流程中生成一系列的過程密鑰;鏈路層負責接收 SM 的指令,按照 SM 指令和密鑰進行數據的加解密、完整性保護的封裝操作。
配對環節是低功耗藍牙安全的關鍵環節, 兩個藍牙設備只有在完成配對后才能進行通信。由于藍牙版本的差異,低功耗藍牙配對分為傳統模式和安全連接模式兩種模式。
配對環節分為 3 個階段,如圖 1 所示 。第一階段,配對雙方通過協商消息進行協商, 最終確定采用傳統模式或者安全連接模式。第二階段,根據第一階段的協商結果進行簡單的可選擇的認證,并生成鏈路密鑰。第三階段, 采用第二階段生成的鏈路密鑰進行會話密鑰的分散派生。完成配對后,配對雙方將一個長期密鑰(Long-Term Key,LTK)存儲在 Flash 中, 此后這兩個設備可以省略配對過程,直接采用LTK 進行會話密鑰的生成。兩個設備完成 LTK 共享后,稱為兩個設備已經綁定。
每種配對模式,均可采用多種密鑰協商方式,協商方式的選擇依據藍牙設備的安全需求及設備的輸入 / 輸出能力。
藍牙設備的輸入能力包括無輸入、YES/ NO、鍵盤輸入 3 種。無輸入指設備沒有任何的人機交互輸入接口。YES/NO 指設備允許操作員進行 YES 或者 NO 的選擇輸入,比如一個藍牙耳機有一個按鍵,操作員按下按鍵表示YES,操作員不按表示 NO。鍵盤輸入指設備具備數字鍵盤類輸入能力,可以是硬件或者軟件鍵盤。
藍牙設備的輸出能力包括無輸出和數字輸出兩種。無輸出指藍牙設備不具備操作員肉眼可見的顯示和指示能力,比如藍牙鼠標沒有任何顯示和指示能力。數字輸出能力指藍牙設備具備數字顯示的能力,比如帶屏幕的藍牙設備。綜上所述,每個設備的輸入 / 輸出能力一共包含了 6 種情況,詳見表 1。
表 1 輸入 / 輸出能力表
圖 1 配對環節流程框架
傳統模式分為 3 種協商方式,安全連接模式分為 4 種協商方式,因此,低功耗藍牙安全具有 7 種配對方式,如圖 2 所示。
(1)Just Work:該方式適用于配對的一方沒有任何的輸入能力和顯示能力。該方式無認證能力,無中間人攻擊抵御能力。
圖 2 低功耗藍牙配對分類
(2)密碼輸入:該方式要求一方具備數字輸入能力,另一方具備顯示能力或數字輸入能力。
(3)帶外安全:帶外安全即 OOB(Out of Band,OOB)方式,要求通信雙方都具備藍牙通道以外的安全通信方式,比如 NFC(Near Field Communication,NFC),帶外 NFC 用來傳輸配對的機密信元。配對方式為操作人員操作兩個待連接設備進行 NFC 觸碰通信,從而觸發藍牙配對。
(4)數字比較:該方式要求一方具備 YES/ NO 的輸入能力和顯示能力,另一方具備數字輸入能力和顯示能力。
1.3 典型配對流程分析
上述各種配對方式的流程既有不同點,又有共同點。本文選擇一種較為安全的方式,傳統模式—密碼輸入協商方式進行詳細分析。
在密碼輸入方式的應用場景中,操作員在兩個設備上分別操作,確保兩端設備共享一個6 位十進制的認證密碼 ra 和 rb,如果 ra=rb 則認證成功,否則認證失敗。其流程如圖 3 所示 [5]。
(1)步驟 1,該階段主、從設備完成了配對模式、協商方式的協商。
(2)步驟 2,主、從設備分別生成自己的隨機數 Mrand 和 Srand,隨機數將參與鑒權計算, 以確保在配對過程中能夠防止重放攻擊。
(3)步驟 3,操作人員通過對主、從設備的正確操作,確保兩端配對臨時密鑰 TK 的賦值相同,即 TKA=ra=TKB=rb。比如,設備 A 顯示輸出一個 6 位數字 ra,操作員將該數字通過鍵盤輸入設備 B 中。操作人員需要保證 ra 和 rb 是相同的,以便后續認證流程可以成功。
圖 3 傳統模式—密碼輸入配對模式
(4)步驟 4a,主設備 A 計算生成 Mconfirm 值。Mconfirm 是以 TKA=ra 為密鑰的加密運算結果,被加密消息包括步驟 1 的協商消息、步驟2a 生成的隨機數 Mrand 及雙方藍牙 MAC 地址信息。
步驟 4b,從設備 B 計算生成 Sconfrim 值。Sconfirm 是以 TKB=rb 為密鑰的加密運算結果, 被加密消息包括步驟 1 的協商消息、步驟 2b 生成的隨機數 Srand 及雙方藍牙 MAC 地址信息。
(5)步驟 5,主設備 A 將 Mconfirm 值發送給設備 B。
(6)步驟 6,從設備 B 將 Sconfirm 值發送給設備 A。
(7)步驟 7,主設備 A 將自己生成的隨機數 Mrand 發送給設備 B。
(8)步驟 8,設備 B 用收到的 Mrand 和操作人員輸入的 rb,驗證收到的 Mconfirm 值是否正確。驗證相同,則繼續配對流程,否則配對失敗。
(9)步驟 9,設備 B 將自己生成的隨機數Srand 發送給設備 A。
(10)步驟 10, 設備 A 用收到的 Srand 和操作員的輸入 ra,驗證收到的 Sconfirm 值是否正確。驗證相同,則配對驗證完成,進入密鑰生成流程。
上述流程中的加密流程引入了隨機數和共享臨時密鑰 TK,可以很好地保護后續密鑰協商的機密性,并可以防御重放攻擊。
從上述配對的流程可知,配對過程中需要存在一個操作人員,可以同時對兩個配對設備進行操作,并確保雙方的 TK 賦值相同。
藍牙其他帶認證功能的協商方式——數字比較和帶外安全,同樣需要操作人員的判斷和操作。數字比較需要操作人員對比配對雙方的顯示數字,做出判斷后進行連接確認。而帶外安全(以 NFC 帶外為例)需要操作人員對配對雙方進行觸碰操作。各種場景都要求存在操作人員進行人為的輸入操作或者判斷。Just Work雖然簡化了操作,但是不具備認證功能,其安全等級最低。
藍牙依靠操作人員的配對流程和相應的安全機制,可以有效應對個人域消費電子場景的安全需求,卻難以滿足無人值守(或無人操作) 的工業物聯網場景。
?2??工業物聯網藍牙應用場景
具有藍牙需求的工業物聯網終端種類眾多, 在兩個工業物聯網終端通過藍牙進行通信時, 通常通信雙方至少有一方處于無人值守的狀態, 常見的通信場景包括:
(1)物聯設備之間的數據通信。比如各類傳感設備和傳感設備網關之間的通信。
(2)手持設備與物聯設備之間的通信。此場景多為巡檢或操作人員手持巡檢設備與無人值守的物聯網終端進行短距離通信。
在上述場景中,處于無人值守的藍牙物聯網終端需要對嘗試連接的對端藍牙設備進行身份驗證,以便進行藍牙通信的接入控制,才能保障物聯設備本體安全及數據安全,工業物聯網藍牙的應用場景及安全需求與藍牙協議側重的個人域消費電子場景有如表 2 所示的差異。
表 2 工業物聯網藍牙與消費藍牙安全差異
無人值守工業物聯網終端的藍牙模塊是否允許對端藍牙配對連接,應該是基于對端藍牙設備是否擁有業主運維部門的授權,而不是現場人員的操作意愿,這是工業物聯網場景與消費藍牙的重要區別。
藍牙通信早期版本的拓撲結構為短距離點對點方式,但是隨著藍牙技術的發展,藍牙 5.1 已經達到 300 m 覆蓋,并且可以支持 IPv6 星型組網和 Mesh 組網,其組網能力和覆蓋能力已經達到了WiFi(無線局域網)水平。藍牙組網能力及覆蓋能力的增強為藍牙安全接入帶來了新的挑戰。在工業物聯網終端場景下,為了防止無關人員和惡意攻擊者通過藍牙連接工業物聯網終端,工業物聯網藍牙應具備基于可信身份的分布式鑒權能力。
?3??工業物聯網藍牙模組安全研究
工業物聯網終端對藍牙通信的需求日益強烈,亟需研究適應工業物聯網場景的藍牙安全機制及產品。
3.1 工業物聯網藍牙風險
工業物聯網終端藍牙如果采用藍牙協議內生的配對模式,即依靠操作人員主觀操作進行接入控制,將給工業物聯網終端帶來潛在的風險。攻擊者可以通過很低的成本搭建“無線公網 + 藍牙”的攻擊硬件,輕易地進行藍牙通信層連接,進而對工業物聯網終端和應用層協議進行持續的攻擊嘗試,如圖 4 所示。
圖 4 遠程藍牙攻擊模型
《CNNVD 關于多個藍牙協議安全漏洞情況的通報》[6] 指出,藍牙各版本都存在一些安全漏洞,絕大多數漏洞在新版本會被修復,但是也存在各版本共存的一些脆弱點,包括:
(1)連接密鑰的存儲不當:如果連接密鑰的存儲沒有訪問控制機制,可能會被非法讀取或修改,從而影響連接的安全性。
(2)偽隨機數安全:藍牙安全需要大量的隨機數參與安全運算,如果隨機數發生器安全性不足將會影響藍牙的安全。
本文同時指出藍牙進程在所有操作系統都具有最高權限,攻擊者如果成功控制藍牙模塊, 將會對整個物聯網終端的信息安全產生影響。
3.2 工業物聯網藍牙方案
國密 SM9 算法是一種基于標識的非對稱密碼算法,該算法可以實現以設備的 ID 為公鑰,避免了公鑰的驗證步驟 ,非常適合分布式設備的互相認證。采用支持 SM9 算法的安全芯片與藍牙芯片進行合封或集成,形成安全藍牙模塊, 可以解決藍牙技術在工業物聯網場景的接入安全問題。
工業物聯網業主負責搭建基于標識算法的服務器,進行安全藍牙模塊的密鑰發行,從而實現系統內的藍牙互信關系,相關流程如圖 5 所示:
(1)步驟 1,藍牙設備運營方通過身份標識算法(SM9)密鑰管理服務器進行基于身份的密鑰管理和發行。服務器根據藍牙芯片的 MAC 地址作為對應安全芯片的身份標識,進行密鑰初始化。
(2)步驟 2a,安全芯片 A 的初始化參數包括加密主公密鑰 P、加密私鑰 deA 和身份標識 MAC-A;步驟 2b,安全芯片 B 的初始化參數包括加密主公密鑰 P、加密私鑰 deB 和身份標識MAC-B。
圖 5 基于標識的身份鑒權機制
(3)步驟 3,根據藍牙協議流程,雙方在連接發現階段會互相獲得對方的藍牙 MAC 地址。
(4)步驟 4,雙方設置 SM9 密鑰交換協議參數。安全芯片 A 設置自身標識為 MAC-A,設置對方標識為 MAC-B;安全芯片 B 設置自身標識為 MAC-B,設置對方標識為 MAC-A。
(5)步驟 5,雙方安全芯片以藍牙鏈路層為通道,以步驟 4 設置的參數啟動 SM9 密鑰交換流程。如果協商認證失敗,則藍牙配對流程失敗。
(6)步驟 6,如果協商成功,雙方則會產生相同的共享密鑰 SKA=SKB。安全芯片 A 將密鑰協商結果 SKA 發送給藍牙芯片 A;安全芯片 B 將密鑰協商結果 SKB 發送給藍牙芯片B。SM9 密鑰交換協議保障了 SKA 與 SKB 的機密性。
(7)步驟 7,雙方藍牙啟動傳統配對模式。藍牙芯片 A 將 SKA 賦值給配對臨時密鑰TKA,藍牙芯片 B 將 SKB 賦值給配對臨時密鑰TKB。TKA=TKB=SKA=SKB 作為配對臨時密鑰, 確保了配對流程可以校驗成功。
(8)步驟 8,藍牙 A 與藍牙 B 通過各自的TK 值進行后續的配對流程,后續流程如圖 3 步驟 4a/4b。
安全藍牙模組中預制標識密碼算法密鑰, 巧妙地采用藍牙 MAC 地址作為標識算法的公鑰,將標識信息的交換與藍牙報文地址緊密地耦合,既減少了交互流程,又增強了安全性。基于 MAC 地址的標識認證流程,可以讓藍牙模組支持基于合法身份的分布式鑒權,進而實施接入控制,可以有效解決基于操作人員的主觀意識進行接入認證的問題。
基于標識密碼算法可以完美解決分布式的終端間、離線狀態的相互認證問題。傳統的對稱密碼算法在工業物聯網中應用較為廣泛,比如電網的計量系統,其密鑰分散采用自上而下的分散方式,終端側密鑰一般根據服務側根密鑰與終端 ID 分散而來,適用于服務器同終端之間一對多的認證與加密,難以實現分布式終端間的互認證。利用數字證書技術解決分布式的互信也存在很多困難,比如證書的成本問題及證書的離線驗證問題,數字證書技術公鑰為隨機數,無法使用特定的藍牙 MAC 地址作為公鑰。
支持標識密碼算法的安全芯片承載標識算法運算及真隨機數生成,最終為藍牙配對過程提供 TK 密鑰共享服務,方案并未更改藍牙協議的安全框架,因此降低了對標準藍牙芯片內核的改動。標識算法安全模組一般都具備安全存儲功能,不但可以保證預制密鑰的安全,也可以為藍牙配對流程后續產生的連接密鑰提供安全的存儲環境和訪問控制機制。
?4??結 語
藍牙技術在無線個人域通信領域得到廣泛應用,產業鏈蓬勃發展,芯片成本不斷下降, 可以有效解決工業物聯網終端的短距離通信需求。本文首先分析了藍牙標準的安全機制及應用場景;其次分析了工業物聯網場景對短距離無線通信的安全需求,解析了藍牙安全機制與工業物聯網通信安全需求之間的差異;最后結合國密標識安全算法,為藍牙基于可信身份的分布式、離線鑒權提出了可行的方案。
本文的研究成果已經在國家電網配電終端與巡檢掌機間試點應用,可為無人值守的配電終端與巡檢掌機提供安全的藍牙通信通道。本方案也可適用于其他無人值守的工業物聯網終端的藍牙應用場景,可以為行業用戶藍牙技術的安全應用規范和技術標準提供參考。
文獻引用格式:李延 , 耿震磊 , 袁艷芳 , 等. 工業物聯網藍牙安全及基于標識算法的分布式鑒權技術研究 [J]. 信息安全與通信保密 ,2021(10):82-91.
作者簡介 >>>
李 延,學士, 工程師,主要研究方向為信息安全技術及應用研發;
耿震磊,學士, 工程師,主要研究方向為信息安全技術及應用研發;袁艷芳,碩士,高級工程師, 主要研究方向為信息安全技術及應用開發;張 磊,碩士,工程師,主要研究方向為信息安全技術及應用開發;楊 峰,學士,工程師,主要研究方向為信息安全技術及應用研發。
選自《通信技術》2021年第10期(為便于排版,已省去原文參考文獻)
來源:信息安全與通信保密雜志社
版權所有:鄭州三中網安科技有限公司 豫ICP備2020036495號-1 ?? | 豫公網安備 41019702002241號 | 站點地圖 | 人才招聘 | 聯系我們 |