WPA (Wi-Fi Protected Access) 网络安全存取技术

  • WPA具有两种标准:WPA和WPA2,WPA2是WPA的增强型版本,增加了支持AES的加密方式。
    WPA:由于WEP存在安全缺陷,在IEEE 802.11i提出前,Wi-Fi联盟(WFA)先提出了WPA(Wi-Fi Protected Access)技术。
    WPA2:针对无线网络的安全问题,IEEE 802.11i 提出了RSN(Robust Security Network,强健安全网络),Wi-Fi联盟(WFA)把RSN称为WPA2。
  • WPA / WPA2 都加强了密钥生成算法,增加了防止数据被篡改的功能和认证功能。

WPA的链路层加密协议

  • TKIP:Temporal Key Integrity Protocol(临时密钥完整性协议)
  • CCMP:Counter mode with Cipher block chaining Message authentication code Protocol (「计数器模式」搭配「区块密码锁链-信息真实性检查码」协议)

TKIP 临时密钥完整性协议

  • TKIP 是用于升级WEP的方案,它保留了WEP 的基本架构与过程方式。
TKIP 与WEP 的差异
  1. 为了防范初始向量攻击,TKIP 将初始向量(initialization vector,IV) 的长度从24 位元为48 个位元。
  2. TKIP 使用到了多把主钥。最后用来加密帧的密钥,是由这些主钥衍生而来。
  3. TKIP 保留WEP 使用的RC4 帧加密机制,为了防范针对弱点密钥的攻击,通过配钥(key mixing),为每个帧(从主钥)衍生出特有的RC4 密钥.
  4. TKIP 为每个帧编列序号;每次安装新的主钥,初始向量/序号计数器就会被重设为1。每传一个帧,序号计数器就加1。
    TKIP 会保留来自各工作站的最近序号。一旦成功接收到某个帧,就会以之与最近接收到的帧序号进行比对。如果大于前值就予以接受,否则就加以拒绝。
  5. TKIP 通过Michael (Message Integrity Check,MIC)的信息完整性检验算法,取代WEP 使用的线性杂凑算法。
TKIP 的密钥配制(key mixing)过程
  • TKIP 为每个帧配制密钥,密钥衍生自初始向量,序号计数器,帧的发送端地址以及临时密钥

  • 通过配钥(key mixing)可以确保各个帧所使用的密钥彼此间存在显著的差异

  • 阶段一

输入 说明
Temporal key(TK) 用来加密帧的临时密钥,32位
Transmitter address(TA) 源地址,需要用它来进行身份认证,128位
TKIP Sequence Counter(TSC) 序号计数器,由驱动程序或硬件所维护,共48位,取其前32位
输出 说明
TLIP-mixed Transmit Address and Key(TTAK) 密钥混合产物,80位
  • 阶段二
输入 说明
TLIP-mixed Transmit Address and Key(TTAK) 阶段一的密钥混合产物
TKIP Sequence Counter(TSC) 序号计数器,后16 位元为输入项
输出 说明
WEP 的随机种子 (WEP Secret Seed) 128 位元的RC4 密钥,最后16 位元用来产生一个WEP IV 的高和低位元组
WEP IV 中间的位元组是一个固定的虚设位元组(dummy byte),用来避免产生RC4 弱点密钥。
完整性校验算法
  • 完整性校验算法 由两部分组成
  1. MIC key:MIC密钥,厂商负责实现。负责保护帧内容,TKIP 会衍生出一对密钥,使得「STA 一 AP」和「AP 一 STA」的MIC 密钥不同。
  2. Frame data:MAC帧的源地址(Source address,SA),目的地址(Destination address,DA),优先级(后三位保留未用(Reserved),第一位是Priority(优先性)),数据。
  • MIC算法的输出为Data和MIC,即MIC 附于数据帧之后,然后交付802.11 传送。

TKIP 的数据发送流程
  1. 将MAC 帧置于待传队列(Queued for Transmission),其中包含了帧标头和负载数据(Payload)。
  2. 根据地址,优先级,数据和MIC密钥,计算信息完整性检验值(Message Integrity Check,MIC)。
  3. 赋予各个帧片段序号。如果帧不需分片,则只要编列一个序号,否则,计数器则会根据分片数量累加。
  4. 每个帧均会以其独有的WEP 密钥进行加密;每个帧所拥有的密钥(Per-frame key)将会传给WEP,以作为IV与密钥之用。
  5. 数据帧 + MIC + RC4 密钥,传给WEP,由WEP 进行帧分封过程。
  6. WEP先利用WEP种子(WEP Secret Seed)和伪随机数产生器(Pseudo Random Number Generator,PRNG)生成密钥流,然后使用XOR操作对DATA和MIC进行异或。

TKIP 的数据接收流程
  1. 接收到MAC 帧后,如果帧校验程序确认MAC帧没有损毁,就会交给TKIP 进一步的验证。
  2. TKIP 首先检查序号,以防范重演攻击。
  3. 然后还原用来加密封包的WEP 随机种子,再除去帧外围所包覆的WEP 层,然后还原内容。
  4. 如果MAC帧被分段,在重组完整数据之前,必须等到所有片段接收完成。
  5. 帧重组后,根据帧内容计算MIC 值。如果所计算的值与MAC帧记载的MIC值相符,则将帧传递给上层协议,并且将序号设成帧当中所记载的序号。
  6. 工作站检测到MIC 错误的反制措施:
    (1)标记并登录该MIC 错误。
    (2)如果在60 秒通讯之内发生两次以上MIC 错误,则停止所有的TKIP 通讯60秒。
    (3)更新密钥,工作站删除所持有的主钥副本,然后向认证者要求配发新的密钥,认证者负责产生与传递新的密钥。

TKIP 保护的帧封包格式
  • IV / Key ID:记录了部分的TKIP序号,和目前使用的密钥编号。
  • Extended IV:延伸初始向量,EIV,用来记载其余的序号。
  • MIC:信息完整性检查码,位于承载的数据后,8个字节。
  • WEP ICV:完整性检验值,尽量维持WEP 格式不受变动,4个字节。


CCMP「计数器模式」搭配「区块密码锁链-信息真实性检查码」协议

  • CCMP(Counter Mode with CBC-MAC Protocol)是以先进加密标准(Advanced Encryption Standard,AES)为基础的链路层安全协议
  • IEEE 802.11i 规定AES 使用128 位元密钥以及128 位元数据区块。
CCMP 的加密流程
输入 说明
数据帧 (Plaintext frame) MAC帧,包括Header和Data
临时密钥 (Temporal key) 临时密钥,用来加密与确认帧真实性
密钥识别码(Key ID) 支持多组密钥,不过每个帧只会使用一把密钥
封包号码(Packet number) 用来标识传送的帧,每传一帧,号码就会累加,对于重传帧,则维持不变
中间输出 说明
临时随机数(Nonce) 数据帧中的数据Data,A2(Address 2),Priority 与 Packet number 构成
附加认证数据(Additional Authentication Data, AAD) 由MAC帧的头部信息构成
CCMP Header 由Packet number 与 Key ID 构成
加密算法输入 加密算法输入
AAD,Nonce,MAC数据,TK(Temporary Key) 加密后的Data,消息校验码(Message Integrity Check, MIC)
  • CCMP加密后的MAC帧包括:MAC Header + CCMP Header + 加密的Data + MIC

CCMP 数据发送流程
  1. 将MAC 帧置于待传队列(Queued for Transmission),其中包含帧标头 (Frame Header)以及承载数据(Payload)。
  2. 给MAC 帧 赋予一个48 位元的封包号码(Packet Number,PN)。每次传送后PN 就会累加,它同时也用来检测重演攻击。
  3. 建立额外认证数据(Additional Authentication Data,AAD)。
  4. 建立Nonce(用过即丢、抛弃式的随机值或乱数),在CCMP 中的Nonce 是由封包号码以及传送端地址构成,因此,不同的工作站也可以使用相同的封包号码。Nonce 同时包含QOS 会用到的优先性数据。
  5. 建立CCMP Header。它会将构成PN(封包号码)的六个位元组拆开,然后将Key ID(密钥识别码)置于其中。
  6. CCM 加密引擎所需要的输入项:128 位元的临时密钥、Nonce、额外认证数据(AAD),MAC帧的Data。
    通过八个字节的MIC(信息完整性检查码)来确保数据的真实性,帧本体与MIC 也经过加密。
  7. 加密帧组成:原始的MAC 标头、CCMP 标头 和 加密数据。

CCMP 数据接收流程
  1. 接收到帧,如果通过帧检验程序(Frame Check Sequence)确定未曾受损,就会交付CCMP 进行验证。
  2. 从接收到的帧中还原出AAD(额外认证数据),其中只包含帧标头,而且并未经过加密。
  3. 从帧还原出CCMP Nonce,其中包含封包编号、传送端地址以及QOS 字段的内容。
  4. 接收端通过临时密钥,还原的nonce,认证数据,加密过的帧本体来解读密文
  5. 完整性检验是针对明文数据与额外认证数据进行计算。如果计算出的完整性检验值与步骤4 所得到的完整性检验值相符,就继续进行。否则就终止程序。
  6. MAC 标头与步骤4 所还原的数据组成明文帧。如果能通过重放攻击检测检验,其封包号码必须大于或等于最近接收到之通过完整性检验程序的封包号码。

Wi-Fi 安全协议 - WPA相关推荐

  1. wifi频率和zigbee干扰_浅谈ZigBee和Wi—Fi的共存和干扰

    龙源期刊网 http://www.qikan.com.cn 浅谈 ZigBee 和 Wi - Fi 的共存和干扰 作者:姜伟 朱凯 刘童 来源:<科技视界> 2013 年第 16 期 [摘 ...

  2. 比较802.11ac(Wi‑Fi 5)和802.11ax(Wi‑Fi 6)

    MIMO 802.11ac仅在下行模式下,支持多用户MIMO. 802.11ax不仅下行链路:也在上行链路支持MIMO功能,因此多个用户可以同时上传视频. 调制方法 802.11ax具有更高的调制方案 ...

  3. android环境监测,基于Wi―Fi和Android家居环境监测与实现

    摘 要 为了人们生活环境健康安全,实现家居环境检测,利用现在手持智能设备,设计出一种基于Android的家居检测系统.本文采用了具有Android操作系统的智能手机或平板电脑作为家居设备终端,以STM ...

  4. 行车记录仪全国产化电子元件推荐方案

    方案概述: 行车记录仪一般由摄像头. CMOS传感.重力传感.处理器.存储.麦克风.显示屏等组成.行车记录仪已在我国较大范围应用,其约束驾驶人违法驾驶行为.记录车辆行驶过程 的作用也初步显现.随着现代 ...

  5. 为无线网路上好锁,WEP、WPA无线加密对比

    随着无线网路的普及,在商场.街上.餐厅搜索到无线信号并不出奇,这些无线热点一般都是免费的提供无线网路给大家使用,并不对信号进行加密.但对于 家庭来说,如果自己付款的宽带网路因无线信号没有加密而给别人免 ...

  6. 小米wifi智能家居android,小米智能家居:米家智能插座的无线协议——Wi-Fi与Zigbee...

    随着科技的发展,智能插座或音箱,就可以开启你的智能家居生活. 那Wi-Fi和ZigBee到底是什么? 首先,Wi-Fi和ZigBee是两种不同的无线协议.Wi-Fi无线协议:全称Wireless Fi ...

  7. nRF51系列的Gazell协议

    介绍: Gazell是一种协议,它可以在一个主机和多达8个设备的星型网络拓扑结构中建立一个强大的无线链路.它的设计目的是减少功率敏感的无线桌面产品的功耗,也适用于一系列其他的无线应用程序. 为了尽量减 ...

  8. # 一个礼拜学习Ios7816协议 第二天

    编程参数P和I 编程参数P和I分别是编程电压和最大编程电流,他们定义了接触点VPP上的编程状态编程电压:VPP = PV最大编程电流 Ipp = ImA在5 到 25 范围内,PI1给出了P的值,单位 ...

  9. 路由选择协议在哪一层_米家智能插座背后的两种无线协议——Wi-Fi与ZigBee区别体现在哪?...

    随着科技的发展,智能家居的概念深入人心,人们利用智慧不断开创新的生活.比尔盖茨是第一个智能家居的使用者,也许很多人会认为智能家居的高端性符合像比尔盖茨那样有"钱"的人,其实不然,随 ...

最新文章

  1. 共享服务器不能远程重启,彻底解决服务器重启失败或重启缓慢无法远程的问题...
  2. ASCII码对照表 转帖
  3. 漂亮大气注册登录页面模板
  4. 匹配yyyy-mm-dd日期格式的的正则表达式
  5. unix 连接 mysql_UNIX域套接字连接mysql
  6. Javascript第四章匿名函数第七课
  7. python1到100偶数求和_python1-100怎样偶数求和?_后端开发
  8. NET面试问题及答案
  9. 洛阳地铁一号线无人驾驶_洛阳地铁第一个过街通道建成,地铁时代离洛阳人还远吗?...
  10. Android实现流量统计和网速监控悬浮窗
  11. 水滴模式能否解惑10亿人口下沉市场?
  12. 关于C++、C#实现EXCEL数据库批量导入数据库万行以上数据效率问题
  13. 【Python】绘制热力图seaborn.heatmap,cmap设置颜色的参数
  14. 如何批量制作字母加流水号的二维码
  15. 机器视觉系统图像采集卡功能特点及应用场景介绍
  16. 计算机相关双人相声,双人相声剧本简短
  17. 如何拥有好的精力去做事情?管理精力
  18. 生鲜配送系统有哪些功能?搭建生鲜配送系统有什么优势?
  19. 基于B/S的影视创作论坛的设计与实现(附:源码 论文 sql文件 项目部署教程)
  20. 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。 可以弹奏的乐器包括二胡、钢琴和琵琶。 实现思路及关键代码

热门文章

  1. BetaFlight模块设计之三十:Cli模块分析
  2. java企业物流管理系统 (JSP物流公司管理系统毕业设计)
  3. 山东大学软件工程应用与实践——GMSSL开源库(九)——SM9密钥封装与公钥加密的源代码分析
  4. 软件测试方法与测试策略
  5. searchUI-微信小程序 搜索插件
  6. [附源码]计算机毕业设计高校体育场馆管理系统Springboot程序
  7. 自动化键盘鼠标简单操作(python)
  8. 11.2 项目风险管理
  9. 天地图标注获取与修改并保存信息
  10. 仓储+调度,YOGO智能配送站能否改变外卖配送格局?