BLE绑定存储上限:淘汰、恢复出厂与密钥丢失

容量首先是产品策略

BLE产品可能与新手机连接成功,却无法在重启后保留关系;也可能在维修人员绑定另一台设备后,看起来把原主人忘了。绑定存储应被视为有限且与安全相关的资源,必须明确准入和删除规则。本文刻意以Bluetooth Core 6.0为协议基线、Zephyr 3.7.0为实现例子,不声称它们是最新版本,也不认为所有栈存储行为一致。核心决策是谁可以占用绑定槽位、容量已满时如何处理,以及合法用户如何从单边密钥丢失中恢复。 涉及产品资格声明时,应核对SIG的Core 6.0页面及强制更新;本文不是合规检查清单。

绑定准入、存储与恢复生命周期
新对端注册之前,先明确容量与所有权策略

连接、配对、绑定和所有权要分开

连接建立通信链路;配对建立安全材料和属性;绑定则为后续使用保留适用的关系。Core 6.0安全管理器描述绑定标志和密钥分发,但没有为所有产品规定可保存手机的统一数量。应用所有权又是独立概念,经过密码学配对的对端不自动获准修改每项产品设置。授权记录应与底层绑定状态分离,并通过受支持身份机制关联。启用隐私地址时,不要把当下广播地址当作永久主人编号;界面显示“已配对”也不能掩盖持久化写入是否真正成功。

检查实际构建策略,而不是默认值

Zephyr v3.7.0主机Kconfig中,BT_MAX_PAIRED限制已保存对端数量,BT_KEYS_OVERWRITE_OLDEST允许存储满时覆盖符合条件的旧密钥,说明中排除了当前正在使用的密钥。应读取产品生成的配置,不能假定上游默认值。主机绑定容量、控制器解析列表、闪存分配和同时连接数是不同资源,增加一个不保证其他一起增加。还要记录设置后端和启动加载顺序,否则仅存在RAM中的关系在断电前可能看起来完全正常。交付物应是版本明确的存储策略表,而不仅是更大的编译常量。

为容量已满选择明确行为

产品可选择满时拒绝新绑定,直到主人删除某个对端;也可由主人明确批准替换,或根据风险采用已公开的自动淘汰规则。对于门禁类设备,即便演示方便,静默淘汰长期未用的主人仍可能不可接受。应规定服务账号、应急主人或活跃会话是否受保护,不能让附近未认证设备通过反复发起配对强制挤掉已有用户。新增绑定应通过合适的物理或已认证管理流程,并设有界注册窗口。满容量时应准确提示,不要把存储不足描述为配对码输入错误。

删除绑定时同步应用记录

Zephyr 3.7.0提供bt_foreach_bond和bt_unpair用于枚举与删除,连接管理回调中还有bond_deleted。这些是应用同步对端元数据的接口示例,不表示普通连接错误就可以删除全部绑定。多本地身份产品要保留正确identity参数。删除流程应避免断电后留下指向已删除关系的授权记录,也不能在下一次启动时重建已经撤销的用户。存储错误必须显式处理。删除外设绑定,不会自动清除手机操作系统记录或独立的云端所有权记录,应在支持说明中讲清。

单边丢失后的修复不能削弱准入

一侧恢复出厂或删除绑定后,另一侧仍可能尝试使用旧安全材料,即使无线通信正常,泛化重连也可能一直失败。应先核对安全事件以及双方已知绑定状态。合法恢复流程可引导主人删除手机侧过期记录,进入设备获授权的注册模式,再建立新关系;不能为了成功而开放控制特征或静默降低安全要求。平台操作步骤要先核实目标系统行为。除非主人明确选择完整恢复出厂,定向修复应保留其他无关绑定,不能把“全删重来”设成普通重连失败的默认处理。

把恢复出厂定义成一组独立效果

复位是否删除绑定密钥、隐私身份材料、应用所有权、用户数据及网络设置,都应分别规定,因为它们可能位于不同存储并需要不同接口。说明哪些信息需要重新填写,以及远端账号解绑是否另有操作。复位应有明确物理或认证触发,并给出完成信号。测试中途断电和启动恢复,防止半清理状态造成注册权限模糊。支持日志不能记录密钥、配对码或原始安全数据库转储,优先使用对端数量、本地身份索引、存储错误和短期支持编号。

边界验证必须包含恢复故事

对于容量N,分别验证N减一、N及N加一对端,并覆盖一个可淘汰旧对端断开、另一个对端正在使用的情况。随后重启、中断绑定写入、只删除一侧记录、撤销指定对端,并执行正式恢复出厂流程,同时检查安全结果和用户提示。验收要求合法主人能够重新获得访问,定向修复不会伤及其他关系,被拒注册也不能强迫破坏性淘汰。这里是建议测试,没有完成手机或闪存实验。发布门槛是从准入、持久化到撤销都可预测,客服无需要求用户降低安全性即可说明恢复路径。

类似文章