使用CCMP作为WPA2的组密码

时间:2016-11-04 14:45:41

标签: android wifi wpa

我正在使用WifiManager在代码中设置Wifi连接,但连接似乎是使用TKIP代替组密码而不是CCMP。这是正常的吗?这可能是路由器的问题吗?我正在设置WifiConfig:

wifiConfig.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wifiConfig.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wifiConfig.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wifiConfig.preSharedKey = "\"".concat(password).concat("\"");

当我在设备上观看与wpa_cli的连接时,我看到了:

IFNAME=wlan0 <3>WPA: Key negotiation completed with 50:6a:03:16:8c:18 [PTK=CCMP GTK=TKIP]

最后一部分不应该是GTK=CCMP吗?据我了解,组密码用于广播消息,成对密码用于直接通信。为什么两者会有所不同?

1 个答案:

答案 0 :(得分:0)

通常,组密码(用于广播帧)必须支持所有连接站允许的最低加密形式。如果周围有任何旧站,则通常将其设置为TKIP,并且它们需要能够解密从AP发送的广播流量。 如果CCMP用于组密钥,则较旧的(CCMP前)站将无法解密广播流量。

成对密码(用于单播帧)可以使用该站支持的最高级别的解密(这些天几乎总是CCMP)。