一、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:密鑰分發
分發密鑰類型:
密鑰 | 長度 | 作用 | 是否必選 |
---|---|---|---|
LTK | 128-bit | 鏈路加密 | √ |
IRK | 128-bit | 解析私有地址 | △ |
CSRK | 128-bit | 數據簽名 | △ |
EDIV+RAND | 64-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 層進行,支持三種配對方法:
- Just Works:無用戶交互(風險高,適合低安全設備如耳機)。
- 數字比較:雙方顯示 6 位數字,用戶確認匹配(如智能手表配對)。
- 帶外數據(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 保護(以數字比較為例):
- 生成簽名哈希(H):雙方用共享秘鑰(DHKey)和 IRK 計算哈希值 H。
- 用戶確認數字(X):計算 X = H 的低 6 位十進制數,用戶需在兩設備上看到相同 X。
- 隨機數校驗(R):交換隨機數 R 和 R',確保雙方未被中間人篡改數據。
真題示例:
問題:SMP 如何防止中間人攻擊?(多選)
A. 使用橢圓曲線加密(ECDH)
B. 用戶確認配對碼(數字比較)
C. 驗證設備 IRK 簽名
D. 僅允許帶外數據配對
答案:ABC(ECDH 確保密鑰安全生成,數字比較和 IRK 簽名防止中間人偽造)
二、歷年真題深度解析
2.1 單選題:SMP 配對階段
題目:SMP 配對中,協商配對方法和加密算法是在哪一階段?(2024?高通嵌入式面試題)
A. 密鑰生成階段
B. 配對請求階段
C. 連接加密階段
D. 身份認證階段
答案:B
解析:在第一階段的Pairing Request
和Pairing 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?華為硬件崗面試題)
參考答案:
- ECDH 交換公鑰:發起方和響應方生成 ECDH 公鑰對,交換公鑰 A 和公鑰 B。
- 計算共享秘鑰(DHKey):雙方用對方公鑰和自身私鑰計算 DHKey。
- 生成臨時密鑰(LTK):通過 DHKey、隨機數 R 和設備地址,使用 AES-CCM 算法生成 LTK。
- 驗證 LTK:通過
Pairing Confirm
和Pairing Random
消息確保雙方 LTK 一致。
題目(配對方法選擇):當雙方設備均支持LE Secure Connections時,應優先采用哪種配對方法?(2023年字節跳動)
解析:
?答案:優先使用LE Secure Connections配對方式,當OOB不可用時根據IO能力選擇Numeric Comparison或Passkey Entry。
題目(Secure Connections優勢):“對比Legacy Pairing,LE Secure Connections如何提升安全強度?”(蘋果2023)
技術對比:
特性 | Legacy Pairing | Secure Connections |
---|---|---|
密鑰長度 | 可變(7-16字節) | 固定128位 |
加密算法 | AES-CCM | ECDH+AES-CCM |
MITM保護 | 依賴用戶操作 | 內置數字比較 |
密鑰類型 | STK過渡 | 直接生成LTK |
抗量子攻擊 | × | △(P-256曲線) |
答案:通過ECDH交換和固定128位LTK,避免TK弱密鑰問題
2.4 分析題:MITM 攻擊場景
題目:假設中間人截獲配對請求,如何通過 SMP 機制發現攻擊?
參考答案:
- 簽名驗證失敗:中間人無法偽造合法設備的 IRK 簽名,導致
Signature
消息校驗失敗。 - 數字不匹配:若使用數字比較,雙方生成的 6 位數字 X 不同,用戶會拒絕配對。
- 隨機數篡改:中間人修改隨機數 R 或 R',導致雙方計算的 LTK 不一致,加密后數據無法解密。
題目(配對方法選擇):“運動手環(無顯示屏)與手機配對時,為何采用Just Works而非Passkey Entry?”(小米2022社招)
解題思路:
分析IO能力:手環=NoInputNoOutput,手機=KeyboardDisplay
查配對矩陣:NoInputNoOutput+KeyboardDisplay → Just Works
安全權衡:手環無輸入輸出能力,無法進行Passkey交互
答案:受限于IO能力,強制使用Just Works
題目(密鑰分發錯誤):“設備綁定后重新連接失敗,抓包顯示Encryption Failed,可能原因是什么?”(華為2023)
故障樹分析:
?解決方案:
檢查兩端存儲的LTK是否一致
確認EDIV/RAND在重連時未變更
驗證Key Size≥7字節
2.5 應用題:設備綁定流程
題目:簡述藍牙設備綁定(Bonding)的作用及涉及的密鑰。(2024?蘋果嵌入式面經)
參考答案:
作用:
- 存儲設備身份密鑰(IRK),實現快速重連(無需重新配對)。
- 建立信任關系,后續連接可跳過復雜認證步驟。
涉及密鑰:
- IRK:綁定后存儲在雙方安全數據庫,用于驗證設備身份。
- LTK/STK:綁定過程中生成,用于當前連接加密,可選擇是否存儲(按需)。
題目(密鑰長度要求):SMP協議規定的最小和最大加密密鑰長度分別是多少? (2024年騰訊)
解析:
- 核心規范V5.4明確要求:7字節(56位)至16字節(128位)
- 常見陷阱:易混淆AES-128的128位與密鑰長度參數
答案:最小7字節(56位),最大16字節(128位)
題目(中間人防御):在BLE Secure Connections中,如何防御ECDH公鑰交換階段的中間人攻擊?(2022年華為)
解析:
- 使用帶外(OOB)通道預先交換公鑰
- 數字比較法驗證公鑰指紋
- 結合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 需重點關注:
- 配對流程:三階段交互細節及關鍵消息(如
Pairing Request
/Confirm
)。 - 密鑰體系:IRK/LTK/STK 的生成邏輯與應用場景。
- 安全增強:安全模式 4 的強制 MITM 保護機制和橢圓曲線算法的作用。