当前位置: 首页 > news >正文

Wlan安全——认证与加密方式(WPA/WPA2)

目录

终端认证技术

WEP认证

PSK认证

802.1x认证与MAC认证

Portal认证

数据加密技术

WEP加密

TKIP加密

CCMP加密

TKIP和CCMP生成密钥所需要的密钥信息

802.11安全标准

WEP共享密钥认证、加密工作原理

WEP共享密钥认证

WEP加解密过程

PSK认证以及生成动态密钥的工作原理

802.1x认证以及生成动态密钥的工作原理


无线网络存在的安全隐患

数据没有加密

无线数据是在空气中传播,任何个人都可以通过空口抓包网卡截获到数据,导致信息泄露

没有接入认证

所有终端都可以连接到无线信号,然后去访问有线网络,进行攻击

非法AP接入

STA连接到非法AP,数据被窃取

可以通过WIDS、WIPS来反制AP(后续讲解)

终端认证技术

目前我们使用到的认证主要有WEP认证、PSK认证、802.1x认证与MAC认证、Portal认证

WEP认证

WEP认证可以分为开放系统认证和共享密钥认证

WEP 开放系统认证(Open System Authentication)

不对站点身份进行认证的认证方式;没有做认证

通过2个认证报文进行交互(认证请求、认证应答)

适用于开放性场景,对安全性要求不高

WEP 共享密钥认证(Shared Key Autheentication)

通过判断对方是否掌握相同的密钥来确定对方的身份是否合法

具体的认证过程在此文章的Wlan安全标准讲解

PSK认证

PSK认证(Pre-shared key)

PSK主要是个人用户进行认证

要求在STA侧预先配置Key,AP通过4次握手Key协商协议来验证STA侧Key的合法性

具体的认证流程在此文章的Wlan安全标准有讲解(此认证会生成动态加密密钥)

PPSK中小型企业认证(每个用户一个密码)  配置的密钥有数量限制

每个终端一个密钥,在AP设备上提前去生成一些密钥,然后把密钥告诉终端,终端连接上无线信号的时候就会把MAC地址这些域密钥做绑定

一个密钥与MAC地址绑定之后,其余人就无法使用了

802.1x认证与MAC认证

802.1x认证(需要认证服务器-大型网络)

相对来说是比较安全的,通过用户名+密码的方式进行认证

支持802.3有线网络和802.1x无线网络

802.1x有线网络的认证流程

802.1x认证和MAC认证讲解_静下心来敲木鱼的博客-CSDN博客

802.1x无线网络的认证流程

在此文章的Wlan安全标准讲解(此认证会生成动态加密密钥)

MAC地址认证

通过Radius服务器进行MAC地址认证(在Radius服务器添加终端的MAC)

认证的大致流程

当MAC接入认证发现当前接入的客户端为未知客户端,会主动向Radius服务器发送认证请求

在Radius服务器完成对该用户的认证后,认证通过的用户可以访问无线网络

缺陷

当终端数量较多时,配置繁琐;由于终端的MAC也是可以更改的,所以存在一些安全隐患

Portal认证

Portal认证(Web认证)

采用浏览器输入域名重定向到Portal界面进行用户认证

Portal认证讲解_portal web认证_静下心来敲木鱼的博客-CSDN博客


数据加密技术

主要有无线终端使用的加密技术主要有WEB加密、TKIP加密、CCMP加密

WEP加密

WEP是无线等效保密技术的简称,对在两台设备间传输的无线数据做加密,并提供认证

WEP认证在上述已经讲解,现在主要做WEB加密的讲解

WEP加密技术--无线领域第一个安全协议

使用RC4流加密技术保证数据的机密性

使用CRC-32保证数据的完整性(循环冗余校验去校验数据的完整性)

采用静态密钥进行加密,如果被其它用户破解了,就可以使用此密钥破解数据

Wep的密钥的组成

Wep密钥由IV的前24bit和40/104位的静态密钥组成

IV一共4字节

IV前3个字节也就是24bit作为初始化向量,是随机生成的,IV越长越安全

后2bit的Key ID用来表示使用的是哪个密钥(因为在设置Wep静态密钥时,我们可以设置4个静态密钥,但是使用时只可以使用一个,使用哪个密钥就可以通过Key ID来区分)

静态wep密钥

WEP加密方式的静态密钥有40bit或者104bit,这个静态密钥就是我们自己设置的密钥

通过不同的单位表示:16进制就是10/26位,Ascii就是5/13位

具体的加解密过程在此文章的Wlan安全标准讲解(此认证会生成动态加密密钥)

TKIP加密

TKIP加密技术--是WAP标准中的加密算法(WPA由WiFi联盟定义)

 WEP的升级版,采用动态密钥,对于每个数据帧都生成一个密钥去加密

 也是使用RC4来保证数据的机密性;不过密钥由WEP的104位增加到128位,加密IV的长度由24位增加到了48位

 采用MIC来保证数据的完整性,比CRC32更可靠

具体如何加密和校验不做讲解,只讲解如何生成动态密钥,在此文章的Wlan安全标准讲解

CCMP加密

CCMP加密技术--WPA2标准

 WPA2是Wifi联盟定义出来的WPA的第二个版本

 CCMP称为计数器模式密码块链消息完整码协议

 也是动态生成密钥,采用AES的加密算法进行加密,通过CCM实现数据完整性校验

具体如何加密和校验不做讲解,只讲解如何生成动态密钥,在此文章的Wlan安全标准讲解

TKIP和CCMP生成密钥所需要的密钥信息

TKIP/CCMP生成密钥所需要使用到的密钥

PMK      成对主密钥,用于生成PTK的材料,不用于实际的数据加解密

PTK       成对临时密钥,实际的密钥,用于加解密数据

PTK又包含三个部分

       KCK        对EAPOL-KEY消息进行完整性校验产生MIC值

       KEK        EAPOL-KEY消息的加密密钥

       TK          普通数据的加密密钥

MIC KEY 用于后续数据报文的完整性校验(TKIP的PTK会多成一个密钥,用于对后续报文的完整性校验;CCMP不包含)

GMK       为组主密钥,用于生成GTK,而GTK主要用于组播和广播的加密

PTK用于单播报文的加密

PMK/PTK密钥的生成方式(目前主要有802.1x和PSK两种方式)

如果是802.1x认证之后进行数据加密,则是PMK是由MSK组会话密钥产生

       认证成功之后会在认证成功报文里面会携带MSK,然后生成PMK、PTK密钥

       然后通过交互EAPOL-KEY报文文成无线加密密钥的配置

通过PTK生成加密密钥进行报文的数据加密

如果是PSK认证之后进行数据加密,PMK就不是MSK组会话密钥产生的(具体交互过程在WPA安全标准讲解)

PMK/PTK生成所需的材料(WAP/WAP2密钥为PSK的认证密钥)

由SSID和我们配置的密钥去做哈希产生PMK的,然后通过PMK和STA的MAC等信息hash生成PTK

然后通过交互EAPOL-KEY报文交互完成无线加密密钥的配置

通过PTK生成加密密钥进行报文的数据加密


802.11安全标准

无线的安全标准主要由三个

WEP标准(传统标准)

WPA标准

WAP2标准(也可以称为RSN)

其中WEP标准只支持WEP方式的认证和加密

WAP标准支持PSK和802.1x的认证,但是只支持TKIP的加密方式,

WPA2支持PSK和802.1x的认证,支持CCMP(AES)、TKIP两种加密方式

WEP共享密钥认证、加密工作原理

WEP共享密钥认证

通过4个认证报文进行交互

       认证请求、明文质询消息、密文质询消息、认证结果

报文交互过程

  1. STA发送认证请求
  2. AP收到后,生成明文质询信息,发送给STA;明文质询信息可以看成是随机数
  3. STA对明文质询进行加密发给AP(加密方式是采用无线用户本身设置的静态WEP密钥去做加密)
  4. AP同样也对明文质询进行加密(加密使用的是AP上已经设置好的静态WEP的密钥);将加密结果与STA发来的结果做对比,然后返回认证结果

缺陷

可以通过空口抓包抓到AP生成的随机数和STA加密后的密文,然后就可以推导出密钥;不是很安全

WEP加解密过程

WEP的加解密过程

Wep加密

ICV:CRC-32对明文数据进行校验得到的校验值

  1. 通过静态的WEP密钥再加IV(初始化向量)通过RC4流加密算法扩展成与明文的数据(包含数据与CRC-32对ICV)等长的密钥流
  2. 将此密钥流与(明文数据+ICV)进行异或得到加密数据
  3. 然后将加密数据加上之前随机生成的IV一起发送给认证端(为什么发送出去的加密数据要加上IV字段?防止相同数据加密后出现相同的密文,防止静态密钥被破解;还携带使用的key id信息)

Wep解密--具体终端和AP使用哪个密钥进行加密,通过终端发来的IV中Key ID字段决定

  1. 到达AP之后,IV是明文,AP将先将IV提取出来,将前3个字节与自身配置的静态密钥去做RC4算法形成密钥流
  2. 然后将加密的数据与自身形成的密钥流再做异或,还原出加密数据,此时还原出来的数据包含(明文数据+ICV)
  3. 此时AP对明文数据进行CRC-32循环校验再算出一个ICV,然后将两个进行对比;数据一致的话就说明数据没有被更改过,是完整的

WEP加解密的异或过程

异或:相加为1则为1,为非1则为0

加密:将数据(二进制表示)与密钥流(二进制表示)相加进行异或,得到加密数据

解密:将加密的数据与自身形成的密钥流相加,进行异或,得到数据

PSK认证以及生成动态密钥的工作原理

PSK认证阶段--对用户认证并生成加密密钥,用于CCMP/TKIP加密(不讲解TKIP和CCMP如何加密)

4个认证报文

报文交互流程

Anonce就是AP(认证端)产生的随机数

Snonce 就是终端(请求者)产生的随机数

  1. 当终端进行认证时,认证方发送自己产生的随机数给终端(明文)
  2. 终端收到此随机数后,自己也产生一个随机数Snonce;根据Snonce等材料生成了PMK和PTK(包含KCK、KEK、TK)密钥;然后发送自身产生的Snonce和通过KCK对报文做了完整性校验的MIC值
  3. AP收到Snonce后也根据自身的材料生成PMK,PTK(包含KCK、KEK、TK),然后利用KCK把终端发送过来的报文进行完整性校验,将结果与收到的MIC进行对比;如果MIC一致,就说明PMK一致的,就可以得出配置的WPA/WPA2认证密钥也是一样的;通过MIC值就可以验证密钥是否一致认证通过后,认证方就回复终端,让终端安装PTK到网卡上,并发送加密的GTK密钥和对报文的完整性校验值(GTK的加密是使用PTK里面的KEK做加密的)
  4. 终端收到后也会对报文完整性校验,然后与收到的MIC做对比,如果一样则说明PMK一致,然后就会把PTK安装到网卡中,给认证方回应确认报文
  5. 后面的数据交互就是用PTK里面的TK做加密

注意事项

认证1/4握手失败:有可能是认证的密码错误,有可能是空口丢包错误

认证3/4握手失败:基本上就是空口丢包了

TKIP/CCMP加密和完整性校验(具体如何加密和校验不做讲解)

加密的密钥

TKIP和CCMP都通过PTK的密钥解决自身的算法进行加密

完整性校验算法

对于TKIP来说,生成PTK是还会生成MIC KEY,用户后续用户数据的完整性校验

对于CCMP来说,后续用户完整性校验通过CCM来完成

802.1x认证以及生成动态密钥的工作原理

Wlan——STA接入无线网络的流程以及STA如何通过802.1x接入网络_静下心来敲木鱼的博客-CSDN博客

相关文章:

Wlan安全——认证与加密方式(WPA/WPA2)

目录 终端认证技术 WEP认证 PSK认证 802.1x认证与MAC认证 Portal认证 数据加密技术 WEP加密 TKIP加密 CCMP加密 TKIP和CCMP生成密钥所需要的密钥信息 802.11安全标准 WEP共享密钥认证、加密工作原理 WEP共享密钥认证 WEP加解密过程 PSK认证以及生成动态密钥的工…...

Leetcode-每日一题【剑指 Offer 31. 栈的压入、弹出序列】

题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列&#xf…...

软件需求-架构师之路(五)

软件需求 软件需求: 指用户 对系统在功能、行为、性能、设计约束等方面的期望。 分为 需求开发 和 需求管理 两大过程。 需求开发: 需求获取需求分析需求定义(需求规格说明书)需求验证:拉客户一起评审&#xff0c…...

Python自带的IDLE有什么用

在Python的官方解释器中,自带了一个名为IDLE(Interactive DeveLopment Environment)的集成开发环境。 一、简化代码调试过程 很多初学者在编写Python代码时,经常会遇到一些问题需要调试。而在IDLE中,我们可以通过设置断点、单步调试等方法&…...

设计模式之简单工厂模式

一、概述 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。 简单工厂模式:又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 1.当一个类不知道它所必须…...

从SaaS到RPA,没有真正“完美”的解决方案!

众所周知,SaaS行业越来越卷,利润也越来越“薄”,这是传统软件厂商的悲哀,也是未来数字化行业不得不面对的冷峻现状之一。 随着基于aPaaS、低代码的解决方案之流行,SaaS行业变得越来越没有技术门槛,IT人员的…...

miniconda克隆arcpy

arcpy环境克隆 前言尝试思考到此结束 前言 最近遇到了一些问题,需要用到arcpy来处理一些东西,但众所周知,arcgis的arcpy是python 2.0的,我不是很喜欢;所以我安装了arcgis pro 2.8,我发现这也是个坑&#x…...

一万字关于java数据结构堆的讲解,让你从入门到精通

目录 java类和接口总览 队列(Queue) 1. 概念 2. 队列的使用 以下是一些常用的队列操作: 1.入队操作 2.出队操作 3.判断队列是否为空 4.获取队列大小 5.其它 优先级队列(堆) 1. 优先级队列概念 Java中的PriorityQueue具有以下特点 2.常用的PriorityQue…...

Java集合底层源码剖析-ArrayList和LinkedList

文章目录 ArrayList基本原理优缺点核心方法的原理数组扩容以及元素拷贝LinkedList基本原理优缺点双向链表数据结构插入元素的原理获取元素的原理删除元素的原理Vector和Stack栈数据结构的源码剖析ArrayList 基本原理 ArrayList是Java中的一个非常常用的数据结构,它实现了Lis…...

【数据分享】2006-2021年我国城市级别的市政公用设施建设固定资产投资相关指标(30多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况,在之前的文章中,我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国城市级别的市政设施水平相关指标(可查看之前的文章获悉详情&#xff…...

学点Selenium玩点新鲜~,让分布式测试有更多玩法

前 言 我们都知道 Selenium 是一款在 Web 应用测试领域使用的自动化测试工具,而 Selenium Grid 是 Selenium 中的一大组件,通过它能够实现分布式测试,能够帮助团队简单快速在不同的环境中测试他们的 Web 应用。 分布式执行测试其实并不是一…...

【SpringBoot学习笔记】04. Thymeleaf模板引擎

模板引擎 所有的html元素都可以被thymeleaf替换接管 th:元素名 templates下的只能通过Controller来跳转,templates前后端分离,需要模板引擎thymeleaf支持 模板引擎的作用就是我们来写一个页面模板,比如有些值呢,是动态的&#x…...

【uni-app】 .sync修饰符与$emit(update:xxx)实现数据双向绑定

最近在看uni-app文档,看到.sync修饰符的时候,觉得很有必要记录一下 其实uni-app是一个基于Vue.js和微信小程序开发框架的跨平台开发工具 所以经常会听到这样的说法,只要你会vue,uni-app就不难上手 在看文档的过程中,发…...

链表之第二回

欢迎来到我的:世界 该文章收入栏目:链表 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 目录 前言第一题:反转一个链表第二题:链表内指定区间反转第三题:判断一个链表…...

【sgDragSize】自定义拖拽修改DIV尺寸组件,适用于窗体大小调整

核心原理就是在四条边、四个顶点加上透明的div,给不同方向提供按下移动鼠标监听 ,对应计算宽度高度、坐标变化 特性: 支持设置拖拽的最小宽度、最小高度、最大宽度、最大高度可以双击某一条边,最大化对应方向的尺寸;再…...

Gson与FastJson详解

Gson与FastJson详解 Java与JSON 做什么? 将Java中的对象 快速的转换为 JSON格式的字符串. 将JSON格式的字符串, 转换为Java的对象. Gson 将对象转换为JSON字符串 转换JSON字符串的步骤: 引入JAR包 在需要转换JSON字符串的位置编写如下代码即可: String json new Gson().to…...

LeetCode150道面试经典题-- 有效的字母异位词(简单)

1.题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 2.示例 s"adasd" t"daads" 返回true s"addad" t &q…...

前端与人工智能

前端开发与人工智能的结合在未来将会产生许多有趣和有前景的发展。以下是前端与人工智能结合可能带来的一些趋势和前景: 智能用户体验:人工智能可以用于改善用户体验,例如通过个性化推荐、情感分析等技术来提供更贴近用户需求的内容和功能。…...

神经网络基础-神经网络补充概念-14-逻辑回归中损失函数的解释

概念 逻辑回归损失函数是用来衡量逻辑回归模型预测与实际观测之间差异的函数。它的目标是找到一组模型参数,使得预测结果尽可能接近实际观测。 理解 在逻辑回归中,常用的损失函数是对数似然损失(Log-Likelihood Loss)&#xff…...

UG NX二次开发(C++)-PK函数创建一条圆弧曲线

文章目录 1、前言2、创建一个项目3、添加头文件4、在do_it中添加创建圆曲线的源代码5、调用dll6、再创建一个长方体验证1、前言 采用PK进行UG NX二次开发,现在看到的文章很多是直接创建实体,然后在UG NX的视图区显示出来,对于创建圆曲线的文章不多,本文讲一下PK函数创建圆…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程

基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...