关于蓝牙的安全机制 蓝牙技术提供短距离的对等通信,它在应用层和链路层上都采取了保密措施以保证通信的安全性,所有蓝牙设备都采用相同的认证和加密方式。在链路层,使用4个参数来加强通信的安全性,即蓝牙设备地址BD_ADDR、认证私钥、加密私钥和随机码RAND。 蓝牙设备地址是一个48 位的IEEE 地址,它唯一地识别蓝牙设备,对所有蓝牙设备都是公开的;认证私钥在设备初始化期间生成,其长度为128 比特;加密私钥通常在认证期间由认证私钥生成,其长度根据算法要求选择8~128 比特之间的数(8的整数倍),对于目前的绝大多数应用,采用64 比特的加密私钥就可保证其安全性;随机码由蓝牙设备的伪随机过程产生,其长度为128 比特。 一、随机码生成 每个蓝牙设备都有一个伪随机码发生器,它产生的随机数可作为认证私钥和加密私钥。在蓝牙技术中,仅要求随机码是不重复的和随机产生的。“不重复”是指在认证私钥生存期间,该随机码重复的可能性极小,如日期/时间戳;“随机产生”是指在随机码产生前不可能预测码字的实际值。 二、密钥管理 加密私钥的长度是由厂商预先设定的,用户不能更改。为防止用户使用不允许的密钥长度,蓝牙基带处理器不接受 高 层软 件 提供的加密私钥。 若 想 改变 连 接密钥,必 须 按 基带规 范 的步 骤 进 行 ,其具 体 步 骤 取决 于连 接密钥类 型 。 1 . 密钥类 型 连 接密钥是一个128 比特的随机数,它由两 个或 多个成员 共 享 ,是成员 间进 行 安全事 务 的基础 ,它本 身 用于认证过程,同时也 作为生成加密私钥的参数。 连 接密钥可以是半 永 久 的或 临 时的。半 永 久 连 接密钥保存在非 易 失 性存储 器中,即使当 前通话 结 束后 也 可使用,因 此 ,它可作为数个并 发连 接的蓝牙设备间的认证码。临 时连 接密钥仅用于当 前通话 。在点对多点 的通信中,当 主 设备发送 广 播 信息 时,将 采用一个公共 密钥临 时替 换 各 从 设备当 前的连 接密钥。 为 适 应 各 种 应 用 , 定 义 如 下 密 钥 类 型 : 组 合 密 钥 KAB: 设 备 密 钥 KA; 临 时 密 钥 Kmaster; 初 始 密 钥 Kinit。 此 外 , K c 表 示 加 密 私 钥 。 任 何 时 候 执 行 连 接 管 理 器 ( LM) 命 令 进 行 加 密 时 , 加 密 私 钥 就 会...