1 poin oleh GN⁺ 2023-12-22 | 3 komentar | Bagikan ke WhatsApp
  • 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.ssid dan network.bssid dari tiap jaringan
    • Nilai ini dapat diteruskan ke logika pelacakan lokasi seperti trackLocation(withSSID:andMACAddress:)
  • 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

 
GN⁺ 2023-12-22
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...
    NEHotspotHelper memungkinkan aplikasi ikut serta dalam proses autentikasi jaringan hotspot, yaitu jaringan Wi-Fi yang mengharuskan pengguna berinteraksi dengan jaringan agar bisa mengakses internet yang lebih luas
    Selain 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.HotspotHelper
    Kalau begitu, yang jadi pertanyaan adalah mengapa aplikasi seperti WeChat atau Alipay diberi hak ini

    • Saya tidak tahu soal Alipay, tetapi WeChat tampaknya membutuhkan fungsi ini karena WeChat Wifi, yang memungkinkan pengguna mengakses hotspot internet dengan akun WeChat: https://mp.weixin.qq.com/s?__biz=MzI1NjA0NzQzOQ==∣=265026...
    • Bahkan jika hak itu benar-benar hanya diberikan kepada aplikasi hotspot, ini bukan desain yang ramah pengguna dan mengutamakan privasi
      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
    • Mungkin karena pasar Tiongkok terlalu penting
      WeChat adalah “superapp” dan masih bisa berargumen bahwa ia juga digunakan untuk koneksi hotspot Wi-Fi, tetapi untuk Alipay saya sulit membayangkan penjelasannya
    • Aplikasi VPN juga tampaknya memakai fungsi ini: https://github.com/pia-foss/mobile-ios/blob/4618b55161ec5b8b...
    • Dalam beberapa kondisi yang dirangkum Apple, hak ini tampaknya tidak diperlukan: https://developer.apple.com/forums/thread/679038
      1. Jika aplikasi menggunakan API CoreLocation dan sudah mendapat persetujuan akses lokasi presisi dari pengguna. Karena sudah menerima lokasi presisi, ini tampak tidak berbahaya
      2. Jika aplikasi mengonfigurasi jaringan Wi-Fi saat ini dengan API NEHotspotConfiguration. Sepertinya ini tepat termasuk dalam cakupan artikel ini
      3. Jika aplikasi memiliki konfigurasi VPN aktif yang terpasang. Ini cukup mengejutkan
      4. Jika aplikasi memiliki konfigurasi NEDNSSettingsManager aktif yang terpasang. Saya tidak tahu persis apa ini, tetapi kelihatannya mirip dengan sisi VPN
  • Sebagai 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

    • Itu tidak terlalu menenangkan. Menurut artikelnya, Apple memberikan hak itu kepada WeChat dan Alipay
      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
    • Sebagian besar izin menampilkan prompt privasi agar pengguna bisa mematikan fungsinya
      Tanpa mencoba sendiri aplikasi pengujinya, saya tidak tahu apakah hak ini juga begitu, tetapi menurut saya seharusnya meminta izin pengguna
    • Jika Facebook, Instagram, Messenger, atau Alipay dan WeChat yang disebut di artikel memiliki hak ini dan melakukan hal mencurigakan, itu bisa menjadi masalah privasi besar
      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
    • Saya tidak tahu apakah ini lebih baik atau lebih buruk
      Kedengarannya seperti mengatakan, “jangan khawatir, kamu atau saya tidak bisa menyalahgunakannya; hanya perusahaan besar dan pengumpul data yang bisa”
    • Jadi pada akhirnya hanya aplikasi besar yang bisa memata-matai pengguna?
      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

    • Dari sudut pandang developer, ada alasan mengapa permission “jaringan lokal” ini menyebalkan
      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
    • Permission itu adalah untuk mengirim dan menerima trafik jaringan lokal, seperti berkomunikasi dengan perangkat di subnet yang sama atau menemukan target seperti Chromecast
      AirPlay tidak membutuhkan permission ini
    • Saya memahaminya sebagai pemindaian LAN, mungkin sampai tailnet, untuk menemukan layanan seperti bridge Hue, speaker Sonos, atau Chromecast
  • 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

    • Dari dokumentasi terlihat bahwa pemanggilan API ini memang memerlukan permission
      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

    • Rasanya saya mengulang hal yang sama, tetapi App Store seharusnya memungkinkan kita melihat permission yang akan diminta aplikasi sebelum instalasi
      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

    • Dengan Hanlon's razor, mungkin saja Apple hanya malas sehingga membiarkan pengaturan ini menyala secara default
      Sepertinya mereka memilih untuk tidak melacak status pengaturan karena 99% orang memakainya atau membutuhkannya, dan Apple juga menyukai keyboard serta mouse Bluetooth
    • Ini benar-benar menyebalkan
  • 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

    • Sudut pandang itu bisa saja keliru. Tidak ada yang berharap Apple akan sempurna
      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

    • “Aplikasi iOS dengan permission khusus dapat melacak pengguna lewat pemindaian SSID” tampaknya paling menjelaskan
      Saya tidak yakin, tetapi setelah membaca tulisannya, judul saat ini tidak terasa tepat sebagai fakta
    • Menurut saya judul saat ini juga baik-baik saja
  • Penggunaan NEHotspotHelper memerlukan entitlement khusus com.apple.developer.networking.HotspotHelper yang harus diajukan, dan Apple kemungkinan tidak akan memberikannya jika aplikasi tidak punya kebutuhan yang sah
    Namun 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

    • Apakah ada cara bagi pengguna akhir untuk melihat aplikasi mana yang memiliki izin ini
    • Facebook juga superapp. Selama bertahun-tahun ada fitur pencari hotspot Wi-Fi di dalam aplikasinya
    • Saya benar-benar tidak suka saat permintaan akses ke kamera, mikrofon, kontak, dan sebagainya membanjir begitu aplikasi dijalankan
      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
    • Di mana com.apple.developer.networking.HotspotHelper bisa dicabut di iOS
      Apakah di Pengaturan → Privasi & Keamanan → Jaringan Lokal, atau di bagian lain
    • Jadi pada akhirnya Apple yang memutuskan perusahaan mana yang boleh mengambil data lokasi saya. Keren
 
ndrgrd 2023-12-23

Perusahaan yang menjual privasi sebagai nilai utama ternyata diam-diam juga mencuri notifikasi pengguna dan informasi lokasi di belakang layar.

 
joyfui 2023-12-22

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...