Wifi 认证,关联,四次握手(WPA/WPA2/WPA3-SAE)

引入

WPA3-SAE也是针对四次握手的协议。

四次握手是 AP (authenticator) 和 (supplicant)进行四次信息交互,生成一个用于加密无线数据的秘钥。

这个过程发生在 WIFI 连接 的 过程。


为了更好的阐述 WPA3-SAE 的作用 和 凸显其优点。我们需要借助 WPA2-psk 来做对比。

先来简单阐述一下 WPA2-psk …

WPA / WPA2 中的四次握手

这是一次连接过程:

WPA认证

其中 四次 eapol key 属于四次握手的过程。
具体过程请参考: Wifi_认证 、关联 和 四次握手(WPA/WPA2)

注意:WPA 系列协议 描述的 不仅仅是 握手过程。

握手过程 采用的算法优点为:

  • 秘钥的生成具有隔离性
    • 不同的 STA 与 同一个 AP 不会生成相同的秘钥
    • 同一个 STA 连接 AP 的不同过程 也不会产生相同的秘钥
  • 预共享WIFI密码 PSK,使得 WIFI 网络有了不错的可控性

优点 可圈可点,但缺点也相对明显。

WPA2-psk 最大的问题就是 不在安全了!!

破解教程层出不穷,安全升级迫在眉睫。


WPA2-psk 的安全性

迫在眉睫:2017年10月,802.11协议中,沿用了 13年的 WPA2 加密协议 被完全破解了。

先理解 WPA2-psk 的简要过程:(四次握手)

WPA2-psk简约版
从这个过程中 我们看出:

  • 预共享 PSK 参与了生成 PTK 的计算
  • PTK 也负责了 对 PSK 的 验证
  • 双方都有随机数的产生,赋予了 PTK的不唯一性。

最终 由 PTK 负责后续 Data 数据的 加密

PTK的保密性 直接决定着 用户数据的安全性

由此可见,窥探者 除了 PSK 和 PTK 不能从空中抓到,其他参与计算的值都能抓到

PMK = SHA-1(ESSID + PSK)
PTK = PRF(PMK + ANonce + SNonce + Mac(AA) + Mac (SA))

SHA-1 和 PRF 这两个函数 是 公开的


攻击者 一旦抓到 4次握手的包,便能离线暴力破解 PSK

之后便可以利用PSK去生成 PTK,进而窥探 用户数据。

WPA2-psk 破解原理

核心:想办法抓到四次握手的包

大致分为一下几个步骤:

  • 明确 破解目标 AP 之后,针对某个已连接的 STA 伪造出一个 Deauthentication 帧扰乱现有 STA 与 目标AP 的连接
  • Deauthentication(取消身份验证帧)会让 目标AP 将当前 STA 从自己的关联表中踢出(也就是断开连接了)
  • AP 主动断开 STA 之后,会给 STA 发一个确认包,STA收到确认包之后 便会进行重连(毕竟不是 STA 自己真的想断开)
  • 触发重连之后,趁机 抓取四次握手的空口包,带回家分析。
  • 然后用字典法暴力破解

由此可见对 WPA2-PSK 的安全性已经支离破碎,对其的改进也是箭在弦上。


WPA3


WPA3-Personal 基于IEEE Std 802.11-2016 中定义的 SAE。

SAE 采用了“互联网工程任务组(IETF)”RFC7664 规范中定义的 “蜻蜓(Dragonfly)” 握手协议,将其应用于 Wi-Fi 网络以进行基于密码的身份验证。

针对 WPA2 的通病,WPA3 在各个场景下 都给出了不错的解决方案。

比如针对 WPA2-psk 的协议 ——WPA3-SAE 做了两点 具有革命性的优化。

  1. 针对暴力破解攻击的防护得到了提升。

    即使用户没有设置较为复杂的密码。

  2. 提供了正向加密,即使攻击者知道了PSK 也无法窥探用户的数据。

WPA3-Personal 的连接交互过程

WPA3-SAE
从上图我们能看出 与 WPA2 最明显的差别就是 认证过程

WPA3-SAE 的认证过程 变得繁琐了,从两帧变成了四帧

SAE 认证过程(Authentication)

WPA3-Personal 基于IEEE Std 802.11-2016 中定义的 SAE。SAE 采用了“互联网工程任务组(IETF)”RFC7664 规范中定义的 “蜻蜓(Dragonfly)” 握手协议,将其应用于 Wi-Fi 网络以进行基于密码的身份验证。

这个认证过程 会校验 PSK 的正确性,也会生成 PMK,供后续握手使用。

Authentication

上图只是WPA3-SAE的认证过程,但似乎这已经完成了信息的校验 和 秘钥关键元素的生成。

站在用户的角度,设备连接这两种协议(WPA2-personal 和 WPA3-SAE)的热点没有任何操作上的区别。

  • 都是要预先得知PSK(也就是AP密码)

那么让我们对比着 WPA2-personal 的“不安全”,来看看 WPA3-SAE 的“安全”。

详细阐述一下上图的过程:

  • 首先 STA 和 AP 都有预留的 PSK,并且兵分两路生成各自的产物。
  • 先通过ECC 对原始 PSK 进行映射。

    这算是第一层保护,如若攻击者不清楚 椭圆函数的参数,便无法进行下一步。

  • STA 生成随机数 rS ;AP 生成随机数 rA 。
  • STA 将 P · rS 传给 AP
  • Ap 将 P · rA 传给 STA

    " · " 这里的运算符不是 “乘法”,是一种特殊的算法,正因如此,WPA3 - SAE 才安全。

    • 这种算法 似乎遵循一定程度的“结合性”,但又不可逆。

      就是说 : P · rS 推不出 rS, 抓到包了也没用。但 P · rS · rA 在三个元素的顺序 不影响整体的结果。(妙啊!!!)

  • 后续就是进行一个 Hash 算法,再进行对比。当然在这个过程中也顺便生成了核心秘钥数据 (PMK)
  • 校验通过之后,双方用各自生成的 PMK 进行 “四次握手” 来生成用来给 Data 数据加密的 秘钥。

上述流程可以完美 “格挡” 传统的破解手法。

今天SAE先聊到这儿,后续有想到的在补充。

That’s all, thank you !!!

猜你喜欢

转载自blog.csdn.net/weixin_43415201/article/details/124432621