安全管理協議(SMP):配對流程、密鑰生成與防中間人攻擊——藍牙面試核心考點精解

一、SMP 核心知識點高頻考點解析

1.1 SMP 在藍牙安全體系中的定位

考點:SMP 的功能與協議棧位置

解析
SMP(Security Manager Protocol,安全管理協議)是藍牙核心規范中負責設備配對、密鑰生成與安全連接的關鍵協議,位于協議棧的?L2CAP 層之上,通過 HCI 接口與控制器交互。其核心目標是:?

  • 身份認證:驗證設備身份,防止中間人攻擊(MITM)

  • 密鑰生成:動態生成加密密鑰(STK/LTK)

  • 密鑰分發:安全傳輸IRK/CSRK等敏感數據

  • 安全升級:支持從Legacy Pairing到Secure Connections的演進

真題示例
問題:以下哪個協議負責藍牙設備的配對和密鑰生成?
A. L2CAP
B. SMP
C. GATT
D. SDP
答案:B(SMP 是藍牙安全管理的核心協議)

1.2 配對流程與核心階段

考點:配對的三個階段及關鍵交互

解析
SMP 配對分為三個核心階段:

階段 1:能力交換(Capability Exchange)

  • 交換參數:IO能力(5種類型)、OOB支持、認證要求
  • 決定配對方法:Just Works/Passkey/Numeric Comparison/OOB

大廠真題

華為2023校招真題:“當Initiator的IO能力為KeyboardOnly,Responder為DisplayOnly時,應使用哪種配對方法?”
答案:Passkey Entry(響應端顯示6位碼,發起端輸入)

階段2:認證與密鑰生成

①Legacy Pairing(藍牙4.1前)

②Secure Connections(藍牙4.2+)

核心改進

  • 橢圓曲線加密:使用P-256曲線生成DHKey

  • 雙向認證:Numeric Comparison提供可視化確認

  • 強密鑰:直接生成128位LTK,無需STK過渡

階段3:密鑰分發

分發密鑰類型

密鑰長度作用是否必選
LTK128-bit鏈路加密
IRK128-bit解析私有地址
CSRK128-bit數據簽名
EDIV+RAND64-bit快速重連

安全策略

  • AES-CCM加密:所有密鑰分發過程強制加密

  • 雙向確認:Key Distrib字段協商分發內容

  • 綁定存儲:成功分發后建立綁定關系

1.3 四大配對方法對比

方法MITM防護適用場景安全強度操作復雜度
Just Works×耳機/手環★☆☆☆☆零操作
Passkey Entry鍵盤+顯示設備★★★☆☆用戶輸入6位碼
Numeric Comparison手機/平板★★★★☆用戶確認數字
OOB支付設備/門禁★★★★★近場通信輔助

OPPO 2023真題:“智能門鎖與手機配對時,為何推薦OOB+Numeric Comparison組合?”
答案:OOB提供初始信任錨點,Numeric Comparison防中間人攻擊,雙重保障支付級安全

真題示例
問題:SMP 配對中,ECDH 算法的作用是?
A. 生成隨機數
B. 計算共享秘鑰
C. 驗證設備名稱
D. 壓縮傳輸數據
答案:B(ECDH 用于生成雙方的共享秘鑰)

1.4?密鑰類型與用途對比

考點:IRK/LTK/STK 的區別與應用場景

解析

密鑰類型全稱長度生成方式主要用途
IRK身份解析密鑰16 字節設備出廠預存或配對時生成設備綁定(存儲在安全數據庫)、簽名驗證
LTK長期密鑰7~16 字節配對時通過 ECDH 生成鏈路層加密(LL 層數據加密)
STK短期密鑰16 字節配對時臨時生成連接層完整性校驗(防止數據篡改)
CSRK證書簽名密鑰16 字節帶外數據(OOB)提供增強防中間人攻擊(僅安全模式 4)

真題示例
問題:以下哪個密鑰用于藍牙設備的長期綁定?
A. LTK
B. STK
C. IRK
D. CSRK
答案:C(IRK 是設備綁定的核心密鑰,存儲后可用于快速重連)

1.5?安全模式與配對方法

考點:安全模式 1/4 的區別及配對方法適用場景

解析

安全模式 1(傳統安全模式)

  • 特點:配對在 L2CAP 層進行,支持三種配對方法:
    1. Just Works:無用戶交互(風險高,適合低安全設備如耳機)。
    2. 數字比較:雙方顯示 6 位數字,用戶確認匹配(如智能手表配對)。
    3. 帶外數據(OOB):通過 NFC 等外帶通道傳輸密鑰(高安全場景)。
  • 防攻擊:不強制防中間人攻擊(MITM),需顯式啟用。
安全模式 4(LE 安全連接)
  • 特點:配對在鏈路層(LL)進行,強制使用橢圓曲線加密(ECDH),默認啟用 MITM 保護。
  • 配對方法:僅支持數字比較和 OOB,不支持 Just Works(提升安全性)。

真題示例
問題:以下哪種配對方法支持防中間人攻擊?
A. Just Works
B. 數字比較(安全模式 4)
C. 帶外數據(OOB)
D. B 和 C
答案:D(安全模式 4 的數字比較和 OOB 方法強制 MITM 保護)

1.6? 防中間人攻擊(MITM)機制

考點:MITM 保護的核心原理與驗證步驟

解析
SMP 通過以下步驟實現 MITM 保護(以數字比較為例):

  1. 生成簽名哈希(H):雙方用共享秘鑰(DHKey)和 IRK 計算哈希值 H。
  2. 用戶確認數字(X):計算 X = H 的低 6 位十進制數,用戶需在兩設備上看到相同 X。
  3. 隨機數校驗(R):交換隨機數 R 和 R',確保雙方未被中間人篡改數據。

真題示例
問題:SMP 如何防止中間人攻擊?(多選)
A. 使用橢圓曲線加密(ECDH)
B. 用戶確認配對碼(數字比較)
C. 驗證設備 IRK 簽名
D. 僅允許帶外數據配對
答案:ABC(ECDH 確保密鑰安全生成,數字比較和 IRK 簽名防止中間人偽造)

二、歷年真題深度解析

2.1 單選題:SMP 配對階段

題目:SMP 配對中,協商配對方法和加密算法是在哪一階段?(2024?高通嵌入式面試題)
A. 密鑰生成階段
B. 配對請求階段
C. 連接加密階段
D. 身份認證階段
答案:B
解析:在第一階段的Pairing RequestPairing Response中,雙方協商配對方法(如數字比較)、加密算法(AES-CCM)等參數。

2.2 多選題:安全模式區別

題目:以下關于藍牙安全模式的說法,正確的是?(藍牙技術認證考試)
A. 安全模式 1 支持 Just Works 配對
B. 安全模式 4 強制防中間人攻擊
C. 安全模式 1 的配對在鏈路層進行
D. 安全模式 4 僅支持 LE 設備
答案:ABD
解析:安全模式 1 的配對在 L2CAP 層進行,安全模式 4(LE 安全連接)僅適用于 BLE 設備,且強制 MITM 保護。

2.3 簡答題:密鑰生成流程

題目:簡述 SMP 生成 LTK 的步驟。(2023?華為硬件崗面試題)

參考答案

  1. ECDH 交換公鑰:發起方和響應方生成 ECDH 公鑰對,交換公鑰 A 和公鑰 B。
  2. 計算共享秘鑰(DHKey):雙方用對方公鑰和自身私鑰計算 DHKey。
  3. 生成臨時密鑰(LTK):通過 DHKey、隨機數 R 和設備地址,使用 AES-CCM 算法生成 LTK。
  4. 驗證 LTK:通過Pairing ConfirmPairing Random消息確保雙方 LTK 一致。

題目(配對方法選擇:當雙方設備均支持LE Secure Connections時,應優先采用哪種配對方法?(2023年字節跳動)

解析

?答案:優先使用LE Secure Connections配對方式,當OOB不可用時根據IO能力選擇Numeric Comparison或Passkey Entry。

題目(Secure Connections優勢:“對比Legacy Pairing,LE Secure Connections如何提升安全強度?”(蘋果2023)

技術對比

特性Legacy PairingSecure Connections
密鑰長度可變(7-16字節)固定128位
加密算法AES-CCMECDH+AES-CCM
MITM保護依賴用戶操作內置數字比較
密鑰類型STK過渡直接生成LTK
抗量子攻擊×△(P-256曲線)

答案:通過ECDH交換和固定128位LTK,避免TK弱密鑰問題

2.4 分析題:MITM 攻擊場景

題目:假設中間人截獲配對請求,如何通過 SMP 機制發現攻擊?

參考答案

  1. 簽名驗證失敗:中間人無法偽造合法設備的 IRK 簽名,導致Signature消息校驗失敗。
  2. 數字不匹配:若使用數字比較,雙方生成的 6 位數字 X 不同,用戶會拒絕配對。
  3. 隨機數篡改:中間人修改隨機數 R 或 R',導致雙方計算的 LTK 不一致,加密后數據無法解密。

題目(配對方法選擇:“運動手環(無顯示屏)與手機配對時,為何采用Just Works而非Passkey Entry?”(小米2022社招)

解題思路

  1. 分析IO能力:手環=NoInputNoOutput,手機=KeyboardDisplay

  2. 查配對矩陣:NoInputNoOutput+KeyboardDisplay → Just Works

  3. 安全權衡:手環無輸入輸出能力,無法進行Passkey交互

答案:受限于IO能力,強制使用Just Works

題目(密鑰分發錯誤):“設備綁定后重新連接失敗,抓包顯示Encryption Failed,可能原因是什么?”(華為2023)

故障樹分析

?解決方案

  1. 檢查兩端存儲的LTK是否一致

  2. 確認EDIV/RAND在重連時未變更

  3. 驗證Key Size≥7字節

2.5 應用題:設備綁定流程

題目:簡述藍牙設備綁定(Bonding)的作用及涉及的密鑰。(2024?蘋果嵌入式面經)

參考答案

作用

  1. 存儲設備身份密鑰(IRK),實現快速重連(無需重新配對)。
  2. 建立信任關系,后續連接可跳過復雜認證步驟。

涉及密鑰

  1. IRK:綁定后存儲在雙方安全數據庫,用于驗證設備身份。
  2. LTK/STK:綁定過程中生成,用于當前連接加密,可選擇是否存儲(按需)。

題目(密鑰長度要求:SMP協議規定的最小和最大加密密鑰長度分別是多少? (2024年騰訊)

解析

  • 核心規范V5.4明確要求:7字節(56位)至16字節(128位)
  • 常見陷阱:易混淆AES-128的128位與密鑰長度參數

答案:最小7字節(56位),最大16字節(128位)

題目(中間人防御:在BLE Secure Connections中,如何防御ECDH公鑰交換階段的中間人攻擊?(2022年華為)

解析

  1. 使用帶外(OOB)通道預先交換公鑰
  2. 數字比較法驗證公鑰指紋
  3. 結合MacKey進行消息認證

答案:通過OOB通道預先交換公鑰,并利用f6函數生成的校驗值進行雙向驗證。

三、考官最愛問的3個問題

1. Just Works真的不安全嗎?

無用戶交互場景(如傳感器網絡)是合理方案,配合后續加密傳輸可保障數據安全

2. Passkey Entry的6位碼如何轉換為128位TK?

*示例:019655 → 0x4CC7 → TK=0x0000...00004CC7*6

3. 綁定(Bonding)后為何還需要配對?

  • 密鑰過期:LTK超過存儲期限

  • 安全升級:從Just Works升級為MITM保護

  • 新服務授權:訪問更高安全等級服務

四、記憶技巧

4.1 核心概念速記法

  • 配對三階段:1.?協商(參數)→ 2.?生成(密鑰)→ 3.?加密(連接),聯想 “相親三步:聊需求→定關系→見家長”。
  • 密鑰用途
    • IRK:身份證(長期綁定,證明 “我是我”)。
    • LTK:房門鑰匙(臨時加密,當前連接可用)。
    • STK:監控密碼(校驗數據,防止篡改)。
  • 安全模式對比
    • 安全模式 1:傳統配對,可選安全等級(類似酒店門鎖,可刷卡或密碼)。
    • 安全模式 4:LE 專屬,強制高安全(類似銀行 U 盾,必須驗指紋)。

4.2 對比記憶表

配對方法用戶交互MITM 保護適用設備
Just Works可選耳機、音箱(低安全)
數字比較確認 6 位數字強制(安全模式 4)手表、智能家居(中安全)
帶外數據(OOB)NFC 觸碰等強制醫療設備、工業控制器(高安全)

SMP 是藍牙設備實現安全連接的核心協議,其設計融合了現代密碼學(ECDH/AES-CCM)和用戶交互安全(數字比較 / OOB)。掌握 SMP 需重點關注:

  1. 配對流程:三階段交互細節及關鍵消息(如Pairing Request/Confirm)。
  2. 密鑰體系:IRK/LTK/STK 的生成邏輯與應用場景。
  3. 安全增強:安全模式 4 的強制 MITM 保護機制和橢圓曲線算法的作用。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913750.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

U盤實現——U 盤類特殊命令

文章目錄 U 盤類特殊命令U 盤的命令封包命令階段數據階段狀態階段get max luninquiry(0x12)read format capacities(0x23)read capacity(0x25)mode sense(0x1a)test unit ready(0x00)read(10) 0x28write(10) 0x2aU 盤類特殊命令 U 盤的命令封包 命令階段 命令階段主要由主機通…

深度帖:瀏覽器的事件循環與JS異步

一、瀏覽器進程 早期的瀏覽器是單進程的,所有功能雜糅在一個進程中;現在的瀏覽器是多進程的,包含瀏覽器進程、網絡進程、渲染進程等等,每個進程負責的工作不同。瀏覽器進程:負責界面顯示(地址欄、書簽、歷史…

Linux網絡:UDP socket創建流程與簡單通信

本文介紹 UDP 服務端與客戶端 的創建流程&#xff0c;和相關的函數接口 核心流程 創建 socket → socket()填寫服務器地址信息 → sockaddr_in 結構體綁定地址和端口 → bind()接收并響應客戶端數據 → recvfrom() / sendto()socket() #include<sys/so…

windows內核研究(系統調用 1)

WindowsAPI函數的調用過程什么是WindowsApi&#xff1f;Windows API&#xff08;Application Programming Interface&#xff0c;應用程序編程接口&#xff09;是微軟為Windows操作系統提供的一套系統級編程接口&#xff0c;允許開發者與操作系統內核、硬件、系統服務等進行交互…

【前端】異步任務風控驗證與輪詢機制技術方案(通用筆記版)

一、背景場景 在某類生成任務中&#xff0c;例如用戶點擊“執行任務”按鈕后觸發一個較耗時的后端操作&#xff08;如生成報告、渲染圖像、轉碼視頻等&#xff09;&#xff0c;由于其調用了模型、渲染服務或需要較長處理時間&#xff0c;為了防止接口被頻繁惡意調用&#xff0c…

Vim 編輯器常用操作詳解(新手快速上手指南)

&#x1f4bb; Vim 編輯器常用操作詳解&#xff08;新手快速上手指南&#xff09;作者&#xff1a;Lixin 日期&#xff1a;2025-07-09 學習內容&#xff1a;Vim 編輯器基礎 常用快捷鍵 Xshell/Xftp連接 Linux基本操作 學習目標&#xff1a;掌握 Vim 的三種常用模式切換與基本…

OpenGL 生成深度圖與點云

文章目錄 一、簡介二、實現代碼三、實現效果一、簡介 這里基于OpenGL實現對一個Mesh對象深度圖的獲取,思路其實很簡單,直接通過glReadPixels函數獲取整個OpenGL中的深度緩沖數據即可;那么反過來我們如果有了這個深度圖之后,也可以基于每個像素點的深度值,反算出圖像中的深…

25春云曦期末考復現

Web 瘋狂星期四 <?php$tg1u$_GET[tg1u];if(!preg_match("/0|1|[3-9]|\~|\|\|\#|\\$|\%|\^|\&|\*|\&#xff08;|\&#xff09;|\-|\|\|\{|\[|\]|\}|\:|\|\"|\,|\<|\.|\>|\/|\?|\\\\|localeconv|pos|current|print|var|dump|getallheaders|get|define…

從Prompt到預訓練:掌握大模型核心技術的階梯式進化

本文較長&#xff0c;建議點贊收藏&#xff0c;以免遺失。更多AI大模型應用開發學習視頻及資料&#xff0c;盡在聚客AI學院。 在探討大模型&#xff08;LLM&#xff09;的四階段技術時&#xff0c;我們可以從Prompt Engineering&#xff08;提示工程&#xff09;、AI Agent&…

手機文件夾隱藏工具,一鍵保護隱私

軟件介紹 今天為大家推薦一款手機文件夾隱藏工具——Amarok&#xff0c;它能幫助用戶快速隱藏手機中的私密文件夾&#xff0c;保護個人隱私。 核心功能 Amarok主打文件夾隱藏功能&#xff0c;操作簡單便捷。需要注意的是&#xff0c;雖然軟件支持應用隱藏功能&#xff0…

day10-Redis面試篇

經過前幾天的學習&#xff0c;大家已經掌握了微服務相關技術的實際應用&#xff0c;能夠應對企業開發的要求了。不過大家都知道在IT領域往往都是面試造火箭&#xff0c;實際工作擰螺絲。為了更好的應對面試&#xff0c;讓大家能拿到更高的offer&#xff0c;我們接下來就講講“造…

Axure版本Element組件庫-免費版

Axure版本的Element組件庫基于Element UI/Plus設計規范開發&#xff0c;涵蓋了從基礎元素到復雜交互的全品類組件&#xff0c;能高效支撐各類Web原型設計&#xff0c;尤其適合后臺管理系統、企業級應用等場景。以下從核心類別展開詳細介紹&#xff1a; 鏈接地址 添加圖片注釋&a…

記一次JVM問題排查

今天遇到了1次OOM&#xff0c;導入萬條數據的Excel于是讓運維進行排查。正式環境顯示內存還有很多 于是我說讓運維加上參數 -XX:HeapDumpOnOutOfMemoryError&#xff0c;出現OOM的時候dump到文件中&#xff0c;將堆內存設置為4G&#xff0c;在Idea上進行測試于是讓運維在生產環…

快手Kwai Keye-VL多模態大模型模型架構、訓練策略、數據情況

快速看一下Kwai Keye-VL的技術報告&#xff0c; 模型架構 Keye-VL和經典的MLLM架構類似&#xff0c;由ViTMLPLLM組成。視覺側有兩點可以看看&#xff1a; 1、具有原生分辨率的視覺編碼器 提到&#xff0c;MLLMs使用預訓練的固定分辨率ViT作為視覺編碼器。然而&#xff0c;這…

前端-CSS-day2

目錄 1、后代選擇器 2、子代選擇器 3、并集選擇器 4、交集選擇器 5、偽類選擇器 6、超鏈接偽類 7、CSS特性-繼承性 8、CSS特性-層疊性 9、CSS特性-優先級 10、優先級-疊加計算 11、Emmet寫法 12、背景圖 13、背景圖平鋪方式 14、背景圖位置 15、背景圖縮放 16、…

米思齊2.0 3.0 mixly arduino 編程軟件下載安裝及詳情使用指南 導入庫文件方法 支持8266 esp32

一、米思齊軟件下載及安裝 1、 米思齊軟件下載 https://item.taobao.com/item.htm?id883253312209 2、軟件版本簡單說明&#xff1a; a、 Windows版本&#xff08;建議win10及以上系統使用&#xff09;&#xff1a; 一鍵更新完整版 2.8GB-3GB&#xff1a;下載后解壓即可使…

結構體指針:使用結構體指針訪問和修改結構體成員。

知識點結構體指針Employee *p; 保存結構體的地址&#xff1b;p->member 用箭頭運算符訪問或修改成員。數組與指針Employee *emps malloc(N * sizeof *emps); 動態創建結構體數組&#xff1b;p < emps N 與 p 配合遍歷。scanf 與數組退化p->name 是 char name[50] 的…

支持零樣本和少樣本的文本到語音48k star的配音工具:GPT-SoVITS-WebUI

支持零樣本和少樣本的文本到語音48k star的配音工具&#xff1a;GPT-SoVITS-WebUI 官網&#xff1a;RVC-Boss/GPT-SoVITS: 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 用戶手冊&#xff1a;GPT-SoVITS指南 功能 零樣本文本到語…

基于odoo17的設計模式詳解---備忘模式

大家好&#xff0c;我是你的Odoo技術伙伴。在開發復雜的業務流程時&#xff0c;我們有時會遇到這樣的需求&#xff1a;在對一個對象進行一系列復雜操作之前&#xff0c;保存其當前狀態&#xff0c;以便在操作失敗或用戶希望撤銷時&#xff0c;能夠一鍵恢復到操作之前的樣子。或…

基于Web門戶架構的監獄內網改版實踐:值班排班系統設計與信創適配探討

面向監獄內網改版場景的門戶平臺技術架構與智能排班實踐關鍵詞&#xff1a;監獄內網改版、監獄內部網站改版、值班排班系統、信創適配、智能門戶架構一、場景背景與問題分析 在信創國產化、等級保護合規、政務集約化趨勢持續推進的背景下&#xff0c;傳統監獄內部網站普遍面臨如…