|
三、 蓝牙配对和认证过程 蓝牙支持三种安全模式,第一种是设备没有任何安全措施的"无安全操作"模式。第二种是信道建立之前不需启动安全协议的"业务级安全模式"。第三种是要求终端在链路建立前就需启动安全协议的"链路级安全模式"。其中,最后“链路级安全模式”安全级别最高,本文所讨论的就是针对这种级别的攻击技术。 1、配对和认证 蓝牙通讯初始化过程需要三个步骤:生成初始密钥(Kinit)、生成链路密钥(Kab)和双方认证。接着,用加密密钥来保护往后的通讯。在配对之前,需要事先将PIN码输入到蓝牙设备中,在某些设备(像无线耳机),PIN是固定不可改变的。必须注意的是,两边的PIN必须匹配,否则不能通讯。下面我们将讨论配对和双方认证的细节。 .生成初始密钥(Kinit) 初始密钥Kinit t长度为128位,由E22算法产生,图1描述了生成Kinit密钥的过程。首先提出通信要求的设备称为主设备(Master),用A表示;被动进行通信的设备称为从设备(Slave),用B表示。从图中可以看到,E22算法的输入(明文)由以下三部分组成: 1)从设备的物理地址:BD_ADDR,在生成Kinit前,主设备通过询问方式获得从设备的地址BD_ADDR。 2)PIN码及其长度,PIN码是双方设备预先设定的。 3)一个128位的随机数(IN_RAND)。由主设备产生,并以明文方式传送给从设备。 由于主、从设备使用了相同的E22算法,如果双方设备以上三部分的值都相等,那么各自算出来的Kinit也应该相同。 
图1
|