摘要: 作者:东帆@阿里安全技术平台团队 ———————— 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漏洞分析报告相关推荐

  1. 可攻陷所有WiFi网络!KRACK 漏洞发现者回答纪实

    如果你能连接到的 Wi-Fi 一夜之间不安全了,通过自家路由器的 Wi-Fi 上网冲浪却陷入勒索软件和其他恶意软件的包围中,一浪冲到沙滩上-- 这并非是夸张,就在今天,比利时安全研究人员 Mathy ...

  2. 你的Wi-Fi 还安全吗?全球重大漏洞WPA2 KRACK 详细分析报告

    近日,Wi-Fi加密协议被曝光存在重大安全漏洞,用于保护Wi-Fi网络安全的WPA2 安全加密协议已被黑客破解.这种被称作"Krack"(密钥重装攻击)攻击意味着用户连接的绝大多数 ...

  3. RiskSense Spotlight:全球知名开源软件漏洞分析报告

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 RiskSense 公司最近发布了关于全球当前知名开源软件 (OSS) 的漏洞分析报告.奇安信代码卫士团队编译如下.   摘要 开源软 ...

  4. Office 2003 sp3(CVE-2012-0158)漏洞分析报告

    文章目录 Office 2003 sp3(CVE-2012-0158)漏洞分析报告 1.漏洞背景 2.漏洞成因 2.1 触发漏洞 2.2 定位漏洞模块 2.3 定位漏洞函数 2.4 分析漏洞成因 2. ...

  5. 比葫芦娃还可怕的百度全系APP SDK漏洞 - WormHole虫洞漏洞分析报告

    瘦蛟舞 · 2015/11/02 10:50 作者:瘦蛟舞,蒸米 "You can't have a back door in the software because you can't ...

  6. 用哪种语言写的应用漏洞最严重?六大主流语言代码漏洞分析报告出炉

    来源:机器之心 本文约1600字,建议阅读5分钟 静态代码分析安全公司 Veracode 近日发布了一份应用程序分析报告,结果发现比起 JavaScript 和 Python 等语言,C++ 和 PH ...

  7. 安天移动安全发布“大脏牛”漏洞分析报告(CVE-2017-1000405)

    一.背景简介 脏牛漏洞(CVE-2016–5195)是公开后影响范围最广和最深的漏洞之一,这十年来的每一个Linux版本,包括Android.桌面版和服务器版都受到其影响.恶意攻击者通过该漏洞可以轻易 ...

  8. CVE-2017-11882漏洞分析报告

    漏洞简介: 软件名称及版本:Microsoft Office2016以下 漏洞模块:EQNEDT32.EXE 漏洞编号:CVE-2017-11882 危害等级:高危 漏洞类型:缓冲区溢出 威胁类型:远 ...

  9. 金融行业安全漏洞分析报告

    报告介绍 互联网+时代的到来,人们充分享受新时代科技创新成果的便利同时,万物互联带来的信息安全风险也日渐提高,信息泄密事件层出不穷,在资金体量庞大.用户信息集中.安全隐患影响深远的金融领域,所面临的安 ...

最新文章

  1. 用Javascript隐藏超级链接的真实地址
  2. C# 移除数组中重复项
  3. 微信小程序支付最容易犯的坑notify_url(支付回调)
  4. 使用matlab内存不足,Matlab内存不足问题(Out of memory)
  5. 4-pycharm找不到模块问题
  6. js判断是否以xxx结尾
  7. casefold()方法
  8. centos免密登录
  9. WebStorm介绍
  10. 两台服务器ubuntu20.x 直接文件共享,文件挂载 nfs
  11. 开发竞赛作品展示网站上线!
  12. Access入门之基本操作和认识
  13. 根据拼音首字母进行过滤的combobox
  14. ObjectARX类库简介
  15. 谁是程序员的祖师爷?
  16. Python学习 Day28 JS函数(二)
  17. Office 开发版本号
  18. 织梦php的api,DedeCMS提交百度熊掌号API接口PHP提交
  19. 21 天零基础入门机器学习 , 高薪 Offer 就在眼前
  20. java基本语法实验体会_Java基本语法实验报告

热门文章

  1. 《机器学习在线 解析阿里云机器学习平台》读书笔记
  2. Android TextView文字镂空效果的两种实现
  3. Find Bugs自己的bug. Find Bugs‘ bug.
  4. spring什么时候实例化bean
  5. 王者荣耀主页面html,CSS3实现王者荣耀匹配人员加载页面的方法
  6. 如何学好计算机论文500字,浅谈学习_500字
  7. Java常用操作符简介说明
  8. 大疆网上测评题库_一份完整的大疆2018校招笔试题和面经送给大家~
  9. Ubuntu Qt 安装雅黑Consolas
  10. 移动端(iphone)上使用canvas绘图,为canvas添加了监听点击事件,结果在iphone上点击会出现闪屏