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

最近在进行和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.mfbz.cn/a/695134.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录刷题笔记-哈希表篇

文章目录 242 有效的字母异位词(easy)力扣地址题目描述题目实例解题思路代码实现 383 赎金信(easy)力扣地址题目描述题目实例解题思路代码实现 49 字母异位词分组(mid)力扣地址题目描述题目实例解题思路代码实现 438 找到字符串中所有字母异位词(mid)力扣地址题目描述题目实例解…

MyBatis插件机制

MyBatis插件机制是该框架提供的一种灵活扩展方式,允许开发者在不修改框架源代码的情况下对MyBatis的功能进行定制和增强。这种机制主要通过拦截器(Interceptor)实现,使得开发者可以拦截和修改MyBatis在执行SQL语句过程中的行为。 …

社交创新:Facebook的技术与产品发展

在当今数字化时代,社交网络已经渗透到我们生活的方方面面,成为了人们日常交流、信息获取和社交互动的主要方式。而在这个众多社交平台中,Facebook作为其中的佼佼者,其技术与产品的发展历程也是一个社交创新的缩影。本文将探索Face…

IDEA 连接GitHub仓库并上传项目(同时解决SSH问题)

目录 1 确认自己电脑上已经安装好Git 2 添加GitHub账号 2.1 Setting -> 搜索GitHub-> ‘’ -> Log In with Token 2.2 点击Generate 去GitHub生成Token 2.3 勾选SSH后其他不变直接生成token 2.4 然后复制token添加登录账号即可 3 点击导航栏中VCS -> Create…

从年金理论到杠杆效应,再到财务报表与投资评估指标

一、解释普通年金终值和普通年金现值的概念。 普通年金终值:以利率为1%,每期收款100元,5期为例,普通年金终值的折算过程如图: 普通年金现值:以利率为1%,每期收款100元,5期为例&am…

AI大模型在健康睡眠监测中的深度融合与实践案例

文章目录 1. 应用方案2. 技术实现2.1 数据采集与预处理2.2 构建与训练模型2.3 个性化建议生成 3. 优化策略4. 应用示例:多模态数据融合与实时监测4.1 数据采集4.2 实时监测与反馈 5. 深入分析模型选择和优化5.1 LSTM模型的优势和优化策略5.2 CNN模型的优势和优化策略…

[ROS 系列学习教程] 建模与仿真 - ros_control 介绍

ROS 系列学习教程(总目录) 本文目录 一、ros_control 架构1.1 hardware_interface1.2 combined_robot_hw1.3 controller_interface1.4 controller_manager1.5 controller_manager_msgs1.6 joint_limits_interface1.7 transmission_interface1.8 realtime_tools 二、ros_control…

Linux | buildrootfs 添加mkfs.ext3/mkfs.ext4 支持

因个人需要,mkfs.ext3 但是项目中还没有这个命令 所以琢磨了半天 这里将其小记一下 在buildrootfsz中,需要将e2fsprogs 勾选上然后重新编译就好了 make menuconfig Target packages-> Filesystem and flash utilities-> e2fsprogs

CentOS安装Node.js以及JSDOM跳坑记

笔者在一台 CentOS 7.9 的服务器上使用常规的安装命令:sudo yum install node 来安装 Node.js,到最后系统提示: Error: Package: 2:nodejs-20.14.0-1nodesource.x86_64 (nodesource-nodejs) Requires: libstdc.so.6(GLIBCXX_3.4.20)(64bit) …

任务调度选择之PowerJob 和 Snail Job

背景 最近在选择一款任务调度产品,找了几款产品进行调研,我对产品的要求是可以进行可视化、有角色权限、任务编排、支持http、接入成本低等,发现有有两款挺符合的PowerJob和Snail Job。 同类产品对比 Elastic-Jobxxl-jobPowerJobSnail Job…

YOLOv5改进 | 注意力机制 | 在主干网络中添加SOCA模块【原理+附完整代码】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 现有的基于CNN的SISR方法主要关注更宽或更深的架构设计,忽视了探索中间层的特征相关性,因此阻碍了CNN的表达能力。为…

SmartEDA VS Multisim/Proteus:电子设计江湖,谁主沉浮?

在电子设计的江湖里,SmartEDA、Multisim和Proteus无疑是几大门派,各自拥有独特的武功秘籍和门派特色。今天,我们就来一场巅峰对决,看看这些电子设计软件究竟谁能笑傲江湖,成为电子设计界的霸主! 一、门派起…

Java进阶_抽象类与方法

抽象类概念 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之…

使用Nextjs学习(学习+项目完整版本)

创建项目 运行如下命令 npx create-next-app next-create创建项目中出现的各种提示直接走默认的就行,一直回车就行了 创建完成后进入到项目运行localhost:3000访问页面,如果和我下面页面一样就是创建项目成功了 整理项目 将app/globals.css里面的样式都删除,只留下最上面三…

Git:从配置到合并冲突

目录 1.前言 2.Git的下载与初始化配置 3.Git中新建仓库 4.Git的工作区域和文件状态 5.Git中查看操作和提交记录 6.Git中添加和提交文件 7.Git中回退提交版本 8.Git中查看版本间的差异 9.Git中删除文件 10.Git中忽略指定文件 11.Git中配置SSH密钥 12.Git中关联克隆仓库 13.Git中…

核心社群营销和覆盖区域选型

目录 一、背景介绍 (一)核心流程 (二)用户进群 (三)内容匹配 (四)数据追踪 (五)风险管控 二、业界调研 三、聚焦群覆盖区域 (一&#xf…

【单片机毕业设计9-基于stm32c8t6的酒窖监测系统】

【单片机毕业设计9-基于stm32c8t6的酒窖监测系统】 前言一、功能介绍二、硬件部分三、软件部分总结 前言 🔥这里是小殷学长,单片机毕业设计篇9基于stm32的酒窖监测系统 🧿创作不易,拒绝白嫖可私 一、功能介绍 -------------------…

【Modelground】个人AI产品MVP迭代平台(5)——神投手(实时投篮检测游戏)

文章目录 介绍篮框识别进球算法离屏渲染总结 介绍 神投手是我开发的一款移动端web实时投篮检测游戏,基于Mediapipe对象检测模型,提供数据集,训练出可识别篮框的模型。利用图像处理算法,检测篮球进框的场景。提供了两种模式&#…

计算机组成原理之指令寻址

一、顺序寻址 1、定长指令字结构 2、变长指令字结构 二、跳跃寻址 三、数据寻址 1、直接寻址 2、间接寻址 3、寄存器寻址 寄存器间接寻址 4、隐含寻址 5、立即寻址 6、偏移寻址 1、基址寻址 2、变址寻址 3、相对寻址

机器学习周记(第四十二周:AT-LSTM)2024.6.3~2024.6.9

目录 摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 LSTM3.2 注意力机制概述3.3 AT-LSTM3.4 数据预处理 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 训练参数4.3.2 数据集4.3.3 实验设置4.3.4 实验结果 5. 基于pytorch的transformer 摘要 本周阅读…