Operatör Kablosuz Ağı

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-AKA
    • 1: EAP-SIM
    • 6: 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 ve YYY 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-AKA
  • 1: EAP-SIM
  • 6: 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ı kimlik
  • 0: EAP-AKA
  • 1: EAP-SIM
  • 6: EAP-AKA"
ziyaret edin.

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:

  1. Ortak anahtar ve geçerlilik bitiş tarihi sertifikadan çıkarılabilir.
  2. 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-----"
    } ]
    }