《1 前言》
1 前言
一直以来, 人们希望能够得到高效率、高质量、低商业成本的服务, 无线网络的产生和不断发展均基于这种需求。无线局域网 (WLAN, wireless local area network) 作为有线局域网的延伸, 能方便地以无线方式将计算机联网, 满足人们对移动办公日益增长的需求, 因而在近几年取得了长足的发展。特别是随着以IEEE802.11为代表的网络标准的成熟, 用户可以享受从1 Mb/s到11 Mb/s甚至54 Mb/s的高带宽无线通信。但无线网络给人们带来便利的同时也带来了新的问题, 特别是安全问题。由于数据的传输是通过无线电波在空中传播进行的, 这使得的数据的窃听和伪造变得非常容易, 因此需要采用针对无线传输的安全机制来保护通信。
无线局域网通信的802.11标准
《2 现有的研究》
2 现有的研究
WEP协议为802.11无线网络提供链路层数据通信的安全保护
协议的制定者认为该协议的安全性依赖于针对密钥进行强力破解的难度, 128 b版本的WEP协议可以抗拒目前利用最高性能计算机进行的强力破解。但文献
《图1》
如果其中的一个消息明文已知, 另一个消息的明文立即就可以获得。在现实世界中, 由于明文有足够的信息量使得可以直接从P1♁P2中得到P1和P2
iv在WEP协议中主要提供2个功能, 一是用来生成加密密钥, 一是作为状态计数器进行传输以保证加解密双方的状态保持同步。从文献
分析可知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的误用。
为了解决链路层数据加密的安全隐患, 文献
由于一个加密协议的安全性能与该协议使用的加密算法以及协议本身有很大关联, 进行横向比较, 困难较大。一些文献对协议安全性能的理论分析进行了探讨, 并提出了一些理论, 比较成功并得到广泛应用的有文献
《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安全性能有多少提高, 下面利用文献
从结构上看, 模型1实际上是模型2的特例, 它们都是先通过某一机制由SK生成子密钥, 再使用子密钥运用RC4算法生成加密使用的序列。因此可以一起进行分析。模型1的混合函数实际上为
《图4》
《4.1相关定理及其证明》
4.1相关定理及其证明
模型2实际上可以分为2个相对独立的模块:子密钥生成模块和加密模块。
整个子密钥的生成过程可以看成一个伪随机数生成状态机G, 因此可以用伪随机性作为分析安全性能的评判标准
构造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优势函数的定义
定义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的优势函数为
伪随机函数优势函数为时间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
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′)
构造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}间随机选取的, 因此有:
所以
由式 (14) 得
Pr[Attackrandom, n (D) =1]=nAdvS, 1 (A) (17)
由式 (12) 及式 (16) 推得:
AdvS′, l, n (A′) =AdvG, n (D) +nAdvS, 1 (A) ,
即
《4.2安全分析》
4.2安全分析
利用生日攻击方法按上述方式攻击加密算法时, 进行n次检索的成功概率为n2/2k , k为密钥长度
考虑到执行时间与检索次数近似成正比, 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基本加密机制优势函数近似为
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所示。
图1表示在同样数量的输出数据时是各个机制优势函数的值, y轴为攻击成功的概率值, 数值越高则安全性越低。通过比较看出, WEP加密机制安全性最差, 在输出4 000多个数据包时, 其被攻破的可能性接近1, 这与文献
《5 结论》
5 结论
由定理2可以看出, 最终加密机制与采用的密钥更新机制有很大的关系, 如果密钥更新模块的安全性能近似或大于基本RC4流加密机制, 密钥更新模块可以起到提高安全性能的作用。若密钥更新模块的安全性能远远低于基本RC4流加密机制, 由定理2推得最终加密机制的安全性能与密钥更新模块的安全性能近似相等, 这样安全性能非但不能提高, 反而是大大降低了。这就是WEP协议失败的原因, 由理论推导的结果与实际情况相符。在所有得到应用的无线加密机制中, WEP的安全性能最低, 无法在实际环境中提供安全保护;Key-hopping的安全性能最高, TKIP较差。但TKIP的运算速度远远高于Key-hopping。因此, 在安全性能要求很高的环境下建议使用Key-hopping机制, 而在一般环境下还是使用TKIP协议就可以满足普通用户对安全的需求。