当前位置: 首页 > news >正文

安全管理协议(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.lryc.cn/news/583582.html

相关文章:

  • python 在运行时没有加载修改后的版本
  • 自动驾驶决策与规划
  • 华为动态路由配置
  • 【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
  • 分库分表之实战-sharding-JDBC水平分库+分表后:查询与删除操作实战
  • Android Notification 通过增加addAction 跳转回Service重新执行逻辑
  • 海信IP501H_GK6323处理器免拆卡刷包和线刷救砖包_当贝纯净版
  • LLM 在预测下一个词的时候是怎么计算向量的,说明详细过程
  • 数据库技术体系及场景选型方案
  • RNN及其变体的概念和案例
  • 数据一致性解决方案总结
  • 软件发布的完整流程梳理
  • brainstorm MEG处理流程
  • 【科研绘图系列】R语言绘制解剖图
  • 【leetcode】2235. 两整数相加
  • 本地Qwen中医问诊小程序系统开发
  • softmax
  • PyTorch数据准备:从基础Dataset到高效DataLoader
  • C#字符串相关库函数运用梳理总结 + 正则表达式详解
  • 基于物联网的智能家居控制系统设计与实现
  • 17-C#封装,继承,多态与重载
  • 【AIGC】讯飞长录音ASR转写,使用JAVA实现科大讯飞语音服务ASR转录功能:完整指南
  • JavaScript基础篇——第五章 对象(最终篇)
  • NLP革命二十年:从规则驱动到深度学习的跃迁
  • LLaMA-Omni 深度解析:打开通往无缝人机语音交互的大门
  • pip install av安装av库失败解决方法
  • Celery Django配置
  • 存储服务一NFS文件存储概述
  • Mysql基于belog恢复数据
  • 精准医疗,AR 锚定球囊扩张导管为健康护航​