溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

藍(lán)牙配對(duì)過(guò)程分析

發(fā)布時(shí)間:2020-06-25 20:09:14 來(lái)源:網(wǎng)絡(luò) 閱讀:23814 作者:三九感冒靈 欄目:系統(tǒng)運(yùn)維

1.概念

配對(duì)是指“Master和Slave通過(guò)協(xié)商確立用于加(解)密的key的過(guò)程。指的是下圖中的第7部分。
藍(lán)牙配對(duì)過(guò)程分析

2.配對(duì)方法

Master和Slave有兩種可選的配對(duì)方法:legacy pairing和Secure Connections。從命名上看,前者是過(guò)去的方法,后者是新方法。選擇的依據(jù)是:當(dāng)Master和Slave都支持Secure Connections(新方法)的時(shí)候,則使用Secure Connections。否則,使用legacy pairing。

3.配對(duì)過(guò)程

配對(duì)過(guò)程如圖所示,主要由下面四部分完成:
藍(lán)牙配對(duì)過(guò)程分析

3.1.Pairing Feature Exchange

用于交換雙方有關(guān)鑒權(quán)的需求(authentication requirements),以及雙方具有怎么的人機(jī)交互能力(IO capabilities)。其中最重要的是IO capabilities exchange。
藍(lán)牙配對(duì)過(guò)程分析
IO的能力可以歸納為如下的六種:
NoInputNoOutput
DisplayOnly
NoInputNoOutput1
DisplayYesNo
KeyboardOnly
KeyboardDisplay
上述的IO能力決定了后續(xù)的鑒權(quán)方式。

3.2.Public key exchange

兩個(gè)設(shè)備之間交換Public key。 一旦設(shè)備收到對(duì)端設(shè)備的公鑰,它就可以開(kāi)始計(jì)算Diffie Hellman密鑰(DHKey)。耗時(shí)較多,應(yīng)該盡早開(kāi)始,以便用戶(hù)交互可以隱藏計(jì)算時(shí)間。 在步驟8之前不需要DHKey。
當(dāng) Public key的長(zhǎng)度大于DM1包的長(zhǎng)度時(shí),要使用專(zhuān)門(mén)的PDU來(lái)進(jìn)行數(shù)據(jù)發(fā)送。
藍(lán)牙配對(duì)過(guò)程分析

3.3.Authentication

通過(guò)SMP協(xié)議進(jìn)行實(shí)際的配對(duì)操作,根據(jù)階段1 “Feature Exchange”的結(jié)果,有三種鑒權(quán)方法可選:

3.3.1.OOB鑒權(quán):

如果雙方都支持OOB鑒權(quán),則選擇該方式(優(yōu)先級(jí)最高)。由配對(duì)的雙方,在配對(duì)過(guò)程之外,額外的交互一些信息,并以這些信息為輸入,進(jìn)行后續(xù)的配對(duì)操作。這些額外信息也稱(chēng)作OOB(out of band),OOB的交互過(guò)程稱(chēng)為OOB protocol。
藍(lán)牙配對(duì)過(guò)程分析

3.3.2.MITM鑒權(quán):

(man-in-the-middle)authentication,由兩者方法:
Numeric Comparision方式鑒權(quán):兩個(gè)設(shè)備自行協(xié)商生成6個(gè)數(shù)字,并顯示出來(lái)(要求兩個(gè)設(shè)備具有顯示能力),用戶(hù)比較后進(jìn)行確認(rèn)(一致,或者不一致,要求設(shè)備有簡(jiǎn)單的yes or no的確認(rèn)能力)。
藍(lán)牙配對(duì)過(guò)程分析
Passkey Entry,通過(guò)輸入配對(duì)碼的方式鑒權(quán)。
藍(lán)牙配對(duì)過(guò)程分析

3.3.3.Just Work:

Just Work,不需要用戶(hù)參與,兩個(gè)設(shè)備自行協(xié)商。

3.4.DHKey Checks

一旦設(shè)備完成鑒權(quán)過(guò)程,并且DHKey計(jì)算已完成,則檢查生成的DHKey值。 如果成功,則兩個(gè)設(shè)備都將完成向用戶(hù)顯示關(guān)于該過(guò)程的信息,否則控制器向主機(jī)發(fā)送消息以通知其停止顯示該信息。
藍(lán)牙配對(duì)過(guò)程分析

當(dāng)配對(duì)過(guò)程完成后,link key就可以從DHKey中計(jì)算得到,并用做后續(xù)交互過(guò)程的輸入(KEY + 明文 => 加密數(shù)據(jù)),通過(guò)HCI_Link_Key_Notification來(lái)通知host。
藍(lán)牙配對(duì)過(guò)程分析

經(jīng)過(guò)上述過(guò)程后,雙方已經(jīng)產(chǎn)生了加密key,因而可以建立加密的連接。加密連接建立后,可以互相傳送一些私密的信息,例如Encryption Information、Identity Information、Identity Address Information等。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI