Passpoint (Hotspot 2.0)

Passpoint adalah Wi-Fi Alliance (WFA) yang memungkinkan perangkat seluler untuk menemukan dan mengotentikasi ke Wi-Fi {i>hotspot <i}yang menyediakan akses internet.

Dukungan perangkat

Untuk mendukung Passpoint, produsen perangkat perlu mengimplementasikan antarmuka Supplicant. Mulai Android 13, antarmuka menggunakan AIDL untuk definisi HAL. Untuk rilis sebelum Android 13, antarmuka dan partisi vendor menggunakan HIDL. File HIDL berada 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 Generic Periklanan Service (GAS) dan {i>access network query protocol<i} (ANQP).

Implementasi

Android 11 atau yang lebih baru

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

Android 10 atau yang lebih lama

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

  • Framework: Mengaktifkan Passpoint (memerlukan tombol fitur)
  • Firmware: Dukungan untuk 802.11u

Untuk mendukung Passpoint, terapkan Wi-Fi HAL dan aktifkan flag fitur untuk Titik sandi. Di device.mk yang berada di device/<oem>/<device>, ubah variabel lingkungan PRODUCT_COPY_FILES guna 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 penerapan fitur Passpoint, jalankan perintah berikut Pengujian unit paket Passpoint:

Pengujian layanan:

atest com.android.server.wifi.hotspot2

Pengelola menguji:

atest android.net.wifi.hotspot2

Penyediaan Passpoint R1

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

Informasi profil yang terdapat dalam file digunakan untuk mencocokkan data yang diambil dari titik akses yang diaktifkan {i>Passpoint<i}, dan kredensial itu secara otomatis diterapkan untuk setiap jaringan yang cocok.

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

Mekanisme download

File konfigurasi Passpoint harus di-{i>host<i} di server web dan harus dilindungi dengan TLS (HTTPS) karena mungkin berisi teks sandi yang jelas atau data kunci pribadi. Konten terdiri dari teks MIME multibagian yang digabungkan direpresentasikan dalam UTF-8 dan dikodekan dalam encoding base64 sesuai dengan RFC-2045 bagian 6.8.

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

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

Metode HTTP yang digunakan untuk mengambil file harus GET. Kapan pun HTTP GET dari browser menerima respons dengan header MIME ini, aplikasi penginstalan akan memulai. Download harus dipicu dengan mengetuk elemen HTML seperti (pengalihan otomatis ke URL download tidak didukung). Perilaku ini khusus untuk Google Chrome; browser web lain mungkin atau mungkin tidak memberikan fungsionalitasnya.

Komposisi file

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

Bagian Jenis Konten (lebih sedikit tanda kutip) Wajib Deskripsi
Profil application/x-passpoint-profile Selalu Payload berformat OMA-DM SyncML yang berisi Passpoint R1 MO berformat PerProviderSubscription untuk HomeSP dan Credential.
Sertifikat kepercayaan application/x-x509-ca-cert Diperlukan untuk EAP-TLS dan EAP-TTLS Satu payload sertifikat berenkode base64 X.509v3.
Kunci EAP-TLS application/x-pkcs12 Diperlukan untuk EAP-TLS Struktur ASN.1 PKCS #12 berenkode base64 yang berisi sertifikat klien rantai dengan setidaknya sertifikat klien dan kunci pribadi yang terkait. Penampung PKCS 12 serta kunci pribadi dan sertifikat harus semua dalam bentuk teks yang jelas tanpa {i>password<i}.

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

Node level teratas harus berupa MgmtTree dan subnode langsung harus berupa PerProviderSubscription. Contoh file XML muncul di Contoh XML OMA-DM profil.

Node subpohon berikut digunakan dalam HomeSP:

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

Node subpohon berikut digunakan dalam Credential:

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

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

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

Android 11 memperkenalkan kemampuan yang membuat penyediaan Passpoint R1 menjadi lebih fleksibel.

Nama domain autentikasi, otorisasi, dan akuntansi (AAA) terpisah

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

  • Android: Subhierarki 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 penginstalan profil tanpa Sertifikat Root CA
Sertifikat Root CA yang terlampir pada profil digunakan untuk AAA dan otentikasi server. Administrator jaringan {i>passpoint<i} yang ingin mengandalkan CA Root tepercaya publik untuk otentikasi server AAA dapat menyediakan profil yang tidak memiliki sertifikat CA {i>Root<i}. Dalam hal ini, sistem memverifikasi Sertifikat server AAA terhadap Sertifikat CA Root publik yang diinstal di trust store.

Penyediaan Passpoint R2

Android 10 memperkenalkan dukungan untuk Passpoint R2 baru. Passpoint R2 menerapkan pendaftaran {i>online<i} (OSU), sebuah metode standar untuk menyediakan profil Passpoint baru. Android 10 dan yang lebih baru mendukung penyediaan profil EAP-TTLS menggunakan protokol SOAP-XML melalui membuka OSU ESS.

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

Saat Android mendeteksi titik akses Passpoint R2, framework Android akan:

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

Fitur Passpoint R3

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

Persyaratan dan ketentuan

Persetujuan terhadap persyaratan dan ketentuan diwajibkan secara hukum di beberapa lokasi dan untuk menyediakan akses jaringan. Fitur ini memungkinkan penyebaran jaringan untuk mengganti captive portal yang tidak aman, yang menggunakan jaringan terbuka, dengan Jaringan Passpoint. Notifikasi ditampilkan kepada pengguna ketika persyaratan dan ketentuan harus diterima.

URL persyaratan dan ketentuan harus mengarah ke situs aman yang menggunakan HTTPS. Jika URL mengarah ke situs yang tidak aman, framework akan langsung memutuskan dan memblokir jaringan.

URL informasi tempat

Memungkinkan operator jaringan dan tempat untuk menyediakan informasi tambahan kepada pengguna, seperti peta tempat, direktori, promosi, dan kupon. Notifikasi ditampilkan kepada pengguna saat terhubung ke semua jaringan.

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

Fitur Passpoint lainnya

Android 11 memperkenalkan Passpoint berikut kapabilitas yang meningkatkan pengalaman pengguna, penggunaan daya, dan deployment fleksibilitas.

Notifikasi dan penerapan tanggal habis masa berlaku
Menegakkan tanggal habis masa berlaku pada profil memungkinkan framework untuk menghindari koneksi otomatis ke titik akses dengan kredensial yang sudah tidak berlaku, yang pasti gagal. Hal ini mencegah penggunaan pulsa, serta menghemat baterai dan backend {i>bandwidth<i}. Framework menampilkan notifikasi kepada pengguna saat jaringan yang cocok dengan profilnya berada dalam rentang dan masa berlaku profilnya telah berakhir.
Beberapa profil dengan FQDN yang identik
Operator yang men-deploy jaringan Passpoint dan menggunakan beberapa jaringan seluler publik ID jaringan (PLMN) dapat menyediakan beberapa profil Passpoint dengan FQDN, satu untuk setiap ID PLMN, yang otomatis dicocokkan dengan kartu SIM yang terpasang dan digunakan untuk menghubungkan jaringan.

Android 12 memperkenalkan Passpoint berikut kapabilitas yang meningkatkan pengalaman pengguna, penggunaan daya, dan deployment fleksibilitas:

Awalan identitas yang dihias
Saat mengautentikasi ke jaringan dengan dekorasi awalan, autentikasi kustom akan awalan identitas memungkinkan operator jaringan untuk memperbarui Akses Jaringan ID (NAI) untuk melakukan perutean eksplisit melalui beberapa {i>proxy<i} di dalam jaringan AAA (lihat RFC 7542). Android 12 mengimplementasikan fitur ini menurut Spesifikasi WBA untuk ekstensi PPS-MO.
Penanganan segera pembatalan autentikasi
Mengizinkan operator jaringan untuk memberikan sinyal ke perangkat yang tidak memiliki layanan tersedia untuk kredensial yang digunakan untuk mengotentikasi ke jaringan untuk durasi (ditentukan melalui penundaan waktu tunggu). Setelah menerima sinyal ini, perangkat tidak akan mencoba untuk terhubung kembali ke jaringan dengan kredensial yang sama hingga setelah penundaan waktu tunggu berakhir. Sebaliknya, perangkat yang tidak mendukung fitur ini mungkin mencoba untuk berulang kali menyambung kembali ke jaringan saat layanan tersebut tidak tersedia.

Contoh profil XML OMA-DM PerProviderSubscription-MO

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

Contoh berikut menunjukkan profil untuk jaringan dengan:

  • Nama yang cocok untuk jaringan ditetapkan ke Example Network
  • FQDN ditetapkan ke hotspot.example.net
  • OI konsorsium roaming (untuk roaming)
  • Kredensial dengan nama pengguna user, sandi password yang dienkode dengan Base64, dan realm disetel ke example.net
  • Metode EAP ditetapkan ke 21 (EAP-TTLS)
  • Metode dalam fase-2 ditetapkan ke MS-CHAP-V2
  • Nama domain AAA alternatif ditetapkan 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 yang cocok untuk jaringan ditetapkan ke GlobalRoaming
  • FQDN ditetapkan ke globalroaming.net
  • OI Konsorsium Roaming (untuk roaming)
  • Realm ditetapkan 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 yang cocok untuk jaringan ditetapkan ke Purple Passpoint
  • FQDN ditetapkan ke wlan.mnc888.mcc999.3gppnetwork.org
  • Kredensial SIM dengan ID PLMN 999888
  • Metode EAP ditetapkan 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>

Konsultasi Auth

Perangkat yang menjalankan Android 8.x atau Android 9 dengan Passpoint R1 EAP-SIM, EAP-AKA, atau EAP-AKA' profil tidak akan terhubung otomatis ke jaringan Passpoint. Ini dapat memengaruhi pengguna, operator, dan layanan dengan mengurangi pengurangan beban Wi-Fi.

Segmen Dampak Ukuran dampak
Operator dan penyedia layanan Passpoint Beban pada jaringan seluler meningkat. Operator apa pun yang menggunakan Passpoint R1.
Pengguna Kehilangan peluang untuk terhubung otomatis ke titik akses Wi-Fi Operator (AP), yang mengakibatkan biaya data lebih tinggi. Setiap pengguna dengan perangkat yang berjalan pada jaringan operator yang mendukung {i>Passpoint<i} R1.

Penyebab kegagalan

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

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 mengamati tidak ada kecocokan dengan penyedia layanan yang berfungsi, jadi perangkat Passpoint tidak terhubung otomatis.

Solusi

Untuk mengatasi masalah kriteria pencocokan yang dimodifikasi, operator dan penyedia layanan perlu menambahkan {i>realm <i}akses jaringan{i> <i}(NAI) ke informasi yang dipublikasikan oleh Passpoint AP.

Solusi yang disarankan adalah bagi penyedia layanan jaringan untuk menerapkan solusi sisi jaringan untuk waktu implementasi tercepat. Sisi perangkat solusinya tergantung pada OEM yang mengambil {i>changelist<i} (CL) dari AOSP, lalu memperbarui perangkat di lapangan.

Perbaikan jaringan untuk operator dan penyedia layanan Passpoint

Solusi sisi jaringan memerlukan konfigurasi ulang jaringan untuk menambahkan NAI elemen ANQP realm seperti yang ditentukan di bawah. Spesifikasi Passpoint tidak memerlukan elemen ANQP realm NAI, tetapi penambahan mematuhi spesifikasi Passpoint, sehingga klien yang mematuhi spesifikasi implementasinya tidak boleh rusak.

  1. Tambahkan elemen ANQP realm NAI.
  2. Setel subkolom realm NAI agar cocok dengan Realm profil yang diinstal di perangkat.
  3. Tetapkan informasi berikut berdasarkan setiap jenis EAP:

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

Perbaikan perangkat/AOSP untuk OEM

Untuk menerapkan solusi sisi perangkat, OEM harus memilih patch CL AOSP/718508. Patch ini dapat diterapkan bersama dengan rilis berikut (tidak berlaku untuk Android 10 atau yang lebih baru):

  • Android 9
  • Android 8.x

Saat patch dipilih, OEM perlu mengupdate perangkat di lapangan.