《1 前言》

1 前言

一直以来, 人们希望能够得到高效率、高质量、低商业成本的服务, 无线网络的产生和不断发展均基于这种需求。无线局域网 (WLAN, wireless local area network) 作为有线局域网的延伸, 能方便地以无线方式将计算机联网, 满足人们对移动办公日益增长的需求, 因而在近几年取得了长足的发展。特别是随着以IEEE802.11为代表的网络标准的成熟, 用户可以享受从1 Mb/s到11 Mb/s甚至54 Mb/s的高带宽无线通信。但无线网络给人们带来便利的同时也带来了新的问题, 特别是安全问题。由于数据的传输是通过无线电波在空中传播进行的, 这使得的数据的窃听和伪造变得非常容易, 因此需要采用针对无线传输的安全机制来保护通信。

无线局域网通信的802.11标准[1] 引入WEP (Wired Equivalent Privacy) 协议来解决无线环境下的安全问题并相信WEP可以提供与有线传输数据加密相同的安全性能。WEP协议主要提供数据传输的机密性保护, 该协议作为802.11标准的一部分, 被广泛的使用, 尽管该协议采用了安全性能良好的RC4加密算法[2], 但是WEP根本无法实现设计者的最初目标, 协议中存在的一些重大缺陷使得无线传输的数据可以轻而易举地被窃听和篡改。许多方案在原有WEP的基础上提出了改进和安全增强机制, 这些解决方案为了保证与原有WEP协议兼容, 主要通过快速更换加密密钥来弥补原有WEP的缺陷, 其思路是合理的, 但缺乏理论上的依据和令人信服的安全分析。笔者通过数学模型对这些机制做出量化的安全分析, 从而推导出机制内各模块原有的安全强度与整个安全机制间安全强度的对应关系, 并比较了这些方案间安全性能差异, 从而在理论上指导用户如何构造满足所需安全性能的WLAN数据加密增强机制, 证明了这些安全机制可以在一定程度上提高原有WEP的安全性能。

《2 现有的研究》

2 现有的研究

WEP协议为802.11无线网络提供链路层数据通信的安全保护[1], 其设计目的是提供3方面的安全保护:数据机密性、访问控制和数据完整性。WEP的核心是RC4序列密码算法, 其基本原理是用密钥作为种子通过伪随机数产生器 (PRNG) 产生伪随机密钥序列 (PRKS) , 加密端用该序列和明文相异或后得到密文序列, 解密端用该序列和密文相异或后恢复出明文。

协议的制定者认为该协议的安全性依赖于针对密钥进行强力破解的难度, 128 b版本的WEP协议可以抗拒目前利用最高性能计算机进行的强力破解。但文献[3,4]指出, 根本不需要强力破解就可以攻击该协议, 而且WEP密钥长度的多少与某些攻击方式的难度没有多少关系。WEP使用的iv空间过小, 且使用流加密算法RC4进行加密, 流加密算法的一个重要缺陷是如果使用相同的iv‖SK加密2个消息时, 攻击者可以获得:

《图1》

如果其中的一个消息明文已知, 另一个消息的明文立即就可以获得。在现实世界中, 由于明文有足够的信息量使得可以直接从P1♁P2中得到P1和P2[5]。为了防止这种攻击, WEP采用iv‖SK作为密钥, 其中SK不变, iv每传输一次就变换来获得不同的密钥流, iv以明文的方式传送。WEP协议中的iv空间只有24 b, 假设一个繁忙的AP在一个平均带宽为5 Mb/s的信道传输长度为1500 B的数据帧, iv的空间将在半天内耗尽。

iv在WEP协议中主要提供2个功能, 一是用来生成加密密钥, 一是作为状态计数器进行传输以保证加解密双方的状态保持同步。从文献[3,4]指出的缺陷来看, 如果简单地增加iv的空间 (例如iv扩展为128 b, 考虑到这样会导致整个密钥过长, 也可以取Ki=Sk♁iv, iv取128 b) , 似乎可以解决上述的问题。但WEP协议还存在另一个重大缺陷, 当iv满足形式 (A+3, N-1, x) 时, 可以利用iv Weakness[6,7] 攻击方法进行攻击。当密钥为128 b 时, 攻击的时间复杂度仅为O (232) , 文献[8]给出了一个改进攻击方式, 其攻击的时间复杂度可以缩小为O (231) 。

分析可知iv Weakness 攻击方法针对的主要不是RC4本身, 而是WEP对RC4的不当使用。WEP设计者简单地将iv和密钥相接作为RC4的密钥, 而没有考虑这样做的合理性。同样, 即使取Ki=Sk♁iv, Ki和iv之间也不过是简单的线性关系, 也就是说, iv若满足形式 (A+3, N-1, x) , 则Ki同样满足形式 (A+3, N-1, x) , 仍可以利用iv Weakness 进行攻击。因此, Ki和iv之间的关系至少要求是非线性的, 密钥初始化算法的安全性对于整个加密机制是非常关键的。在同样使用RC4算法的SSL中, 由于在输入到RC4前使用了MD5函数, 使前后的RC4密钥不是简单线性关系, 从而保证了SSL的安全。可见, WLAN中的安全漏洞很大程度上在于WEP对RC4的误用。

为了解决链路层数据加密的安全隐患, 文献[4]指出了主要的解决思路:一是完全抛弃现有的WEP协议, 使用新的安全协议, 如文献[9]提出的使用AES算法替代WEP。这种思路虽然可以提高WLAN的安全性, 但对于现有已售出的支持802.11系列的无线网卡来说将无法得到升级。这种思路可以作为长期的解决方案, 但不适合现有无线网络的升级, 其升级成本太大。其次由以上分析可以看出, WEP的主要漏洞在iv和密钥之间的关系, 如果在原有WEP的模块上改进密钥的生成机制, 就可以提高其安全性能。这方面的方案有Nextcomm公司的Key-hopping技术[10], 以及IEEE的TKIP协议[9,11,12]

由于一个加密协议的安全性能与该协议使用的加密算法以及协议本身有很大关联, 进行横向比较, 困难较大。一些文献对协议安全性能的理论分析进行了探讨, 并提出了一些理论, 比较成功并得到广泛应用的有文献[13]提出的定量分析安全性能的概念和方法, 它通过定义安全性能优势函数来定量比较加密机制。在此基础上, 文献[14]讨论了定量分析伪随机数生成器的安全性能;文献[15]讨论了定量分析对称块加密机制的安全性能;文献[16]证明了通过添加密钥更新机制可以提高对称块加密机制的安全性能。这种量化的分析安全性能得到了广泛的应用, 很多块加密算法都是利用该方法提供安全性能上的证明。如RFC2104的HMAC算法[17] 以及AESOCB模式[18]。目前, 主要的块加密机制都被证明是合理安全的, 但缺乏对流加密机制的安全分析。而在无线环境下, 由于传统的块加密机制数据处理速度无法适应高速率的无线传输, WEP协议使用了流加密算法RC4, 上述文献的相关结论无法直接引入来证明新的解决方案 (如Key-hopping, TKIP协议) 是安全有效的。

《3 相关数学模型的建立和描述》

3 相关数学模型的建立和描述

WEP将RC4的输入密钥分为2部分:24 b的初始向量iv和40 b的密钥SK。每加密一次iv需改变一次, iv以明文的形式随着密文数据帧C发往接收方。SK为BSS中各STA所共享的秘密信息, 通常由管理员手工配置和分发。一共可以有4个SK, 通信时选择其中1个使用。由于担心密钥空间太小导致安全性下降, 一些设备制造商也使用128 b密钥 (SK长度为104 b) WEP2协议。当接收方无法正确解密收到的数据包, 它将丢弃所有收到的帧, 802.11以这样的方式提供访问控制。为了保证数据的完整性, WEP中采用CRC32算法作为消息认证算法, 并将数据的消息认证码ICV′作为明文的一部分一同加密。接受端在解密密文后, 重新计算消息认证码ICV, 并和收到ICV比较, 若不符则抛弃所接受数据。

笔者对WEP算法重新进行构造:

模型1 WEP算法:

《图2》

Key-hopping和TKIP协议比较类似, 它们都用一个会话密钥生成算法替代了原有WEP的Ki=iv‖SK。Key-hopping使用HMAC-MD5算法, iv为128 b。TKIP协议担心现有的算法运算速度较慢, 因此它使用了自己设计的密钥混合函数, 该函数从一临时密钥、48 b的iv以及传送端的MAC地址中导出WEP seed。接收者从收到的MPDU 中得到iv, 用同样的密钥混合函数推得WEP seed 进行解密。因此, 这2个解决方案除了使用得生成函数不一样和iv的空间大小不一样外, 机制的构造是相同的。因此, 可以构造一个模型来描述这2个机制。

模型2 加密增强机制

《图3》

增强机制的主要思路是每次会话使用的密钥Ki由主密钥SK和状态计数器i通过混合算法导出, 第i个消息用Ki通过RC4进行加密。SK为接受方和发送方共享的秘密信息, 接受方和发送方的状态计数器在建立连接时均初始化为零, 每加密一次, 状态计数器递增1次, 其值即为iv。iv的长度为n位, 以明文的形式随着密文数据帧C发往接收方。这里, iv不再用于生成K, 而是作为状态标识来保持双方的同步。接受方通过比较本地iv′和接收iv来确定双方是否同步。如果两者一致, 则接收方确定双方同步, 并由SK和状态计数器i通过混合算法导出Ki进行解密。由于每个MPDU都有1个唯一的iv与之对应, 因此还可利用iv为标志建立重放保护机制。

这种增强机制的优点在于提供了用于提高安全性能的密钥更新模块, 对原有WEP协议的加密模块没有改动, 可以非常方便地在主机上通过软件实现, 无需改动硬件就可以提供高强度的安全性能, 对现有的802.11/11b网卡是一个有效的升级方法。

《4 安全性能分析》

4 安全性能分析

很明显, 在模型2中通过密钥更新模块生成子密钥, 同时扩大了iv的空间, 大大延长了SK的生存周期, 从而提高了原有WEP机制的安全性能。但对原有的WEP安全性能有多少提高, 下面利用文献[13]提供的安全性能分析方法对模型2进行定量分析。

从结构上看, 模型1实际上是模型2的特例, 它们都是先通过某一机制由SK生成子密钥, 再使用子密钥运用RC4算法生成加密使用的序列。因此可以一起进行分析。模型1的混合函数实际上为

《图4》

《4.1相关定理及其证明》

4.1相关定理及其证明

模型2实际上可以分为2个相对独立的模块:子密钥生成模块和加密模块。

整个子密钥的生成过程可以看成一个伪随机数生成状态机G, 因此可以用伪随机性作为分析安全性能的评判标准[13]。用一优势函数Adv (t) 来量化输出的伪随机性, 该函数表示在时间t内攻击者把n个输出块与等长的随机数列区分开来的最大概率。

构造1 伪随机数生成状态机G= (SK, N)

《图5》

伪随机数生成状态机G为二元组。它由随机密钥生成算法SK生成状态机的初始状态〈0, SK〉。迭代算法N把当前状态作为输入, 输出1个新状态〈i+1, SK〉和一个子密钥, 新状态用于下次调用。子密钥和SK的长度相等, 均为k位。

S= (K, RC4) 为使用的加密机制, 由密钥生成K, RC4算法组成, 输出n字节比特流。则整个数学模型可以如下表述:

S′[S, G]= (K′, RC4′) (2)

这是一个包含状态的加密模型, 初始状态包含伪随机数生成状态机G的初始状态:St0<-KG。加密过程被分为多个阶段, 在第i个阶段, 由G生成第i个密钥用于RC4加密, (Ki, Sti) <N (Sti-1) 。用状态计数器标明现在的状态, 每输出l字节比特流就进入下一个状态位。

伪随机数生成状态机G优势函数的定义[14]:

定义1 G= (SK, N) 为伪随机数生成状态机, 密钥长度为k, n为状态数, A为一种攻击, 对G的输出序列和以相同长度的随机序列进行分析和攻击, 攻击成功返回1。

攻击A和伪随机数生成状态机G的优势函数分别为:

《图6》

伪随机位生成机G的优势函数为时间t和n的函数, 表示在时间t内检索n个输出序列被攻击者攻破的最大可能性。时间t是指整个操作需要的时间, 而不仅是执行攻击A所需的时间。

伪随机函数优势函数的定义。

定义2 PRF F为伪随机函数, Rk为所有从{0, 1}k映射到{0, 1}k间均匀分布的函数集合。D为一种攻击, D的优势函数为

《图7》

则F的优势函数为

AdvF(t,n)=maxD{AdvF(D)}(6)

伪随机函数优势函数为时间t和n的函数, 表示在时间t内检索n字节输出序列被攻击者攻破的最大可能性。

定义3 S= (K, RC4) 为基本流加密机制, K为密钥, 加密算法为RC4, 输出n字节比特流。S′[S, G]= (K′, RC4′) 为添加密钥更新的流加密机制, G为密钥更新模块, 更新后的密钥为K′, 第i状态输出l字节比特流, n为状态数。A为S的攻击, A′为S′的攻击。

S的优势函数为

《图8》

S′的优势函数为

《图9》

《图10》

定理1[16] 伪随机函数的优势函数的值为伪随机数生成状态机G优势函数的上限为

AdvG (t, n) ≤AdvF (t, n) (11)

根据定理1和上述定义, 推得如下定理:

定理2 S= (K, RC4) 为基本RC4加密机制, 密钥长度为k位, G为伪随机数生成状态机, 密钥长度为k位, S′[S, G]= (K′, RC4′) 为增强的加密机制:

AdvS (t, ln) ≤AdvF (t, n) +n AdvS (t, l) (12)

证明 令A′为1个针对增强加密机制的攻击, t为攻击所需的最大时间, D为针对伪随机数生成状态机G的攻击, A为针对RC4加密机制的攻击。 有

Pr[AttackG, n (D) = 1] = AdvS′, l, n (A′) [16] (13)

构造2 个攻击过程A′攻击基本RC4加密机制S。它对一系列完全随机, 互相独立的密钥加密的密文序列进行分析。A的攻击与A′相关, A′和A的攻击构造如下:

《图11》

令Pj为A′ (S′, j) 成功的概率, j=0, …, n。则有

Pr [Attackrandom, n (D) = 1] = P0-Pn (14)

可以看到, 当输出序列是由RC4生成时, 攻击A返回1的概率与A′ (S′, j-1) 返回1的概率相等;当输出序列完全随机生成时, 攻击A返回1的概率与A′ (S′ , j) 返回1的概率相等。j是在{1, …, n}间随机选取的, 因此有:

Ρr[A(RC4(Κ))=1]=1nj=1nΡj-1(15)Ρr[A(f())=1frandomRln]=1nj=1nΡj(16)

所以

AdvS,1=1nj=1nΡj-1-1nj=1nΡj=Ρn-Ρ0n

由式 (14) 得

Pr[Attackrandom, n (D) =1]=nAdvS, 1 (A) (17)

由式 (12) 及式 (16) 推得:

AdvS′, l, n (A′) =AdvG, n (D) +nAdvS, 1 (A) ,

AdvS(t,ln)=maxAAdvS,l,n(A)AdvG(t,n)+nAdvS(t,l)

《4.2安全分析》

4.2安全分析

利用生日攻击方法按上述方式攻击加密算法时, 进行n次检索的成功概率为n2/2k , k为密钥长度[19]

考虑到执行时间与检索次数近似成正比, t近似等于n。由定理1, 密钥更新模块安全性能的优势函数跟其采用的伪随机序列生成函数有关。Key-hopping使用HMAC-MD5算法, 其iv长度为128 b;TKIP协议是用自己的混合函数, 假设该函数可以提高足够的安全性能, iv长度为48 b;WEP算法没有规定iv的生成, 假设它由普通的伪随机序列生成函数生成, 则优势函数分别为:

AdvG-WEP (n) ≈ (n2+n) /224 (18)

AdvG-TKIP (n) ≈ (n2+n) /248 (19)

AdvG-Key-hopping (n) ≈ (n2+n) /2128 (20)

RC4基本加密机制优势函数近似为[2]

AdvS (n) ≈ (n2+n) /2k

则TKIP的优势函数为

AdvTKIP (ln) ≈ (n2+n) /2128+n (l2+l) /2128≈ (l2n +n2+ln+n) /2128 (21)

Key-hopping的优势函数为

AdvKey-hopping (ln) ≈ (n2+n) /248+n (l2+l) /2128≈ (n2+n) /248 (22)

WEP协议的优势函数为

AdvWEP (ln) ≈ (n2+n) /224+n (l2+l) /2k≈ (n2+n) /224 (23)

使用RC4机制输出相同长度序列时的值为

AdvRC4 (ln) ≈ (l2n2+n) /2k (24)

其中n为检索的输出序列数, k为128 b, 假定一个繁忙的AP在一个平均带宽为5 Mb/s的信道传输长度l=1 500 B的数据帧。WEP协议、RC4加密机制和增强机制优势函数值如图1所示。

《图12》

图1安全性能比较比较

图1安全性能比较比较  

Fig.1 The comparison of the security

图1表示在同样数量的输出数据时是各个机制优势函数的值, y轴为攻击成功的概率值, 数值越高则安全性越低。通过比较看出, WEP加密机制安全性最差, 在输出4 000多个数据包时, 其被攻破的可能性接近1, 这与文献[3]给出的结果相符;TKIP协议的安全强度比WEP提高约4个等量级, 但它还是削弱了RC4的安全强度, 当输出数据包为107时, 被攻破的可能性为0.6;RC4加密在输出1016个数据包时, 其被攻破的可能性约为0.6左右;Key-hopping的安全性能最高, 在输出1019个数据包时, 其被攻破的可能性约为0.25左右, 这意味着, 一个繁忙的AP在一个平均带宽为5 Mb/s的信道传输长度为1 500 B的数据帧时, TKIP密钥的生命周期约为2.4×104 h, Key-hopping密钥的生命周期约为6.7×1012 h, 在实际环境中基本上满足需求的。与原有WEP相比, TKIP和Key-hopping的安全性能都得到大幅度提高, Key-hopping的安全强度最高。

《5 结论》

5 结论

由定理2可以看出, 最终加密机制与采用的密钥更新机制有很大的关系, 如果密钥更新模块的安全性能近似或大于基本RC4流加密机制, 密钥更新模块可以起到提高安全性能的作用。若密钥更新模块的安全性能远远低于基本RC4流加密机制, 由定理2推得最终加密机制的安全性能与密钥更新模块的安全性能近似相等, 这样安全性能非但不能提高, 反而是大大降低了。这就是WEP协议失败的原因, 由理论推导的结果与实际情况相符。在所有得到应用的无线加密机制中, WEP的安全性能最低, 无法在实际环境中提供安全保护;Key-hopping的安全性能最高, TKIP较差。但TKIP的运算速度远远高于Key-hopping。因此, 在安全性能要求很高的环境下建议使用Key-hopping机制, 而在一般环境下还是使用TKIP协议就可以满足普通用户对安全的需求。