电子科技学院
无线局域网中使用的加密技术
电子科技学院李劲
摘要:无线局域网WLAN(Wireless Local Area Networks)已成为我们生活中不可或缺的一部分。它在给人们生活带来方便的同时,也引入了通信的安全问题。目前,信息安全问题已成为热点问题。WLAN使用的加密技术主要有三种:WEP、WAP和WAP2。本文对这三种加密技术进行了研究,从数据加密、数据完整性、身份认证等方面详细分析了三种协议。并且对攻击技术做了简单的介绍。 关键词:WLAN;无线局域网;WEP协议;WPA/WPA2协议
0 引言
随着近年来笔记本电脑、平板电脑、智能手机的普及,无线局域网作为无线宽带通信的一种,近些年发展极为迅猛。据 WIFI联盟估计,全球已经有 10%的人使用无线局域网进行通信。无线局域网在为人们提供便利的同时,安全问题也随之日渐突出。近年来,由于使用无线局域网的原因而造成经济损失的案例也常常见诸各种新闻媒介。有线对等加密(Wired Equivalent Privacy, WEP)协议作为第一代无线局域网协议,并没有很好地解决无线局域网的安全问题, WPA/WPA2(Wi-Fi 网络安全存取)协议继承了 WEP 协议,并且弥补了 WEP 协议的设计缺陷和漏洞,保护了无线网络的安全。 1 WEP协议
相对于有线网络来说,通过无线局域网发送和接收数据更容易遭到窃听。设计一个完善的无线局域网系统,加密和认证是需要考虑的两个必不可少的安全因素。无线局域网中应用加密和认证技术的最根本目的就是使无线业务能够达到与有线业务同样的安全等级。针对这个目标,IEEE802.11标准中采用了WEP协议来设置专门的安全机制,进行业务流的加密和节点的认证。WEP是建立在RC4序列密码机制上的协议,并使用CRC-32算法进行数据检验和校正从而确保数据在无线网络中的传输完整性。RC4密码机制的目的在于对无线环境中的数据进行加密,主要用于无线局域网中链路层信息数据的保密。WEP采用对称加密原理,数据的加密和解密采用相同的算法和密钥。
1.1 RC4算法
RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ronald Rivest在1987年设计的密钥长度可变的序列密码算法簇。之所以称其为簇,是由于其核心部分的S盒长度可任意改变。该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。
1.1.1 RC4算法概述
RC4算法属于二进制异或同步流密码算法,其密钥长度可变,在WEP协议中密钥长度可选择64bit,128bit或152bit。
RC4算法由伪随机数产生算法(PRGA)和密钥调度算法(KSA)两部分构成。其中PRGA为算法的核心,用于产生与明文模二加的伪随机数序列;算法的功能是将密钥映射为伪随机数发生器的初始化状态,完成算法的初始化。
1.1.2 RC4算法原理 一、KSA算法:
1
电子科技学院
1、线性填充:将S数组按从0至255的顺序填充,即令S0=0,S1=1,?,S255=255,记为Si。
2、密钥填充:用密钥重复填充另一个256字节的数组,不断重复密钥直到填充到整个数组,得到:K0,K1,?,K255,记为Ki。
3、S盒交换:对于i=0到255,计算j=(j+Si+Ki)mod256,交换Si与Ki。 KSA算法最终得到一个八进八出的S盒:S0、S1?S255。 二、PRGA算法:
1、算法用到两个计数器i、j,设其初值为0。
2、每加密一个字节,将(i+1 mod256)赋值给i,将 (j+Simod256)赋值给j。交换Si、Sj。
3、中间变量t=(Si+Sj)mod256,密钥K= St。 最后利用得到的密钥K与明文进行按位模2加。 整个过程如图1所示。
图1 RC4算法流程图
1.1.3 RC4算法的实现
RC4的算法比较简单,软件容易实现,只需把算法中的i、j和S盒作为其内部状态。基于这种观点,编写程序时把内部状态封装在一个结构体中,KSA算法和PRGA算法则直接对这一结构体进行操作即可实现。 1.1.4 RC4算法安全性能分析
在RC4算法流程中,对S盒进行的唯一操作是交换。S盒始终保存256bit初始信息的某个转置状态,而且转置随着时间而更新。这也是算法的强度所在。算法的内部状态一共用256!个,此状态大约保存了1700bit的信息。
S盒的初始化状态仅仅依靠于加密密钥K,因此,若已知加密密钥就可完全破解RC4算法。加密密钥完全且唯一确定了RC4输出的伪随机数序列,相同的密钥总是产生相同的序列。另外,RC4算法本身并不提供数据完整性校验功能,此功能的实现必须由其他方法实现。
RC4算法属于二进制异或序列密码,相同的密钥总是产生相同的输出。为解决密钥重用的问题,WEP协议中引入了初始化向量IV。初始化向量为一随机数,每次加密时随机产生。初始化向量以某种形式与原密
2
电子科技学院
钥相结合,作为此次加密的密钥。由于并不属于密钥的一部分,所以无须保密,多以明文传输。虽然初始化向量的使用很好地解决了密钥重用的问题,然而,Fluhrer S等人指出:初始化向量的使用将导致严重的安全隐患。 1.2 循环冗余检查
WEP协议中使用循环冗余算法(CRC-32)进行数据的完整性检查。循环冗余检查是对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
1.2.1 循环冗余检查的原理
CRC校验码的编码方法是用待发送的二进制数据t(x)乘上X(r为生成多项式的阶数)再除以生成多项式g(x)完成的,最后的余数即为CRC校验码。WEP协议采用CRC-32的方式对数据进行编码,其生成的多项式为:x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1。对应的CRC-32校验码生成硬件原理如图2所示。利用C实现的CRC-32代码见附录。
r
图2 CRC-32校验码生成原理
1.2.2 CRC-32算法的缺陷
CRC-32 算法是用来检验数据完整性的,但是由于其检验和是有效数据的线性函数,恶意攻击者可以随意篡改原文的内容。而且,由于 CRC-32检验和不是加密函数,只负责检验原文是否完整,恶意攻击者还可以自己生成数据进行发送。由于这些缺陷的存在,攻击者开发了多种方法来破解WEP,例如 chopchop 攻击、分段攻击、FMS 攻击和 PTW攻击等。 1.3 WEP协议的加密过程
最初的WEP支持64位和128位加密,对于64位加密,加密密钥为十个十六进制字符(0-9、A-F)和或5个ASCII字符;对于128位加密,加密密钥为26个十六进制字符或13个ASCII字符。之后出现的152位加密不是标准WEP技术,没有受到客户端设备的广泛支持。WEP利用通信双方共享的密钥来保护所传的加密数据帧。其数据的加密过程如图3所示:
图3 WEP加密过程
1、计算校验和。
(1)对输入数据进行完整性校验和计算。
3
电子科技学院
(2)把输入数据和计算得到的校验和组合起来得到新的加密数据,也称之为明文,明文作为下一步加密过程的输入。
2、加密。
在这个过程中,将第一步得到的数据明文采用算法加密。对明文的加密有两层含义:明文数据的加密,保护未经认证的数据。步骤如下:
(1)将24位的初始化向量和40位的密钥连接进行校验和计算,得到64位的数据。
(2)将这个64位的数据输入到PRGA算法中,产生加密时所用的乱数。 (3)经过校验和计算的明文与伪随机数产生器的输出密钥流进行按位异或运算得到加密后的信息,即密文。
3、传输。
将初始化向量和密文串接起来,得到要传输的加密数据顿,在无线链路上传输。
1.4 WEP协议脱密过程
在安全机制中,加密数据帧的解密过程只是加密过程的简单取反。解密过程如下:
1、恢复初始明文。利用初始向量IV重新产生密钥流,将其与接收到的密文信息进行异或运算,即可恢复初始明文信息。
2、检验校验和。接收方根据恢复的明文信息来检验校验和,将恢复的明文信息分离,重新计算校验和并检查它是否与接收到的校验和相匹配。这样可以保证只有正确校验和的数据才会被接收方接受。 1.5 WEP协议的不安全因素
由于WEP设计上存在缺陷,所以该协议存在安全漏洞。 1.5.1 RC4算法问题
算法存在弱密钥性。用RC4算法加密包括两个阶段:第一个阶段,使用64位或者128位的密钥(其中包括位的初始化向量IV)来建立状态数组,这个状态数组的初始值是{0,1,2,?,255}然后对这256个字节进行一系列的交换操作,从而得到伪随机数。第二个阶段,用伪随机数和明文进行异或运算从而得到密文。然而研究发现,存在特殊格式的初始化向量IV,用它构造的密钥(称为弱密钥)生成的伪随机数的初始字节与此密钥的少数几个字节存在很强的相关性,大大地减少了搜索密钥空间所需的工作量。也就是说,这种初始化向量IV泄漏了密钥信息。 1.5.2 WEP本身的缺陷
WEP本身的缺陷主要在以下几个方面: 1、用了静态的WEP密钥。
由于在WEP协议中不提供密钥管理,所以对于许多无线连接网络中的用户而言,同样的密钥可能需要使用很长时间。WEP协议的共享密钥为40位,用来加密数据显得过短,不能抵抗某些具有强大计算能力的组织或个人的穷举攻击或字典攻击。
2、WEP协议使用的是RC4算法,产生24位长的字符串密钥,相对而言,这样的长度解密也非常容易。更有甚者,在规范中,相同厂商提供的不同无线网卡所产生的密钥序列也是相同的。其后果是,黑客们可以对网络通信进行记录,找出密钥的数据流,然后用于对密文的解密。
3、WEP没有对加密的完整性提供保护。在协议中使用了未加密的循
4
相关推荐: