运营商 WLAN
运营商 WLAN 是 Android 9 中引入的一项功能,该功能可让设备自动连接到运营商实现的 WLAN 网络。在高度拥塞或信号覆盖范围较小的区域(如体育场或地铁站),运营商 WLAN 可用于改善用户的连接体验和分载流量。
实现
要实现运营商 WLAN,设备制造商和运营商必须执行以下操作。
制造商
在运营商配置管理器中,为每个运营商配置以下参数:
- KEY_CARRIER_WIFI_STRING_ARRAY:以 Base64 编码的 WLAN SSID。
- IMSI_KEY_AVAILABILITY_INT:标识用于 IMSI 加密的密钥适用于 WLAN 还是 EPDG,或两者都适用。
- IMSI_KEY_DOWNLOAD_URL_STRING:从中下载 proto(包含用于 IMSI 加密的运营商公钥)的网址。
运营商
要实现运营商 WLAN,运营商必须支持加密的 IMSI 并提供一个公钥。
支持加密的 IMSI
更改 WLAN 网络配置以确保可处理加密的 IMSI。EAP-SIM 中使用的身份格式为:
Prefix | [IMSI || Encrypted IMSI] | @realm | {, Key Identifier AVP}
其中“|”(单竖线)表示串联,“||”(双竖线)表示专有值,“{}”(大括号)表示可选值,领域是根据 3GGP 规范 (TS23.003) 从指定 MNC/MCC 派生的 3GPP 网络域名。
Prefix
值包括:
- “
\0
”:加密身份 - “
0
”:EAP-AKA 身份 - “
1
”:EAP-SIM 身份 - “
6
”:EAP-AKA' 身份
Encrypted IMSI
的格式为:
Base64{RSA_Public_Key_Encryption{eapPrefix | IMSI}}
其中“|”表示串联。
eapPrefix
值包括:
- “
0
”- EAP-AKA 身份 - “
1
”- EAP-SIM 身份 - “
6
”- EAP-AKA' 身份
提供公钥
提供托管运营商证书的公开网址,其中:
- 公钥(和到期日期)可从证书中提取
- 信息采用如下所示的 JSON 格式:
{
"carrier-keys" : [ {
"key-identifier" : "CertificateSerialNumber=5xxe06d4",
"certificate" : "-----BEGIN CERTIFICATE-----\r\nTIIDRTCCAi2gAwIBAgIEVR4G1DANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJVUzELMAkGA1UE\r\nCBMCTkExCzAJBgNVBAcTAk5BMQswCQYDVQQKEwJOQTELMAkGA1UECxMCTkExEDAOBgNVBAMTB1Rl\r\nc3RiT6N1/w==\r\n-----END CERTIFICATE-----",
"key-type" : "WLAN"
} ]
}
自定义
运营商 WLAN 默认处于关闭状态(除非在运营商配置管理器中针对每个运营商对其进行配置)。如果该功能处于开启状态,则设备会自动尝试连接到网络。在初次尝试时,系统会发送一条通知。