简介 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 值相 匹配,数据就会被传输到上一级网络层进行处理。 |
Powered by Discuz!
© 2003-2024 广州威思信息科技有限公司