有时觉得搞技术的真累,当我们辛辛苦苦地在网上找资料学习新技术时,当我们渐渐掌握这门技术之后,才发现该技术对自己来说是新的,但是对现时来说,已经过时并且被遗弃了!所以说……Shit!
由于网上大量讲解WIFI技术的资料在认证方面都是侧重讲WEP加密方式。但是,时至今日,WEP已经属于石器时代的技术了,而且破解方法满天飞。虽然现在无线路由器都保留WEP加密方式,但是当你进行设置时,它会用红字提醒你:
注意:您选择的WEP加密经常在老的无线网卡上使用,新的802.11n不支持此加密方式。所以,如果您选择了此加密方式,路由器可能工作在较低的传输速率上。建议使用WPA2-PSK等级的AES加密。
看到没?现在的802.11n协议已经不支持WEP加密方式了,更何况最新的802.11ac。所以本文侧重讲解现当代正在使用的WPA/WPA2加密方式,特别是倾向于家庭网络的WPA-PSK/WPA2-PSK。
无线网络所使用的媒介是经过特殊编码与调制过的无线电波链路。它是众所周知的开放标准,只要对无线传输有所研究和了解的人,都可以在无线覆盖范围内发送和接收信号。因此对数据的拦劫和非法灌注是多么的简单!
由于无线网络的最大缺陷就是安全性,进行身份认证是必须的,同时认证的连接工作也必须予以加密,以防未经授权的使用者访问。
早期的IEEE802.11定义了两种认证方式:
(1)开放系统认证(OpenSystem authentication);
(2)共享密钥认证(SharedKey authentication)。
开放系统认证是IEEE802.11默认的认证方式,实质上并没有做认证。连接无线网络时,基站并没有验证工作站的真实身份。认证过程由以下两个步骤组成:第一,工作站发送身份声明和认证请求;第二,基站应答认证结果,如果返回的结果是“successful”,表示两者已相互认证成功。
共享密钥认证依赖于WEP(Wired Equivalent Privacy,有线等效加密)机制,而上文已经提到WEP渐渐被淘汰,我们就不讲解了,接下来侧重讲解与我们家庭无线网络息息相关的WPA-PSK/WPA2-PSK认证机制。当我们进入无线路由器设置界面,打开无线安全设置,就会看到以下信息,如图1。WPA(Wi-Fi Protected Access)是WIFI联盟制定的安全性标准,WPA2是第二个版本。PSK(PreShared Key)叫做预共享密钥。WPA-PSK/WPA2-PSK主要是针对个人或家庭网络等,对安全性要求不是很高的用户。而WPA /WPA2是针对企业的,对安全性要求很高的用户,在WPA/WPA2选项中,大家可以看到它比WPA-PSK/WPA2-PSK多了一个Radius服务器,这个就是认证服务器。而对我们家庭网络来说,适合选择WPA-PSK/WPA2-PSK选项,因为我们不需要认证服务器。现有我们来详细分析WPA-PSK/WPA2-PSK认证机制。
图1 WPA-PSK/WPA2-PSK、WPA/WPA2
1、WPA-PSK
WPA-PSK(Wi-Fi ProtectedAccess,Wi-Fi保护访问)是WiFi联盟推出的标准,它是为兼容原有的WEP硬件产品,所以它采用的模式是:
WPA-PSK = PSK + TKIP + MIC
PSK:PreShared Key,预共享密钥。
TKIP:Temporal KeyIntegrity Protocol,临时密钥完整性协议。
MIC:Message IntegrityCode,消息完整性校验码。
TKIP的开发目的是为了提高原有的基于WEP硬件的安全性,因此它和WEP一样都是采RC4加密算法,同时保留了WEP的基本结构和操作方式。TKIP是一种过渡的加密协议,现已被证明安全性不高。因此,我们就不去详细的讲解了。
2、WPA2-PSK
WPA2是在802.11i颁布之后,WIFI联盟随即推出的最新无线安全标准,它遵循802.11i标准,以下是它采用的模式:
WPA2-PSK= PSK + AES + CCMP
PSK:PreShared Key,预共享密钥,它是一种802.11身份验证方式,以预先设定好的静态密钥进行身份验证,此密钥必须手动进行传递,即是我们的手机连接WIFI热点时需要输入的密码。
AES:Advanced EncryptionStandard,高级加密标准。AES是美国NIST制定的替代DES的分组加密算法。AES具有优秀的密钥扩展方案,灵活的密钥生成算法。算法对内存要求极低,即使在限制较大的环境中也能获得很好的性能。分组和密钥被设计成可以在三种长度中自由选择的形式,AES具有128、192、256位的密钥。802.11规定CCMP中的AES使用的是128位密钥,它的加密块大小也是128位。
CCMP:Counter modewith Cipher-block chaining Message authentication code Protocol,计数器模式及密码块链消息认证码协议。它是基于高级加密标准(AES)的CCM(CTR with CBC-MAC)模式。CCM是一种通用的模式,它可以使用在任何成块的加密算法中。CCM模式使用CTR(Counter Mode)提供数据保密,并采用密码块链信息认证码(Cipher-Block Chaining with Message Authentication Code,CBC-MAC)来提供数据认证和完整性服务。
CCMP加密时由以下四个输入项组成:
(1)明文(Plaintext MPDU);
(2)临时密钥(TK);
(3)封包编号(PN);
(4)密钥标识符(KeyId);
CCMP的加密和解密过程如图2、图3。图2 CCMP加密过程
图3 CCMP解密过程
下面让我们来看看CCMP帧封装格式,如图4。MAC Header是明文(Plaintext MPDU)原封不动传递过来的,该MAC Header符合802.11MAC标准帧格式。CCMP扩展了原始的MPDU长度到16个octet(注:在网络术语中,用octet表示8 bits),包括8 octets的CCMP头部和8 octets的MIC。CCMP头部由PN、ExtIV、KeyID组成。PN是48位的代表6个octets的数组,在PN中,PN5是最重要的的,PN0是重要性最低的。Data(PDU)是我们需要传输的数据。MIC(Message Integrity Code)是消息完整性检验码,它是针对一组欲保护数据计算出来的散列值,用以防止数据遭人篡改。FCS(Frame Check Sequence)是帧检验序列,处于802.11网络帧的尾部,用来侦测数据是否损坏,若接收端所计算出的FCS与帧中记载的FCS值不同,则可推断出该帧已经损坏并将其丢弃。