Titik Akses (Hotspot 2.0)

Passpoint adalah protokol Wi-Fi Alliance (WFA) yang memungkinkan perangkat seluler menemukan dan mengautentikasi ke hotspot Wi-Fi yang menyediakan akses internet.

Dukungan perangkat

Untuk mendukung Passpoint, produsen perangkat perlu mengimplementasikan antarmuka Pemohon. Dimulai dengan Android 13, antarmukanya menggunakan AIDL untuk definisi HAL. Untuk rilis sebelum Android 13, antarmuka dan partisi vendor menggunakan HIDL. File HIDL ada di hardware/interfaces/supplicant/1.x dan file AIDL ada di hardware/interfaces/supplicant/aidl . Pemohon memberikan dukungan untuk standar 802.11u, khususnya fitur penemuan dan pemilihan jaringan seperti Layanan Iklan Generik (GAS) dan protokol kueri jaringan akses (ANQP).

Penerapan

Android 11 atau lebih tinggi

Untuk mendukung Passpoint pada perangkat yang menjalankan Android 11 atau lebih tinggi, produsen perangkat perlu memberikan dukungan firmware untuk 802.11u. Semua persyaratan lain untuk mendukung Passpoint disertakan dalam AOSP.

Android 10 atau lebih rendah

Untuk perangkat yang menjalankan Android 10 atau lebih rendah, produsen perangkat harus menyediakan dukungan framework dan HAL/firmware:

  • Kerangka: Aktifkan Passpoint (memerlukan tanda fitur)
  • Firmware: Dukungan untuk 802.11u

Untuk mendukung Passpoint, terapkan Wi-Fi HAL dan aktifkan tanda fitur untuk Passpoint. Di device.mk yang terletak di device/<oem>/<device> , ubah variabel lingkungan PRODUCT_COPY_FILES untuk menyertakan dukungan untuk fitur Passpoint:

PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml

Semua persyaratan lain untuk mendukung Passpoint disertakan dalam AOSP.

Validasi

Untuk memvalidasi implementasi fitur Passpoint Anda, gunakan serangkaian pengujian unit dan pengujian integrasi yang disediakan di Android Comms Test Suite (ACTS).

Tes satuan

Jalankan pengujian unit paket Passpoint berikut.

Tes layanan:

atest com.android.server.wifi.hotspot2

Tes manajer:

atest android.net.wifi.hotspot2

Tes integrasi (ACTS)

Rangkaian pengujian ACTS Passpoint, yang terletak di tools/test/connectivity/acts_tests/tests/google/wifi/WifiPasspointTest.py , mengimplementasikan serangkaian pengujian fungsional.

Penyediaan Passpoint R1

Android telah mendukung Passpoint R1 sejak Android 6.0, memungkinkan penyediaan kredensial Passpoint R1 (rilis 1) melalui pengunduhan file khusus berbasis web yang berisi informasi profil dan kredensial. Klien secara otomatis meluncurkan penginstal khusus untuk informasi Wi-Fi dan memungkinkan pengguna melihat sebagian informasi sebelum menerima atau menolak konten.

Informasi profil yang terdapat dalam file digunakan untuk pencocokan dengan data yang diambil dari titik akses berkemampuan Passpoint, dan kredensial secara otomatis diterapkan untuk jaringan mana pun yang cocok.

Implementasi referensi Android mendukung EAP-TTLS, EAP-TLS, EAP-SIM, EAP-AKA, dan EAP-AKA'.

Mekanisme pengunduhan

File konfigurasi Passpoint harus dihosting di server web dan harus dilindungi dengan TLS (HTTPS) karena mungkin berisi kata sandi teks yang jelas atau data kunci pribadi. Kontennya terdiri dari teks MIME multi-bagian yang dibungkus dan direpresentasikan dalam UTF-8 dan dikodekan dalam pengkodean base64 per RFC-2045 bagian 6.8.

Bidang header HTTP berikut digunakan oleh klien untuk secara otomatis meluncurkan penginstal Wi-Fi pada perangkat:

  • Content-Type harus disetel ke application/x-wifi-config .
  • Content-Transfer-Encoding harus disetel ke base64 .
  • Content-Disposition tidak boleh disetel.

Metode HTTP yang digunakan untuk mengambil file harus GET. Setiap kali HTTP GET dari browser menerima respons dengan header MIME ini, aplikasi instalasi akan dimulai. Pengunduhan harus dipicu dengan mengetuk elemen HTML seperti tombol (pengalihan otomatis ke URL unduhan tidak didukung). Perilaku ini khusus untuk Google Chrome; browser web lain mungkin menyediakan atau tidak menyediakan fungsi serupa.

Komposisi berkas

Konten yang dikodekan Base64 harus terdiri dari konten multipart MIME dengan Content-Type multipart/mixed . Bagian-bagian berikut membentuk bagian-bagian individual dari konten multibagian.

Bagian Tipe Konten (lebih sedikit tanda kutip) Diperlukan Keterangan
Profil application/x-passpoint-profile Selalu Payload berformat OMA-DM SyncML berisi Passpoint R1 PerProviderSubscription berformat MO untuk HomeSP dan Credential .
Sertifikat kepercayaan application/x-x509-ca-cert Diperlukan untuk EAP-TLS dan EAP-TTLS Payload sertifikat berkode base64 X.509v3 tunggal.
Kunci EAP-TLS application/x-pkcs12 Diperlukan untuk EAP-TLS Struktur PKCS #12 ASN.1 berkode base64 yang berisi rantai sertifikat klien dengan setidaknya sertifikat klien dan kunci pribadi terkait. Kontainer PKCS 12 serta kunci privat dan sertifikat semuanya harus dalam bentuk teks biasa tanpa kata sandi.

Bagian Profil harus ditransfer sebagai teks XML berkode base64 dan berkode UTF-8 yang menentukan bagian subpohon HomeSP dan Credential di Spesifikasi Teknis Passpoint R2 Versi 1.0.0, bagian 9.1.

Node tingkat atas harus berupa MgmtTree dan subnode langsungnya harus PerProviderSubscription . Contoh file XML muncul di profil Contoh OMA-DM XML .

Node subpohon berikut digunakan pada HomeSP :

  • FriendlyName : Harus disetel; digunakan sebagai teks tampilan
  • FQDN : Wajib
  • RoamingConsortiumOI

Node subpohon berikut digunakan pada Credential :

  • Realm : Harus berupa string yang tidak kosong
  • UsernamePassword : Diperlukan untuk EAP-TTLS dengan kumpulan node berikut:

    • Username : String yang berisi nama pengguna
    • Password : String berkode Base64 (setel ke cGFzc3dvcmQ= , string berkode base64 untuk "kata sandi", pada contoh di bawah)
    • EAPMethod/EAPType : Harus disetel ke 21
    • EAPMethod/InnerMethod : Harus diatur ke salah satu dari PAP , CHAP , MS-CHAP , atau MS-CHAP-V2
  • DigitalCertificate : Diperlukan untuk EAP-TLS. Node berikut harus disetel:

    • CertificateType disetel ke x509v3
    • CertSHA256Fingerprint diatur ke intisari SHA-256 yang benar dari sertifikat klien di bagian MIME kunci EAP-TLS
  • SIM : Diperlukan untuk EAP-SIM, EAP-AKA, dan EAP-AKA'. Bidang EAPType harus diatur ke jenis EAP yang sesuai dan IMSI harus cocok dengan IMSI salah satu kartu SIM yang dipasang di perangkat pada saat penyediaan. String IMSI dapat seluruhnya terdiri dari angka desimal untuk memaksa pencocokan kesetaraan penuh, atau terdiri dari 5 atau 6 angka desimal yang diikuti dengan tanda bintang (*) untuk memudahkan pencocokan IMSI hanya pada MCC/MNC. Misalnya, string IMSI 123456* cocok dengan kartu SIM apa pun dengan MCC sebagai 123 dan MNC sebagai 456.

Android 11 memperkenalkan kemampuan yang membuat provisi Passpoint R1 lebih fleksibel.

Pisahkan nama domain autentikasi, otorisasi, dan akuntansi (AAA).

Administrator jaringan Passpoint yang memerlukan nama domain AAA yang ditentukan secara independen dari nama domain yang sepenuhnya memenuhi syarat (FQDN) yang diiklankan oleh jaringan melalui Access Network Query Protocol (ANQP) dapat menentukan daftar FQDN yang dibatasi titik koma di node baru di bawah subpohon Extension . Ini adalah node opsional dan perangkat yang menjalankan Android versi 10 atau lebih rendah mengabaikan node ini.

  • Android : Subpohon ekstensi Android

    • AAAServerTrustedNames : Diperlukan untuk nama tepercaya server AAA dengan kumpulan node berikut:

      • FQDN : String yang berisi nama tepercaya server AAA. Gunakan titik koma untuk memisahkan nama tepercaya. Misalnya, example.org;example.com .
Root CA pribadi yang ditandatangani sendiri
Administrator jaringan Passpoint yang mengelola sertifikatnya secara internal dapat menyediakan profil dengan CA pribadi yang ditandatangani sendiri untuk autentikasi AAA.
Izinkan pemasangan profil tanpa sertifikat Root CA
Sertifikat Root CA yang dilampirkan ke profil digunakan untuk otentikasi server AAA. Administrator jaringan Passpoint yang ingin mengandalkan Root CA publik yang tepercaya untuk autentikasi server AAA mereka dapat menyediakan profil tanpa sertifikat Root CA. Dalam hal ini, sistem memverifikasi sertifikat server AAA terhadap sertifikat Root CA publik yang diinstal di penyimpanan kepercayaan.

Penyediaan Passpoint R2

Android 10 memperkenalkan dukungan untuk fitur Passpoint R2. Passpoint R2 menerapkan pendaftaran online (OSU), metode standar untuk menyediakan profil Passpoint baru. Android 10 dan lebih tinggi mendukung penyediaan profil EAP-TTLS menggunakan protokol SOAP-XML melalui OSU ESS terbuka.

Fitur Passpoint R2 yang didukung hanya memerlukan kode referensi AOSP, tidak diperlukan dukungan driver atau firmware tambahan). Kode referensi AOSP juga menyertakan implementasi default UI Passpoint R2 di aplikasi Pengaturan.

Saat Android mendeteksi titik akses Passpoint R2, framework Android:

  1. Menampilkan daftar penyedia layanan yang diiklankan oleh AP di pemilih Wi-Fi (selain menampilkan SSID).
  2. Meminta pengguna untuk mengetuk salah satu penyedia layanan untuk mengatur profil Passpoint.
  3. Memandu pengguna melalui alur penyiapan profil Passpoint.
  4. Menginstal profil Passpoint yang dihasilkan jika berhasil diselesaikan.
  5. Kaitkan ke jaringan Passpoint menggunakan profil Passpoint yang baru disediakan.

Fitur Passpoint R3

Android 12 memperkenalkan fitur Passpoint R3 berikut yang meningkatkan pengalaman pengguna dan memungkinkan jaringan mematuhi hukum setempat:

Syarat dan Ketentuan

Penerimaan syarat dan ketentuan diwajibkan secara hukum di beberapa lokasi dan tempat untuk menyediakan akses jaringan. Fitur ini memungkinkan penerapan jaringan untuk menggantikan portal captive yang tidak aman, yang menggunakan jaringan terbuka, dengan jaringan Passpoint yang aman. Pemberitahuan ditampilkan kepada pengguna ketika syarat dan ketentuan harus diterima.

URL syarat dan ketentuan harus mengarah ke situs web aman menggunakan HTTPS. Jika URL menunjuk ke situs web yang tidak aman, kerangka kerja akan segera memutus dan memblokir jaringan.

URL informasi tempat

Memungkinkan operator jaringan dan tempat memberikan informasi tambahan kepada pengguna, seperti peta tempat, direktori, promosi, dan kupon. Pemberitahuan ditampilkan kepada pengguna ketika jaringan terhubung.

URL informasi tempat harus mengarah ke situs web aman menggunakan HTTPS. Jika URL menunjuk ke situs web yang tidak aman, kerangka kerja akan mengabaikan URL tersebut dan tidak menampilkan pemberitahuan.

Fitur Passpoint lainnya

Android 11 memperkenalkan kemampuan Passpoint berikut yang meningkatkan pengalaman pengguna, penggunaan daya, dan fleksibilitas penerapan.

Penegakan dan pemberitahuan tanggal kedaluwarsa
Menerapkan tanggal kedaluwarsa pada profil memungkinkan kerangka kerja menghindari koneksi otomatis ke titik akses dengan kredensial kedaluwarsa, yang pasti akan gagal. Hal ini mencegah penggunaan airtime, dan menghemat baterai serta bandwidth backend. Kerangka kerja ini menampilkan pemberitahuan kepada pengguna ketika jaringan yang cocok dengan profil mereka berada dalam jangkauan dan profil tersebut telah kedaluwarsa.
Beberapa profil dengan FQDN identik
Operator yang menyebarkan jaringan Passpoint dan menggunakan beberapa ID jaringan seluler darat publik (PLMN) dapat menyediakan beberapa profil Passpoint dengan FQDN yang sama, satu untuk setiap ID PLMN, yang secara otomatis dicocokkan dengan kartu SIM yang dipasang dan digunakan untuk menghubungkan jaringan.

Android 12 memperkenalkan kemampuan Passpoint berikut yang meningkatkan pengalaman pengguna, penggunaan daya, dan fleksibilitas penerapan:

Awalan identitas yang dihiasi
Saat mengautentikasi ke jaringan dengan hiasan awalan, awalan identitas yang dihiasi memungkinkan operator jaringan memperbarui Pengidentifikasi Akses Jaringan (NAI) untuk melakukan perutean eksplisit melalui beberapa proksi di dalam jaringan AAA (lihat RFC 7542 ). Android 12 mengimplementasikan fitur ini sesuai dengan spesifikasi WBA untuk ekstensi PPS-MO .
Penanganan deautentikasi akan segera terjadi
Memungkinkan operator jaringan memberi sinyal ke perangkat bahwa layanan tidak tersedia untuk kredensial yang digunakan untuk mengautentikasi ke jaringan selama durasi tertentu (ditentukan melalui penundaan waktu habis). Setelah menerima sinyal ini, perangkat tidak akan mencoba menyambung kembali ke jaringan dengan kredensial yang sama hingga penundaan waktu habis berakhir. Sebaliknya, perangkat yang tidak mendukung fitur ini mungkin mencoba menyambung kembali ke jaringan berulang kali saat layanan tidak tersedia.

Contoh profil XML OMA-DM PerProviderSubscription-MO

Profil dengan kredensial nama pengguna/kata sandi (EAP-TTLS)

Contoh berikut menunjukkan profil untuk jaringan dengan:

  • Nama ramah jaringan disetel ke Example Network
  • FQDN disetel ke hotspot.example.net
  • OI konsorsium roaming (untuk roaming)
  • Kredensial dengan nama user , password sandi yang dikodekan dengan Base64, dan ranah disetel ke example.net
  • Metode EAP disetel ke 21 (EAP-TTLS)
  • Metode dalam fase-2 diatur ke MS-CHAP-V2
  • Nama domain AAA alternatif disetel ke trusted.com dan trusted.net
<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>Example Network</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>hotspot.example.net</Value>
        </Node>
        <Node>
          <NodeName>RoamingConsortiumOI</NodeName>
          <Value>112233,445566</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>example.net</Value>
        </Node>
        <Node>
          <NodeName>UsernamePassword</NodeName>
          <Node>
            <NodeName>Username</NodeName>
            <Value>user</Value>
          </Node>
          <Node>
            <NodeName>Password</NodeName>
            <Value>cGFzc3dvcmQ=</Value>
          </Node>
          <Node>
            <NodeName>EAPMethod</NodeName>
            <Node>
              <NodeName>EAPType</NodeName>
              <Value>21</Value>
            </Node>
            <Node>
              <NodeName>InnerMethod</NodeName>
              <Value>MS-CHAP-V2</Value>
            </Node>
          </Node>
        </Node>
      </Node>
      <Node>
        <NodeName>Extension</NodeName>
        <Node>
            <NodeName>Android</NodeName>
            <Node>
                <NodeName>AAAServerTrustedNames</NodeName>
                <Node>
                    <NodeName>FQDN</NodeName>
                    <Value>trusted.com;trusted.net</Value>
                </Node>
            </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Profil dengan kredensial sertifikat digital (EAP-TLS)

Contoh berikut menunjukkan profil untuk jaringan dengan:

  • Nama ramah jaringan disetel ke GlobalRoaming
  • FQDN disetel ke globalroaming.net
  • OI Konsorsium Roaming (untuk roaming)
  • Ranah disetel ke users.globalroaming.net
  • Kredensial dengan sertifikat digital yang memiliki sidik jari yang ditentukan
<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>GlobalRoaming</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>globalroaming.net</Value>
        </Node>
        <Node>
          <NodeName>RoamingConsortiumOI</NodeName>
          <Value>FFEEDDCC0,FFEEDDCC1,009999,008888</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>users.globalroaming.net</Value>
        </Node>
        <Node>
          <NodeName>DigitalCertificate</NodeName>
          <Node>
            <NodeName>CertificateType</NodeName>
            <Value>x509v3</Value>
          </Node>
          <Node>
            <NodeName>CertSHA256Fingerprint</NodeName>
            <Value>0ef08a3d2118700474ca51fa25dc5e6d3d63d779aaad8238b608a853761da533</Value>
          </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Profil dengan kredensial SIM (EAP-AKA)

Contoh berikut menunjukkan profil untuk jaringan dengan:

  • Nama ramah jaringan disetel ke Purple Passpoint
  • FQDN disetel ke wlan.mnc888.mcc999.3gppnetwork.org
  • Kredensial SIM dengan ID PLNN 999888
  • Metode EAP disetel ke 23 (EAP-AKA)
<MgmtTree xmlns="syncml:dmddf1.2">
  <VerDTD>1.2</VerDTD>
  <Node>
    <NodeName>PerProviderSubscription</NodeName>
    <RTProperties>
      <Type>
        <DDFName>urn:wfa:mo:hotspot2dot0-perprovidersubscription:1.0</DDFName>
      </Type>
    </RTProperties>
    <Node>
      <NodeName>i001</NodeName>
      <Node>
        <NodeName>HomeSP</NodeName>
        <Node>
          <NodeName>FriendlyName</NodeName>
          <Value>Purple Passpoint</Value>
        </Node>
        <Node>
          <NodeName>FQDN</NodeName>
          <Value>purplewifi.com</Value>
        </Node>
      </Node>
      <Node>
        <NodeName>Credential</NodeName>
        <Node>
          <NodeName>Realm</NodeName>
          <Value>wlan.mnc888.mcc999.3gppnetwork.org</Value>
        </Node>
        <Node>
          <NodeName>SIM</NodeName>
          <Node>
            <NodeName>IMSI</NodeName>
            <Value>999888*</Value>
          </Node>
          <Node>
            <NodeName>EAPType</NodeName>
            <Value>23</Value>
          </Node>
        </Node>
      </Node>
    </Node>
  </Node>
</MgmtTree>

Penasihat autentikasi

Perangkat yang menjalankan Android 8.x atau Android 9 dengan profil Passpoint R1 EAP-SIM, EAP-AKA, atau EAP-AKA tidak akan terhubung secara otomatis ke jaringan Passpoint. Masalah ini memengaruhi pengguna, operator, dan layanan dengan mengurangi offload Wi-Fi.

Segmen Dampak Ukuran dampak
Operator dan penyedia layanan Passpoint Peningkatan beban pada jaringan seluler. Operator mana pun yang menggunakan Passpoint R1.
Pengguna Hilangnya kesempatan untuk terhubung secara otomatis ke titik akses (AP) Wi-Fi Operator, yang mengakibatkan biaya data lebih tinggi. Setiap pengguna dengan perangkat yang berjalan pada jaringan operator yang mendukung Passpoint R1.

Penyebab kegagalan

Passpoint menentukan mekanisme untuk mencocokkan penyedia layanan yang diiklankan (ANQP) dengan profil yang diinstal pada perangkat. Aturan pencocokan berikut untuk EAP-SIM, EAP-AKA, dan EAP-AKA' adalah sebagian aturan yang berfokus pada kegagalan EAP-SIM/AKA/AKA':

If the FQDN (Fully Qualified Domain Name) matches
    then the service is a Home Service Provider.
Else: If the PLMN ID (3GPP Network) matches
    then the service is a Roaming Service Provider.

Kriteria kedua telah dimodifikasi di Android 8.0:

Else: If the PLMN ID (3GPP Network) matches AND the NAI Realm matches
    then the service is a Roaming Service Provider.

Dengan modifikasi ini, sistem tidak menemukan kecocokan dengan penyedia layanan yang sebelumnya berfungsi, sehingga perangkat Passpoint tidak terhubung secara otomatis.

Solusi

Untuk mengatasi masalah kriteria pencocokan yang dimodifikasi, operator dan penyedia layanan perlu menambahkan ranah pengidentifikasi akses jaringan (NAI) ke informasi yang dipublikasikan oleh Passpoint AP.

Solusi yang disarankan adalah bagi penyedia layanan jaringan untuk menerapkan solusi sisi jaringan untuk waktu penyebaran tercepat. Solusi di sisi perangkat bergantung pada OEM yang mengambil daftar perubahan (CL) dari AOSP dan kemudian memperbarui perangkat di lapangan.

Perbaikan jaringan untuk operator dan penyedia layanan Passpoint

Solusi sisi jaringan memerlukan konfigurasi ulang jaringan untuk menambahkan elemen ANQP ranah NAI seperti yang ditentukan di bawah ini. Spesifikasi Passpoint tidak memerlukan elemen ANQP ranah NAI, namun penambahan properti ini sesuai dengan spesifikasi Passpoint, sehingga implementasi klien yang memenuhi spesifikasi tidak boleh rusak.

  1. Tambahkan elemen ANQP ranah NAI.
  2. Atur subbidang ranah NAI agar sesuai dengan Realm profil yang diinstal pada perangkat.
  3. Tetapkan informasi berikut berdasarkan setiap jenis EAP:

    • EAP-TTLS: Tetapkan EAPMethod(21) dan jenis autentikasi dalam yang didukung ( PAP , CHAP , MS-CHAP , atau MS-CHAP-V2 )
    • EAP-TLS: Tetapkan EAPMethod(13)
    • EAP-SIM: Tetapkan EAPMethod(18)
    • EAP-AKA: Tetapkan EAPMethod(23)
    • EAP-AKA': Tetapkan EAPMethod(50)

Perbaikan perangkat/AOSP untuk OEM

Untuk menerapkan solusi sisi perangkat, OEM harus memilih patch CL aosp/718508 . Patch ini dapat diterapkan pada rilis berikut (tidak berlaku untuk Android 10 atau lebih tinggi):

  • Android 9
  • Android 8.x

Saat patch diambil, OEM perlu memperbarui perangkat di lapangan.