Wi-Fi Protected Access
尽管 802.1X 解决了原来的 802.11 标准中的许多安全问题,但在 WEP 加密强度和数据完整性方法方面仍存在问题。针对这些问题的长期解决方案是 IEEE 802.11i 标准,它是对无线局域网的安全进行了改进的一种新标准。
尽管新的 IEEE 802.11i 标准正在等待批准,无线供应商已同意了一个称为 Wi-Fi Protected Access (WPA) 的可共同使用的过渡标准。WPA 的目标是:
• |
实现安全无线网络 WPA 通过要求 802.1X 身份验证、加密以及单播和全局加密密钥管理来实现安全无线网络。 |
• |
通过软件升级解决 WEP 问题 在 WEP 中实施 RC4 流密码容易受到已知的明文攻击。另外,WEP 提供的数据完整性也相对较弱。WPA 解决了 WEP 中存在的所有安全问题,只需更新无线设备中的固件和无线客户端即可。不需要更换现有的无线设备。 |
• |
为 SOHO 无线用户提供安全的无线网络解决方案 对于 SOHO 一族,没有哪种 RADIUS 服务器能够提供具有 EAP 类型的 802.1X 身份验证。SOHO 无线客户端对单播和多播通信都必须通过单个静态 WEP 密钥来使用共享密钥身份验证(不提倡使用)或开放系统身份验证(建议使用)。WPA 提供一个用于 SOHO 配置的预共享密钥选项。预共享密钥在无线 AP 和每个无线客户端上配置。初始单播加密密钥从身份验证过程中派生,它验证无线客户端和无线 AP 是否具有预共享密钥。 |
• |
向前兼容 IEEE 802.11i 标准 WPA 是 IEEE 802.11i 标准中安全功能的子集。 |
• |
可立即使用 自 2003 年 2 月开始,为无线设备提供的 WPA 升级就已经向无线客户端开放。 |
WPA 增强或取代了以下安全功能:
• |
身份验证 |
• |
加密 |
• |
数据完整性 |
WPA 身份验证
在 802.11 中,802.1X 身份验证是可选的;在 WPA 中,802.1X 身份验证是必需的。WPA 中的身份验证是开放系统和 802.1X 身份验证的结合,它包含以下几个阶段:
• |
第一个阶段使用开放系统身份验证,指示身份验证客户端可以将帧发送到无线 AP。 |
• |
第二个阶段使用 802.1X 执行用户级别的身份验证。 |
对于没有 RADIUS 基础结构的环境,WPA 支持使用预共享密钥;对于具有 RADIUS 基础结构的环境,WPA 支持 EAP 和 RADIUS。
WPA 加密
对于 802.1X,单播加密密钥的重新加密操作是可选的。另外,802.11 和 802.1X 没有提供任何机制来更改多播和广播通信所使用的全局加密密钥。对于 WPA,必须对单播和全局加密密钥重新加密。临时密钥完整性协议 (TKIP) 会更改每一帧的单播加密密钥,并且每次更改都在无线客户端和无线 AP 之间同步进行。对于多播/全局加密密钥,WPA 包括一个工具,以便无线 AP 可以将更改后的密钥公布到连接的无线客户端。
对于 802.11,WEP 加密是可选的。对于 WPA,必须使用 TKIP 进行加密。TKIP 将 WEP 替换为新的加密算法,该算法比 WEP 算法更强,但需要使用现有无线硬件上提供的计算方法执行加密操作。
TKIP 还提供以下功能:
• |
确定加密密钥后验证安全配置。 |
• |
同步更改每一帧的单播加密密钥。 |
• |
为每个预共享密钥身份验证确定唯一的起始单播加密密钥。 |
WPA 将高级加密标准 (AES) 的使用定义为 WEP 加密的另外一种替换方法。因为对于现有无线设备而言,可能无法通过固件更新来增加 AES 支持,所以无线网络适配器和无线 AP 上的 AES 支持不是必需的。
WPA 数据完整性
在 802.11 和 WEP 中,数据完整性由 32 位 ICV 提供,该值被附加到 802.11 有效负载中并使用 WEP 加密。虽然对 ICV 进行了加密,但可以使用密码分析技术来更改加密的有效负载中的位并更新加密的 ICV,而不会被接收者检测到。
对于 WPA,一种称为 Michael 的新方法指定了一种新算法,此算法使用现有无线硬件上提供的计算工具来计算 8 字节的消息完整性代码 (MIC)。MIC 被放在 802.11 帧的数据部分和 4 字节的 ICV 之间。MIC 字段随帧数据和 ICV 一起加密。
Michael 还通过在 802.11 MAC 标头中使用一个新的帧计数器字段提供了重放保护。
WPA 支持所需的软件更改
WPA 要求对以下内容进行软件更改:
• |
无线 AP |
• |
无线网络适配器 |
• |
无线客户端软件 |
无线 AP 必须更新其固件才能支持以下内容:
• |
新的 WPA 信息元素 信息元素包含在公布无线 AP 功能(例如受支持的比特率和安全选项)的 802.11 信号帧中。为公布其执行 WPA 的功能,无线 AP 使用新的 802.11 WPA 信息元素发送信号帧,该元素包含无线 AP 的 WPA 功能。 |
• |
WPA 两段式身份验证:首先是开放系统身份验证,然后是 802.1X 身份验证(带 RADIUS 的 EAP 或 WPA 预共享密钥) |
• |
TKIP |
• |
Michael |
• |
AES(可选) |
要升级无线 AP 以支持 WPA,请从无线 AP 供应商那里获取 WPA 固件更新,并将其上载到您的无线 AP 中。
无线网络适配器必须更新其固件才能支持以下内容:
• |
新的 WPA 信息元素 无线客户端必须能够处理信号帧中的 WPA 信息元素,并使用特定的安全配置进行响应。 |
• |
WPA 两段式身份验证:首先是开放系统身份验证,然后是 802.1X 身份验证(EAP 或 WPA 预共享密钥) |
• |
TKIP |
• |
Michael |
• |
AES(可选) |
要升级无线网络适配器以支持 WPA,必须将 WPA 固件更新上载到您的无线网络适配器上。
对于 Windows 无线客户端,必须获取已更新的、支持 WPA 的网络适配器驱动程序。对于与 Windows XP Service Pack 1 (SP1)、Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 兼容的无线网络适配器驱动程序,更新后的网络适配器驱动程序必须能够将该适配器的 WPA 功能和安全配置传递到“无线自动配置”。
Microsoft 已经与许多无线供应商进行合作,以将 WPA 固件更新嵌入到更新后的无线适配器驱动程序中。因此,更新您的 Windows 无线客户端非常简单,只需获取与 WPA 兼容的新驱动程序并进行安装即可。当无线网络适配器驱动程序被加载到 Windows 中时,固件将自动得到更新。
必须更新无线客户端软件才能配置 WPA 身份验证(包括预共享密钥)以及新的 WPA 加密算法(TKIP 和 AES)。
TKIP 和 Michael 的加密功能
原 IEEE 802.11 标准中的 WEP 在加密方面存在以下弊端:
• |
初始化向量 (IV) 太小。 |
• |
弱数据完整性 |
• |
使用主密钥而不使用派生密钥 |
• |
不重新生成密钥 |
• |
无重放保护 |
下表说明 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 消息。