在线工博会

Wi-Fi Protected Access 数据加密和数据完整性
为节省流量,手机版未显示文章中的图片,请点击此处浏览网页版
简介
正如在“网络专家”专栏文章 Wi-Fi Protected Access (WPA) 概述中所说的,Wi-Fi Protected Access (WPA) 是一 种过渡性行业标准 — 它通过升级到基于 802.11 的无线网络适配器的固件和无线访问点 (AP) 来保护 802.11 无线 LAN 联网的安全。
WPA 将临时密钥完整性协议 (TKIP) 与 Michael 结合起来,取代了有线对等保密 (WEP);临时密钥完整性协议可通过加密来保证数据机密性,Michael 可保证数据完整性。
TKIP 和 Michael 的加密功能
原 IEEE 802.11 标准中的 WEP 在加密方面存在以下弊端:
初始化向量 (IV) 太小
WEP 将 IV 及 WEP 加密密钥用作 RC4 伪随机数生成器 (PRNG) 的输入,生成用来加密 802.11 帧有效负载的密钥流。有了 24 位的 WEP IV 之后,就很容易捕获多个具有相同 IV 值的 WEP 帧,从而使实时解密更加容易。
弱数据完整性
WEP 数据完整性包括对非加密 802.11 有效负载中的字节执行循环冗余校验 32 (CRC-32) 校验和计算,然后使用 WEP 对它的值进行加密。即使在加密后,也比较容易更改加密有效负载中的位并适当更新加密 CRC-32 结果,从而阻止接收节点检测到帧内容已发生更改这一情况。
使用主密钥而不使用派生密钥
WEP 加密密钥(或者是手动配置的,或者是通过 802.1X 身份验证确定的)是唯一可用的密钥材料。因此,WEP加密密钥是主密钥。使用主密钥加密数据不如使用从主密钥派生的密钥安全。
不重新生成密钥
WEP 没有提供刷新加密密钥的方法。
无重放保护
WEP 不能防范重放攻击。在重放攻击中,攻击者会发送一系列的以前捕获的帧,试图以此方式获得访问 权或修改数据。
WPA 临时密钥
WEP 对单播数据加密使用单一密钥,对多播和广播数据加密通常另外使用一个不同的密钥。与 WEP 不同,WPA 对各个无线客户端无线 AP对(又称成对的临时密钥)使用由四个不同的密钥构成的一组密钥,对多播和广播通信量使 用由两个不同的密钥构成的一组密钥。
供单播数据和 EAP over LAN (EAPOL)-Key 消息使用的一组成对密钥由下列密钥构成:
数据加密密钥:一个用于加密单播帧的 128 位密钥。
数据完整性密钥:一个用于为单播帧计算 MIC 的 128 位密钥。
EAPOL-Key 加密密钥:一个用于加密 EAPOL-Key 消息的 128 位密钥。
EAPOL-Key 完整性密钥:一个用于为 EAPOL-Key 消息计算 MIC 的 128 位密 钥。
为了派生成对的临时密钥,WPA 需使用下列值:
成对的主密钥 (PMK):一个从 EAP-TLS 或 PEAP 身份验证过程派生的 256 位密钥。
Nonce 1:一个由无线 AP 确定的随机数。
MAC 1:无线 AP 的 MAC 地址。
Nonce 2:一个由无线客户端确定的随机数。
MAC 2:无线客户端的 MAC 地址。
对于使用 RADIUS 服务器的 802.1X 身份验证,PMK 由无线客户端和 RADIUS 服务器共同确定,RADIUS 服务器通过 RADIUS Access-Accept 消息将 PMK 传输给无线 AP。接收到 PMK 后,无线AP启动临时密钥消息交换,这包括 下列几部分:
1.由无线 AP 发送的、包含 Nonce 1 和 MAC 1 的 EAPOL-Key消息。因为临时单播密钥尚未确定,所以此消息是以明文形式发送的,没有消息完整性保护。无线客户端此时已拥有计算成对的临时密钥所需要的所有元素。
2.由无线客户端发送的、包含 Nonce 2、MAC 2 和 MIC 的 EAPOL-Key消息。因为无线客户端已计算出成对的临时 密钥,所以它使用派生的 EAPOL-Key 完整性密钥计算 MIC。无线 AP 使用Nonce 2 和 MAC 2 值来派生成对的临时密 钥并验证 MIC 的值。
3.由无线 AP 发送的、包含 MIC 和开始序列号的 EAPOL-Key 消息,指示无线 AP已准备好开始发送加密的单播和 EAPOL-Key 帧。
4.由无线客户端发送的、包含 MIC 和开始序列号的 EAPOL-Key 消息,指示无线客户端已准备好开始发送加密的单播和EAPOL-Key 帧。
这组消息用于交换确定成对的临时密钥所需的值,验证各个无线对等方是否知道 PMK(通过验证 MIC 的值),指示各个无线对等方已准备好为随后的单播数据帧和 EAPOL-Key 消息提供加密和消息完整性保护。
对于多播和广播通信量,无线 AP 会派生一个 128 位的组加密密钥和一个 128 位的组完整性密钥,并使用一条 EAPOL-Key 消息(用 EAPOL-Key 加密密钥进行加密,并用 EAPOL-Key 完整性密钥保护消息的完整性)将这些值发送给无线客户端。无线客户端再使用一条 EAPOL-Key 消息来确认收到该 EAPOL-Key 消息。
WPA 加密和解密过程
WPA 需要使用下列值来为无线数据帧提供加密和完整性保护:
IV,以 0 开始,随每个后续帧而递增
数据加密密钥(用于单播通信量)或组加密密钥(用于多播或广播通信量)
无线帧的目标地址 (DA) 和源地址 (SA)
一个优先级字段的值,被设置为 0,保留以备以后使用
数据完整性密钥(用于单播通信量)或组完整性密钥(用于多播或广播通信量)
下图说明单播数据帧的 WPA 加密过程。

(图片)

1.IV、DA 和数据加密密钥被输入 WPA 密钥混合函数,该函数计算基于每个数据包的加密密钥。
2.DA、SA、优先级、数据(非加密 802.11 有效负载)和数据完整性密钥被输入 Michael 数据完整性算法以生成MIC。
3.ICV 是从 CRC-32 校验和计算出来的。
4.IV 和基于每个数据包的加密密钥被输入 RC4 PRNG 函数以生成与数据、MIC 和 ICV 大小相同的密钥流。
5.密钥流与数据、MIC 和 ICV 的组合进行异或逻辑运算,生成 802.11 有效负载的加密部分。
6.IV 被添加到 IV 和扩展 IV 两个字段中的 802.11 有效负载的加密部分,其结果被 802.11报头和报尾封装了 起来。
下图说明单播数据帧的 WPA 解密过程。

(图片)

1.从 802.11 帧有效负载的 IV 和扩展 IV 两个字段中提取 IV 值,然后将此值与DA和数据加密密钥一起输入密 钥混合函数,生成基于数据包的加密密钥。
2.IV 和基于数据包的加密密钥被输入 RC4 PRNG 函数,生成与加密的数据、MIC 和 ICV 大小相同的密钥流。
3.密钥流与加密的数据、MIC 和 ICV 进行异或逻辑运算,生成非加密数据、MIC 和 ICV。
4.计算 ICV,并将其与非加密 ICV 的值相比较。如果两个 ICV 值不匹配,数据就会被悄悄丢弃。
5.DA、SA、数据和数据完整性密钥被输入 Michael 完整性算法以生成 MIC。
6.MIC 的计算值与非加密 MIC 的值相比较。如果两个 MIC 值不匹配,数据就会被悄悄丢弃。如果两个 MIC 值相匹配,数据就会被传输到上一级网络层进行处理。 5/1/2005


电脑版 客户端 关于我们
佳工机电网 - 机电行业首选网站