FPGA实现安全可靠的蓝牙通信
发布时间:2008/5/29 0:00:00 访问次数:422
蓝牙技术注定会成为一项通用的低成本无线技术,可适用于一系列范围广泛的数据通信应用。但仍有两个主要方面需要进一步的考虑,即有关蓝牙通信中的数据安全性和数据完整性的问题。这两个方面会限制蓝牙技术的适用范围。在设计无线产品时,通过采用可编程逻辑,可以使蓝牙技术同时满足数据安全性和完整性的要求。
蓝牙数据安全性
蓝牙标准定义了一系列安全机制,要求每个蓝牙设备都要实现密钥管理、认证以及加密等功能,从而为近距离无线通信提供基本的保护。此外,蓝牙技术所采用的跳频通信方式本身也是一个防止窃听的有效安全手段。
密钥管理
蓝牙设备在高层软件中采用几种不同的密钥来保证数据的安全传输。
加密
蓝牙设备中采用加密的方法来保证连接的保密性。但在数据加密之前,需要存在一条经过认证的已建立连接。蓝牙加密采用8位至128位的密钥对蓝牙分组中的数据载荷进行加密,但不对蓝牙接入码和分组头进行加密。载荷加密的具体细节依赖于所需要的加密强度以及产品最终应用国家的地区性法规要求。 ●密钥流比特生成器; ●加密与解密硬件电路。 有三种加密模式: ● 加密模式1:不对任何数据进行加密; ● 加密模式2:点对多点(广播)数据流不加密,点对点数据流进行加密; ● 加密模式3:所有数据流均进行加密。 物理层数据安全性-跳频扩展频谱 除了蓝牙标准所采取的其它安全手段以外,蓝牙通信所采取的跳频通信这一机制也使窃听变得极困难。 蓝牙数据完整性 前向纠错(fec) 蓝牙采用的错误校正有三种类型: ●1/3编码率fec ●2/3 编码率 fec ●数据的自动重发请求(arq)方案 fec(前向纠错)的目的是为了减少数据载荷重发的次数。但是,采用fec的缺点是会明显地降低可达到的实际数据传输速率。 数据白化 所有的分组头和载荷信息在发送前都要利用数据白化位进行白化处理。这主要是为了避免在传输过程中出现过长的连续0或1的位流模式。基带处理器需要从接收到的模拟数据信号中判断数据是0还是1,但过长的连续0或1位流会造成问题。因为在接收到的模拟数据信号中并不存在象直流信号中那样的参考点,因此必须依靠接收到的最后几个传输信号进行校正。任何连续的0或1的长序列位流串都可能导致校正失败。因此需要采用数据白化技术对信号进行扰码处理,以大大降低出现长序列0或1位流串的可能性。 用于高级数据安全可编程解决方案 对于大多数需要将保密放在首位来考虑的应用来说,蓝牙所提供的数据安全性是不够的。总的来说,就蓝牙安全性来说,还存在一些问题需要解决。蓝牙所提供的数据安全性措施对小型应用来说看起来已足够了,但任何敏感数据或会产生问题的数据都不应直接通过蓝牙传输。例如,蓝牙所采用的加密方案本身就有某些弱点。128位密钥长度的e0序列加密在某些情况下可通过o(2^64)方式破解。
蓝牙系统采用称为e0的序列加密算法对数据进行加密。对每一数据载荷(payload)e0算法都进行重新同步。e0序列加密包含三个部分:
●初始化部分,生成载荷密钥;
如前所述,蓝牙射频工作在2.4ghz频段。在北美和欧洲的大部分,蓝牙设备工作于从2.402至2.480ghz的频带,整个频带被分成 79个1mhz带宽的子信道。在跳频通信中,数据信号被窄带载波信号调制,而这些窄带载波信号则做为时间的函数不断从一个频率跳到另一个频率。蓝牙标准采用的是每秒跳跃1600次的跳频序列。
收发双方都知道的跳频码决定了射频载波的频率以及跳频的顺序。为正确地进行信号接收,接收器必须设置成与发送方一样的跳频码,并在恰当的时间和正确的频率点监听载波信号。只有正确同步时,才能维持一个逻辑信道。其它接收器看到的fhss信号仅是持续时间极短的脉冲噪声。
fhss依靠频率的变化来对抗干扰。如果射频单元在某个频率遇到干扰,则会在下一步跳到另一频率点时重传受到干扰的信号。因此总的干扰可变得很低,位错误很少或几乎没有。
设想一种可能的情况,攻击者设法获取了用来保证两个设备
蓝牙技术注定会成为一项通用的低成本无线技术,可适用于一系列范围广泛的数据通信应用。但仍有两个主要方面需要进一步的考虑,即有关蓝牙通信中的数据安全性和数据完整性的问题。这两个方面会限制蓝牙技术的适用范围。在设计无线产品时,通过采用可编程逻辑,可以使蓝牙技术同时满足数据安全性和完整性的要求。
蓝牙数据安全性
蓝牙标准定义了一系列安全机制,要求每个蓝牙设备都要实现密钥管理、认证以及加密等功能,从而为近距离无线通信提供基本的保护。此外,蓝牙技术所采用的跳频通信方式本身也是一个防止窃听的有效安全手段。
密钥管理
蓝牙设备在高层软件中采用几种不同的密钥来保证数据的安全传输。
加密
蓝牙设备中采用加密的方法来保证连接的保密性。但在数据加密之前,需要存在一条经过认证的已建立连接。蓝牙加密采用8位至128位的密钥对蓝牙分组中的数据载荷进行加密,但不对蓝牙接入码和分组头进行加密。载荷加密的具体细节依赖于所需要的加密强度以及产品最终应用国家的地区性法规要求。 ●密钥流比特生成器; ●加密与解密硬件电路。 有三种加密模式: ● 加密模式1:不对任何数据进行加密; ● 加密模式2:点对多点(广播)数据流不加密,点对点数据流进行加密; ● 加密模式3:所有数据流均进行加密。 物理层数据安全性-跳频扩展频谱 除了蓝牙标准所采取的其它安全手段以外,蓝牙通信所采取的跳频通信这一机制也使窃听变得极困难。 蓝牙数据完整性 前向纠错(fec) 蓝牙采用的错误校正有三种类型: ●1/3编码率fec ●2/3 编码率 fec ●数据的自动重发请求(arq)方案 fec(前向纠错)的目的是为了减少数据载荷重发的次数。但是,采用fec的缺点是会明显地降低可达到的实际数据传输速率。 数据白化 所有的分组头和载荷信息在发送前都要利用数据白化位进行白化处理。这主要是为了避免在传输过程中出现过长的连续0或1的位流模式。基带处理器需要从接收到的模拟数据信号中判断数据是0还是1,但过长的连续0或1位流会造成问题。因为在接收到的模拟数据信号中并不存在象直流信号中那样的参考点,因此必须依靠接收到的最后几个传输信号进行校正。任何连续的0或1的长序列位流串都可能导致校正失败。因此需要采用数据白化技术对信号进行扰码处理,以大大降低出现长序列0或1位流串的可能性。 用于高级数据安全可编程解决方案 对于大多数需要将保密放在首位来考虑的应用来说,蓝牙所提供的数据安全性是不够的。总的来说,就蓝牙安全性来说,还存在一些问题需要解决。蓝牙所提供的数据安全性措施对小型应用来说看起来已足够了,但任何敏感数据或会产生问题的数据都不应直接通过蓝牙传输。例如,蓝牙所采用的加密方案本身就有某些弱点。128位密钥长度的e0序列加密在某些情况下可通过o(2^64)方式破解。
蓝牙系统采用称为e0的序列加密算法对数据进行加密。对每一数据载荷(payload)e0算法都进行重新同步。e0序列加密包含三个部分:
●初始化部分,生成载荷密钥;
如前所述,蓝牙射频工作在2.4ghz频段。在北美和欧洲的大部分,蓝牙设备工作于从2.402至2.480ghz的频带,整个频带被分成 79个1mhz带宽的子信道。在跳频通信中,数据信号被窄带载波信号调制,而这些窄带载波信号则做为时间的函数不断从一个频率跳到另一个频率。蓝牙标准采用的是每秒跳跃1600次的跳频序列。
收发双方都知道的跳频码决定了射频载波的频率以及跳频的顺序。为正确地进行信号接收,接收器必须设置成与发送方一样的跳频码,并在恰当的时间和正确的频率点监听载波信号。只有正确同步时,才能维持一个逻辑信道。其它接收器看到的fhss信号仅是持续时间极短的脉冲噪声。
fhss依靠频率的变化来对抗干扰。如果射频单元在某个频率遇到干扰,则会在下一步跳到另一频率点时重传受到干扰的信号。因此总的干扰可变得很低,位错误很少或几乎没有。
设想一种可能的情况,攻击者设法获取了用来保证两个设备