802.11漫游流程简单解析与笔记_Part1

news2024/11/24 6:58:39

最近在进行和802.11漫游有关的工作,需要对wpa_supplicant认证流程和漫游过程有更多的了解,所以通过阅读论文等方式,记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包括普通漫游流程、三层秘钥原理 和802.11R漫游流程。Part2将包括wpa_supplicant有关部分解析,Part3将包括抓包分析。

首先假设一个场景,STA首次与AP1相连,物理空间上逐步远离AP1,所以打算切换到AP2上,这个过程在802.11中就被称为漫游。

普通漫游流程:

漫游步骤(要求AP1 AP2同一个ESS):

  1. STA经过auth*2 + reassociate request/response + key*4(这个是普通PSK漫游)连到AP2上
  2. STA的扫描到AP2,发现同SSID,加入AP2到待切换AP列表
  3. STA根据某些条件决定切换
  4. STA经过auth*2 + associate request/response + key*4连到AP1上

三层秘钥原理 

WEP不够安全后,推出了802.11i,内含两种加密方式协议(TKIP和CCMP)以及一组秘钥交换过程,对于不同的加密方式,秘钥是不同的,PSK加密时,秘钥为PSK,802.11X验证,秘钥为MSK;成对主密钥PMK就是由PSK或者MSK推算出来的,PTK由PMK生成的,PTK会用于EAPOL-KEY(包括KCK和KEK)或temporal(暂时的) key里面

802.11i规定的秘钥交换流程(key*4):

  1. 步骤1 key1:AP->STA,带着随机数Anonce(AP nonce)
  2. 步骤2 key2:STA用Anonce和Snonce展开PMK,获得PTK,STA->AP,带随机数Snonce
  3. 步骤3 key3:AP有了Anonce和Snonce,也用PMK展开出一个PTK,AP->STA,含Anonce和用PTK加密过的GTK
  4. 步骤4 key4:STA->AP,简单的ACK

三层秘钥介绍:

  1. PMK_R0:最高级的秘钥,PSK/MSK算出来的,由一层持有者S0KH R0KH持有
  2. PMK R1 为第二层密钥,它是由 S0KH和R0KH共同推演而来由 PMK_R1 密钥持有者保存(即 R1KH和 S1KH)。
  3. PTK为第三层密钥,它是由 S1KH和 R1KH共同推演而来。
  4. R0KH和 R1KH 为认证者端的结构,与之对应的 S0KH和 S1KH 为客户端的结构.

秘钥计算

R0

  1. R0-Key-data由PSK/MSK+SSID+mobility domain+R0KHID+S0KHID计算
  2. PMK-R0 是R0-Key-data的前256位
  3. PMK-R0Name-Salt是R0-Key-data的后128 bit
  4. PMK-R0Name由PMK-R0Name-Salt生成

R1

  1. PMK R1由PMK-R0 和R1KHID和S1KHID生成
  2. PMKRlName由PMK-R0Name和R1KHID和S1KHID生成

PTK

  1. PTK由PMK R1 SNonce ANonce BSSID STAADDR算出
  2. PTK用于KCK/KEK/TK,KCK是PTK的前128bit,KEK是128-255bit,TK分为CCMP和TKIP两种。

802.11R漫游流程

 STA首先和AP1关联走的是完整关联流程,与标准802.11i流程相同,只是多了和快速漫游有关的字段,后面在去切换到AP2时就是802.11R快速漫游,相对于普通漫游的4*key交换,ANonce和SNonce在auth request Response就完成了,所以不需要key*4,漫游更快。FT分为两种,over the air和over the ds,区别是over the air是STA直接给AP2发auth request,over the ds,把发给AP2 的auth request包到action,给AP1,AP1用有线转给AP2。

11R首次关联流程:

  1. auth*2(带capability的普通auth)
  2. asso*2(含MDIE(含mobility domain) RSNIE FTIE(含R0KHID R1KHID))
  3. key*4(与802.11i规定的秘钥交换流程(key* 4)相同)

11R的FT快速切换流程(over the air)

  1. STA发FTAA request(含RSNIE(含PMKR0NAME),含MDIE,含FTIE(含SNonce和R0KHID))
  2. AP2回FTAA response(含RSNIE(含PMKR0NAME),含MDIE,含FTIE(含ANonce SNonce R0KHID R1KHID))【在reassociation request和auth request之间的时间不能超过Reassociation deadline time】
  3. STA再发Reassociation Request到AP2(含RSNIE(含PMKR0NAME),含MDIE,含FTIE(含MIC ANonce SNonce R0KHID R1KHID )含RIC-Request)
  4. AP2回Reassociation Response(含的与Reassociation Request相同,只不过多出来加密了的GTK)

11R的FT快速切换流程(over the ds)

  • STA直接与AP2 交换的auth Request auth Response换成了STA和AP1 交换action,内容完全一致,然后AP1把ACTION用以太网转到AP2;Reassociation Request/Response相同,是STA和AP2交互的

 完整的秘钥计算示意图

参考文献:

[1]袁保磊. 基于IEEE802.11R协议的快速漫游嵌入式软件设计与实现[D].电子科技大学,2018.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1807254.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode3040. 相同分数的最大操作数目 II

Every day a Leetcode 题目来源:3040. 相同分数的最大操作数目 II 解法1:记忆化搜索 第一步可以做什么?做完后,剩下要解决的问题是什么? 删除前两个数,剩下 nums[2] 到 nums[n−1],这是一个…

AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台+数字人)的简介、安装和使用方法、案例应用之详细攻略

AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台数字人)的简介、安装和使用方法、案例应用之详细攻略 目录 HeyGen的简介 1、HeyGen是一款AI视频生成平台,它提供以下关键功能: HeyGen的安装和使用方法 1、使用方法 01创建或选择一个头…

2003远程桌面端口修改,远程桌面端口修改的方法有哪些

方法一:通过修改注册表 1、打开注册表编辑器: 打开“开始”菜单,点击“运行”,输入“regedit”,然后按下“Enter”键。 2、导航到远程桌面服务的注册表项: 依次展开以下路径: HKEY_LOCAL_M…

【Qt】Qt常见的数据类型

思维导图 学习目标 一、基础类型 因为Qt是一个C的框架,因此C的语法和数据类型在Qt中都是被支持的,但是Qt中也是定义了一些属于自己的数据类型,不过,好多数据类型都是对C的数据类型进行封装,下面来简要介绍一下这些基…

6.切蛋糕

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/71 题目描述 一个圆型的蛋糕,切 𝑛n 刀…

Rust-06-所有权

所有权(系统)是 Rust 最为与众不同的特性,它让 Rust 无需垃圾回收即可保障内存安全,下面是所有权以及相关功能:借用(borrowing)、slice 以及 Rust 如何在内存中布局数据。 通过所有权系统管理内…

JDBC学习笔记(二)进阶篇

一、JDBC 扩展 1.1 实体类和ROM 实体类代码: package com.atguigu.advanced.pojo;//类名就是数据库表的 t_ 后面的单词全写 public class Employee {private Integer empId;//emp_idprivate String empName;//emp_nameprivate Double empSalary;//emp_salarypriva…

FL Studio 21.2.3.4004官方中文破解版下载安装激活教程重磅发布含注册机

今天带来的是FL Studio 21中文版,内置破解补丁,可以完美激活程序。所有功能均可在线编辑,用户可直接操作。同时,因为FL Studio 21是最新版本,所以增加了新的功能。共有八种乐器和效果器插件,包括效果链、音…

在开源处理器架构RISC-V中发现可远程利用的中危漏洞

在RISC-V SonicBOOM处理器设计中发现中度危险的漏洞 最近,西北工业大学的网络空间安全学院胡伟教授团队在RISC-V SonicBOOM处理器设计中发现了一个中度危险的漏洞。这个团队的研究人员发现了一个可远程利用的漏洞,该漏洞存在于开源处理器架构RISC-V中。…

Redis系列-4 Redis集群介绍

Redis集群 Redis提供了持久化能力,保证了重启不会丢失数据;但Redis重启至完全恢复期间,缓存不可用。另外,对于高并发场景下,单点Redis服务器的性能不能满足吞吐量要求,需要进行横向扩展。此时,…

【适配鸿蒙next】Flutter 新一代混合栈管理框架

前言 据最新消息显示,华为今年下半年将全面转向其自主平台HarmonyOS,放弃Android系统。 报道中提到,下一版HarmonyOS预计将随华为即将推出的Mate 70旗舰系列一起发布。 据悉,HarmonyOS Next 已经扩展到4000个应用程序,…

【Python学习1】matplotlib和pandas库绘制人口数变化曲线

✍🏻记录学习过程中的输出,坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞👍🏻收藏⭐评论✍🏻指点🙏 一、Python库说明 Matplotlib Matplotlib是一个功能强大的Python 2D绘图库,它允…

【实战项目二】Python爬取豆瓣影评

目录 一、环境准备 二、编写代码 一、环境准备 pip install beautifulsoup4 pip intall lxml pip install requests我们需要爬取这些影评 二、编写代码 我们发现每个影评所在的div的class都相同,我们可以从这入手 from bs4 import BeautifulSoup import request…

修改云主机配置 - 内存增容

文章目录 一、修改云主机配置缘由二、修改云主机配置步骤1、查看云主机概述2、查看master云主机3、更改master云主机配置4、查看master云主机 三、使用Spark Shell玩Saprk SQL1、启动HDFS服务2、启动Spark集群3、启动集群模式Spark Shell4、读取文件生成单例数据帧5、将单列数据…

给浮躁的面试者一个建议

哈喽,大家好,我叫人宅,关于找工作,大家心态非常浮躁,尤其是零零后,或者是九五后。本次为大家分享一下关于就业问题和就业态度。 我讲解的这些其实适合所有高科技行业。我这边就拿程序员为例。 如果你是刚毕…

Python Mistune库:Markdown解析和处理

更多Python学习内容:ipengtao.com Mistune是一个用于Python的快速且功能强大的Markdown解析库。它以其高性能和灵活性著称,能够轻松扩展和定制。Mistune支持标准的Markdown语法,并且可以通过插件扩展支持更多功能,例如数学公式、高…

云服务器Ubuntu系统的vim-plus(youcompleteme)完整安装

一. 安装vim-plus PS:需要在那个用户下配置vim-plus,就到那个用户下执行代码 git clone https://github.com/chxuan/vimplus.git ~/.vimplus cd ~/.vimplus ./install.sh二. 解决没有代码自动补全的问题 随便创建一个Test.cpp文件,vim打开…

线性代数|机器学习-P10最小二乘法的四种方案

文章目录 1. 概述2. SVD奇异值分解3. 最小二乘法方程解4. 最小二乘法图像解释5. Gram-Schmidt 1. 概述 当我们需要根据一堆数据点去拟合出一条近似的直线的时候,就会用到 最小二乘法 .根据矩阵A的情况,有如下四种方法 在r n m 时,SVD奇异…

Apple - Quartz 2D Programming Guide

本文翻译自:Quartz 2D Programming Guide(更新时间:2017-03-21 https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP300010…

SpringCloud中注册中心Nacos的下载与使用步骤

1.前言 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款服务发现和配置管理工具。它可以帮助用户自动化地进行服务注册、发现和配置管理,是面向微服务架构的一个重要组成部分。 2.下载 链接:https://pan.b…