计算机与信息科学 224 2018 年 11 月 i WiFi 密码字典破解方法的研究及实现 吴秋君1 陈 敏 2 1.上海市中国中学,中国 上海 200233 2.上海交通大学网络空间安全学院,中国 上海 200240 摘要:互联网日益成为人们工作、学习和生活不可或缺的一部分,密码泄漏是当前无线网络所面临的最为首要的安全性问题。针对破解难度极大的 WPA-WPA2-PSK 模式,通过研究字典包组合,完成了 WiFi 握手包的抓取,在 Kali Linux 系统里成功实现了 WiFi 密码破解,这对于制定 WiFi 网络的安全防御策略,提高 WiFi 网络安全性具有重要的参考意义。关键词:密码破解;WiFi;Kali;字典中图分类号:D64;G206文献标识码:A文章编号:1671-5500(2018)11-0224-02引言随着移动互联网服务场景不断丰富,移动终端规模加速提升,无线网络已经成为了网民接入移动互联网的首选方式。WiFi 是无线局域网络(WLAN)中运用的一个主流通信工业标准,即 802.11b/g/n 标准。由于无线网络环境下数据是采用广播形式传输的,再加上目前普遍缺乏有效的管理,导致WiFi 数据容易被窃取,无线网络也越来越多的成为了黑客入侵内网的突破口。
密码泄漏是当前无线网络所面临的最为首要的安全性问题,不少专家学者为此进行了研究。田腾浩[1]对 WiFi 密码破解方法做了对比研究,顾敏[2]着重分析了WiFi的技术优缺点及密码破解的现状,田延伟[3]以 WiFi 万能钥匙为例,通过对软件工作原理和上传数据的研究,提出了加强无线 WiFi 密钥 APP 的监管建议。针对密码破译,尹玮俊[4]提出一种能够通过利用多块 CPU 及 GPU 芯片并行计算能力来提升 WiFi 字典比对效率的方法。目前破解 WiFi 密码的主要方法分密码共享、暴力破解PIN码和字典破解WPA/WPA2-PSK三种方式。其中WPA-WPA2-PSK采用动态加密的方式连接到 WiFi,安全性非常高,破解难度极大,目前只能通过密码字典中的密码进行逐个尝试,该方法破解的成功率取决于密码的复杂度与字典包的大小。本文基于 Kali Linux 实现了 WiFi 密码的字典破解,这对于提高无线网络安全意识、掌握安全防范技术具有重要的参考价值。
1 字典破解 WPA/WPA2-PSK 原理 WPA/WPA2 协议,即 WiFi 保护接入协议(WiFi Protected Access),分为 WPA 和 WPA2 两种标准。其中 WPA/WPA2-PSK 采用预共享密钥(Pre Shared Key,PSK)技术,为个人级的协议,该协议不需要专门的认证服务器,仅要求每个 WLAN 节点(AP 无线访问点、无线路由器、网卡等)预先输入一个密钥即可实现。WPA/WPA2 由加密、认证和消息完整性校验三部分组成一个完整的安全方案[4],一次完整的认证过程包含四次握手认证,其中的握手包就是破解密码的关键,通过抓包工具抓取到握手过程中的数据包就可以采用字典破解 WPA/WPA2-PSK,破解原理如图 1 所示。首先用字典文件中的 PSK 加上 WiFi 的 ESSID 生成 PMK,然后结合握手包中的 STA MAC、AP 的 BSSID、ANonce 和 SNonce 计算出临时密钥 PTK(Pairwise Transient Key),最后再结合原始报文数据计算出 MIC 与握手包中的 MIC 进行比较,如果 MIC 一致,则该 PSK 就是正确密钥。ESSIDPSKSHA-1PMK STA MAC BSSID ANonce SNonce报文 PTK密文 MICAES TRIP 图 1 字典破解原理
2 字典组合研究 字典破解的方法就是根据 WPA/WPA2 协议算法逐个比对密码字典中的密码,直至找到正确的密码。
如果密码字典太小,就会降低破解的成功率,如果密码字典非常大,但里面包含很多不可能出现的密码,就需要耗费大量时间来完成破解。因此需要一个足够强大且有效的密码字典包。根据安全公司 Keeper 对全球 1000 万个泄露密码分析,发布的 2016 年最常用密码榜单显示,超过 50% 的用户都在使用该榜单 TOP 25 的密码,如表 1 所示。
表 1 最常用密码榜单 TOP 25
TOP 1 123456
TOP 14 666666
TOP 2 123456789
TOP 15 18atcskd2w
TOP 3 qwerty
TOP 16 7777777
TOP 4 12345678
TOP 17 1q2w3e4r
TOP 5 111111
TOP 18 654321
TOP 6 1234567890
TOP 19 555555
TOP 7 1234567
TOP 20 3rjs1la7qe
TOP 8 password
TOP 21 google
TOP 9 123123
TOP 22 1q2w3e4r5t
TOP 10 987654321
TOP 23 123qwe
TOP 11 qwertyuiop
TOP 24 Zxcvbnm
TOP 12 mynoob
TOP 25 1q2w3e
TOP 13 123321
但是仅仅包含这些密码还不够,还要根据大家的习惯设置相应的密码。用户在设置密码时通常不会随便使用自己记不住的组合,而是将规律的数字、特殊含义的字母以及特殊字符进行组合使用,这些数字、字母通常包括出生年、月、日、姓名拼音或首字母等。本文将以下内容进行组合,生成独特的密码字典:1)常用年份:“1985”,“1986”,“1987”,