WiFi网络WPA2 KRACK漏洞分析报告
摘要: 作者:东帆@阿里安全技术平台团队 ———————— 0x00 漏洞概述 安全研究员Mathy Vanhoef发现的WPA2协议的KRA(Key Reinstallation Attacks)漏洞,利用WPA2协议标准加密密钥生成机制上的设计缺陷,四次握手协商加密密钥过程中第三个消息报文可被篡改重放,导致在用密钥被重新安装。
作者:东帆@阿里安全技术平台团队
————————
0x00 漏洞概述
安全研究员Mathy Vanhoef发现的WPA2协议的KRA(Key Reinstallation Attacks)漏洞,利用WPA2协议标准加密密钥生成机制上的设计缺陷,四次握手协商加密密钥过程中第三个消息报文可被篡改重放,导致在用密钥被重新安装。
WiFi网络通过WPA2 handshake四次握手消息协商用于后续数据通信的加密密钥,其中交互的第三个消息报文被篡改重放,可导致中间人攻击重置重放计数器(replay counter)及随机数值(nonce),重放给client端,使client安装上不安全的加密密钥。
此漏洞攻击方式被命名为Key reinstallation attacks密钥重装攻击,除了影响已经在用的数据加密密钥,同时也影响PeerKey, group key, Fast BSS切换FT握手等,会导致WiFi通信数据加密通道不安全,存在被嗅探、篡改和重放等风险,攻击者可获取WiFi网络中的数据信息。
几乎所有支持Wi-Fi的设备(Android, Linux, Apple, Windows, OpenBSD, MediaTek, Linksys等)都面临安全威胁,危害较大。
该漏洞相关影响取决于被攻击的握手过程和数据加密协议,例如AES-CCMP可被重放和解密,TCP流量存在被劫持和注入恶意流量的可能,WPATKIP和GCMP可被重放、篡改及解密,影响会更大,因为GCMP两端使用的相同的认证密钥。
相关CVE如下,其中每个CVE代表一种特定场景下的密钥重装攻击。
l CVE-2017-13077: 四次握手过程中重装PTK-TK加密密钥对
l CVE-2017-13078: 四次握手过程中重装GTK
l CVE-2017-13079: 四次握手过程中重装IGTK
l CVE-2017-13080: Group key 握手过程中重装GTK
l CVE-2017-13081: 握手过程中重装IGTK
l CVE-2017-13082: 接收重传的快速BSS切换重关联请求,在处理过程中重安装PTK-TK加密密钥对
l CVE-2017-13084: 在PeerKey握手过程中重安装STK KEY
l CVE-2017-13086: 在DTLS握手过程中重安装TDLS PeerKey
l CVE-2017-13087: 在处理WNM睡眠模式响应帧过程中重安装GTK
l CVE-2017-13088: 在处理WNM睡眠模式响应帧过程中重安装IGTK
漏洞攻击演示视频:
https://www.youtube.com/watch?v=BtdN1SM5Z5o
0x01 WPA2协议介绍
WPA全名为Wi-Fi Protected Access,有WPA和WPA2两个标准, WPA(Wi-Fi Protected Access)加密方式目前有四种认证方式:WPA、WPA-PSK、WPA2、WPA2-PSK,采用的加密算法有两种:AES(Advanced Encryption Standard高级加密算法)和TKIP(Temporal Key Integrity Protocol临时密钥完整性协议)。
由于WEP已被证明为不安全的协议,在802.11i协议完善前,采用WPA为用户提供一个临时性的解决方案。该标准的数据加密采用TKIP协议(Temporary Key Integrity Protocol),TKIP的两个主要功能是:逐包密钥及消息完整性检查(MIC),与WEP相同的加密算法RC4来实现这一点,虽然TKIP解决了所有已知的WEP问题,但WPA2的AES加密更安全,适应更广泛的工业标准并在实践中广泛使用。
WPA2是WPA的增强型版本,与WPA相比,WPA2新增了支持AES的加密方式,采用AES加密机制。
0x02 Key reinstallation attacks密钥重装攻击
四次握手协商密钥过程中消息报文见图1EAPOL格式,其中重放计数replay counter字段用于检测重复报文,每次发送一个报文,重放计数加一,nonce字段为加密密钥生成所需要的随机数。
图1 EAPOL帧简化报文格式
以group key为例,首先Client进入PTK-INIT状态,初始化(PMK),当接收到消息1进入PTK_START状态,client会生成随机数SNonce,计算临时TPTK,发送消息2(带SNonce)到AP,当Client接收到消息3,replay counter重放计数等有效的条件下,进入PTK-NEGOTIATING协商状态,同时标记TPTK为有效,发送消息4到AP,然后直接进入PTK-DONE状态,使用MLME-SETKEYS安装KEY。特别注意的是,此状态机过程来自于802.11标准,清晰的考虑了未收到消息2或者4的情况,消息1或者3会继续重传。具体如下:
图2 四次握手状态机,KEY用MLME-SETKEYS.request命令字进行安装
当client作为Supplicant加入wifi网络,client与AP认证端Authenticator进行四次握手协商新的加密密钥,见下图3,在接收到四次握手中的第3个消息报文时会安装新生成的加密密钥,后续数据通信使用该密钥进行数据加密。
因为报文可能丢失,如果AP未接收到client的响应会重发第三个消息报文,所以client可能重复接收到第3个消息报文多次。每次当client接收到此消息,都会重新安装相同的加密密钥,然后重置协议加密使用到的nonce值及重放计数。
攻击者可通过嗅探、重放四次握手过程中的第3个消息报文,强制重置协议加密使用到的nonce值及重放计数,重安装加密密钥,从而攻击协议的加密机制,数据报文可被重放、解密及篡改。
该攻击方法同时可用于攻击已在使用的加密密钥、group key、PeerKey, TDLS及快速BSS切换握手等。
图3 Group Key场景四次握手
0x03 漏洞根因分析及影响
802.11协议标准仅提供描述粗粒度的伪码描述四次握手的状态机,但并未清晰描述特定的握手消息应该在什么时候处理。
密钥重装漏洞滥用了消息3重传的流程,首先在Client和AP之间确定MitM中间人攻击的点,在AP接收到消息4之前不断重传篡改后的消息3,导致Client重新安装已用的加密密钥,同时重置nonce值。
实际情况,实施此攻击的时候,并非所有的Wi-Fi客户端client都正确实现了此状态机,Windows和iOS未接收处理消息3的重传,这违背了802.11标准,所以密钥重装漏洞攻击的时候并未生效产生漏洞,但在group key握手的场景下仍然存在安全漏洞,此外在FT握手情况下仍可能被间接攻击。
对于Android 6.0影响更大,在此攻击的情况下,强制使用了可预测全零的加密密钥。
密钥重装漏洞攻击实际影响如下图4,第一列代表不同类型的Client客户端,第2列表示不同Client类型是否接受消息3,第三列表示如果PTK配置,EAPOL消息明文是否接收,第4列表示首个消息3报文快速发送后是否接收明文EAPOL报文,最后两列表示是否受到此漏洞攻击的影响。
特别需要注意的,研究者当前并没有破解Wi-Fi网络的密码,也并没有通过四次握手协商过程的攻击破解新生成的加密密钥。
图4不同Clients的实际漏洞效果
0x04 漏洞影响范围
此漏洞存在于协议标准设计缺陷,所有支持WPA2的客户端都受到影响。
攻击主要面向WPA2客户端设备。
0x05 漏洞安全加固建议
1、 漏洞攻击需要实施MitM中间人攻击,条件许可建议合理部署无线入侵防御系统或者VPN加密,及时监测恶意钓鱼WiFi,禁止私搭AP等;
2、 及时升级此漏洞的安全补丁(有补丁的情况),更新WPA2客户端到最新版本;
3、 仅连接可信wifi,公共场合尽量使用蜂窝移动网络,wifi连接不用的情况下建议禁用,攻击面最小化。
注:
Linux的hostapd和wpa_supplicant补丁已公布,详见 https://w1.fi/security/2017-1/。
微软在Windows 10操作系统中发布补丁KB4041676。
苹果在最新的beta版本iOS等中修复了无线网络安全漏洞。
参考文档:
[1] https://papers.mathyvanhoef.com/ccs2017.pdf
[2]https://techcrunch.com/2017/10/16/wpa2-shown-to-be-vulnerable-to-key-reinstallation-attacks/
-------------------------------
原文链接
WiFi网络WPA2 KRACK漏洞分析报告相关推荐
- 可攻陷所有WiFi网络!KRACK 漏洞发现者回答纪实
如果你能连接到的 Wi-Fi 一夜之间不安全了,通过自家路由器的 Wi-Fi 上网冲浪却陷入勒索软件和其他恶意软件的包围中,一浪冲到沙滩上-- 这并非是夸张,就在今天,比利时安全研究人员 Mathy ...
- 你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告
近日,Wi-Fi加密协议被曝光存在重大安全漏洞,用于保护Wi-Fi网络安全的WPA2 安全加密协议已被黑客破解.这种被称作"Krack"(密钥重装攻击)攻击意味着用户连接的绝大多数 ...
- RiskSense Spotlight:全球知名开源软件漏洞分析报告
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 RiskSense 公司最近发布了关于全球当前知名开源软件 (OSS) 的漏洞分析报告.奇安信代码卫士团队编译如下. 摘要 开源软 ...
- Office 2003 sp3(CVE-2012-0158)漏洞分析报告
文章目录 Office 2003 sp3(CVE-2012-0158)漏洞分析报告 1.漏洞背景 2.漏洞成因 2.1 触发漏洞 2.2 定位漏洞模块 2.3 定位漏洞函数 2.4 分析漏洞成因 2. ...
- 比葫芦娃还可怕的百度全系APP SDK漏洞 - WormHole虫洞漏洞分析报告
瘦蛟舞 · 2015/11/02 10:50 作者:瘦蛟舞,蒸米 "You can't have a back door in the software because you can't ...
- 用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析报告出炉
来源:机器之心 本文约1600字,建议阅读5分钟 静态代码分析安全公司 Veracode 近日发布了一份应用程序分析报告,结果发现比起 JavaScript 和 Python 等语言,C++ 和 PH ...
- 安天移动安全发布“大脏牛”漏洞分析报告(CVE-2017-1000405)
一.背景简介 脏牛漏洞(CVE-2016–5195)是公开后影响范围最广和最深的漏洞之一,这十年来的每一个Linux版本,包括Android.桌面版和服务器版都受到其影响.恶意攻击者通过该漏洞可以轻易 ...
- CVE-2017-11882漏洞分析报告
漏洞简介: 软件名称及版本:Microsoft Office2016以下 漏洞模块:EQNEDT32.EXE 漏洞编号:CVE-2017-11882 危害等级:高危 漏洞类型:缓冲区溢出 威胁类型:远 ...
- 金融行业安全漏洞分析报告
报告介绍 互联网+时代的到来,人们充分享受新时代科技创新成果的便利同时,万物互联带来的信息安全风险也日渐提高,信息泄密事件层出不穷,在资金体量庞大.用户信息集中.安全隐患影响深远的金融领域,所面临的安 ...
最新文章
- 用Javascript隐藏超级链接的真实地址
- C# 移除数组中重复项
- 微信小程序支付最容易犯的坑notify_url(支付回调)
- 使用matlab内存不足,Matlab内存不足问题(Out of memory)
- 4-pycharm找不到模块问题
- js判断是否以xxx结尾
- casefold()方法
- centos免密登录
- WebStorm介绍
- 两台服务器ubuntu20.x 直接文件共享,文件挂载 nfs
- 开发竞赛作品展示网站上线!
- Access入门之基本操作和认识
- 根据拼音首字母进行过滤的combobox
- ObjectARX类库简介
- 谁是程序员的祖师爷?
- Python学习 Day28 JS函数(二)
- Office 开发版本号
- 织梦php的api,DedeCMS提交百度熊掌号API接口PHP提交
- 21 天零基础入门机器学习 , 高薪 Offer 就在眼前
- java基本语法实验体会_Java基本语法实验报告
热门文章
- 《机器学习在线 解析阿里云机器学习平台》读书笔记
- Android TextView文字镂空效果的两种实现
- Find Bugs自己的bug. Find Bugs‘ bug.
- spring什么时候实例化bean
- 王者荣耀主页面html,CSS3实现王者荣耀匹配人员加载页面的方法
- 如何学好计算机论文500字,浅谈学习_500字
- Java常用操作符简介说明
- 大疆网上测评题库_一份完整的大疆2018校招笔试题和面经送给大家~
- Ubuntu Qt 安装雅黑Consolas
- 移动端(iphone)上使用canvas绘图,为canvas添加了监听点击事件,结果在iphone上点击会出现闪屏