配對是指“Master和Slave通過協商確立用于加(解)密的key的過程。指的是下圖中的第7部分。
Master和Slave有兩種可選的配對方法:legacy pairing和Secure Connections。從命名上看,前者是過去的方法,后者是新方法。選擇的依據是:當Master和Slave都支持Secure Connections(新方法)的時候,則使用Secure Connections。否則,使用legacy pairing。
配對過程如圖所示,主要由下面四部分完成:
用于交換雙方有關鑒權的需求(authentication requirements),以及雙方具有怎么的人機交互能力(IO capabilities)。其中最重要的是IO capabilities exchange。
IO的能力可以歸納為如下的六種:
NoInputNoOutput
DisplayOnly
NoInputNoOutput1
DisplayYesNo
KeyboardOnly
KeyboardDisplay
上述的IO能力決定了后續的鑒權方式。
兩個設備之間交換Public key。 一旦設備收到對端設備的公鑰,它就可以開始計算Diffie Hellman密鑰(DHKey)。耗時較多,應該盡早開始,以便用戶交互可以隱藏計算時間。 在步驟8之前不需要DHKey。
當 Public key的長度大于DM1包的長度時,要使用專門的PDU來進行數據發送。
通過SMP協議進行實際的配對操作,根據階段1 “Feature Exchange”的結果,有三種鑒權方法可選:
如果雙方都支持OOB鑒權,則選擇該方式(優先級最高)。由配對的雙方,在配對過程之外,額外的交互一些信息,并以這些信息為輸入,進行后續的配對操作。這些額外信息也稱作OOB(out of band),OOB的交互過程稱為OOB protocol。
(man-in-the-middle)authentication,由兩者方法:
Numeric Comparision方式鑒權:兩個設備自行協商生成6個數字,并顯示出來(要求兩個設備具有顯示能力),用戶比較后進行確認(一致,或者不一致,要求設備有簡單的yes or no的確認能力)。
Passkey Entry,通過輸入配對碼的方式鑒權。
Just Work,不需要用戶參與,兩個設備自行協商。
一旦設備完成鑒權過程,并且DHKey計算已完成,則檢查生成的DHKey值。 如果成功,則兩個設備都將完成向用戶顯示關于該過程的信息,否則控制器向主機發送消息以通知其停止顯示該信息。
當配對過程完成后,link key就可以從DHKey中計算得到,并用做后續交互過程的輸入(KEY + 明文 => 加密數據),通過HCI_Link_Key_Notification來通知host。
經過上述過程后,雙方已經產生了加密key,因而可以建立加密的連接。加密連接建立后,可以互相傳送一些私密的信息,例如Encryption Information、Identity Information、Identity Address Information等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。