对蓝牙技术中的加密算法的进一步探讨

2023-02-28

随着计算机网络技术的迅速发展, 网络中的信息安全问题越来越受到广泛关注。信息安全主要涉及到用户身份验证、访问控制、数据完整性、数据加密等问题。网络安全产品大量涌现。虽然各种网络安全产品的功能多种多样, 但它们无一例外地要使用加密技术。一个好的加密算法首先表现在它的安全性上, 一个不安全的算法会使使用它的网络变得更加脆弱;其次要考虑它在软硬件方面实现的难易度, 不易实现的加密算法是不现实的;第三要看使用此加密算法会不会降低数据传输速率。

蓝牙技术是一种新兴的无线网络标准, 它基于芯片提供短距离范围的无线跳频通信。它注定会成为一项通用的低成本无线技术, 可适用于一系列范围广泛的数据通信应用。蓝牙标准定义了一系列安全机制, 从而为近距离无线通信提供了基本的保护。它要求每个蓝牙设备都要实现密钥管理、认证以及加密等功能。此外蓝牙技术所采用的跳频数据通信方式本身也是一个防止窃听的有效安全手段。蓝牙加密过程中所用到的加密算法是E0流密码。但是这种算法存在有一些缺点, 128位密钥长度的E 0流加密在某些情况下可通过0 (2^64) 方式破解。所以对于大多数需要将保密放在首位来考虑的应用来说, 仅仅采用蓝牙提供的数据安全性是不够的。蓝牙系统一般由天线单元、链路控制 (固件) 单元、链路管理 (软件) 单元和蓝牙软件 (协议栈) 单元四个功能单元组成。

1 蓝牙技术的特点

(1) 将设备无线互联组成小型PAN, 并可为其提供接入数据网的功能, 能够实现与Internet互联。

(2) 工作于2.4GHZ的ISN频段, 无需申请频率许可证。

(3) 采用1600hop/s的快速调频技术, 提供了一定程度的物理层安全保证。

(4) 采用正向纠错编码 (FEC) 技术降低了误码率, 保证通信质量。

(5) 采用FM调制方式, 设备简单。

(6) 支持点到多点通信, 具有自动查询设备及服务类型的功能。

(7) 协议体系完备, 充分支持现有高层协议, 具有多种工作模式。

2 蓝牙标准中的安全措施

蓝牙技术中, 物理层数据的安全性主要是采用了跳频扩展频谱, 由于蓝牙技术采用了跳频技术从而使得窃听变得极困难。蓝牙射频工作在2.4Hz频段。在北美和欧洲的大部分国家, 蓝牙设备工作与从2.402Hz到2.480Hz的频带, 整个频带被分为79个1MHz带宽的子信道。FHSS依靠频率的变化来对抗干扰。如果射频单元在某个频率遇到干扰, 则会在下一步跳到另一频率点时重传受到干扰的信号, 因此总的干扰可变得很低。

为了得到完整的传输数据, 蓝牙技术使用以下三种纠错方案:1/3比例前向纠错码 (FEC) , 2/3比例前向纠错码 (FEC) , 数据的自动重发请求 (ARQ) 方案。

蓝牙技术产品的认证和加密服务一般由链路层提供, 认证采用口令-应答方式进行。在连接过程中往往需要一两次认证。为了确保通信安全, 对蓝牙技术产品进行认证是十分必要的, 通过认证之后, 可以允许用户自行增添可信任的蓝牙技术设备, 例如, 用户自己的笔记本电脑经过认证之后, 能够确保只有用户自己的这台笔记本电脑, 才可以借助用户自己的移动电话手机进行通信。

若对于通信有更高的安全要求, 那么通信中的蓝牙技术产品就不必局限于采用物理层的提供, 还可以采用更高级别的传输层和应用层安全机制, 以确保基于蓝牙技术产品的通信更加安全可靠。

3 蓝牙技术中的加密算法

在链路层中, 蓝牙系统提供了认证、加密和密钥管理等功能, 每一个用户都有一个标识码 (PIN) , 蓝牙设备中所用的PIN码的长度可以在1到16个字节之间变化。通常4个字节的PIN码已经可以满足一般应用, 但是更高安全级别的应用将需要更长的码字。PIN码可以是蓝牙设备提供的一个固定码, 也可以由用户任意指定, 标识码 (PIN) 会被一个128位链路密钥来进行单双向认证。一旦认证完毕, 链路层会以不同长度的密钥来加密。在蓝牙技术中, 用户信息可采用分组有效载荷的加密进行保护, 但识别码和分组头不加密。有效载荷的加密采用E0流密码来实现。E0将对每一有效载荷重新同步。流密码系统E0由三部分组成。第一部分执行初始化 (生成有效载荷字) , 第二部分生成密钥流, 第三部分完成加密和解密。最后就是流加密算法的加密过程。将数据流与密码算法生成二进制流比特进行异或运算。对于加密规则, 流密码算法用于将加密位按位模2并加到数据流上, 然后通过无线接口进行传输。对每一分组的有效载荷的加密是单独进行的, 它发生在CRC校验之后, FEC编码之前。由于加密是对称的, 解密使用完全和加密相同的密钥和相同的方法实现。

4 蓝牙标准中加密算法存在的问题

蓝牙所采用的E0流密码算法的本身就有一些弱点。流密码算法主要的缺点在于若一个伪随机序列发生错误便会使整个密文发生错误, 致使在解密过程中无法还原回明文。流加密算法系统的安全完全依靠密钥流发生器的内部机制。如果它的输出是无穷无尽的0序列, 那么密文就是明文, 这样整个系统就一文不值;如果它的输出是一个周期性的16-位模式, 那么该算法仅是一个可忽略安全性的异或运算;如果输出的是一系列无尽的随机序列 (是真正的随机, 非伪随机) , 那么就有一次一密乱码本和非常完美的安全。实际的流密码算法的安全性依赖于简单的异或运算和一次一密乱码本。密钥流发生器产生的看似随机的密钥流实际上是确定的, 在解密的时候能很好的将其再现。密钥流发生器输出的密钥越接近于随机, 对密码分析者来说就越困难。然而, 这种随机的密钥流却不容易得到。

在蓝牙E0流加密中用到的LFSR易受到相关攻击和分割解决攻击, 且用软件实现效率非常低。在实现过程中要避免稀疏的反馈多项式, 因为它们易遭到相关攻击, 但稠密的反馈多项式效率也很低。事实上LFSR算法用软件实现并不比DES快。

解决方案:蓝牙中用DES取代E0流密码、用软件 (这里选用C语言) 来实现该加密算法。为了算法实现的方便, 这里删去了初始置换和末置换。

5 结语

蓝牙是一项将会改变我们通信方式的令人激动的新技术。然而, 蓝牙技术在标准化过程中都未曾完整地考虑安全问题。作为以无线信道为传输媒体的通信网络, 蓝牙网络相对于固定网络更容易受到攻击。对于数据安全性处于首要地位的应用来说, 实现高水平的数据安全性是必须的。目前蓝牙标准所采用的E0流密码算法存在着很多弊端, 而DES和RSA算法相对来说更安全, 而且较易实现。

摘要:此文主要讨论蓝牙技术中的加密算法和安全措施, 并进一步提出了对于蓝牙加密算法所存在的问题的解决方案。

关键词:蓝牙,流加密,分组加密,DES,AES

上一篇:行政处罚信息公开与个人隐私的保护下一篇:关于中等职业学校会计课教学的思考