WPA系统在工作的时候,先由AP向外公布自身对WPA的支持,在Beacons、Probe Response等报文中使用新定义的WPA信息元素(Information Element),这些信息元素中包含了AP的安全配置信息(包括加密算法和安全配置等信息)。STA根据收到的信息选择相应的安全配置,并将所选择的安全配置表示在其发出的Association Request和Re-Association Request报文中。WPA通过这种方式来实现STA与AP之间的加密算法以及密钥管理方式的协商。

支持WPA的AP工作需要在开放系统认证方式下,STA以WPA模式与AP建立关联之后,如果网络中有RADIUS服务器作为认证服务器,那么 STA就使用802.1x方式进行认证;如果网络中没有RADIUS,STA与AP就会采用预共享密钥(PSK,Pre-Shared Key)的方式。

  STA通过了802.1x身份验证之后,AP会得到一个与STA相同的Session Key, AP与STA将该Session Key作为PMK(Pairwise Master Key,对于使用预共享密钥的方式来说,PSK就是PMK)。随后AP与STA通过EAPOL-KEY进行WPA的四次握手(4-Way Handshake)过程,如图所示。

在这个过程中,AP和STA均确认了对方是否持有与自己一致的PMK,如不一致,四次握手过程就告失败。为了保证传输的完整性,在握手过程中使用了名为 MIC(Message Integrity Code)的检验码。在四次握手的过程中,AP与STA经过协商计算出一个512位的PTK(Pairwise Transient Key),并将该PTK分解成为五种不同用途的密钥,如图所示:

其中前128位用做计算和检验EAPOL-KEY报文的MIC的密钥,随后的128位作为加密EAPOL-KEY的密钥;接下来的128位作为 AP与该STA之间通信的加密密钥的基础密钥(即由该密钥再经过一定的计算后得出的密钥作为二者之间的密钥);最后两个64位的密钥分别作为AP与该 STA之间的报文的MIC计算和检验密钥。

  由PTK分解出来的这一组(五个)密钥是AP与该STA之间使用的密钥(所以也叫每用户密钥,用于AP与STA之间的单播报文的加密),这些密 钥永远也不会以任何形式出现在无线网络上。在确认双方所持的PMK一致后, AP会根据自身是否支持每用户密钥的能力来指示STA是否安装并使用这个每用户密钥。

  为了使现有的设备能够通过软件/固件升级实现WPA,协议规定AP可以不采用PTK方式,而是利用下面将要描述的GTK作为AP向STA发送单 播报文时的密钥。如果AP通知STA安装并使用PTK,那么STA在向AP发送一个EAPOL-KEY相应报文后,再把相应的密钥安装到无线网卡中。

  四次握手成功后,AP要生成一个256位的GTK(Group Transient Key),GTK是一组全局加密密钥,所有与该AP建立关联的STA均使用相同的GTK,AP用这个GTK来加密所有与它建立关联的STA的通信报文, STA则使用这个GTK来解密由AP发送的报文并检验其MIC。该密钥可以分解为三种不同用途的密钥, 最前面的128位作为构造全局“每报文密钥”(Per-packet Encryption Key)的基础密钥(Base Key),后面的两个64位的密钥分别作为计算和检验WPA数据报文的MIC的密钥。AP使用EAPOL-KEY加密密钥将GTK加密并发送给STA,并指明该GTK是否允许STA用作发送报文所使用,STA成功接收到该报文,将GTK解密后,向AP发送应答报文,并根据AP所指示的Key Index将其安装无线网卡的相应位置,如果AP使用GTK作为向某一STA单播传输的密钥,则该STA也需要使用GTK作为向AP发送单播报文的密钥。

  TKIP并不直接使用由PTK/GTK分解出来的密钥作为加密报文的密钥,而是将该密钥作为基础密钥(Base Key),经过两个阶段的密钥混合过程,从而生成一个新的每一次报文传输都不一样的密钥,该密钥才是用做直接加密的密钥。 通过这种方式可以进一步增强WLAN的安全性。密钥的生成方式如图所示:

在WPA中,AP支持WPA和WEP无线客户端的混合接入。在STA与AP建立关联时,AP可以根据STA的Association Request中是否带有WPA信息元素来确定哪些客户端支持使用WPA。但是在混合接入的时候,所有WPA客户端所使用的加密算法都得使用WEP,这就 降低了无线局域网的整体安全性。

802.1X的wpa认证流程-------4-way handshake过程分析相关推荐

  1. 最新 | Windows和信创终端都能顺滑使用宁盾802.1X账密认证了

    802.1X技术为企业级的网络提供了安全和便捷的解决方案.在不同场景.不同需求下,802.1X账密认证.证书认证都有各自的拥趸.继<802.1X证书认证能力优化,员工入网还能这么玩?>让我 ...

  2. 锐捷网络:校园网基于802.1x无感知认证

    一.现状与需求分析 随着智能终端的普及,接入校园网络的终端类型正在逐渐发生变化.智能终端需要通过3G.GPRS.WIFI接入Internet网络.但目前3G.GPRS上网资费较贵,所以WIFI成为校园 ...

  3. 802.1x和MAC认证

    (自看用) 关于准入认证 准入认证有三种:802.1x.MAC认证以及Portal认证.下面是三种认证方式的优缺点: 802.1x  优点:安全性高.缺点:部署不灵活,需要安装客户端. MAC    ...

  4. NPS cisco 802.1x window7 实现认证接入网络

    windows server 2012 NPS的配置 http://technet.microsoft.com/zh-cn/library/dd283070(v=ws.10).aspx http:// ...

  5. android 802.1x 认证,802.1X认证基础

    802.1X认证基础 802.1X认证简介 定义 802.1X协议是一种基于端口的网络接入控制协议(Port based networkaccess control protocol)."基 ...

  6. 无线接入认证服务器,搭建基于AD和IAS的802.1X无线认证系统

    最近实施了一个楼宇室内无线覆盖项目,在无线用户认证上客户希望采用他们已经配置好的AD帐号,最终决定采用AD+IAS的802.1x认证方案,现在把配置过程记录下来. 整个楼宇一共使用了50多个瘦AP,基 ...

  7. 802.1x认证方式(EAP中继认证与EAP终结认证)

    文章目录 1.前言 2.协议说明 3.报文分析 EAP中继模式:MD5-challenge EAP终结模式:MD5-challenge Radius CHAP认证原理 Message-Authenti ...

  8. linux 锐捷客户端 脚本,基于802.1x的锐捷linux客户端认证方法(最新)

    校园网的Linux用户大概都有这样的苦恼,如今大多数校园网都必须安装基于802.1X协议的认证软件才可以上网,也许windows操做系统的用户以为安装这样的软件上网,那是一件很简单的事情,可是对于li ...

  9. 锐捷服务器无线认证配置,【WLAN从入门到精通之对接案例】配置802.1X认证示例_Web(锐捷SAM服务器)...

    原标题:[WLAN从入门到精通之对接案例]配置802.1X认证示例_Web(锐捷SAM服务器) 802.1X认证简介 802.1X认证是网络接入控制方案(NAC)中的一种,它是基于端口对用户的网络访问 ...

最新文章

  1. 聊聊spring cloud的DefaultEurekaServerContext
  2. Binder学习指南
  3. jQuery easyUI--选项卡右键菜单
  4. redis之(十一)redis实现缓存的功能
  5. 学习笔记:InnoDB存储结构及多版本实现
  6. 半圆和圆锥在一起会产生什么神奇的反应?
  7. r软件时间序列分析论文_高度比较的时间序列分析-一篇论文评论
  8. 百度编辑器的初步使用
  9. 常用 Dos 命令+杂项-常用的命令符+常用的公式
  10. 介绍一个工具给大家,做网站时,经常要上传文件到外网服务器,但是上传时往往需要很长时间,如果有一个文件对比工具……...
  11. 安装semantic-text-similarity
  12. [100124]红楼梦:林黛玉与北静王【硬盘版】[带全CG存档+攻略]
  13. TotalCommander查看文件夹大小和文件夹排序
  14. MMCODE 1003: 小谭变美日记(c++)
  15. python中outside function_运行提示SyntaxError: 'yield' outside function
  16. hbuilder 打包 php,HBuilder 打包流程
  17. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程
  18. Python爬虫之知乎采集工具
  19. 30分钟快速搭建一套私有云平台
  20. html 语言注释,HTML 注释

热门文章

  1. ssm框架的整合搭建(一)
  2. 数据结构算法(二)_算法基础之前传(递归、时间复杂度、空间复杂度、二分查找)...
  3. discuz uc密码修改
  4. hibernate配置之property name=hbm2ddl.autocreate/property导致每次创建SessionFactory都清空数据库中的数据...
  5. HDU 1258 Sum It Up
  6. python做mysql数据迁移_Python中MySQL数据迁移到MongoDB脚本的方法
  7. 记录一次quartus II prime standard 18添加器件库的方法
  8. 找工作这几天遇到的骗人套路
  9. 手机单机游戏合集大概40个G
  10. w ndows8怎么连接网络,(Wndows8.1优化设置全面解析.doc