赵建华
(长春师范大学网络中心,吉林长春 130032)
随着微信、支付宝等支付方式的兴起,为了给用户提供方便,许多公共场所、商场及个体经营者都设置自己Wi-Fi信号,任何人在有效范围内都能连接上。然而,无线路由器的开放性,使数据传播范围无法控制,是无线网络中最严峻的问题,因此安全使用Wi-Fi尤为重要[1]。
有线等效保密(WEP)协议,是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线网络,WEP是1999年9月通过的IEEE 802.11 标准的一部分,使用RC4(Rivest Cipher)串流加密技术达到机密性,并使用CRC-32校验和达到资料正确性。标准的64比特WEP使用40比特的钥匙接上24比特的初向量(initialization vector,IV)成为RC4用的钥匙。不过密码分析学家已经找出WEP的几个弱点,因此在2003年被Wi-Fi Protected Access(WPA)所淘汰,又在2004年由完整的IEEE 802.11i标准(又称WPA2)所取代。WEP虽然有些弱点,但也足以吓阻非专业人士的窥探了[2]。家庭常用的水星无线路由器WEP加密方式设置如图1所示。
按照图1中编号顺序,第一步选择加密类型为“WEP”,第二步设置认证类型设置为“开放系统”,第三步WEP密钥格式设置为“十六进制”,第四步密钥类型设置为“64位”,第五步保存,最后重启路由器即可设置成功。
2004年提出的“无线网络安全接入”技术,采用的加密算法有两种,即RC4算法和TKIP(Temporal Key Integrity Protocol临时密钥完整性协议)。
RC4算法的原理很简单,包括初始化算法(KSA)和伪随机子密码生成算法(PRGA)两大部分[3]。
图1 家庭常用路由器WEP加密方式设置
RC4算法的实现代码如下:
/*初始化函数*/
void rc4_init(unsigned char *s,unsigned char*key, unsigned long Len)
{
Int n=0,m=0;
unsigned char k[256]={0};
unsigned char tmp=0;
for(n=0;n<256;n++) {
s[n]=n;
k[n]=key[n%Len];
}
for(n=0;n<256;n++) {
m=(m+s[n]+k[n])%256;
tmp=sn];
s[n]=s[m];//交换s[n]和s[m]
s[m]=tmp;
}
}
/*加解密函数*/
void rc4_crypt(unsigned char*s,unsigned char *Data,unsigned long Len)
{
int n=0,m=0,t=0;
unsigned long k=0;
unsigned char tmp;
for(k=0;k { n=(n+1)%256; m=(m+s[n])%256; tmp=s[n]; s[n]=s[m];//交换s[x]和s[y] s[m]=tmp; t=(s[n]+s[m])%256; Data[k]^=s[t]; } } 由于RC4算法加密采用的是异或(xor),一旦子密钥序列出现了重复,密文就有可能被破解。 TKIP是包裹在已有WEP密码外围的一层“外壳”,它的加密引擎和WEP的一样,在此基础上加上RC4算法,通过使用长度为128位的密钥和在传送的每一个数据包都具有48位的序列号特性,解决了WEP中“过短的密钥长度”和“重放攻击”的问题[4]。图2是家庭常用的水星无线路由器WAP加密方式设置。 图2 家庭常用路由器WPA加密方式设置 按照图2中编号顺序,第一步选择“WAP-PSK/WPA2-PSK”选项,第二步认证类型选择“WPA”,第三步加密算法设置为“TKIP”,最后点击保存按钮,重启路由器设置成功。 WPA2是基于WPA的一种新的加密方式,既WPA第二版,WPA2 需要采用高级加密标准(AES)的芯片组来支持,AES是比TKIP更为安全的算法,在密码学中又称Rijndael加密法,Rijndael密码的设计力求满足以下三条标准:①抵抗所有已知的攻击;②在多个平台上速度快,编码紧凑;③设计简单。 其算法实现如下: Rijndael(State, ExpandedKey) { AddRoundKey(State, ExpandedKey); for(n=1; n Round(State, ExpandedKey+Nb* n); FinalRound(State, ExpandedKey+Nb*Nr) } Round(State, RoundKey) { ByteSub(State); ShiftRow(State); MixColumn(State); AddRoundKey(State, RoundKey) } FinalRound(State, RoundKey) { ByteSub(State); ShiftRow(State); AddRoundKey(State, RoundKey) } 在家用路由器中设置这种加密方法是在图2的认证类型下拉列表中选择WPA2,加密算法选择AES即可设置成功。 WEP方式加密是一种最不安全的加密方式,如果Wi-Fi以这种方式设置的密码,攻击者不用准备任何字典,只要抓取IVS数据包就可以直接破解。下面是破解过程: 首先使用minidwep-gtk工具扫描无线网卡能接收到的Wi-Fi信号,如果有使用WEP方式加密的,将会被列出,如图3所示。 图3 使用minidwep-gtk扫描以WEP方式加密的Wi-Fi信号 接下来选中以WEP方式加密的信号,点击图3右侧启动按钮,开始抓取IVS数据包,抓取过程如图4所示。 图4 抓取IVS数据包 当抓取足够多的IVS数据包后,会立即获得到Wi-Fi密码,如图5所示。 图5 破解成功获取密码 图6 使用minidwep-gtk扫描以WPA/WPA2方式加密的Wi-Fi信号 WPA/WPA2方式加密的Wi-Fi,破解方法是先抓取握手包,然后利用minidwep-gtk进行暴力破解。下面为破解过程: 首先利用minidwep-gtk工具扫描无线网卡能接收到的Wi-Fi信号,扫描到若干个利用WPA2方式加密的Wi-Fi信号,如图6所示。 然后选择要破解的Wi-Fi信号,点击右侧的启动按钮,一旦有人连接了该Wi-Fi信号,攻击工具就能抓到握手包,然后攻击者选择事先准备好的字典,就开始了暴力破解,只要字典足够强大,密码终将能够被破解。暴力破解成功后将弹出如图7所示的对话框。 图7 暴力破解成功后显示密码 WPS,Wi-Fi Protected Setup,即Wi-Fi保护设置,也称QSS(Quick Secure Set,快速安全设置),主要致力于简化无线局域网的安装及安全性能配置工作,WPS能帮助用户自动设置网络名(SSID)、配置强大的WPA数据编码及认证功能,用户只需输入个人信息码(PIN码),就能连入WLAN,给用户带来便利的同时也带来极大安全隐患。攻击者获取PIN码可以利用Reaver穷举PIN的方法,很容易地能获得PIN码[5]。攻击者只要获取PIN码,也就能够连接上Wi-Fi。 通过对以上针对家用无线Wi-Fi攻击手法的分析,我们在使用路由器时要做好以下几点进行防御。 大多数家用路由器的Wi-Fi默认管理账号都是admin,默认密码为admin或admin888,这几乎是人人皆知的账号密码。在使用路由器的过程中,如果不修改默认的管理账号和密码,那么会被攻击者轻而易举地登录到路由器的管理界面,获取Wi-Fi密码。 根据上面对无线加密和破解的分析,加密方式WPA是最不安全的,因此应将路由器的加密方式更改为WPA2或AES。 无线Wi-Fi密码设置得越复杂,其被破解成功的几率就越小。因此,在设置密码时一定不要用纯数字作为密码,尽量使用数字、字母、特殊符号的组合设置密码。 开启无线路由器的“MAC地址过滤”功能,在MAC地址列表中输入允许连入网络的MAC地址,这样利用MAC地址的唯一性,可以非常有效地阻止非法用户。即使面对现在非常猖獗的“蹭网卡”现象,也能起到很好的防护作用。 根据前文对开启WPS的密码破解分析,开启WPS后很容易被攻击者获取PIN码,所以使用路由器时应尽量关闭WPS功能。 WDS(Wireless Distribution System),即无线分布式系统,构建在HFSS或DSSS底层,使各基地台间进行沟通,但与HFSS或DSSS比较,WDS具备的不同功能是可以实现信号放大。WDS作为目前家用无线路由器主要的扩展无线连接的技术,已经成为低端无线路由器的基本功能之一,在路由器使用过程中如不需要扩展无线网络信号范围则无需打开WDS。 SSID(Service Set Identifier)即服务集标识。无线路由器一般都会提供“允许SSID广播”的功能。如果用户不想让自己的无线网络被别人通过SSID名称搜索到,那么最好“禁止SSID广播”,无线网络仍然可以使用,只是不会出现在其他人所搜索到的可用网络列表中。 本文介绍了三种无线Wi-Fi密码加密标准,并针对这三种标准进行密码攻击演示,给出家庭用无线路由器的安全配置策略,增加无线网络破解难度,提高无线网络的安全性。1.3 WPA2
2 无线Wi-Fi常用密码破解方法
2.1 针对WEP方式的密码破解
2.2 针对WPA/WPA2方式的密码破解
2.3 针对开启WPS的密码破解
3 无线Wi-Fi安全防御的措施
3.1 修改无线Wi-Fi默认管理账户
3.2 设置无线加密方式WPA2/AES
3.3 以数字、字母、大小写、特殊字符10位以上组合设置无线Wi-Fi密码
3.4 开启MAC地址过滤功能
3.5 关闭WPS功能
3.6 关闭WDS功能
3.7 关闭SSID广播
4 结语