Carrier Wi-Fi, şurada kullanılabilen bir otomatik bağlantı özelliğidir (şifrelenmiş IMSI kullanarak) Android 9 ve sonraki sürümler Cihazların, operatör tarafından uygulanan kablosuz ağlara otomatik olarak bağlanmasına olanak tanıyan ağlar. Yüksek tıkanıklık olan veya hücre kapsamının minimum düzeyde olduğu yerlerde, örneğin bir metro istasyonu veya bir metro istasyonu varsa, operatörün kablosuz ağı kullanıcıların ve trafik yükünü hafifletir.
Operatörün kablosuz ağ özelliğine sahip cihazlar yapılandırılmış operatör kablosuz ağları (ortak anahtar sertifikası olan ağlar). Zaman Kullanıcı bir operatörün kablosuz ağıyla olan bağlantıyı manuel olarak kestiğinde, 24 saat boyunca kara listeye alınır (otomatik bağlantı yok). Kullanıcılar, kullanabilirsiniz.
Operatörün kablosuz bağlantısının uygulandığı Android 9 veya sonraki sürümleri çalıştıran cihazlarda operatör kablosuz ağı üzerinden otomatik bağlantı varsayılan olarak kapalıdır. Bildirim Cihaz bir operatör kablosuz ağına bağlanmaya çalıştığında kullanıcıya gönderilir ilk kez oturum açtık.
Uygulama
Cihaz üreticileri ve operatörler, operatörü uygulamak üzere aşağıdakileri yapmalıdır Kablosuz'a dokunun.
Üreticiler
Android 11 ve sonraki sürümleri çalıştıran cihazlarda Kablosuz ağ önerisi API'si simgesine dokunun.
10 veya daha eski sürümleri çalıştıran cihazlar için kablosuz ağ profilleri ekleyin:
her operatör için carrier_wifi_string_array
parametresini yapılandırarak
operatör yapılandırma yöneticisi.
carrier_wifi_string_array
: Her dize girişinin Base64 kodlu bir Kablosuz SSID'si ve EAP türünün bir tamsayı olduğu, virgülle ayrılmış bir EAP türü (bkz. Genişletilebilir Kimlik Doğrulama Protokolü (EAP) Kayıt Defteri) tıklayın. Örneğin, aşağıdaki yapılandırma SOME_SSID_NAME için geçerlidir: EAP-SIM kullanarak EAP-AKA ve Some_Other_SSID:config { key: "carrier_wifi_string_array" text_array { item: "U09NRV9TU0lEX05BTUUK,23" item: "U29tZV9PdGhlcl9TU0lECg==,18" } }
operatör yapılandırma yöneticisi, Her operatör için aşağıdaki parametreleri yapılandırın:
imsi_key_availability_int
: IMSI şifrelemesi için kullanılan anahtarın WLAN için uygun olup olmadığını tanımlar (bit 1 ayarlanır), EPDG (bit 0 ayarlanır) veya her ikisi (bit 0 ve bit 1) ayarlanır). Örneğin, aşağıdaki yapılandırma IMSI'nın şifreleme, WLAN için kullanılabiliyor ancak EPDG için geçerli değildir:config { key: "imsi_key_availability_int" int_value: 2 }
imsi_key_download_url_string
: Operatörün ortak anahtarını içeren protonun kullandığı URL IMSI şifrelemesi indirildi. Örneğin, aşağıdaki yapılandırma belirli bir URL sağlar:config { key: "imsi_key_download_url_string" text_value: "https://www.some_company_name.com:5555/some_directory_name/some_filename.json" }
allow_metered_network_for_cert_download_bool
: Bu, hedefe operatörün ortak anahtarının sayaçlı (hücresel) ağ. Bu bayrak ayarlanmazsa kablosuz bağlantısı olmayan yeni bir cihaz bağlantısı, Operatör'ün kablosuz ağına bağlanamıyor çünkü anahtarı indirmesine izin verilmez.config { key: "allow_metered_network_for_cert_download_bool" bool_value: true }
Operatörler
Operatörün kablosuz ağını kullanmak için operatörün IMSI gizlilik korumasını etkinleştirmesi ve ortak anahtar sağlar.
IMSI gizlilik koruması
Android, abonelerin kalıcı kimliğinin (IMSI) gizliliğini korur şifreleme yöntemini kullanabilirsiniz. Android, Kablosuz Geniş Bant özelliğini uygular IMSI Privacy Protection for Wi-Fi ile ilgili ittifak (WBA) spesifikasyonu. Bir bağlantı için IMSI gizlilik koruması etkinleştirildiğinde kalıcı olduğundan emin olun.
Kalıcı kimlik şifrelemesi
Şifrelenmiş kalıcı kimliğin biçimi aşağıdaki gibidir:
- Kalıcı kimlik
<EAP-Method><IMSI>@<NAI realm>
biçimindedir. - EAP-Method öneki,
kimlik doğrulama için kullanılır:
0
: EAP-AKA1
: EAP-SIM6
: EAP-AKA"
- NAI erişim alanı biçimi:
wlan.mncXXX.mccYYY.3gppnetwork.org
burada:XXX
, SIM kartın mobil ağ koduyla (MNC) değiştirildi veYYY
mobil ülke koduyla (MM) değiştirilir. - Kalıcı kimlik, tarafından sağlanan bir RSA ortak anahtarı kullanılarak şifrelenir. yardımcı olur. Ortak anahtar X.509 sertifikası.
- Şifreleme şeması RSAES-OAEP şifreleme karma işlevi olarak SHA-256 kullanın. Bu şifreleme şeması şema her kullanıldığında benzersiz bir şifre metni garanti eder ve böylece bir kalıcı kimlik daha oluşturun.
- RSA anahtar uzunluğu 2.048 bittir.
- Şifreleme arabelleği 256 bayttır.
- Şifre metni Base64 ile değiştirin.
- Çıkış şifreli kalıcı kimlik uzunluğu 344 bayttır.
Encrypted Permanent Identity = Base64(RSAES-OAEP-SHA-256(<EAP-Method><IMSI>@<NAI Realm>))
Anahtar tanımlayıcı
Anahtar tanımlayıcı, operatörün eklediği isteğe bağlı bir özellik-değer çiftidir.
sırasında sunucunun uygun özel anahtarı bulmasına olanak tanımak için bir sertifikaya
kimlik doğrulama. Anahtar tanımlayıcıya örnek olarak
CertificateSerialNumber=123456
Anahtar tanımlayıcı sağlanmışsa gönderilir.
kimlik doğrulama sürecinin bir parçası olarak
SIM tabanlı EAP kimlik doğrulama yöntemlerindeki değişiklikler
Bir bağlantıda IMSI gizlilik koruması etkinleştirildiğinde sistem
EAP-Request/Identity
alındıktan sonra kalıcı kimlik yerine bu kimlikle
anonim girişle yanıt verir:
SERVER: EAP-Request/Identity
UE: EAP-Response/Identity AT_IDENTITY=<prefix>|anonymous@<NAI Realm>
<prefix>
isteğe bağlıdır. enable_eap_method_prefix_bool
operatörü
yapılandırması, kimliğin ilk karakteri olan true
değerine ayarlandığında
anonymous
),
EAP değişimi başlar.
0
: EAP-AKA1
: EAP-SIM6
: EAP-AKA"
Operatör yapılandırması false
olarak ayarlanırsa bu önek
mesajı alırsınız.
Sunucu yanıt olarak bir EAP-Request/AKA-Identity
mesajı gönderir ve
sistemi aşağıdaki biçimde yanıt verir:
SERVER: EAP-Request/AKA-Identity AT_ANY_ID_REQ
UE: EAP-Response/AKA-Identity AT_IDENTITY=<prefix>|<Encrypted Permanent Identity>|","|"<attribute>=<value>"
Kimliğin ilk karakteri, sunucuya şifrelenmiş bir kimliği veya yapılandırılan EAP yönteminin türü:
\0
: Şifrelenmiş kalıcı kimlik0
: EAP-AKA1
: EAP-SIM6
: EAP-AKA"
Anahtar tanımlayıcı özellik değer çifti isteğe bağlıdır ve şifreli kalıcı kimliğin sonu gelir.
Bu noktada sunucu, özel anahtarı anahtar tanımlayıcıdan bulur ( operatöre ait özel anahtarı kullanarak şifrelenmiş kimliğin şifresini çözer ve normal EAP akışını sürdürür.
Başarılı kimlik doğrulamasından sonra sunucu, hızlı yeniden kimlik doğrulama kimliği veya geçici bir kimlik (takma ad) daha iyi performans gösterir. Geçici kimlik belgesinin sistem, şifrelenmiş kimliği sonraki bağlantıda gönderir.
Operatör sertifikası alma, geçerlilik süresinin dolması ve iptali
Sistemde hiçbir sertifika yüklenmediğinde, sistem
imsi_key_download_url_string
operatör yapılandırmasında URL
HTTP GET yöntemini kullanarak bir sertifika indirin. Sistem hücresel veri kullanır
yalnızca allow_metered_network_for_cert_download_bool
operatörü
yapılandırma true
olarak ayarlandı. Aksi takdirde, sistem sertifikayı indirir.
yalnızca kablosuz bağlantı kullanılabilir.
Sertifika geçerlilik süresi sistem tarafından zorunlu kılınır. Sistem, yenileme işlemini, sertifikanın geçerlilik bitiş tarihinden 21 gün önce yapar ve yeni sertifikayı indirmek için aynı URL'yi eklemeniz gerekir.
Sunucu, şifrelenmiş kimliğin şifresini çözemezse sunucu,
AT_NOTIFICATION
kodunu içeren bir EAP-Request/AKA-Notification
mesajı gönderir
General Failure
(16384).
Sertifikanın iptal edilmesi veya süresinin dolması durumunda sunucu,
AT_NOTIFICATION
kodunu içeren EAP-Request/AKA-Notification
mesaj
Certificate Replacement Required
(16385) yazarak EAP exchange'ini feshedin.
Buna karşılık, sistem, testin başarılı olup olmadığını belirlemek için dahili buluşsal yöntemler
sertifikayı kaldırın ve şu listeden yeni bir sertifika indirmeyi deneyin:
URL'yi tıklayın.
Ortak anahtarı sağlayın
Tercihen TLS üzerinden HTTP kullanarak, aşağıdaki durumlarda operatörün sertifikasıdır:
- Ortak anahtar ve geçerlilik bitiş tarihi sertifikadan çıkarılabilir.
Sunucudan alınan bilgiler aşağıdaki gibi JSON biçimindedir:
Property: key-identifier Type: String Encoding: UTF-8 Description: Specifies an identifier that the carrier would like to attach to the certificate. Optional: Yes Property: certificate Property alternative name: public-key Type: String Encoding: Base64 Description: The content of the carrier's X.509 certificate. Optional: No Property: key-type Type: String Encoding: UTF-8 Description: Specifies the module that will use the key. The value for type must be either WLAN or EPDG. Optional: Yes. If the key-type property isn't included, then its value defaults to WLAN.
Aşağıda bir ortak anahtar örneği verilmiştir.
{ "carrier-keys" : [ { "key-identifier" : "CertificateSerialNumber=5xxe06d4", "public-key" : "-----BEGIN CERTIFICATE-----\r\nTIIDRTCCAi2gAwIBAgIEVR4G1DANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJVUzELMAkGA1UE\r\nCBMCTkExCzAJBgNVBAcTAk5BMQswCQYDVQQKEwJOQTELMAkGA1UECxMCTkExEDAOBgNVBAMTB1Rl\r\nc3RiT6N1/w==\r\n-----END CERTIFICATE-----" } ] }