<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > > 設計應用 > 藍牙安全管理SM的配對方法

藍牙安全管理SM的配對方法

作者: 時(shí)間:2017-10-14 來(lái)源:網(wǎng)絡(luò ) 收藏

  安全管理的簡(jiǎn)介在安全管理簡(jiǎn)介這篇文章中有介紹。這里將介紹BLE安全管理(SM)的詳細的配對的方法。

本文引用地址:http://dyxdggzs.com/article/201710/366193.htm

  在配對過(guò)程開(kāi)始時(shí),第一階段就是雙方交換支持的配對特征,如果有一方不支持配對,那就不會(huì )進(jìn)行配對,如果都支持配對,那么就會(huì )選擇合適的方法進(jìn)行配對了。

  配對特征

  首先看下這個(gè)配對特征的內容都有哪些(前三個(gè)將決定配對第二階段的key生成方法):

  - IO capability;

  - OOB;

  - authenTIcaTIon requirements;

  - key size;

  - key distribute。

  配對中產(chǎn)生的Key

  LE legacy pairing

  Temporary Key(TK):短暫存在的Key,128-bit,用來(lái)產(chǎn)生STK的;

  Short Term Key(STK):128-bit,會(huì )被用來(lái)加密配對后的鏈路。

  LE Secure ConnecTIons

  Long Term Key(LTK):128-bit,會(huì )被用來(lái)加密配對后的鏈路。

  authenTIcation

  authentication requirements是GAP設定的,主要是對Bond類(lèi)型和MITM(man-in-the-middle)的要求。

  key distribute

  對于key distribute,Initiator首先會(huì )將自己的需求發(fā)給Responder,表明自己想發(fā)哪些Key,而且想要對方發(fā)哪些Key。而Responder收到后,會(huì )回復確定最終雙方能夠分發(fā)的Key。這層協(xié)商就兩步,比較簡(jiǎn)單。

  安全屬性-Security Properties

  分為如下幾類(lèi)安全屬性:

  - LE Secure Connections pairing(BT4.2才支持);

  - Authenticated MITM protection(有人參與干涉的安全,可以是人輸入密碼,或者通過(guò)OOB獲取密碼,對于Secure Connections還支持數字比較的方式);

  - Unauthenticated no MITM protection;

  - No security requirements;

  IO capabilities

  表明輸入,輸出的能力。輸入是按鍵、鍵盤(pán),輸出是顯示數字用的界面。

  輸入能力

  輸入輸出的組合

 

  OOB Authentication Data

  OOB Auth Data是一個(gè)設備持有對端的Data,用來(lái)對對端設備進(jìn)行authenticate。

  - LE legacy pairing:要兩端都持有對方OOB Auth Data才用OOB方法;

  - LE Secure Connections pairing:至少一端持有OOB Auth Data即可用OOB方法。

  加密Key Size

  加密Key Size都在都在7到16 bytes之間;

  兩端設備要選擇相互的max key len中較小那個(gè);

  兩端設備要檢測max key len是否小于自己的min key len,小于的話(huà)pair失??;

  產(chǎn)生的key到最終key有可能要裁剪。key一生成就是16 byte的key值,但是max key len小于16時(shí),那就要縮減成len較小的resulting key再來(lái)分發(fā)了。

  配對算法

  在第一階段交換配對特征后,這些特征內容將會(huì )用來(lái)選擇確認用哪種Key生成方法。

  比如Temperary Key的生成:如Just Works,Passkey Entry, OOB都可以用來(lái)生成TK,只是要先看設備是否具備這種能力。

  選擇Key生成的方法

  如果auth Req中MITM沒(méi)有,則說(shuō)明不需要人參與中間,所以IO capabilities會(huì )被忽略,只用Just Works就OK了。

  如果有OOB data,auth Req將可直接忽略,會(huì )直接選擇OOB的方式了。

  Legacy pairing生成STK

 

  Use IO capabilities對應的具體算法

  上面兩個(gè)圖中都有Use IO capabilities一項,其實(shí)這一項又有細分:

  

  LE Legacy Pairing - Just Works

  Just Works方式不能抵抗竊聽(tīng)者和中間人攻擊,只有在配對過(guò)程時(shí)沒(méi)有遭受攻擊,后面加密的鏈路的數據傳輸才是可信的。安全級別很低。

  LE Legacy Pairing - Passkey Entry

  這種方式通過(guò)輸入6位數字的方式來(lái)進(jìn)行配對,生成STK。6位數是隨機產(chǎn)生的在000000到999999之間的數值,這個(gè)數值相當于一個(gè)TK,比如遠端顯示這個(gè)數字,需要在本地端輸入這個(gè)數字給本地設備與遠端配對。如輸入019655,那此時(shí)的臨時(shí)Key–TK是:0x00000000000000000000000000004CC7。

  Out of Band

  這種方式是通過(guò)BLE之外的,設備上的其他方式來(lái)獲取這個(gè)OOB data,比如通過(guò)IR紅外,或其余的方式,因此對于竊聽(tīng)者/攻擊者而言這個(gè)data的傳輸是不可見(jiàn)的了,因此會(huì )顯得要安全些。

  LE Legacy Pairing第二階段

  即是STK的生成,這一部分可簡(jiǎn)述為以下步驟的實(shí)現:

  1. Initiator生成一128-bit隨機數Mrand,并使用這個(gè)Mrand結合一些其他的輸入,使用密碼工具箱中c1計算出一個(gè)128-bit的Mconfirm值:

  Mconfirm = c1(TK, Mrand,

  Pairing Request command, Pairing Response command,

  initiating device address type, initiating device address,

  responding device address type, responding device address)

  Responder也生成一128-bit隨機數Srand,并使用這個(gè)Srand結合一些其他的輸入,使用密碼工具箱中c1計算出一個(gè)128-bit的Sconfirm值:

  Sconfirm = c1(TK, Srand,

  Pairing Request command, Pairing Response command,

  initiating device address type, initiating device address,

  responding device address type, responding device address)

  然后Initiator將其計算的Mconfirm值通過(guò)Pairing Confirm包發(fā)送給Responder,而Responder也將其計算的Sconfirm值通過(guò)Pairing Confirm包發(fā)送給Initiator;

  Initiator收到Sconfirm后,再將Mrand值通過(guò)Pairing Random包發(fā)送給Responder;

  Responder收到Mrand值后計算它的Mconfirm值,再跟前面那個(gè)Initiator送過(guò)來(lái)的Mconfirm值進(jìn)行比較,若不同說(shuō)明配對失敗了。若相同,則Responder也會(huì )將它的Srand值通過(guò)Pairing Random包發(fā)送給Initiator;

  而Initiator也會(huì )計算收到的Srand值的Sconfirm值,并跟前面那個(gè)Responder送過(guò)來(lái)的Sconfirm值進(jìn)行比較,若不同說(shuō)明配對失敗了,若相同,繼續;

  Initiator計算STK,并通知其Controller允許鏈路加密:

  STK = s1(TK, Srand, Mrand)

  縱觀(guān)以上各過(guò)程,其實(shí)就是兩者互送一個(gè)128-bit隨機數用來(lái)生成STK。竊聽(tīng)者或攻擊者只要知道TK,這步驟是很容易破解的。

  LE Secure Connections的第二階段

  即LTK的生成,比Legacy pairing還是復雜很多的,這也是BT 4.2安全性要高很多的原因了。這部分這里只簡(jiǎn)單說(shuō)明下內容,詳細的過(guò)程需對照Spec的流程圖了。

  Public Key交換

  Authentication階段1-Just Works或Numeric Comparison

  Authentication階段1-Passkey Entry方式

  Authentication階段1-Out of Band方式

  Authentication階段2和LTK計算

  BR/EDR, LE交叉Key引用

  這部分是指雙模設備,且支持Secure Connections,配對Key其實(shí)可以相互共享使用的,這樣可以省略掉一些重復配對,不過(guò)Key也有個(gè)換算的算法的,即密碼工具箱中的h6。



關(guān)鍵詞: SMP 藍牙

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>