藍牙配對:配對特性交換(Pairing Feature Exchange)
藍牙(Bluetooth?)核心規(guī)格中有三大主要架構(gòu)層:控制器、主機和應(yīng)用。主機層中有一個為配對和密鑰分配定義方法和協(xié)議的安全管理器模塊、相應(yīng)的安全工具箱、以及定義配對指令框架形式、框架架構(gòu)和超時限制的安全管理器協(xié)議。安全管理器采用密鑰分配的方式執(zhí)行無線電通訊中的身份和加密功能。
配對以建立密鑰,然后就能用密鑰來加密鏈路。然后執(zhí)行傳輸特定的(transport specific)密鑰分配來分享密鑰。密鑰可用來加密日后的重新連接、驗證簽名數(shù)據(jù)、或執(zhí)行隨機地址解析。總的來說配對有三個階段:
第一階段:配對特性交換
第二階段(低功耗傳統(tǒng)配對):生成短期密鑰(Short Term Key,簡稱STK)
(低功耗安全連結(jié)):生成長期密鑰(Long Term Key,簡稱LTK)
第三階段:傳輸特定的密鑰分配
大多數(shù)讀者可能未必了解低功耗傳統(tǒng)配對和低功耗安全連接。低功耗(Low Energy,簡稱LE)是藍牙規(guī)格中藍牙4.0及以上版本的主要特性之一。藍牙4.2規(guī)格為低功耗物理傳輸添加了安全連接特性,升級了配對功能,在藍牙低功耗物理傳輸中采用美國聯(lián)邦信息處理(FIPS)許可的算法(AES-CMAC和P-256 橢圓曲線)。為了區(qū)別安全連接與藍牙4.0和4.1規(guī)格中定義的低功耗配對,我們將后者成為低功耗傳統(tǒng)配對。圖1是傳統(tǒng)配對和安全連接都適用的配對流程圖。
圖1:配對流程圖
在這一篇中,我們主要討論第一階段,即配對特性交換。配對就是安全特性的交換,包括輸入/輸出(IO)功能、對于中間人保護的要求等。兩臺設(shè)備間配對信息的交換是通過配對請求(PairingRequest)和配對響應(yīng)(PairingResponse)數(shù)據(jù)包實現(xiàn)的。這兩種信息的內(nèi)容請參考表1:配對請求/響應(yīng)。
表1 配對請求/響應(yīng)
“代碼”
IO 功能
IO 即為輸入/輸出,IO功能結(jié)合在一起可生成這一字段的值。
對于輸入功能來說,可能為“無輸入”、“是/否”或“鍵盤”,詳情如下:
對于輸出功能來說,可能為“無輸出”或“數(shù)字輸出”,詳情如下:
將輸入輸出功能結(jié)合在一起之后,就有了以下矩陣,定義了藍牙設(shè)備應(yīng)有的IO功能。
1 沒有配對算法可以使用“是/否”的輸入和“無輸出”,因此其IO功能結(jié)果為“NoInputNoOutput”。
從以上矩陣中能大致了解相應(yīng)的IO功能,并從下表中選擇合適的值,置入配對請求/響應(yīng)數(shù)據(jù)包。
OOBDF(OOBData Flag)
OOB即 Out-of-Band的縮寫,意為“帶外”,采用外部通信方法交換一些配對過程中使用的信息。OOB媒體可能是任何一種能夠傳輸相應(yīng)信息的其他無線通信標(biāo)準,如NFC或二維碼。
BF(Bonding Flags)
綁定(Bonding)是配對發(fā)生之后的長期密鑰交換,并將這些密鑰儲存起來以供日后使用——即在設(shè)備間創(chuàng)建永久的安全連結(jié)。配對機制是綁定的前提。
“MITM”
MITM是“Man-In-The-Middle(中間人)”。這一字段是1比特位的標(biāo)識,如果設(shè)備需要MITM保護,則設(shè)置為1。本文主要著重于配對特性交換,如果您對MITM感興趣,請參考藍牙核心規(guī)范4.2版本第一卷中A部分的5.2.3。
“SC”
SC 字段是1比特位的標(biāo)識,設(shè)置為1,以請求低功耗安全連接配對。可能的配對機制結(jié)果是:如果兩臺設(shè)備均支持低功耗安全連接,則采用低功耗安全連接;否則采用低功耗傳統(tǒng)連接。因此這一標(biāo)識是決定第二階段配對方法的一項指標(biāo)。
“KC”
按鍵字段是1比特位的標(biāo)識,只用于萬能鑰匙進入?yún)f(xié)議,在其他協(xié)議中可忽略。萬能鑰匙進入是傳統(tǒng)配對和安全連接的典型配對方法。這部分在下一篇博文中會進行討論。
“最大加密密鑰規(guī)!
最大密鑰規(guī)模范圍為7-16個八位字節(jié)。
“發(fā)起者密鑰分配”& “響應(yīng)者密鑰分配”
這兩個字段的定義如下,具體在后續(xù)的系列博文中會展開討論。
當(dāng)配對特性的交換開始之后,發(fā)起者和響應(yīng)者會通過配對請求和響應(yīng)來交換彼此的配對特性信息。有了這些信息,發(fā)起者和響應(yīng)者就能確認對方的I/O功能(這是傳統(tǒng)配對和安全連結(jié)的配對機制所需的),然后選擇配對方法——直接運行、萬能鑰匙進入、數(shù)值比較或帶外,然后進入第二階段。
編輯:admin 最后修改時間:2017-09-05