0

我正在使用 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吗?据我了解,组密码用于广播消息,成对密码用于直接通信。为什么两者会不同?

4

1 回答 1

0

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

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

于 2017-10-31T13:32:00.450 回答