WPA,全称为Wi-Fi Protected Access,是一种保护WiFi安全的系统,实现了IEEE 802.11i的大部分标准,是一种替代WEP的过渡方案。

这个协议包含了前向兼容RC4的加密协议TKIP,它沿用了WEP所使用的硬件并修正了一些缺失,但仍然是存在弱点的,随后的升级版本,基于IEEE 802.11i最终版的协议称之为WPA2.WPA2是经由Wi-FI联盟验证过的IEEE 802.11i正式标准的认证形式。WPA2实现了802.11i的强制性元素,在WPA2中,RC4被AES取代,

WPA/WPA2 包含认证、加密和数据完整性校验,是一整套安全系统。

WPA =  IEEE802.11i draft 3 = IEEE 802.1X/EAP + WEP(可选)/TKIP

WPA2 = IEEE 802.11i 正式版 = IEEE 802.1X/EAP + WEP(可选)/TKIP/CCMP

认证

WPA包含两种认证级别,分为个人版和企业版,根据不同的版本,可分为四种,WPA-PSK,WPA2-PSK,WPA-Enterprise,WPA2-Enterprise。

个人版的WiFi加密,简单说,就是让同一无线路由器底下的每个用户都使用同一把密码,这种模式称之为“PSK Pre-shared Key 预共享密钥模式”,它的设计目的是针对承担不起802.1X认证服务器的家庭或者小型公司网络。每一个使用者必须输入预先配置好的相同的密钥来接入网络,密钥的格式要求在8~63个ASCII字符,输入的密钥通过PBKDF2密钥管理算法来生成实际传输所用的256位加密密钥。

企业版安全加密,需要用到一个 8802.1X认证服务器来分发不同的密钥给各个终端用户,这要求更加复杂的设置来提供更加安全的系统,包含不同种类的扩展认证协议EAP。

这台服务器存储无线使用者账户数据,当用户准备连入无线时,需要输入账号名称和密钥,登陆成功后,每个客户会得到一个唯一的密钥,这个密钥很长,并且每隔一段时间就被更新。

加密

WPA的数据负载,通过128位的密钥和48位的IV向量,基于RC4 stream cipher加密算法来加密数据,在数据通讯中,它还使用了动态改变密钥协议(Temporal Key Integrity Protocol,TKIP)。TKIP为每个数据包部署了密钥,这意味着,对于每个传输报,它能够动态的生成新的128位密钥,快速更新密钥来改进WEP模式下可能被暴力破解的缺点。

WPA2使用AES来替代WPA中的RC4加密算法、

完整性保证

相比于WEP所使用的CRC校验,在不知道密钥的情况下,有可能同时篡改负载和对于的CRC,WPA使用了称为“Michael”算法来保证传输报的完整性。Michael比CRC强壮的多。每个MIC中,还包含了帧计数器,这可以防止重放攻击。

WPA2包含更加强大的CCMP(一种基于AES加密算法,具有更高的安全性),用于取代WPA的Michael算法。

加密的影响

AP热点可以容纳的终端个数,取决于所使用的Wi-Fi芯片,对于不加密的情况,取决于内存的大小。对于加密的情况,取决于Wi-Fi芯片内部存放密钥的缓冲区有多大。在传输过程中,加解密都是硬件做的,密钥是用户设置的,存放密钥的缓冲区大小是受限的,存放密钥的个数是受限的,举例:如果缓冲区可以存放32个密钥,Wi-Fi采用WPA2-AES加密,WPA2-AES下,每个接入终端有一个单播密钥(占据一个密钥空间),所有终端共享一个组播密钥(占据两个密钥空间),密钥是周期性更新,需要有新旧备份。因此,假设最多可以接入X个设备, 那么( X + 2 ) * 2 = 32, X = 14,它最多可以支持14个终端。

参考文档:http://www.45fan.com/a/wireless/293.html

http://www.cnblogs.com/littlehann/p/3700357.html

WiFi安全之WPA介绍的更多相关文章

  1. 如何使用Reaver破解Wi-Fi网络的WPA密码

    via: http://lifehacker.com/5873407/how-to-crack-a-wi+fi-networks-wpa-password-with-reaver 译者:Mr小眼儿 本 ...

  2. 1-51单片机WIFI学习(开发板介绍)

    源码链接都在后面 前面的都是介绍单独的WIFI,没有和单片机结合起来,因为做项目很少会只用WIFI模块.大多数都是WIFI模块作为中转数据的桥梁,单片机负责 数据采集,控制等等,所以自己准备出一套51 ...

  3. Wi-Fi DFS与TPC介绍

    DFS与TPC是wifi认证的其中一项测试内容,如果不需要DFS功能,可以不进行测试,但是某些属于DFS频段的wifi信道则不允许使用. 1. 什么是WIFI Auto DFS? 通俗的说就是:躲雷达 ...

  4. wifi测试相关(iwconfig,WPA Supplicant用法)

    iwconfig用法 1.打开无线网卡电源 iwconfig wlan0 txpower no 2.列出区域内的无线网络 iwconfig wlan0 scan 3.假设要连接到网络myhome(即e ...

  5. Native wifi API使用

    写于博客园,自己迁过来: 一.WlanOpenHandle打开一个客户端句柄 DWORD WINAPI WlanOpenHandle( __in DWORD dwClientVersion, __re ...

  6. 无线网络(WLAN)常见加密方式介绍

    在使用无线路由器配置wifi安全设定的时候经常会遇到各种加密方式,即不懂意思也不知道如何选择.本文将对此做一个简单的介绍. 1.WEP 有线等效协议(Wired Equivalent Privacy, ...

  7. wpa_supplicant 和 802.11g WPA 认证的配置

    # cd /etc/init.d# ln -s net.lo net.eth0 默认的接口名是 wlan0,让它开机时自动 up:cp /etc/init.d/net.lo /etc/init.d/n ...

  8. 无线加密的多种方法及其区别(WEP WPA TKIP EAP)

    无线加密的多种方法及其区别(WEP WPA TKIP EAP) 无线网络的安全性由认证和加密来保证. 认证允许只有被许可的用户才能连接到无线网络: 加密的目的是提供数据的保密性和完整性(数据在传输过程 ...

  9. 扔掉360:Linux下无线网卡作WiFi路由器(转薄荷开源网)

    这个话题很多人感兴趣,毕竟现在是无线互联时代.手机一族到外面去,首先关心的就是有没有 WiFi.Windows 7 用户可以安装 360 的软件,把笔记本电脑配置成路由器,供手机或其他电脑上网. 在 ...

随机推荐

  1. [WebGL] Setting Up WebGL

    In this lesson we cover setting up WebGL for use, including creating a canvas, getting the WebGL ren ...

  2. HDU1013_Digital Roots【大数】【水题】

    Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. 粒子系统1:简介&工具使用

    直接使用工具来感受一下粒子系统的强大威力吧. 网络上有很多粒子编辑器,大多数都是收费的.magicalsoft提供了一个免费的粒子编辑器(该工具目前只有mac版本),界面如下: 我们将针对这个编辑器来 ...

  4. Linux守护进程(init.d和xinetd)

    http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html

  5. Linux内核加载全流程

    无论是Linux还是Windows,在加电后的第一步都是先运行BIOS(Basic Input/Output System)程序——不知道是不是所以的电脑系统都是如此.BIOS保存在主板上的一个non ...

  6. 更改gps.conf来加快GPS搜星速度

    国内NTP ServerNTP全称是Network Time Protocol,是用来让计算机之间实现时间同步的协议,而发布这种校对时间的服务器,就是NTP Server!一般来说客户端与服务器之间的 ...

  7. PHP中::、->、self、parent::、$this操作符的区别

    在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者 ...

  8. Linux 学习笔记 cp 和 ln

    最近在重温大学的经典课程:Linux.每天工作之余的时间,坐在家里的阳台上,简简单单的纪录一些基本的知识点,对我来说,既温暖又难得. 有朋友问我关于cp和ln建立符号链接(软链接)和硬链接的一些问题, ...

  9. C#文件操作系列(一)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  10. cocos2d-x中使用Http

    一.如何使用 //发送接口 void CmdHelper::postRequest(const char* cmdTag, const char* url, const char* postData, ...