WLAN des Mobilfunkanbieters

Mobilfunkanbieter-WLAN ist eine Funktion zur automatischen Verbindung (mit verschlüsselter IMSI) in Android 9 und höher mit der Geräte automatisch eine Verbindung zum vom Mobilfunkanbieter implementierten WLAN herstellen können Netzwerken. In Bereichen mit starker Überlastung oder mit minimaler Mobilfunkabdeckung, z. B. in einem Stadion oder in einer U-Bahn-Station angesiedelt ist, kann das WLAN des Mobilfunkanbieters genutzt werden, des Nutzers und um Traffic zu entlasten.

Geräte mit der WLAN-Funktion des Mobilfunkanbieters verbinden sich automatisch mit konfigurierte WLAN-Netzwerke des Mobilfunkanbieters (Netzwerke mit einem Public-Key-Zertifikat). Wann? ein Nutzer manuell vom WLAN-Netzwerk des Mobilfunkanbieters trennt, 24 Stunden lang auf die Sperrliste gesetzt (keine automatische Verbindung). Nutzer können sich manuell mit auf die schwarze Liste gesetzt werden.

Auf Geräten mit Android 9 oder höher und integriertem WLAN über den Mobilfunkanbieter: Automatische Verbindung über WLAN des Mobilfunkanbieters ist standardmäßig deaktiviert. Eine Benachrichtigung wird an den Nutzer gesendet, wenn das Gerät versucht, eine Verbindung zum WLAN des Mobilfunkanbieters herzustellen Netzwerk zum ersten Mal geschaltet werden.

Implementierung

Gerätehersteller und Mobilfunkanbieter müssen folgende Schritte ausführen, um den Mobilfunkanbieter zu implementieren. WLAN.

Hersteller

Für Geräte mit Android 11 und höher: Wi-Fi Suggest API um WLAN-Profile für jeden Mobilfunkanbieter hinzuzufügen.

Bei Geräten mit bis zu 10 Geräten WLAN-Profile hinzufügen, indem Konfiguration des carrier_wifi_string_array-Parameters für jeden Mobilfunkanbieter in der Mobilfunkanbieter-Konfigurationsmanager.

  • carrier_wifi_string_array: Ein String-Array, bei dem jeder String-Eintrag eine Base64-codierte WLAN-SSID ist und einen durch ein Komma getrennten EAP-Typ, wobei der EAP-Typ eine Ganzzahl ist (siehe Extensible Authentication Protocol (EAP) Registry). Die folgende Konfiguration gilt beispielsweise für SOME_SSID_NAME mit EAP-AKA und Some_Other_SSID mit EAP-SIM:

    config {
      key: "carrier_wifi_string_array"
      text_array {
        item: "U09NRV9TU0lEX05BTUUK,23"
        item: "U29tZV9PdGhlcl9TU0lECg==,18"
      }
    }
    

Im Carrier Config Manager die folgenden Parameter für jeden Mobilfunkanbieter konfigurieren:

  • imsi_key_availability_int: Gibt an, ob der für die IMSI-Verschlüsselung verwendete Schlüssel für WLAN verfügbar ist (Bit 1 ist festgelegt), EPDG (Bit 0 ist gesetzt) oder beide (Bit 0 und Bit 1 sind beide festgelegt). Die folgende Konfiguration zeigt beispielsweise an, dass IMSI Verschlüsselung ist für WLAN verfügbar, aber nicht für EPDG:

    config {
      key: "imsi_key_availability_int"
      int_value: 2
    }
    
  • imsi_key_download_url_string: URL der Proto-Datei mit dem öffentlichen Schlüssel des für IMSI-Verschlüsselung wurde heruntergeladen. Die folgende Konfiguration eine spezifische URL bereitstellt:

    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: Eine Markierung, die angibt, um das Herunterladen des öffentlichen Schlüssels des Mobilfunkanbieters über ein gebührenpflichtiges (Mobilfunk-)Netzwerk. Wenn dieses Flag nicht festgelegt ist, wird ein neues Gerät ohne WLAN kann keine Verbindung zum WLAN-Netzwerk des Mobilfunkanbieters hergestellt werden, weil kann er den Schlüssel nicht herunterladen.

    config {
      key: "allow_metered_network_for_cert_download_bool"
      bool_value: true
    }
    

Mobilfunkanbieter

Zur Implementierung des WLANs des Mobilfunkanbieters muss der Anbieter den IMSI-Datenschutz aktivieren und einen öffentlichen Schlüssel bereitstellen.

IMSI-Datenschutz

Android schützt die Vertraulichkeit der permanenten Identität (IMSI) eines Abonnenten mit Public-Key-Kryptografie. Android implementiert kabelloses Breitband Spezifikation der Alliance (WBA) für IMSI Privacy Protection for Wi-Fi Wenn der IMSI-Datenschutz für eine Verbindung aktiviert ist, wird die Identität von Abonnenten nicht over-the-air übertragen.

Dauerhafte Identitätsverschlüsselung

Die verschlüsselte permanente Identität hat folgendes Format:

  • Die dauerhafte Identität hat das Format <EAP-Method><IMSI>@<NAI realm>.
  • Das Präfix der EAP-Methode besteht aus einem einzelnen Oktett, das die EAP-Methode definiert, für die Authentifizierung verwendet: <ph type="x-smartling-placeholder">
      </ph>
    • 0: EAP – kurz: EAP
    • 1: EAP-SIM
    • 6: EAP – auch bekannt als
  • Das Format des NAI-Bereichs ist wlan.mncXXX.mccYYY.3gppnetwork.org, wobei XXX wird durch den Mobilfunknetzcode (MNC) der SIM-Karte ersetzt und YYY ist durch den Mobile Country Code (MCC) ersetzt.
  • Die permanente Identität wird mit einem öffentlichen RSA-Schlüssel verschlüsselt, der von den Netzbetreiber. Der öffentliche Schlüssel ist in einem X.509-Zertifikat
  • Das Verschlüsselungsschema ist RSAES-OAEP mit SHA-256 als kryptografische Hash-Funktion. Dieses Verschlüsselungsschema garantiert bei jeder Verwendung des Schemas einen eindeutigen Geheimtext, wodurch eine weitere persistente Identität, die nachverfolgbar ist.
  • Der RSA-Schlüssel ist 2.048 Bit lang.
  • Der Verschlüsselungszwischenspeicher beträgt 256 Byte.
  • Der Geheimtext ist codiert mit Base64
  • Die Länge der verschlüsselten permanenten Identität beträgt 344 Byte.
Encrypted Permanent Identity = Base64(RSAES-OAEP-SHA-256(<EAP-Method><IMSI>@<NAI Realm>))
Schlüsselkennung

Die Schlüsselkennung ist ein optionales Attributwertpaar, das vom Mobilfunkanbieter angehängt wird. auf ein Zertifikat, damit der Server den richtigen privaten Schlüssel Authentifizierung. Ein Beispiel für eine Schlüsselkennung: CertificateSerialNumber=123456 Wenn die Schlüsselkennung angegeben wird, wird sie gesendet, im Rahmen des Authentifizierungsprozesses verständlich.

Änderungen an SIM-basierten EAP-Authentifizierungsmethoden

Wenn der IMSI-Datenschutz für eine Verbindung aktiviert ist, sendet das System keine die permanente Identität nach Erhalt von EAP-Request/Identity, stattdessen antwortet mit anonymer Anmeldung:

SERVER: EAP-Request/Identity
UE: EAP-Response/Identity AT_IDENTITY=<prefix>|anonymous@<NAI Realm>

<prefix> ist optional. Wenn der Mobilfunkanbieter enable_eap_method_prefix_bool Konfiguration auf true gesetzt ist, das erste Zeichen der Identität (vor anonymous) informiert den Server über den Typ der EAP-Methode, die vor dem EAP-Austausch beginnt.

  • 0: EAP – kurz: EAP
  • 1: EAP-SIM
  • 6: EAP – auch bekannt als

Wenn die Konfiguration des Mobilfunkanbieters auf false festgelegt ist, ist dieses Präfix nicht in in der Nachricht.

Als Antwort sendet der Server eine EAP-Request/AKA-Identity-Nachricht und der System antwortet in folgendem Format:

SERVER: EAP-Request/AKA-Identity AT_ANY_ID_REQ
UE: EAP-Response/AKA-Identity AT_IDENTITY=<prefix>|<Encrypted Permanent Identity>|","|"<attribute>=<value>"

Das erste Zeichen der Identität benachrichtigt den Server entweder darüber, dass ein verschlüsseltes Identität oder die konfigurierte EAP-Methode:

  • \0: Verschlüsselte permanente Identität
  • 0: EAP – kurz: EAP
  • 1: EAP-SIM
  • 6: EAP – auch bekannt als

Das Attributwertpaar der Schlüsselkennung ist optional und wird nicht an das Attribut der verschlüsselten permanenten Identität endet, wenn sie nicht verwendet wird.

An dieser Stelle findet der Server den privaten Schlüssel anhand der Schlüsselkennung (falls bereitgestellt), entschlüsselt die verschlüsselte Identität mit dem privaten Schlüssel des Mobilfunkanbieters und Fortsetzung des normalen EAP-Ablaufs.

Nach erfolgreicher Authentifizierung kann der Server einer schnellen erneuten Authentifizierung oder einer temporären Identität (Pseudonym), die die in nachfolgenden Verbindungen verwendet werden. Wenn vom Server, sendet das System in der nachfolgenden Verbindung die verschlüsselte Identität.

Abrufen, Ablauf und Widerruf von Mobilfunkanbieterzertifikaten

Falls kein Zertifikat im System installiert ist, verwendet das System das URL in der Konfiguration des Mobilfunkanbieters „imsi_key_download_url_string“ für ein Zertifikat mit der HTTP-GET-Methode herunterladen. Das System nutzt mobile Daten nur wenn der Mobilfunkanbieter allow_metered_network_for_cert_download_bool Konfiguration ist auf true festgelegt. Andernfalls lädt das System das Zertifikat herunter. wenn eine WLAN-Verbindung verfügbar ist.

Der Ablauf des Zertifikats wird vom System erzwungen. Das System versucht, zur Verlängerung von Zertifikaten 21 Tage vor dem Ablaufdatum des Zertifikats und verwendet um das neue Zertifikat herunterzuladen.

Falls der Server die verschlüsselte Identität nicht entschlüsseln kann, sendet eine EAP-Request/AKA-Notification-Nachricht mit dem Code AT_NOTIFICATION General Failure (16384), um den EAP-Austausch zu beenden.

Falls das Zertifikat widerrufen oder abgelaufen ist, sendet der Server eine EAP-Request/AKA-Notification-Nachricht mit dem Code AT_NOTIFICATION Certificate Replacement Required (16385), um den EAP-Austausch zu beenden. Das System wendet interne Heuristiken an, um zu bestimmen, Entfernen Sie das Zertifikat und laden Sie ein neues URL

Öffentlichen Schlüssel angeben

Geben Sie eine öffentliche URL zu einem Server an, auf dem der Host gehostet wird, vorzugsweise mit HTTP über TLS. Zertifikat des Transportunternehmens, bei dem Folgendes gilt:

  1. Der öffentliche Schlüssel und das Ablaufdatum können aus dem Zertifikat extrahiert werden.
  2. Die Informationen vom Server liegen im JSON-Format vor:

    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.
    

    Das folgende Beispiel zeigt einen öffentlichen Schlüssel.

    {
    "carrier-keys" : [ {
      "key-identifier" : "CertificateSerialNumber=5xxe06d4",
      "public-key" : "-----BEGIN CERTIFICATE-----\r\nTIIDRTCCAi2gAwIBAgIEVR4G1DANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJVUzELMAkGA1UE\r\nCBMCTkExCzAJBgNVBAcTAk5BMQswCQYDVQQKEwJOQTELMAkGA1UECxMCTkExEDAOBgNVBAMTB1Rl\r\nc3RiT6N1/w==\r\n-----END CERTIFICATE-----"
    } ]
    }