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

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

2010-12-2 15:09| 查看: 1000| 评论: 0|原作者: 佚名|来自: Micro

简介

正如在 2005 年 5 月的“网络专家”专栏文章 Wi-Fi Protected Access 2 (WPA2) Overview(英文)中所述,Wi-Fi Protected Access 2 (WPA2) 是由 Wi-Fi Alliance 授予的产品认证,用来证明无线设备符合 IEEE 802.11i 标准。

IEEE 802.11i 标准用“高级加密标准”(AES) 的一种特定模式 -“计数器模式密码块链接消息身份验证代码”(CBC-MAC) 协议 (CCMP) - 正式取代了原 IEEE 802.11 标准中的“有线对等保密”(WEP)。CCMP 既可以实现数据机密性(加密),又可以实现数据完整性。本文介绍了使用 AES CCMP 的 WPA2 实现的详细信息,此实现可对 802.11 无线帧进行加密、解密以及数据完整性验证。

WPA2 的加密功能

正如 2004 年 11 月的“网络专家”专栏文章 Wi-Fi Protected Access 数据加密和数据完整性中所述,原有 IEEE 802.11 标准中的 WEP 存在加密弊端。下表说明了 WPA2 是如何解决这些弊端的。

WEP 弊端

WPA2 是如何解决这些弊端的

初始化向量 (IV) 太短

在 AES CCMP 中,IV 被替换为“数据包编号”字段,并且其大小将倍增至 48 位。

不能保证数据完整性

采用 WEP 加密的校验和计算已替换为可严格实现数据完整性的 AES CBC-MAC 算法。CBC-MAC 算法计算得出一个 128 位的值,然后 WPA2 使用高阶 64 位作为消息完整性代码 (MIC)。WPA2 采用 AES 计数器模式加密方式对 MIC 进行加密。

使用主密钥而非派生密钥

与 WPA 和“临时密钥完整性协议”(TKIP) 类似,AES CCMP 使用一组从主密钥和其他值派生的临时密钥。主密钥是从“可扩展身份验证协议-传输层安全性”(EAP-TLS) 或“受保护的 EAP”(PEAP) 802.1X 身份验证过程派生而来的。

不重新生成密钥

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

无重播保护

AES CCMP 使用“数据包编号”字段作为计数器来提供重播保护。

WPA2 临时密钥

WEP 对单播数据加密使用单一密钥,对多播和广播数据加密通常分别使用单独的密钥,与 WEP 不同的是,WPA2 对各个无线客户端无线 AP 对(即成对临时密钥)使用由四个不同密钥构成的一组密钥,而对多播和广播通信量使用由两个不同密钥构成的一组密钥。

用于单播数据和 EAP over LAN (EAPOL)-Key 消息的成对密钥组由下列密钥构成:

"

数据加密密钥:用于加密单播帧的 128 位密钥。

"

数据完整性密钥:用于计算单播帧 MIC 的 128 位密钥。

"

EAPOL-Key 加密密钥:用于加密 EAPOL-Key 消息的 128 位密钥。

"

EAPOL-Key 完整性密钥:用于计算 EAPOL-Key 消息 MIC 的 128 位密钥。

WPA2 使用与 WPA 相同的四次握手进程派生成对临时密钥。有关详细信息,请参阅 Wi-Fi Protected Access 数据加密和数据完整性中的“WPA 临时密钥”一节。

WPA2 加密和解密过程

AES CCMP 使用 CBC-MAC 来计算 MIC 和 AES 计数器模式以加密 802.11 有效负载和 MIC。为了计算 MIC 值,AES CBC-MAC 将使用下列过程:

1.

使用 AES 和数据完整性密钥加密第一个 128 位块。这将产生一个 128 位的结果 (Result1)。

2.

对 Result1 与正在进行 MIC 计算的后 128 位数据执行异或 (XOR) 操作。这将产生一个 128 位的结果 (XResult1)。

3.

使用 AES 和数据完整性密钥对 XResult1 进行加密。这将产生 Result2。

4.

对 Result2 与后 128 位数据执行 XOR。这将产生 XResult2。

在步骤 3-4 中对数据的其余 128 位块重复同样操作。最终结果中的高阶 64 位即 WPA2 MIC。下图说明了 MIC 的计算过程。

查看原尺寸图像

为了计算 IEEE 802.11 帧的 MIC,WPA2 将构造以下内容:

查看原尺寸图像

"

第一个块是一个 128 位的块,将在本文后面对其进行介绍。

"

MAC 报头是指 802.11 MAC 报头,其在传送过程中可进行更改的字段值被设置为 0。

"

CCMP 报头 8 字节长,包含 48 位的“数据包编号”字段和其他字段。

"

此外还增加了填充字节(设置为 0),以确保直至明文数据的整个数据块部分恰好为整数个 128 位块。

"

数据是 802.11 有效负载的明文(未加密)部分。

"

此外还增加了填充字节(设置为 0),以确保包括明文数据的 MIC 数据块部分恰好为整数个 128 位块。

WPA2 的数据完整性与 WEP 和 WPA 的均不相同,它可同时为 802.11 报头(除可更改字段外)和 802.11 有效负载提供数据完整性。

MIC 计算的第一个块由下列内容组成:

查看原尺寸图像

"

“标志”字段(8 位)被设置为 01011001,它包含各种标志,如指出 802.11 帧中使用的 MIC 长为 64 位的标志。

"

“优先级”字段(8 位)被设置为 0,留待今后使用。

"

“源地址”(48 位)取自 802.11 MAC 报头。

"

“数据包编号”(48 位)取自 CCMP 报头。

"

明文数据的字节长度(16 位)。

AES 计数器模式加密算法使用下列过程:

1.

使用 AES 和数据加密密钥加密第一个 128 位计数器。这将产生一个 128 位的结果 (Result1)。

2.

对 Result1 与正在进行加密的第一个 128 位块数据执行异或 (XOR) 操作。这将产生第一个 128 位加密块。

3.

增加计数器的值并使用 AES 和数据加密密钥对其进行加密。这将产生 Result2。

4.

对 Result2 与后 128 位数据执行 XOR。这将产生第二个 128 位加密块。

AES 计数器模式对数据的其余 128 位块重复步骤 3-4,直到最后一个块为止。对于最后一个块,AES 计数器模式将对已加密的计数器与剩余的位执行 XOR 操作,从而产生与最后一个数据块长度相同的加密数据。下图说明了 AES 计数器模式过程。

查看原尺寸图像

AES 计数器模式的第一个计数器值由下列内容组成:

查看原尺寸图像

"

“标志”字段(8 位)被设置为 01011001,与用于 MIC 计算的“标志”值相同。

"

“优先级”字段(8 位)被设置为 0,留待今后使用。

"

“源地址”(48 位)取自 802.11 MAC 报头。

"

“数据包编号”(48 位)取自 CCMP 报头。

"

“计数器”字段(16 位)被设置为 1,并且仅当 802.11 有效负载被分为较小的有效负载时才会增加。请注意,此“计数器”字段与 AES 计数器模式加密算法中使用的 128 位计数器值不同。

为了加密单播数据帧,WPA2 将使用下列过程:

1.

将第一个块、802.11 MAC 报头、CCMP 报头、数据长度和填充字段输入到 CBC-MAC 算法,同时输入数据完整性密钥以产生 MIC。

2.

将第一个计数器值与数据与计算的 MIC 数据组合输入到“AES 计数器”模式加密算法,同时输入数据加密密钥以产生加密数据和 MIC。

3.

将包含“数据包编号”的 CCMP 报头添加到 802.11 有效负载的加密部分,并使用 802.11 报头和报尾封装结果。

下图说明了单播数据帧的 WPA2 加密过程。

查看原尺寸图像

为了解密单播数据帧及验证数据完整性,WPA2 将使用下列过程:

1.

根据 802.11 和 CCMP 报头中的值确定第一个计数器值。

2.

将第一个计数器值和 802.11 有效负载的加密部分输入到 AES 计数器模式解密算法,同时输入数据加密密钥以产生加密数据和 MIC。在解密时,AES 计数器模式将对已加密的计数器值与已加密的数据块执行 XOR 操作,以产生解密数据块。

3.

将第一个块、802.11 MAC 报头、CCMP 报头、数据长度和填充字段输入到 AES CBC-MAC 算法,同时输入数据完整性密钥以计算 MIC。

4.

将 MIC 的计算值与解密后的 MIC 值进行比较。如果 MIC 值不匹配,WPA2 将自行丢弃该数据。如果 MIC 值匹配,WPA2 将把该数据传递到更高的网络层进行处理。

下图说明了单播数据帧的 WPA2 解密过程。

查看原尺寸图像


高人

专业

握手

霸气

雷人

吐血

山寨

奋斗

最新评论

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

GMT+8, 2024-12-20 01:09

返回顶部