WiFi网络WPA2 KRACK漏洞分析报告

本文由阿里安全技术平台团队的东帆撰写,详细解析了WPA2协议中的KRA(Key Reinstallation Attacks)漏洞,该漏洞允许攻击者通过重装加密密钥,威胁WiFi网络数据安全,影响广泛,包括Android, Linux, Apple等多个平台。攻击者可利用此漏洞进行数据嗅探、篡改和重放。建议用户及时更新补丁,加强网络安全防护。" 132284708,19673918,SpringBoot项目配置控制台日志输出,"['spring boot', 'logging', 'configuration']

作者:东帆@阿里安全技术平台团队

————————


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

07-22
Git Bash 是一个强大的命令行工具,用于在 Windows 系统上运行 Git 命令。它不仅支持 Git 本身的功能,还提供了类 Unix 环境的命令行操作支持。以下是一些 Git Bash 的使用教程及常用命令。 ### 设置 Git 用户信息 在使用 Git Bash 进行版本控制之前,需要配置用户信息,包括用户名和邮箱地址。这些信息会用于提交记录。 ```bash git config --global user.name "你的用户名" git config --global user.email "你的邮箱地址" ``` ### 常用 Git Bash 命令 以下是一些常见的 Git Bash 命令,可以帮助你在 Git Bash 中进行基本的文件管理和 Git 操作: #### 文件管理命令 - `cd`:切换目录。例如,`cd dir` 进入名为 `dir` 的目录。 - `cd ..`:返回上一级目录。 - `pwd`:显示当前工作目录的路径。 - `ls`:列出当前目录下的所有文件和文件夹。 - `mkdir dir`:创建一个新的文件夹 `dir`。 - `touch file`:创建一个名为 `file` 的新文件。 - `rm file`:删除名为 `file` 的文件。 - `rm -r dir`:删除名为 `dir` 的文件夹及其内容。 - `clear`:清空终端屏幕。 - `reset`:重置终端。 - `exit`:退出 Git Bash。 - `help`:显示帮助信息。 - `history`:查看命令历史记录。 #### Git 操作命令 - `git clone <仓库地址>`:克隆远程仓库到本地。 - `git init`:初始化一个新的 Git 仓库。 - `git add <文件名>`:将文件添加到暂存区。 - `git commit -m "提交信息"`:提交暂存区的更改,并添加提交信息。 - `git status`:查看当前仓库的状态,包括未提交的更改。 - `git log`:查看提交历史记录。 - `git diff`:显示工作区和暂存区之间的差异。 - `git diff --staged`:显示暂存区和最后一次提交之间的差异。 - `git show <提交ID>`:显示某次提交的详细信息。 - `git remote -v`:查看当前配置的远程仓库地址。 - `git remote add <远程仓库名称> <仓库地址>`:添加一个新的远程仓库。 - `git remote remove <远程仓库名称>`:删除一个远程仓库。 - `git fetch`:从远程获取更新,但不自动合并到本地。 - `git push <远程仓库名称> <分支名称>`:将本地提交推送到远程仓库的指定分支。 - `git pull`:从远程仓库拉取更新并合并到本地。 #### 版本回退与标签操作 - `git reset --hard HEAD^`:回退到上一个版本,`--hard` 参数表示丢弃工作区和暂存区的所有更改。 - `git reset --soft HEAD^`:回退到上一个版本,但保留工作区和暂存区的更改。 - `git reset --mixed HEAD^`:回退到上一个版本,保留工作区的更改,但清空暂存区。 - `git tag`:列出所有标签。 - `git tag <标签名>`:创建一个新的标签。 - `git tag -a <标签名> -m "标签说明"`:创建一个带有说明的标签。 - `git push origin <标签名>`:推送指定标签到远程仓库。 - `git push origin --tags`:推送所有本地标签到远程仓库。 - `git tag -d <标签名>`:删除本地标签。 - `git push origin --delete <标签名>`:删除远程仓库中的标签。 #### 其他常用命令 - `git commit -am "提交信息"`:直接提交已修改的文件(不包括新添加的文件)。 - `git stash`:暂存当前的改动(未提交的改动),然后恢复到清理后的状态。 - `git stash pop`:恢复上一次暂存的改动。 - `git rebase`:变基操作,用于整理提交记录,保持提交历史的整洁。 ### 示例代码 以下是一个简单的 Git Bash 操作示例,展示了如何初始化仓库、添加文件、提交更改并推送到远程仓库: ```bash # 初始化一个新的 Git 仓库 git init # 创建一个新文件 touch README.md # 将文件添加到暂存区 git add README.md # 提交更改 git commit -m "Initial commit" # 添加远程仓库 git remote add origin https://github.com/yourusername/yourrepository.git # 推送更改到远程仓库 git push -u origin master ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值