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(后续讲解)

STA上线流程

Wlan——STA上线流程与802.11MAC帧讲解_静下心来敲木鱼的博客-CSDN博客

终端认证技术

目前我们使用到的认证主要有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安全——认证与加密方式(WPA/WPA2)_静下心来敲木鱼的博客-CSDN博客

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

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

相关文章

CentOS系统环境搭建(十四)——CentOS7.9安装elasticsearch-head

centos系统环境搭建专栏🔗点击跳转 关于node的安装请看上一篇CentOS系统环境搭建(十三)——CentOS7安装nvm,🔗点击跳转。 CentOS7.9安装elasticsearch-head 文章目录 CentOS7.9安装elasticsearch-head1.下载2.解压3.修…

【广州华锐互动】3D空间编辑器:一款简洁易用的VR/3D在线编辑工具

随着虚拟现实技术的不断发展,数字孪生技术的应用已经被广泛应用于产品设计和制作中,能充分发挥企业应用3D建模的优势,凸显了三维设计的价值,在生产阶段也能够充分发挥3D模型的作用。 如今,广州华锐互动开发的3D空间编辑…

线程池的实现全过程v1.0版本(手把手创建,看完必掌握!!!)

目录 线程池的实现过程 线程池的创建 添加任务队列 线程进行处理任务 线程池资源释放 线程池完整程序 线程池v1.0版本总结 线程池的实现过程 实现线程池首先要确定线程池有哪些属性 线程池中线程的数量线程池中已工作的线程数量任务队列任务队列的大小任务队列的锁 还…

Android笔记:在原生App中嵌入Flutter

首先有一个可以运行的原生项目 第一步:新建Flutter module Terminal进入到项目根目录,执行flutter create -t module ‘module名字’例如:flutter create -t module flutter-native 执行完毕,就会发现项目目录下生成了一个modu…

Android Drawable转BitmapDrawable再提取Bitmap,Kotlin

Android Drawable转BitmapDrawable再提取Bitmap&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…

MySQL——基础——内连接

一、内连接查询语法 隐式内连接 SELECT 字段列表 FROM 表1&#xff0c;表2 WHERE 条件...; 显示内连接 SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 连接条件...; 内连接查询的是两张表交集的部分 二、内连接演示 1.查询每一个员工的姓名&#xff0c;及关联的部门的名称…

Linux学习之ftp安装、vsftpd安装和使用

ftp需要两个端口&#xff1a; 数据端口 命令端口 ftp有两种模式&#xff1a; 被动模式&#xff1a;建立命令连接之后&#xff0c;服务器等待客户端发起请求。 主动模式&#xff1a;建立命令连接之后&#xff0c;服务器主动向客户端发起数据连接&#xff0c;因为客户端可能有防火…

12312321312

目录 层次分析法(AHP) 基本步骤 建立层次模型 构造判断矩阵 一致性检验 求得权重 填表得结果 一点补充 详细做法补充 特征向量含义思考 一些问题 优劣解距离法(TOPSIS) 基本思想 模型步骤 数据处理 指标正向化 标准化处理 计算得分 *结果处理 熵权法 模型思…

Flask入门一 ——虚拟环境及Flask安装

Flask入门一 ——虚拟环境及Flask安装 在大多数标准中&#xff0c;Flask都算是小型框架&#xff0c;小到可以称为“微框架”&#xff0c;但是并不意味着他比其他框架功能少。Flask自开发伊始就被设计为可扩展的框架。Flask具有一个包含基本服务的强健核心&#xff0c;其他功能…

【Django】Task4 序列化及其高级使用、ModelViewSet

【Django】Task4 序列化及其高级使用、ModelViewSet Task4主要了解序列化及掌握其高级使用&#xff0c;了解ModelViewSet的作用&#xff0c;ModelViewSet 是 Django REST framework&#xff08;DRF&#xff09;中的一个视图集类&#xff0c;用于快速创建处理模型数据的 API 视…

数据仓库一分钟

数据分层 一、数据运营层&#xff1a;ODS&#xff08;Operational Data Store&#xff09; “面向主题的”数据运营层&#xff0c;也叫ODS层&#xff0c;是最接近数据源中数据的一层&#xff0c;数据源中的数据&#xff0c;经过抽取、洗净、传输&#xff0c;也就说传说中的 ETL…

电信不提供公网IP怎么解决?快解析内网穿透解决方案

由于现在电信运营商的政策调整&#xff0c;加上受到网络服务架构的影响&#xff0c;一些用户在使用宽带连接时&#xff0c;往往会遇到电信不提供公网IP的情况。这种情况下&#xff0c;我们可能会受到一些限制&#xff0c;特别是对于需要对外提供服务或进行远程访问的场景而言&a…

使用ChatGPT-4优化编程效率:高效查询代码示例和解决方案

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Linux下的thundersvm的安装经验

之前写过一篇文章是关于windows下安装thundersvm的。当初在linux下安装thundersvm很容易&#xff0c;因为我的CUDA正好是9.0版本。所以一句命令 pip install thundersvm 即可安装。 但如果CUDA版本不是9.0&#xff0c;安装就比较麻烦。本文记录的是一种可行的方法&#xff0c;但…

LVS+Keepalived 实验

Keepalived 是什么 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题的一款检查工具 在一个LVS服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色的服务器…

Git标签

Git 中的标签&#xff0c;指的是某个分支某个特定时间点的状态(静态)。通过标签&#xff0c;可以很方便的切换到标记时的状态。 比较有代表性的是人们会使用这个功能来标记发布结点 (v1.0、v1.2等)。 下面是myatis-plus的标签: 1 标签相关命令 命令作用git tag查看标签&…

python中(限小白,大佬勿入)python开发中的trick:常量

开场白 我是小白&#xff0c;今天被前端骂了一顿&#xff1a;我们交接不是说好了就给你四个变量&#xff1a;A&#xff0c;B。C。D。你这命名的这么具体&#xff0c;我这边给你传值不是很方便啊&#xff08;因为不同模块有复用的图片路径&#xff09;&#xff0c;我说“那我改&…

自动化测试工具Selenium的语法续.

OK&#xff0c;那么上篇博客我们介绍了如何搭建基于Javaselenium的环境&#xff0c;并且使用selenium的一些语法给大家演示了如何进行自动化测试的案例&#xff0c;那么本篇博客我们来继续学习selenium的一些其他的比较重要的语法&#xff0c;感谢关注&#xff0c;期待三连~ 目…

陕西广电 HG6341C FiberHome烽火 光猫获取超级密码 改桥接模式 提升网速

光猫默认的路由模式实测在100M宽带下只能跑到60M左右&#xff0c;只有改成桥接模式才能跑满&#xff0c;不损失性能。但是改桥接需要给运营商打电话&#xff0c;有的时候不想麻烦他们&#xff0c;这时获取超级密码进行更改就是一个不错的选择了 分析 之前写了一篇HGU B2 光猫的…

CSS和AJAX阶段学习记录

1、AJAX的工作原理&#xff1a; 如图所示&#xff0c;工作原理可以分为以下几步&#xff1a; 网页中发生一个事件&#xff08;页面加载、按钮点击&#xff09; 由 JavaScript 创建 XMLHttpRequest 对象 XMLHttpRequest 对象向 web 服务器发送请求 服务器处理该请求 服务器将响应…