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 keapplication/x-wifi-config
.Content-Transfer-Encoding
harus ditetapkan kebase64
.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 tampilanFQDN
: Wajib diisiRoamingConsortiumOI
Node subpohon berikut digunakan dalam Credential
:
Realm
: Harus berupa string yang tidak kosongUsernamePassword
: Diperlukan untuk EAP-TTLS dengan node berikut yang ditetapkan:Username
: String yang berisi nama penggunaPassword
: String yang dienkode base64 (disetel kecGFzc3dvcmQ=
, atribut string berenkode base64 untuk "password", pada contoh di bawah)EAPMethod/EAPType
: Harus ditetapkan ke21
EAPMethod/InnerMethod
: Harus disetel ke salah satu dariPAP
,CHAP
,MS-CHAP
, atauMS-CHAP-V2
DigitalCertificate
: Diperlukan untuk EAP-TLS. Node berikut harus ditetapkan:CertificateType
disetel pukulx509v3
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'. KolomEAPType
harus ditetapkan ke jenis EAP yang sesuai danIMSI
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 AndroidAAAServerTrustedNames
: 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:
- Menampilkan daftar penyedia layanan yang diiklankan oleh AP di Wi-Fi pemilih (selain menampilkan SSID).
- Meminta pengguna mengetuk salah satu penyedia layanan untuk menyiapkan Passpoint untuk profil.
- Memandu pengguna melalui alur penyiapan profil Passpoint.
- Menginstal profil Passpoint yang dihasilkan setelah berhasil diselesaikan.
- 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
, sandipassword
yang dienkode dengan Base64, dan realm disetel keexample.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
dantrusted.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.
- Tambahkan elemen ANQP realm NAI.
- Setel subkolom realm NAI agar cocok dengan
Realm
profil yang diinstal di perangkat. Tetapkan informasi berikut berdasarkan setiap jenis EAP:
- EAP-TTLS: Menetapkan
EAPMethod(21)
dan jenis autentikasi dalam yang didukung (PAP
,CHAP
,MS-CHAP
, atauMS-CHAP-V2
) - EAP-TLS: Menetapkan
EAPMethod(13)
- EAP-SIM: Setel
EAPMethod(18)
- EAP-AKA: Setel
EAPMethod(23)
- EAP-AKA': Setel
EAPMethod(50)
- EAP-TTLS: Menetapkan
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.