保姆级图解:WPS(WSC)协议中M1到M8消息交互全流程(附Wireshark抓包分析)

WPS协议深度解析:从M1到M8的消息交互与Wireshark实战分析

在无线网络安全领域,WPS(Wi-Fi Protected Setup)协议作为简化设备接入的认证机制,其核心交互流程一直是渗透测试人员必须掌握的基础知识。本文将带您深入理解WPS协议中关键的M1到M8消息交换过程,结合Wireshark抓包实例,揭示每个数据包背后的安全含义。

1. WPS协议基础与实验环境搭建

WPS协议本质上是通过EAP(Extensible Authentication Protocol)框架实现的认证流程,整个交互过程包含8个核心消息(M1-M8)。要完整分析这个过程,我们需要准备以下实验环境:

  • 硬件设备:支持WPS功能的无线路由器(作为Registrar)和测试终端(作为Enrollee)
  • 软件工具
    • Wireshark(最新稳定版)
    • 支持监听模式的无线网卡(如AWUS036ACH)
  • 网络配置
    # 启用网卡监听模式 sudo airmon-ng start wlan0 # 设置Wireshark抓包过滤器 eapol || wps

关键术语解释

  • Enrollee:请求加入网络的设备(通常是客户端)
  • Registrar:网络配置的管理者(通常是AP)
  • EAPOL:EAP over LAN,局域网上的EAP协议封装

2. 完整交互流程解析

WPS认证过程可以分为四个主要阶段,每个阶段包含特定的消息交互:

2.1 初始协商阶段

这个阶段建立基本的通信通道和身份确认:

  1. EAPOL-Start

    • 方向:Enrollee → Registrar
    • Wireshark特征:EAPOL type: Start (0x01)
    • 作用:触发认证流程
  2. EAP-Request/Identity

    • 方向:Registrar → Enrollee
    • 关键字段:EAP type: Identity (0x01)
  3. EAP-Response/Identity

    • 方向:Enrollee → Registrar
    • 关键值:Identity: WFA-SimpleConfig-Enrollee-1-0
    • 作用:声明使用WSC认证方法

2.2 密钥交换阶段(M1-M2)

这是整个流程中最关键的安全基础建立过程:

M1消息结构

EAP-Response/M1 ├── Enrollee Nonce (随机数) ├── MAC Address ├── Public Key └── Device Password ID (标识PIN码类型)

M2消息结构

EAP-Request/M2 ├── Registrar Nonce ├── Public Key └── Authentication Type Flags

注意:这两个消息交换后,双方将计算出相同的KDK(Key Derivation Key),这是后续所有加密操作的基础。

2.3 PIN码验证阶段(M3-M7)

这个阶段通过五次交互完成PIN码的双向验证:

消息方向关键字段安全作用
M3E→RE-Hash1/2证明Enrollee知道PIN码
M4R→ER-Hash1/2, Encrypted R-S1提供Registrar验证材料
M5E→REncrypted E-S1完成前半段验证
M6R→EEncrypted R-S2提供后半段验证材料
M7E→REncrypted E-S2完成全部PIN验证

在Wireshark中,这些消息的加密数据可以通过以下过滤器快速定位:

wps.encrypted_settings != 00:00:00:00

2.4 配置下发阶段(M8)

最后的M8消息包含网络的实际配置信息:

EAP-Request/M8 ├── SSID ├── Authentication Type ├── Encryption Type ├── Network Key └── MAC Address Filter

3. Wireshark实战分析技巧

3.1 关键字段定位方法

在Wireshark中,可以使用以下显示过滤器快速定位重要信息:

  • 查找特定消息wps.message_type == 0x04(M1的值为0x04,M2为0x05,依此类推)
  • 提取Nonce值
    # 提取Enrollee Nonce示例 enrollee_nonce = packet[wps].enrollee_nonce
  • 识别公钥交换
    wps.public_key != 00:00:00:00

3.2 常见问题排查

当分析遇到问题时,可以检查以下典型错误:

  1. 密钥计算不匹配

    • 确认双方Nonce是否正确交换
    • 验证公钥是否完整传输
  2. PIN验证失败

    • 检查M3/M4中的Hash值是否匹配
    • 确认加密设置字段是否完整
  3. 配置下发失败

    • 检查M8消息是否包含全部必要字段
    • 验证网络参数是否兼容

4. 安全增强与实践建议

理解WPS协议交互后,我们可以采取以下安全措施:

防御建议

  • 禁用路由器WPS PIN码功能(使用按钮配对方式)
  • 监控网络中的异常WPS请求
  • 定期更换复杂PIN码(如果必须使用)

渗透测试技巧

# 使用reaver进行WPS测试的基本命令 reaver -i wlan0mon -b AP_MAC -vv -K 1 -d 5

在真实环境中,完整的WPS交换通常能在60秒内完成。通过本文的抓包分析方法,您可以:

  1. 验证设备实现的合规性
  2. 诊断连接故障的根本原因
  3. 评估网络对WPS暴力破解的抵抗力

理解每个消息字段的作用后,您会发现WPS协议既展现了精巧的安全设计,也暴露出一些实际部署中的脆弱性。这种深度协议分析能力,正是专业安全人员区别于脚本小子的核心技能。