BLE

蓝牙安全

2017-06-07  本文已影响86人  公子小水

蓝牙安全 原文

像802.11安全一样,蓝牙并不是端到端的安全协议,而实际上只是采用网络无线部分的安全手段。

蓝牙有三种安全模式

链接密钥生成

首次通信的两台设备将经过初始化阶段; 他们将在这一点“联系(associated)”。 当用户将相同的PIN输入到两个设备中时,链路密钥生成开始,设备用于生成其秘密链接密钥(secret link key)。 蓝牙的安全优势之一是在设备之间的后续通信中,链路密钥(link key)永远不会传输到设备外部; 链接密钥(link key)仅用于加密算法来生成匹配序列(matching sequences)。

认证(Authentication)

在蓝牙中,通过质询 - 响应方案(challenge-response scheme)实现认证,其目的是验证请求访问的设备具有秘密链接密钥(secret link key)的知识。 请求设备首先将其唯一的设备地址发送到验证设备。 验证设备然后从随机数发生器发送128位随机质询(challenge)。 两个设备都使用E1算法处理随机质询(challenge),设备地址和链路密钥(link key)产生32位结果。 然后,验证者比较两个结果,并且如果结果匹配,则对请求设备进行认证。

蓝牙通过指数地增加(exponentially increasing)尝试之间所要求的时间量来阻止重复的链路密钥(link key)破解尝试。这种技术对于执行脱机攻击( offline attacks)来搜索所有PIN空间的攻击者是无效的。

加密

蓝牙使用称为E0的流密码(stream cipher)加密其数据传输。所使用的密钥流(key stream )是通过以下值作为输入的算法生成的:设备地址,随机数,时隙号和加密密钥(encryption key)。 加密密钥(encryption key)是从作为输入的内部密钥生成器(internal key generator)产生的:链路密钥(link key),随机数和来自认证过程的值。 用于加密每个数据包的密钥流(key stream )在每个数据包的基础上进行更改,因为每个时隙的编号(slot number)不同,但所有其他变量都保持不变。

上一篇 下一篇

猜你喜欢

热点阅读