4. 配对与认证基础

在车载无线连接中,配对与认证是安全链路的起点。很多工程师把“配对成功”等同于“安全建立”,这是一个常见误区。配对解决的是“两个设备如何协商出一组共享密钥”,认证解决的是“如何确认对方真的是它声称的那个设备”,而信任建立则决定“这次连接之后,双方是否愿意长期记住彼此”。三者层层递进,缺一不可。

核心原理:配对模型与认证机制

蓝牙核心规范定义了四种配对模型,它们决定了密钥交换的方式和认证强度:

  • Just Works(直接工作):无认证,仅做密钥交换。适用于无显示、无输入能力的设备,如车载胎压传感器。安全性最低,易受中间人攻击。
  • Passkey Entry(PIN码输入):一端显示6位数字,另一端输入。适用于手机与车机配对,认证强度中等。
  • Numeric Comparison(数字比较):两端同时显示6位数字,用户确认是否一致。适用于双方都有显示屏的场景,如手机与车机。
  • Out of Band(带外认证,OOB):通过NFC、二维码等非蓝牙通道交换认证信息。安全性最高,但依赖额外硬件。

认证机制的核心是“证明拥有密钥”。在配对过程中,双方通过交换随机数、确认值和密钥材料,最终生成链路密钥(Link Key)或长期密钥(LTK)。认证方式决定了攻击者能否在中间截获并伪造身份。

关键结论:配对模型的选择不是由开发者随意决定的,而是由设备的IO能力(输入/输出能力)自动协商得出。车机通常具备显示和输入能力,因此与手机配对时优先选择数字比较或PIN码输入。

方法流程:密钥交换与信任建立

以蓝牙低功耗(BLE)的LE Secure Connections配对为例,密钥交换流程如下:

  1. 配对请求与响应:双方交换IO能力、认证要求、密钥长度等参数。
  2. 公钥交换:双方生成椭圆曲线密钥对,交换公钥。
  3. 认证阶段:根据配对模型,执行数字比较、PIN码输入或OOB认证。
  4. 密钥生成:双方基于Diffie-Hellman密钥交换和认证信息,生成LTK和IRK。
  5. 密钥分发:分发加密密钥、身份解析密钥等,用于后续连接。
  6. 信任存储:将配对信息写入绑定数据库,下次连接可快速认证。

信任建立的关键在于“绑定”(Bonding)。绑定后,设备会保存对方的长期密钥和身份信息,后续连接无需重新配对。但绑定信息必须安全存储,否则一旦泄露,攻击者可伪装成已配对设备。

BLE LE Secure Connections 配对与信任建立流程 设备A(车机) 设备B(手机) ① 配对请求 / 响应(IO能力协商) ② 公钥交换(ECDH密钥对) ③ 认证阶段(数字比较 / PIN码 / OOB) ④ 密钥生成(LTK / IRK / CSRK) ⑤ 密钥分发与绑定存储 信任建立完成 → 后续快速重连 发起方 生成密钥对 用户确认 计算LTK 保存绑定 响应方 生成密钥对 用户确认 计算LTK 保存绑定

案例场景:数字比较与PIN码的实际差异

假设一辆支持蓝牙数字钥匙的电动车与用户手机配对。车机屏幕显示6位数字“482913”,手机同时显示相同数字,用户点击“确认一致”。这个过程就是数字比较。攻击者若想中间人攻击,必须同时伪造两端显示的数字,但ECDH密钥交换使得攻击者无法在不被发现的情况下替换公钥。

如果车机没有显示屏,只有按键,则只能使用PIN码输入。车机生成6位PIN码并通过语音播报,用户手动输入。此时攻击者可以暴力枚举PIN码,因此规范要求PIN码输入必须限制尝试次数,通常3次失败后锁定。

常见误区:认为“配对成功=安全”。实际上,Just Works配对没有任何认证,攻击者可以在配对过程中插入中间人,截获所有通信。车载场景中,涉及控车指令的通道必须使用数字比较或OOB认证。

误区复盘与参数清单

在实际项目中,配对失败或信任丢失往往源于以下问题:

问题现象 可能原因 排查方向
配对时无数字显示 IO能力协商为Just Works 检查设备GAP属性中的IO Capabilities配置
PIN码输入后连接失败 密钥生成不一致或绑定信息冲突 清除旧绑定记录,重新配对
数字比较两端不一致 中间人攻击或公钥被篡改 检查配对日志中的公钥交换记录
重连时反复要求配对 绑定信息未持久化存储 检查LTK存储区是否掉电丢失
OOB认证超时 NFC通道未就绪或数据格式错误 验证OOB数据块中的随机数和确认值
# 典型BLE配对日志片段(数字比较)
[00:12:34.567] SMP Pairing Request: IO Capability=DisplayYesNo, AuthReq=MITM
[00:12:34.589] SMP Pairing Response: IO Capability=DisplayYesNo, AuthReq=MITM
[00:12:34.612] Public Key Exchange: P-256 ECDH
[00:12:34.701] Numeric Comparison: 482913
[00:12:39.203] User Confirmed: YES
[00:12:39.245] LTK Generated: 0x3A7F...C2D1
[00:12:39.301] Bonding Stored: Success

工程建议:在车载蓝牙模块的配置中,强制要求MITM保护(AuthReq=MITM),并优先启用LE Secure Connections。对于数字钥匙等敏感业务,应叠加OOB认证(如NFC碰一碰),形成双因素信任建立。

配对与认证不是一次性的动作,而是贯穿设备生命周期的信任管理。理解配对模型、认证机制、密钥交换和信任建立的内在逻辑,才能在车载无线连接中构建真正可靠的安全边界。