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

2020-11-29 電子產品世界

  安全管理的簡介在藍牙SMP安全管理簡介這篇文章中有介紹。這裡將介紹BLE安全管理(SM)的詳細的配對的方法。

本文引用地址:http://www.eepw.com.cn/article/201710/366193.htm

  在配對過程開始時,第一階段就是雙方交換支持的配對特徵,如果有一方不支持配對,那就不會進行配對,如果都支持配對,那麼就會選擇合適的方法進行配對了。

  配對特徵

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

  - IO capability;

  - OOB;

  - authenTIcaTIon requirements;

  - key size;

  - key distribute。

  配對中產生的Key

  LE legacy pairing

  Temporary Key(TK):短暫存在的Key,128-bit,用來產生STK的;

  Short Term Key(STK):128-bit,會被用來加密配對後的鏈路。

  LE Secure ConnecTIons

  Long Term Key(LTK):128-bit,會被用來加密配對後的鏈路。

  authenTIcation

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

  key distribute

  對於key distribute,Initiator首先會將自己的需求發給Responder,表明自己想發哪些Key,而且想要對方發哪些Key。而Responder收到後,會回復確定最終雙方能夠分發的Key。這層協商就兩步,比較簡單。

  安全屬性-Security Properties

  分為如下幾類安全屬性:

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

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

  - Unauthenticated no MITM protection;

  - No security requirements;

  IO capabilities

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

  輸入能力

  輸入輸出的組合

 

  OOB Authentication Data

  OOB Auth Data是一個設備持有對端的Data,用來對對端設備進行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中較小那個;

  兩端設備要檢測max key len是否小於自己的min key len,小於的話pair失敗;

  產生的key到最終key有可能要裁剪。key一生成就是16 byte的key值,但是max key len小於16時,那就要縮減成len較小的resulting key再來分發了。

  配對算法

  在第一階段交換配對特徵後,這些特徵內容將會用來選擇確認用哪種Key生成方法。

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

  選擇Key生成的方法

  如果auth Req中MITM沒有,則說明不需要人參與中間,所以IO capabilities會被忽略,只用Just Works就OK了。

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

  Legacy pairing生成STK

 

  Use IO capabilities對應的具體算法

  上面兩個圖中都有Use IO capabilities一項,其實這一項又有細分:

  

  LE Legacy Pairing - Just Works

  Just Works方式不能抵抗竊聽者和中間人攻擊,只有在配對過程時沒有遭受攻擊,後面加密的鏈路的數據傳輸才是可信的。安全級別很低。

  LE Legacy Pairing - Passkey Entry

  這種方式通過輸入6位數字的方式來進行配對,生成STK。6位數是隨機產生的在000000到999999之間的數值,這個數值相當於一個TK,比如遠端顯示這個數字,需要在本地端輸入這個數字給本地設備與遠端配對。如輸入019655,那此時的臨時Key–TK是:0x00000000000000000000000000004CC7。

  Out of Band

  這種方式是通過BLE之外的,設備上的其他方式來獲取這個OOB data,比如通過IR紅外,或其餘的方式,因此對於藍牙竊聽者/攻擊者而言這個data的傳輸是不可見的了,因此會顯得要安全些。

  LE Legacy Pairing第二階段

  即是STK的生成,這一部分可簡述為以下步驟的實現:

  1. Initiator生成一128-bit隨機數Mrand,並使用這個Mrand結合一些其他的輸入,使用密碼工具箱中c1計算出一個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,並使用這個Srand結合一些其他的輸入,使用密碼工具箱中c1計算出一個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值通過Pairing Confirm包發送給Responder,而Responder也將其計算的Sconfirm值通過Pairing Confirm包發送給Initiator;

  Initiator收到Sconfirm後,再將Mrand值通過Pairing Random包發送給Responder;

  Responder收到Mrand值後計算它的Mconfirm值,再跟前面那個Initiator送過來的Mconfirm值進行比較,若不同說明配對失敗了。若相同,則Responder也會將它的Srand值通過Pairing Random包發送給Initiator;

  而Initiator也會計算收到的Srand值的Sconfirm值,並跟前面那個Responder送過來的Sconfirm值進行比較,若不同說明配對失敗了,若相同,繼續;

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

  STK = s1(TK, Srand, Mrand)

  縱觀以上各過程,其實就是兩者互送一個128-bit隨機數用來生成STK。竊聽者或攻擊者只要知道TK,這步驟是很容易破解的。

  LE Secure Connections的第二階段

  即LTK的生成,比Legacy pairing還是複雜很多的,這也是BT 4.2安全性要高很多的原因了。這部分這裡只簡單說明下內容,詳細的過程需對照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其實可以相互共享使用的,這樣可以省略掉一些重複配對,不過Key也有個換算的算法的,即密碼工具箱中的h6。

相關焦點

  • 藍牙配對第二篇:密鑰生成方法
    藍牙配對第二篇:密鑰生成方法 廠商供稿 發表於 2016-07-08 15:19:33   作者:藍牙亞太區技術項目經理 任凱   《藍牙配對第一篇:配對特性交換》談到了低功耗(Low Energy
  • 藍牙配對協議分析一
    藍牙配對協議分析一藍牙配對是整個藍牙連接過程中必不可少的環節,配對的目的是通過各種方法創建共享的鏈路密鑰(Link Key),該密鑰用於設備間連接時認證鑑權並加密相互交互的數據,使得藍牙技術更具有安全性。
  • 藍牙自動配對時警惕漏洞攻擊
    藍牙自動配對時警惕PIN碼漏洞攻擊配對是藍牙設備間身份認證的一個過程,只有成功配對的兩個設備才能連接並進行數據交互,所以配對是藍牙操作中必不可少的流程。在《藍牙配對協議分析一》和《藍牙配對協議分析二》中已經簡單介紹了配對的相關協議知識,還不清楚的同學可以先查看下這兩篇文章,回來再閱讀本篇分享可以更加地得心應手。
  • 藍牙新手看過來 藍牙配對時常見問題解答
    Bluetooth藍牙設備配對   出於安全考慮,兩個Bluetooth設備需先配對,然後才能交換數據   術語配對(有時也稱綁定)通常是指兩個設備相互交換保護密鑰   配對成功後,所有通過Bluetooth藍牙連結發送的信息均被加密並僅能到達經配對過程許可以接收此類信息的設備   在特定情況下,也可以忽略配對程序。
  • 手機藍牙是什麼及相關使用方法
    藍牙耳機怎麼連接手機1、打開手機「設置」。2、選擇「藍牙」選項並打開。3、長按藍牙耳機的開機鍵八秒,具體操作視耳機而定。4、進入耳機配對模式,以前連過則不用配對耳機型號。 手機上顯示出耳機型號,點擊後就可以成功連接。
  • 藍牙的使用,藍牙耳機怎麼連接手機,怎麼連接電腦
    藍牙耳機怎麼連接手機藍牙耳機由於,不同藍牙耳機不可避免的存在差異,所以可能操作不盡相同,但是主要步驟以及使用方法基本相同。1.打開手機藍牙開關,2.藍牙耳機開機,一般是長按幾秒,還有帶撥動開關的,需要撥動開關以開機。3.讓藍牙進入配對狀態,常見方法1.開機後,按住開關鍵觀察指示燈,一般為較快的交替閃爍,然後鬆開按鍵。2.關機狀態下,長按按鍵8秒左右進入快速頻閃狀態。3.長按按鍵,進入配對狀態有聲音提示。如果都無法進入配對狀態,你需要找您耳機對應型號的說明書,上面有準確的進入配對的狀態的操作方法。
  • Windows 10在測試藍牙配備新功能 讓藍牙設備輕鬆配對
    微軟已經開始測試Windows 10的新藍牙功能,該功能將在下一次重大更新中提供。Windows 10測試人員可以在本周早些時候發布的最新Windows 10 build 17093中嘗試更快,更方便的藍牙配對。
  • 大朋看看vr青春版藍牙手柄遙控器配對密碼密鑰教程分享
    許多第一次購買大朋看看vr青春版眼鏡的玩家在使用藍牙手柄遙控器的時候都會忘記遙控器的配對密碼,那麼大朋看看vr青春版手柄配對密碼是多少呢?下面小編就為各位VR玩家詳細介紹下大朋看看vr青春版手柄配對密碼及大朋看看vr青春版藍牙手柄遙控器密鑰。
  • NFC配對+雙單元 音樂魔枕藍牙音響體驗
    NFC是一個很好的接觸通訊功能,在接觸通過、接觸支付、接觸連接、接觸瀏覽、接觸下載等領域都能夠實現非常便利化應用,我們的藍牙音響加入了NFC功後能夠實現接觸配對功能,無疑讓配對連接也變得更加省事兒了。手機的普及,加入NFC配對功能的藍牙音響已經嶄露頭角,著名音響品牌耳神最近也推出了一款新型的NFC配對藍牙音響ER-152。
  • 因無線配對協議錯誤 谷歌宣布召回BLE版Titan安全密鑰
    Titan安全密鑰是由谷歌推出的一款防範網上誘騙的雙重身份驗證 (2FA) 設備,內置硬體晶片,其中包含由 Google 設計的固件,用於驗證密鑰的完整性。它主要為IT管理員這樣的高價值用戶提供妥善的安全保護,並防範帳號被盜用。
  • 藍牙耳機怎麼連接手機 藍牙耳機的介紹
    然後就可以搜索到我們藍牙耳機設備,我們選擇連接配對即可,連接配對過程中會要求我們輸入配對密碼來創建配對,此時我們任意輸入配對碼(0000)以創建並聯(「配對」)並將耳機連接至手機,初次配對好了話,後期就方便多了。【藍牙耳機怎麼連接手機】第一步:在使用藍牙耳機前,務必確認設備是否與之相兼容。這個一般在說明書中可以查到。
  • 皇冠車載藍牙怎麼連接
    【太平洋汽車網】首先開啟車載藍牙,打開手機的藍牙功能,並將手機藍牙設置為「所有人可見」或可被搜索或開放檢測,在手機中搜索藍牙設備,查找到之後選中進行配對連接,如提示需輸入密碼,完成配對後則連接成功。
  • 低功耗藍牙(BLE)出現重連接漏洞 超10億設備受到影響
    自2000年初推出以來,藍牙技術一直在幫助人們連接設備並無縫共享數據。但是藍牙技術安全嗎?普渡大學大學信息保障和安全教育與研究中心(CERIAS)的一組研究人員最近發現了一個漏洞,該漏洞會影響許多運行藍牙的物聯網(IoT)設備。低功耗藍牙(BLE)是用於移動和IoT設備的最廣泛使用的低能耗通信協議。
  • iOS設備無法正常使用藍牙怎麼辦?
    藍牙在日常生活中對於數據的傳輸還是很有幫助的,當用戶需要使用藍牙時卻發現該無法進行配對,那麼這時候我們應該如何操作呢? 首先前往「設置」,選擇「藍牙」,開啟「藍牙」。如果無法開啟「藍牙」,重新啟動 iPhone,然後嘗試再次配對和連接。
  • 運動藍牙耳機品牌排行榜,性價比最好的藍牙耳機
    那一定是動感的音樂和品質過硬的藍牙耳機。尤其是無線藍牙耳機,在運動時的搭配,優勢格外突出,不再受限於有線耳機的纏繞,以及運動狀態下耳機線材的搖擺問題。想要知道各位運動達人大多首選搭配哪些藍牙耳機嗎?圈內最新排行榜在此 一、NANK南卡N2 藍牙耳機
  • 藍牙耳機什麼牌子好、藍牙耳機國產品牌推薦
    最近幾年智慧型手機上取消3.5毫米耳機接孔的情況愈演愈烈,尤其是5G時代到來,使得機身內部的結構更加緊湊,所以想要在有限的機身上再塞入耳機孔,的確是一個極具挑戰性的事情,同時藍牙技術也得到了更進一步的發展,所以藍牙耳機已經成為了現在大家日常搭配手機最好的選擇。
  • SM總線控制器驅動
    版本: 8.1.1 正式版 *使用360手機助手能下載目標軟體,安裝更安全
  • 極致輕巧 耳朵知道:機樂堂藍牙耳機JR-T13評測
    機樂堂藍牙耳機JR-T13接下來我們來看一看機樂堂藍牙耳機JR-T13的主題——耳機。除了音質以外,現在的藍牙耳機另一個重要的功能就在於接聽電話,機樂堂藍牙耳機JR-T13內置了降噪通話模塊,支持DSP降噪通話,在通話的同時能夠充分地過濾外部噪音,保持不間斷的高清音質,即使身處嘈雜的環境也能夠讓對方清晰地聽到。
  • 藍牙耳機買什麼品牌好,高性價比藍牙耳機推薦
    對初次選購真無線藍牙耳機的用戶來說,面對市場琳琅滿目的產品不知道如何下手。那麼今天就為大家羅列幾個比較好用的藍牙耳機品牌吧。1、NANK南卡Lite Pro推薦理由:高通藍牙5.2,音質好,遊戲加速模式NANK南卡Lite Pro有黑白兩種配色,這款是耀目白。充電倉外觀設計非常新穎,採用了天然雕琢的鵝卵石設計,並採用鋼琴烤漆,拿在手裡光滑圓潤,握持感舒適。
  • 安卓源碼避坑指南4——搜索中配對新設備失敗
    測試環境:android-9車機系統(高通源碼)測試步驟:點擊藍牙搜索搜索過程中點擊搜索到的新設備進行配對連接測試現象:配對連接失敗乍一看,操作步驟很正常啊,和大夥平常連接的操作是不是一模一樣,怎麼會失敗呢?查看logcat如下:從紅色框圖明顯看出配對請求遠端設備的藍牙名字失敗,進而導致整個配對連接的過程失敗。