- HotspotHelper API yang tersedia sejak iOS 9 memungkinkan aplikasi menerima informasi access point WiFi di sekitar, sehingga bisa menjadi jalur pelacakan lokasi tanpa persetujuan pengguna
- Aplikasi dapat membaca SSID dan BSSID jaringan sekitar dari callback yang terdaftar, lalu mengirimkannya ke server untuk dipakai dalam logika perkiraan lokasi
- Karena access point WiFi umumnya tetap di tempat, jika digabungkan dengan layanan publik seperti Precisely atau Google Geolocation API, maka perkiraan lokasi berbasis WiFi menjadi mungkin
- Perilaku ini tidak hanya terjadi saat pengguna sedang mengoperasikan layar pengaturan, tetapi juga bisa terjadi ketika perangkat memindai WiFi di sekitar dalam keadaan terkunci, dan tidak ada cara bagi pengguna untuk mengetahuinya atau mematikannya
- Aplikasi dengan cakupan penggunaan besar seperti WeChat dan Alipay juga telah mengimplementasikan fitur ini, memicu tuntutan agar Apple menyediakan opsi izin/tolak yang eksplisit seperti pada izin lokasi atau notifikasi
Informasi WiFi yang diekspos oleh HotspotHelper API
- Sejak iOS 9, Apple menyediakan API HotspotHelper agar aplikasi dapat meminta fungsi untuk membantu sistem terhubung ke access point WiFi
- Contoh kode menunjukkan alur saat aplikasi menerima informasi jaringan WiFi melalui
NEHotspotHelper.register- Mendapatkan daftar jaringan sekitar dari
command.networkList - Membaca
network.ssiddannetwork.bssiddari tiap jaringan - Nilai ini dapat diteruskan ke logika pelacakan lokasi seperti
trackLocation(withSSID:andMACAddress:)
- Mendapatkan daftar jaringan sekitar dari
- Tujuan awalnya mungkin untuk membantu koneksi yang lebih mulus, tetapi aplikasi juga dapat memakai SSID dan BSSID yang diterima sebagai data pelacakan lokasi
Jalur untuk memperkirakan lokasi tanpa persetujuan pengguna
- Informasi access point WiFi di sekitar dapat menjadi titik acuan untuk memperkirakan lokasi pengguna
- Sebagian besar access point WiFi tidak berpindah setelah dipasang
- Daftar access point di sekitar dapat dipakai untuk melakukan triangulasi atau memperkirakan lokasi pengguna saat ini
- Contoh API publik mencakup Precisely Location By Wi-fi Access Point dan Google's Geolocation API
- Fitur ini tidak hanya aktif saat pengguna secara eksplisit mengoperasikan layar pengaturan
- Aplikasi yang terdaftar dapat dijalankan saat perangkat memindai access point WiFi di sekitar
- Termasuk ketika perangkat terkunci dan berada di saku pengguna
- Aplikasi dapat mengambil SSID dan alamat MAC di sekitar lalu mengirimkannya ke server, dan jika pengembang menginginkannya, pelacakan lokasi yang nyaris real-time menjadi mungkin
- Sulit bagi pengguna untuk mengetahui dari layar bahwa proses ini sedang terjadi, dan juga tidak ada opsi untuk menonaktifkan fitur tersebut
Kasus WeChat dan Alipay
- WeChat dan Alipay disebut sebagai aplikasi besar yang sudah mengimplementasikan fitur ini
- Kedua aplikasi tersebut digunakan sangat luas di daratan Tiongkok dan terlibat dalam banyak aspek kehidupan sehari-hari
- Jika aplikasi yang digunakan seluas ini memiliki potensi pelacakan lokasi tanpa persetujuan pengguna, maka cakupan dampaknya menjadi besar
- Walaupun tujuan pengumpulan data bisa saja untuk meningkatkan pengalaman pengguna atau membantu koneksi WiFi di sekitar, logika sisi server tetap tidak transparan sehingga masalah transparansi dan akuntabilitas masih tersisa
Respons Apple dan model izin yang dibutuhkan
- Masalah ini ditemukan sekitar 2 tahun lalu dan dibagikan lewat video di Bilibili, tetapi kesadaran publik terhadapnya tetap terbatas
- Kekhawatiran ini juga telah disampaikan ke Apple dan ada balasan email, tetapi setelah itu tidak ada pembaruan tambahan
- Apple perlu menyediakan opsi bagi pengguna untuk menonaktifkan fitur ini, seperti pengaturan privasi untuk lokasi dan notifikasi
- Sebelum aplikasi dapat mengakses fitur ini, harus ada permintaan izin yang eksplisit, dan pengguna harus bisa mengizinkan atau menolak akses saat aplikasi digunakan
- HotspotHelper tetap menjadi titik kontroversial antara janji privasi Apple dan perlindungan data pengguna
3 komentar
Opini Hacker News
Jika melihat dokumen yang ditautkan, API ini tampaknya ditujukan agar aplikasi yang dibuat oleh pemilik hotspot WiFi dapat membantu pengguna terhubung ke hotspot tersebut: https://developer.apple.com/documentation/networkextension/h...
NEHotspotHelpermemungkinkan aplikasi ikut serta dalam proses autentikasi jaringan hotspot, yaitu jaringan Wi-Fi yang mengharuskan pengguna berinteraksi dengan jaringan agar bisa mengakses internet yang lebih luasSelain itu, dokumennya menyebutkan bahwa ini hanya berguna untuk integrasi hotspot; untuk tugas lain seperti integrasi aksesori atau penentuan lokasi berbasis Wi-Fi ada pembatasan teknis dan bisnis, dan sebelum digunakan perlu persetujuan entitlement khusus Apple
com.apple.developer.networking.HotspotHelperKalau begitu, yang jadi pertanyaan adalah mengapa aplikasi seperti WeChat atau Alipay diberi hak ini
Penggunaan API semacam ini seharusnya memunculkan dialog izin yang terlihat oleh pengguna sebelum aplikasi menerima notifikasi di latar belakang, dan pengguna seharusnya bisa memilih di antara “izinkan sekali, izinkan saat digunakan, izinkan di latar belakang, jangan izinkan”
Aktivitas aplikasi juga seharusnya ditampilkan di Laporan Privasi Aplikasi
WeChat adalah “superapp” dan masih bisa berargumen bahwa ia juga digunakan untuk koneksi hotspot Wi-Fi, tetapi untuk Alipay saya sulit membayangkan penjelasannya
CoreLocationdan sudah mendapat persetujuan akses lokasi presisi dari pengguna. Karena sudah menerima lokasi presisi, ini tampak tidak berbahayaNEHotspotConfiguration. Sepertinya ini tepat termasuk dalam cakupan artikel iniNEDNSSettingsManageraktif yang terpasang. Saya tidak tahu persis apa ini, tetapi kelihatannya mirip dengan sisi VPNSebagai catatan, untuk memakai API ini diperlukan entitlement khusus, dan hanya bisa didapat dengan meminta kepada Apple serta membenarkan tujuan penggunaannya
Ini bukan API umum yang bisa dipakai sembarang aplikasi
Memang mereka adalah “superapp” dan layanan hotspot Wi-Fi mungkin salah satu fitur yang disediakan, tetapi justru karena itu seharusnya menjadi izin yang bisa diberikan pengguna, seperti “akses jaringan lokal”
Kalau saya tidak tertarik pada fungsi hotspot, saya tidak ingin aplikasi punya kemampuan itu
Tanpa mencoba sendiri aplikasi pengujinya, saya tidak tahu apakah hak ini juga begitu, tetapi menurut saya seharusnya meminta izin pengguna
Saya penasaran apakah Apple menganalisis penggunaan hak ini dan mencabutnya jika disalahgunakan
Mirip dengan itu, saya ingat saat “skandal” VPN Facebook, Apple mencabut sertifikat penandatanganan enterprise milik Facebook
Kedengarannya seperti mengatakan, “jangan khawatir, kamu atau saya tidak bisa menyalahgunakannya; hanya perusahaan besar dan pengumpul data yang bisa”
Sepertinya penulisnya orang Tiongkok sehingga memperhatikan WeChat dan Alipay, tetapi saya penasaran bagaimana dengan Facebook dan Google
Saya tadinya mengira pengguna sudah mendapat prompt untuk mengizinkan permission ini
Belakangan cukup banyak aplikasi yang menanyakan apakah ingin mengizinkan akses “jaringan lokal”, dan saya memahaminya sebagai kemampuan untuk melihat hotspot Wi-Fi lokal, jadi hampir selalu saya tolak
Setelah membaca tulisan ini, saya juga mematikannya untuk Spotify
Namun sebagian besar pengguna tidak tahu bahwa informasi ini bisa dipakai untuk menyimpulkan lokasi, jadi dialog permission perlu diperbaiki
Pertama, implementasinya buruk. Tidak seperti permission lain, tidak ada cara untuk memunculkan prompt secara eksplisit; prompt tiba-tiba muncul ketika Apple menganggapnya tepat
Bahkan ketika dibutuhkan untuk fungsi inti, tidak ada cara untuk memberi panduan secara natural, dan tidak ada cara untuk memeriksa apakah permission sudah diberikan
Kedua, yang lebih penting, aplikasi Apple sendiri tidak memunculkan peringatan ini, sehingga kondisi persaingannya tidak adil
AirPlay dan semacamnya berjalan mulus, tetapi teknologi pesaing tidak, dan karena developer tidak bisa mengetahui status permission, pengalaman pengguna memburuk
Jika Apple memperkenalkan pembatasan, itu juga harus diterapkan pada aplikasi mereka sendiri. AirPlay dan AirDrop masing-masing harus meminta akses Bluetooth dan jaringan lokal, aplikasi Photos harus menampilkan prompt “pilih foto, izinkan semua, tolak” saat dijalankan, dan aplikasi Camera juga tidak boleh menulis ke pustaka foto tanpa prompt yang sama
Dengan begitu Apple juga akan punya insentif untuk merancang pengalaman pengguna terkait pembatasan semacam ini dengan benar, dan mencari solusi yang lebih kreatif alih-alih dialog yang membingungkan
Saat ini tidak ada insentif untuk merancangnya dengan baik. Developer iOS yang pernah menangani API-API ini tahu bahwa desainnya buruk karena pembatasan yang arbitrer dan tak terduga
AirPlay tidak membutuhkan permission ini
Dokumentasi: https://developer.apple.com/documentation/technotes/tn3111-i...
Proses review mungkin bisa mencegah aplikasi spam kecil, tetapi seperti yang dikatakan penulis dan orang lain, sepertinya tidak akan mampu menghentikan pemain besar
Namun masih belum jelas apakah, ketika permission itu ada, pengguna akan mendapat prompt untuk menolak penggunaan API tersebut
Apakah ada cara untuk memeriksa aplikasi populer mana saja yang memakai ini
Seperti kebanyakan orang di sini, saya tidak memasang WeChat atau Alipay, tetapi saya penasaran dengan aplikasi seperti Instagram, Facebook, WhatsApp, Twitter, TikTok, Snapchat, Chrome, Firefox, Photoshop, dan Lightroom
Kita tidak seharusnya harus mengunduh dan memasang aplikasi hanya untuk melihat perilaku apa yang akan dicobanya
App Store sudah mengetahui informasi ini, dan menampilkannya di detail aplikasi sebelum unduhan semestinya sangat mudah
Kita juga perlu membicarakan masalah iOS/macOS yang menyalakan perangkat nirkabel Wi-Fi dan Bluetooth pada setiap pembaruan sistem
Berbeda dari nina bobo yang disampaikan marketing, perangkat ini tampak seperti sengaja dibuat untuk memaksimalkan pengawasan
Sepertinya mereka memilih untuk tidak melacak status pengaturan karena 99% orang memakainya atau membutuhkannya, dan Apple juga menyukai keyboard serta mouse Bluetooth
Sekarang saya jadi penasaran. Aplikasi lain apa saja yang punya permission ini
Apakah ada cara untuk mengetahui aplikasi mana di ponsel saya yang punya permission ini
Ini salah satu masalah besar dari platform yang sepenuhnya terkunci
Jaminan bahwa pemilik platform akan menghormati privasi dan mencegah pelanggaran oleh pihak lain pada akhirnya hanya sebatas janji kelingking
Keamanan platform komputasi memang sulit, dan khususnya privasi didefinisikan secara budaya jauh lebih kabur daripada keamanan komputer biasa yang didefinisikan melalui kontrol akses teknis
Intinya adalah apakah Apple berusaha berperan sebagai kurator yang mengendalikan ekosistem
Dulu, ketika Uber melakukan hal yang mencurigakan, Apple pernah bermain chicken game untuk memaksanya berhenti
Tentu saja, Alipay dan WeChat mungkin lebih sulit karena pasar Tiongkok sangat besar bagi Apple dan penting bagi kesuksesannya saat ini
Menarik untuk melihat bagaimana Apple akan beradaptasi dengan ini dalam beberapa tahun ke depan
Platform terbuka juga punya masalah seperti ini, dan mungkin bahkan lebih bergantung pada janji kelingking
Kecuali maksudnya “kalau masalah ini tidak akan diselesaikan, lebih baik platform terbuka saja”, saya kurang paham poinnya
Masalah dari logika itu adalah ini hanya satu kasus kegagalan di antara banyak masalah dan bisa diselesaikan nanti, sementara platform terbuka punya masalah ini sekaligus lebih banyak masalah lain yang belum terselesaikan
Saya mendengar keluhan bahwa judul ini berlebihan, dan kalau ada usulan judul yang lebih baik, lebih akurat, dan netral, silakan diganti
Saya tidak yakin, tetapi setelah membaca tulisannya, judul saat ini tidak terasa tepat sebagai fakta
Penggunaan
NEHotspotHelpermemerlukan entitlement khususcom.apple.developer.networking.HotspotHelperyang harus diajukan, dan Apple kemungkinan tidak akan memberikannya jika aplikasi tidak punya kebutuhan yang sahNamun ini tampaknya menunjukkan ketidakcocokan antara strategi perlindungan privasi Apple dan superapp seperti WeChat dan Alipay
Jika satu perusahaan menjejalkan semua fungsi ke dalam satu aplikasi, aplikasi itu tiba-tiba memiliki semua izin, dan menjadi sulit memahami kapan serta bagaimana data sensitif digunakan
Di Barat, aplikasi biasanya tidak dibuat dengan cara seperti ini. Misalnya, Comcast punya aplikasi “WiFi Hotspots” terpisah
Lucunya, dua hari lalu mereka mengumumkan akan menggabungkan fitur itu ke aplikasi utama Xfinity, jadi mungkin Barat juga sedang mengejar
Saya langsung menolaknya, dan jika akibatnya fungsi aplikasi rusak, saya hapus aplikasinya juga
Google Maps yang terus merengek agar saya menyalakan layanan lokasi presisi, bertanya apakah saya sedang bernavigasi alih-alih bersama teman, dan meminta izin akses kontak juga saya tolak
com.apple.developer.networking.HotspotHelperbisa dicabut di iOSApakah di Pengaturan → Privasi & Keamanan → Jaringan Lokal, atau di bagian lain
Perusahaan yang menjual privasi sebagai nilai utama ternyata diam-diam juga mencuri notifikasi pengguna dan informasi lokasi di belakang layar.
Saya kira sebelumnya notifikasi naik/turun kereta bawah tanah tidak mungkin karena fitur itu diblokir, ternyata fiturnya memang sudah ada. Kalau begitu, kenapa cuma iPhone yang tidak bisa ya...