1 पॉइंट द्वारा GN⁺ 2023-12-22 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • iOS 9 से उपलब्ध HotspotHelper API ऐप्स को आसपास के WiFi access points की जानकारी प्राप्त करने देता है, जिससे उपयोगकर्ता की सहमति के बिना location tracking का रास्ता बन सकता है
  • ऐप registered callback में आसपास के networks के SSID और BSSID पढ़ सकते हैं और उन्हें server पर भेजकर location estimation logic में इस्तेमाल कर सकते हैं
  • WiFi access points ज्यादातर स्थिर होते हैं, इसलिए Precisely या Google Geolocation API जैसी public services के साथ मिलाकर WiFi-आधारित location estimation संभव है
  • यह व्यवहार सिर्फ settings screen में操作 के दौरान नहीं होता, बल्कि device lock होने पर आसपास के WiFi को scan करने की स्थिति में भी हो सकता है; उपयोगकर्ता को इसका पता लगाने या इसे बंद करने का कोई तरीका नहीं है
  • WeChat और Alipay जैसे बड़े पैमाने पर इस्तेमाल होने वाले ऐप्स ने भी यह feature implement किया है, जिससे यह मांग उठी है कि Apple location और notification permissions की तरह स्पष्ट allow/deny option दे

HotspotHelper API द्वारा expose की जाने वाली WiFi जानकारी

  • Apple ने iOS 9 से HotspotHelper API उपलब्ध कराया, जिससे ऐप्स system के WiFi access point connection में मदद करने वाली functionality request कर सकते हैं
  • example code NEHotspotHelper.register के जरिए दिखाता है कि ऐप WiFi network information कैसे प्राप्त करता है
    • command.networkList से आसपास के networks की list मिलती है
    • हर network से network.ssid और network.bssid पढ़े जाते हैं
    • इन values को trackLocation(withSSID:andMACAddress:) जैसे location tracking logic को दिया जा सकता है
  • मूल उद्देश्य seamless connection support हो सकता है, लेकिन ऐप प्राप्त SSID और BSSID को location tracking data के रूप में भी इस्तेमाल कर सकता है

उपयोगकर्ता की सहमति के बिना location estimate करने का रास्ता

  • आसपास के WiFi access point की जानकारी उपयोगकर्ता की location का अनुमान लगाने के लिए reference point बन सकती है
    • अधिकांश WiFi access points install होने के बाद हिलते-डुलते नहीं हैं
    • आसपास के access points की list का उपयोग करके उपयोगकर्ता की current location triangulate या estimate की जा सकती है
  • public API के उदाहरणों में Precisely Location By Wi-fi Access Point और Google's Geolocation API शामिल हैं
  • यह feature केवल तब active नहीं होता जब उपयोगकर्ता स्पष्ट रूप से settings screen से interact करता है
    • जब device आसपास के WiFi access points scan करता है, registered app चल सकता है
    • इसमें device के locked होने और उपयोगकर्ता की जेब में होने की स्थिति भी शामिल है
  • ऐप आसपास के SSID और MAC addresses लेकर server पर भेज सकता है, और developer चाहे तो लगभग real-time location tracking संभव है
  • उपयोगकर्ता के लिए screen पर यह समझना मुश्किल है कि यह process हो रहा है या नहीं, और feature को disable करने का विकल्प भी नहीं है

WeChat और Alipay के मामले

  • WeChat और Alipay को पहले से इस feature को implement कर चुके प्रमुख ऐप्स के रूप में बताया गया है
  • दोनों ऐप्स mainland China में बेहद व्यापक रूप से इस्तेमाल होते हैं और लोगों के जीवन के कई क्षेत्रों से जुड़े हैं
  • ऐसे व्यापक रूप से इस्तेमाल होने वाले ऐप्स में उपयोगकर्ता की सहमति के बिना location tracking की संभावना पैदा होने पर प्रभाव का दायरा बड़ा हो जाता है
  • data collection का उद्देश्य user experience सुधारना या आसपास के WiFi connection में support देना हो सकता है, फिर भी server-side logic अपारदर्शी होने के कारण transparency और accountability की समस्या बनी रहती है

Apple की प्रतिक्रिया और जरूरी permission model

  • यह issue लगभग 2 साल पहले खोजा गया था और Bilibili पर video के रूप में share किया गया था, लेकिन public awareness सीमित रही
  • Apple को भी चिंताएं बताई गईं और email response मिला, लेकिन इसके बाद कोई अतिरिक्त update नहीं आया
  • Apple को location और notification जैसी privacy settings की तरह उपयोगकर्ता को इस feature को disable करने का option देना चाहिए
  • ऐप द्वारा इस feature तक access करने से पहले स्पष्ट रूप से permission मांगी जानी चाहिए, और उपयोगकर्ता को app use करते समय access allow या deny करने में सक्षम होना चाहिए
  • HotspotHelper Apple के privacy protection वादों और user data protection के बीच विवादित बिंदु बना हुआ है

3 टिप्पणियां

 
GN⁺ 2023-12-22
Hacker News की राय
  • लिंक किए गए दस्तावेज़ को देखें तो यह API WiFi hotspot मालिक द्वारा बनाए गए app को यूज़र को उस hotspot से कनेक्ट कराने में मदद करने के लिए लगता है: https://developer.apple.com/documentation/networkextension/h...
    NEHotspotHelper किसी app को ऐसे Wi-Fi network, यानी hotspot network authentication प्रक्रिया, में हिस्सा लेने देता है जहाँ यूज़र को व्यापक internet तक पहुँचने के लिए network के साथ interaction करना पड़ता है
    इसमें यह भी कहा गया है कि यह केवल hotspot integration के लिए उपयोगी है, और accessory integration या Wi-Fi-based location detection जैसे अन्य कामों पर तकनीकी और business सीमाएँ हैं; इस्तेमाल से पहले Apple की विशेष entitlement com.apple.developer.networking.HotspotHelper की approval चाहिए
    तो सवाल यह है कि WeChat या Alipay जैसे apps को यह entitlement क्यों दी गई

    • Alipay के बारे में नहीं पता, लेकिन WeChat को शायद यह feature WeChat Wifi की वजह से चाहिए, जिससे यूज़र अपने WeChat account से internet hotspots में login कर सकते हैं: https://mp.weixin.qq.com/s?__biz=MzI1NjA0NzQzOQ==∣=265026...
    • भले ही entitlement सचमुच सिर्फ hotspot apps को दी जाए, यह user-friendly privacy-first design नहीं है
      ऐसे API के इस्तेमाल में app को background notifications मिलने से पहले यूज़र को दिखने वाला permission dialog दिखाना चाहिए, और यूज़र के पास “सिर्फ एक बार allow करें, इस्तेमाल के दौरान allow करें, background में allow करें, allow न करें” में से चुनने का विकल्प होना चाहिए
      app की activity भी App Privacy Report में दिखनी चाहिए
    • शायद वजह यह है कि चीनी बाज़ार बहुत महत्वपूर्ण है
      WeChat एक “super app” है और यह दावा करने की गुंजाइश है कि इसे Wi-Fi hotspot connection के लिए भी इस्तेमाल किया जा सकता है, लेकिन Alipay के लिए कोई अच्छी explanation दिमाग में नहीं आती
    • VPN apps भी यह feature इस्तेमाल करते दिखते हैं: https://github.com/pia-foss/mobile-ios/blob/4618b55161ec5b8b...
    • Apple ने कुछ conditions बताई हैं जिनमें लगता है कि यह entitlement ज़रूरी नहीं होती: https://developer.apple.com/forums/thread/679038
      1. जब app CoreLocation API इस्तेमाल करता हो और यूज़र की precise location access approval पा चुका हो। चूँकि उस स्थिति में precise location पहले से मिल रही होती है, यह harmless लगता है
      2. जब app ने NEHotspotConfiguration API से current Wi-Fi network configure किया हो। इस लेख का scope शायद ठीक यही है
      3. जब app में active VPN configuration installed हो। यह काफ़ी चौंकाने वाला है
      4. जब app में active NEDNSSettingsManager configuration installed हो। ठीक-ठीक क्या है नहीं पता, लेकिन VPN वाली side जैसा लगता है
  • संदर्भ के लिए, इस API को इस्तेमाल करने के लिए विशेष entitlement चाहिए, और इसे पाने के लिए Apple से request कर usage purpose justify करना पड़ता है
    यह कोई general-purpose API नहीं है जिसे कोई भी app इस्तेमाल कर सके

    • इससे खास सुकून नहीं मिलता। लेख के मुताबिक Apple ने WeChat और Alipay को वह entitlement दी है
      बेशक ये “super apps” हैं और Wi-Fi hotspot service भी इनके features में से एक हो सकती है, लेकिन इसी वजह से यह “local network access” की तरह यूज़र द्वारा grant की जाने वाली permission होनी चाहिए
      अगर मुझे hotspot feature में रुचि नहीं है तो मैं नहीं चाहता कि app के पास वह capability हो
    • ज़्यादातर permissions privacy prompt दिखाती हैं ताकि यूज़र feature को बंद कर सके
      test app खुद इस्तेमाल किए बिना नहीं पता कि यह entitlement भी ऐसा करती है या नहीं, लेकिन मुझे लगता है कि इसे user permission पूछनी चाहिए
    • अगर Facebook, Instagram, Messenger या लेख में बताए गए Alipay, WeChat इस entitlement के साथ कुछ suspicious करते हैं, तो यह बड़ा privacy issue बन सकता है
      जिज्ञासा है कि Apple entitlement usage को analyze करता है और abuse होने पर उसे revoke करता है या नहीं
      इसी तरह, याद है कि Facebook VPN “scandal” के समय Apple ने Facebook का enterprise signing certificate revoke किया था
    • समझ नहीं आता यह बेहतर है या बदतर
      सुनने में ऐसा लगता है जैसे कहा जा रहा हो, “चिंता मत करो, तुम या मैं इसका दुरुपयोग नहीं कर सकते, सिर्फ बड़ी कंपनियाँ और data collectors कर सकते हैं”
    • तो आखिरकार सिर्फ बड़े apps ही users की जासूसी कर सकते हैं क्या
      लगता है लेखक चीनी है इसलिए WeChat और Alipay की चिंता कर रहा है, लेकिन Facebook और Google का क्या होगा, यह जानने की इच्छा है
  • मुझे लगा था कि यूज़र को पहले से ही इस permission को allow करने का prompt मिलता है
    आजकल ऐप्स में “local network” access allow करने के लिए पूछने के मामले काफी आते हैं, और मैं इसे local Wi‑Fi hotspot देखने की क्षमता समझकर लगभग हमेशा reject कर देता/देती हूँ
    यह पोस्ट पढ़कर मैंने Spotify में भी इसे बंद कर दिया
    हालांकि ज़्यादातर यूज़र नहीं जानते कि इस जानकारी से location infer की जा सकती है, इसलिए permission dialog को बेहतर बनाने की ज़रूरत है

    • डेवलपर के नज़रिए से “local network” permission परेशान करने वाली है, इसकी वजहें हैं
      पहली, implementation खराब है। दूसरी permissions के उलट prompt को explicitly दिखाने का कोई तरीका नहीं है, और Apple को जब ठीक लगता है तब यह अचानक आ जाता है
      अगर यह core feature के लिए ज़रूरी भी हो, तो भी यूज़र को naturally guide करने का कोई तरीका नहीं है, और यह check करने का भी कोई तरीका नहीं कि permission मिली है या नहीं
      दूसरी, और ज़्यादा अहम बात यह है कि Apple की अपनी apps यह warning नहीं दिखातीं, इसलिए competitive conditions unfair हो जाती हैं
      AirPlay वगैरह smooth काम करते हैं, लेकिन competing technologies नहीं; और developer permission status नहीं जान सकता, इसलिए user experience खराब होता है
      अगर Apple restrictions लाता है, तो उन्हें अपनी apps पर भी लागू करना चाहिए। AirPlay और AirDrop को क्रमशः Bluetooth और local network access पूछना चाहिए, Photos app को launch पर “photos चुनें, सभी allow करें, reject करें” prompt दिखाना चाहिए, और Camera app को भी वही prompt दिखाए बिना photo library में write नहीं करना चाहिए
      तभी Apple के पास इन restrictions के आसपास user experience को ठीक से design करने की incentive होगी, और उलझाने वाले dialogs के बजाय ज़्यादा creative solutions खोजेगा
      अभी इसे अच्छी तरह design करने की कोई incentive नहीं है। जिन iOS developers ने इन APIs के साथ काम किया है, वे जानते हैं कि arbitrary और unexpected restrictions की वजह से design बेहद खराब है
    • वह permission उसी subnet के devices से communicate करने या Chromecast जैसे targets खोजने आदि के लिए local network traffic भेजने/लेने के लिए है
      AirPlay को इस permission की ज़रूरत नहीं होती
    • मैं इसे LAN, और शायद tailnet तक scan करके Hue bridge, Sonos speaker, Chromecast जैसी services खोजने के अर्थ में समझता/समझती हूँ
  • Documentation: https://developer.apple.com/documentation/technotes/tn3111-i...
    Review छोटी spam apps को तो रोक देगा, लेकिन लेखक और दूसरे लोगों ने जैसा कहा, बड़े players को शायद नहीं रोक पाएगा

    • Documentation देखने पर यह confirm होता है कि इस API call के लिए permission चाहिए
      हालांकि जब permission मौजूद हो, तो यूज़र API usage reject कर सके ऐसा prompt आता है या नहीं, यह अभी भी साफ नहीं है
  • क्या यह पता लगाने का कोई तरीका है कि कौन-सी popular apps इसका इस्तेमाल करती हैं
    यहाँ ज़्यादातर लोगों की तरह मैंने WeChat या Alipay install नहीं किया है, लेकिन Instagram, Facebook, WhatsApp, Twitter, TikTok, Snapchat, Chrome, Firefox, Photoshop, Lightroom जैसी apps को लेकर उत्सुक हूँ

    • शायद मैं बार-बार वही बात कह रहा/रही हूँ, लेकिन App Store को install करने से पहले यह दिखाना चाहिए कि app कौन-सी permissions request करेगा
      कोई app क्या action try करेगा यह देखने के लिए उसे download और install करना ज़रूरी नहीं होना चाहिए
      App Store को यह जानकारी पहले से पता है, और download से पहले app details में इसे दिखाना बहुत आसान होगा
  • हमें इस बात पर भी बात करनी चाहिए कि iOS/macOS हर system update के बाद Wi‑Fi और Bluetooth wireless devices को on कर देता है
    Marketing में सुनाई जाने वाली lullaby के उलट, यह ऐसा device लगता है जैसे surveillance को maximize करने के लिए जानबूझकर बनाया गया हो

    • Hanlon's razor से देखें तो हो सकता है Apple बस आलसी हो और इन settings को default on छोड़ देता हो
      लगता है 99% लोग इन्हें इस्तेमाल करते हैं या उन्हें इनकी ज़रूरत होती है, इसलिए उसने setting state track न करने का रास्ता चुना है, और Apple को Bluetooth keyboard और mouse पसंद भी हैं
    • यह सच में बहुत irritate करता है
  • अब उत्सुकता हो रही है। और किन apps के पास यह permission है
    क्या यह पता लगाने का कोई तरीका है कि मेरे phone में installed apps में से किनके पास यह permission है

  • यह पूरी तरह locked-down platform की बड़ी समस्याओं में से एक है
    Platform owner privacy का सम्मान करेगा और दूसरों की intrusion रोकेगा, इसकी guarantee आखिरकार बस pinky promise ही है

    • वह दृष्टिकोण गलत हो सकता है। कोई भी Apple से perfect होने की उम्मीद नहीं करता
      Computing platform security वैसे भी कठिन है, और खासकर privacy, technical access-control bypass से define होने वाली सामान्य computer security की तुलना में culturally कहीं ज़्यादा अस्पष्ट ढंग से define होती है
      मुख्य बात यह है कि क्या Apple ecosystem को control करने वाला curator role निभाने की कोशिश करता है
      पहले जब Uber ने संदिग्ध काम किया था, तो उसे रोकने के लिए chicken game तक खेला गया था
      बेशक Alipay और WeChat के मामले में यह ज़्यादा कठिन हो सकता है, क्योंकि China market Apple के लिए बहुत बड़ा और उसकी मौजूदा success के लिए अहम है
      आने वाले कुछ सालों में Apple इस पर कैसे adapt करेगा, यह दिलचस्प होगा
      Open platforms में भी यह समस्या है, और शायद वे pinky promise पर और भी ज़्यादा निर्भर करते हैं
      अगर मतलब यह नहीं है कि “अगर यह समस्या solve नहीं होने वाली, तो open platform ही बेहतर है”, तो point मुझे साफ समझ नहीं आता
      उस logic की समस्या यह है कि यह कई समस्याओं में से एक failure case भर है और बाद में solve हो सकता है, जबकि open platforms में इस समस्या के साथ-साथ और भी कई unsolved problems हैं
  • मैंने शिकायतें सुनी हैं कि यह title बढ़ा-चढ़ाकर लिखा गया है, और अगर कोई बेहतर, ज़्यादा accurate और neutral title suggestion हो तो बदलना ठीक है

    • “Special permission वाली iOS apps SSID scan से users को track कर सकती हैं” शायद इसे सबसे अच्छी तरह explain करता है
      पूरी तरह sure नहीं हूँ, लेकिन article पढ़ने के बाद मौजूदा title तथ्य जैसा ठीक से नहीं लगता
    • मुझे मौजूदा title भी ठीक लगता है
  • NEHotspotHelper का उपयोग करने के लिए आवेदन करके मिलने वाली विशेष entitlement com.apple.developer.networking.HotspotHelper चाहिए, और अगर ऐप के पास इसके लिए वैध जरूरत न हो तो Apple शायद इसे नहीं देगा
    हालांकि यह Apple की privacy रणनीति और WeChat, Alipay जैसे superapps के बीच असंगति दिखाता लगता है
    जब कोई कंपनी सारी सुविधाओं को एक ही ऐप में ठूंस देती है, तो वह ऐप अचानक हर permission पा लेता है, और संवेदनशील डेटा कब और कैसे इस्तेमाल हो रहा है, यह समझना मुश्किल हो जाता है
    पश्चिमी देशों में आम तौर पर ऐप इस तरह नहीं बनाए जाते। उदाहरण के लिए Comcast के पास अलग “WiFi Hotspots” ऐप है
    मजेदार बात यह है कि दो दिन पहले ही उन्होंने पोस्ट किया कि वे उस फीचर को मुख्य Xfinity ऐप में मिला रहे हैं, तो शायद पश्चिम भी अब पीछे-पीछे आ रहा है

    • क्या end user के पास यह देखने का कोई तरीका है कि किन ऐप्स के पास यह permission है
    • Facebook भी एक superapp है। कई सालों से ऐप के अंदर Wi-Fi hotspot खोजने का फीचर था
    • ऐप खोलते ही कैमरा, माइक्रोफोन, contacts वगैरह तक access मांगने की requests की बौछार मुझे सच में बहुत नापसंद है
      मैं तुरंत मना कर देता हूं, और अगर उसके चलते ऐप की functionality खराब हो जाए तो ऐप भी हटा देता हूं
      Google Maps का बार-बार precise location services चालू करने को कहना, यह पूछना कि क्या मैं किसी दोस्त की जगह navigation कर रहा हूं, और contacts access allow करने को कहना भी मुझे मंजूर नहीं
    • com.apple.developer.networking.HotspotHelper को iOS में कहां revoke किया जा सकता है
      Settings → Privacy & Security → Local Network में, या किसी और item में
    • तो आखिरकार Apple ही तय करता है कि कौन-सी कंपनी मेरा location data ले सकती है। बढ़िया
 
ndrgrd 2023-12-23

जो कंपनी privacy को अपना sales point बताकर आगे बढ़ाती है, वही पीछे से user notifications और location जानकारी चुरा रही है।

 
joyfui 2023-12-22

मुझे लगा था कि वह फीचर ब्लॉक है, इसलिए मेट्रो में चढ़ने-उतरने की अलर्ट संभव नहीं है, लेकिन पता चला कि यह फीचर पहले से मौजूद था। फिर सिर्फ iPhone में ही यह क्यों नहीं काम करता...