无线论坛 门户 无线安全 查看内容

Wi-Fi Protected Access 数据加密和数据完整性

2010-12-2 15:09| 查看: 756| 评论: 0|原作者: 佚名|来自: www.a

简介

TKIP 和 Michael 的加密功能

WPA 临时密钥

WPA 加密和解密过程

Wi-Fi Protected Access (WPA) 是一 种过渡性行业标准 — 它通过升级到基于 802.11 的无线网络适配器的固件和无线访问点 (AP) 来保护 802.11 无线 LAN 联网的安全。

WPA 将临时密钥完整性协议 (TKIP) 与 Michael 结合起来,取代了有线对等保密 (WEP);临时密钥完整性协议 可通过加密来保证数据机密性,Michael 可保证数据完整性。本文详细介绍 TKIP 和 Michael 以及 WPA 加密和解密过 程。

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 不能防范重放攻击。在重放攻击中,攻击者会发送一系列的以前捕获的帧,试图以此方式获得访问 权或修改数据。

下表说明 TKIP 和 Michael 如何克服 WEP 加密的弊端。

WEP 弊端

WPA 如何克服弊端

IV 太短

在 TKIP 中,IV 的大小增加了一倍,已达 48 位。

弱数据完整性

WEP 加密的 CRC-32 校验和计算已经由 Michael 取代,Michael 是一种专门用于提供强数据完整性的算法。 Michael 算法可以计算 64 位消息完整性代码 (MIC) 值,该值是用 TKIP 加密的。

使用主密钥,而不使用派生密钥

TKIP 和 Michael 使用一组从主密钥和其他值派生的临时密钥。主密钥是从“可扩展身份验证协议-传输层安全 性”(EAP-TLS) 或受保护的 EAP (PEAP) 802.1X 身份验证过程派生而来的。此外,RC4 PRNG 的输入的机密部分是通过 数据包混合函数计算出来的,它会随着帧的改变而改变。

不重新生成密钥

WPA 自动重新生成密钥以派生新的临时密钥组。

无重放保护

TKIP 将 IV 用作帧计数器以提供重放保护。

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 值相 匹配,数据就会被传输到上一级网络层进行处理。


高人

专业

握手

霸气

雷人

吐血

山寨

奋斗

最新评论

站点统计 | Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2024-12-20 06:52

返回顶部