Apple ने कुछ iOS ऐप्स को नजदीकी SSID सूची के जरिए उपयोगकर्ता की location track करने की अनुमति दी
(wingu.se)- 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 टिप्पणियां
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 क्यों दी गई
ऐसे 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 दिमाग में नहीं आती
CoreLocationAPI इस्तेमाल करता हो और यूज़र की precise location access approval पा चुका हो। चूँकि उस स्थिति में precise location पहले से मिल रही होती है, यह harmless लगता हैNEHotspotConfigurationAPI से current Wi-Fi network configure किया हो। इस लेख का scope शायद ठीक यही हैNEDNSSettingsManagerconfiguration installed हो। ठीक-ठीक क्या है नहीं पता, लेकिन VPN वाली side जैसा लगता हैसंदर्भ के लिए, इस API को इस्तेमाल करने के लिए विशेष entitlement चाहिए, और इसे पाने के लिए Apple से request कर usage purpose justify करना पड़ता है
यह कोई general-purpose API नहीं है जिसे कोई भी app इस्तेमाल कर सके
बेशक ये “super apps” हैं और Wi-Fi hotspot service भी इनके features में से एक हो सकती है, लेकिन इसी वजह से यह “local network access” की तरह यूज़र द्वारा grant की जाने वाली permission होनी चाहिए
अगर मुझे hotspot feature में रुचि नहीं है तो मैं नहीं चाहता कि app के पास वह capability हो
test app खुद इस्तेमाल किए बिना नहीं पता कि यह entitlement भी ऐसा करती है या नहीं, लेकिन मुझे लगता है कि इसे user permission पूछनी चाहिए
जिज्ञासा है कि Apple entitlement usage को analyze करता है और abuse होने पर उसे revoke करता है या नहीं
इसी तरह, याद है कि Facebook VPN “scandal” के समय Apple ने Facebook का enterprise signing certificate revoke किया था
सुनने में ऐसा लगता है जैसे कहा जा रहा हो, “चिंता मत करो, तुम या मैं इसका दुरुपयोग नहीं कर सकते, सिर्फ बड़ी कंपनियाँ और data collectors कर सकते हैं”
लगता है लेखक चीनी है इसलिए WeChat और Alipay की चिंता कर रहा है, लेकिन Facebook और Google का क्या होगा, यह जानने की इच्छा है
मुझे लगा था कि यूज़र को पहले से ही इस permission को allow करने का prompt मिलता है
आजकल ऐप्स में “local network” access allow करने के लिए पूछने के मामले काफी आते हैं, और मैं इसे local Wi‑Fi hotspot देखने की क्षमता समझकर लगभग हमेशा reject कर देता/देती हूँ
यह पोस्ट पढ़कर मैंने Spotify में भी इसे बंद कर दिया
हालांकि ज़्यादातर यूज़र नहीं जानते कि इस जानकारी से location infer की जा सकती है, इसलिए permission dialog को बेहतर बनाने की ज़रूरत है
पहली, 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 बेहद खराब है
AirPlay को इस permission की ज़रूरत नहीं होती
Documentation: https://developer.apple.com/documentation/technotes/tn3111-i...
Review छोटी spam apps को तो रोक देगा, लेकिन लेखक और दूसरे लोगों ने जैसा कहा, बड़े players को शायद नहीं रोक पाएगा
हालांकि जब permission मौजूद हो, तो यूज़र API usage reject कर सके ऐसा prompt आता है या नहीं, यह अभी भी साफ नहीं है
क्या यह पता लगाने का कोई तरीका है कि कौन-सी popular apps इसका इस्तेमाल करती हैं
यहाँ ज़्यादातर लोगों की तरह मैंने WeChat या Alipay install नहीं किया है, लेकिन Instagram, Facebook, WhatsApp, Twitter, TikTok, Snapchat, Chrome, Firefox, Photoshop, Lightroom जैसी apps को लेकर उत्सुक हूँ
कोई 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 करने के लिए जानबूझकर बनाया गया हो
लगता है 99% लोग इन्हें इस्तेमाल करते हैं या उन्हें इनकी ज़रूरत होती है, इसलिए उसने setting state track न करने का रास्ता चुना है, और Apple को Bluetooth keyboard और mouse पसंद भी हैं
अब उत्सुकता हो रही है। और किन apps के पास यह permission है
क्या यह पता लगाने का कोई तरीका है कि मेरे phone में installed apps में से किनके पास यह permission है
यह पूरी तरह locked-down platform की बड़ी समस्याओं में से एक है
Platform owner privacy का सम्मान करेगा और दूसरों की intrusion रोकेगा, इसकी guarantee आखिरकार बस pinky promise ही है
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 हो तो बदलना ठीक है
पूरी तरह sure नहीं हूँ, लेकिन article पढ़ने के बाद मौजूदा title तथ्य जैसा ठीक से नहीं लगता
NEHotspotHelperका उपयोग करने के लिए आवेदन करके मिलने वाली विशेष entitlementcom.apple.developer.networking.HotspotHelperचाहिए, और अगर ऐप के पास इसके लिए वैध जरूरत न हो तो Apple शायद इसे नहीं देगाहालांकि यह Apple की privacy रणनीति और WeChat, Alipay जैसे superapps के बीच असंगति दिखाता लगता है
जब कोई कंपनी सारी सुविधाओं को एक ही ऐप में ठूंस देती है, तो वह ऐप अचानक हर permission पा लेता है, और संवेदनशील डेटा कब और कैसे इस्तेमाल हो रहा है, यह समझना मुश्किल हो जाता है
पश्चिमी देशों में आम तौर पर ऐप इस तरह नहीं बनाए जाते। उदाहरण के लिए Comcast के पास अलग “WiFi Hotspots” ऐप है
मजेदार बात यह है कि दो दिन पहले ही उन्होंने पोस्ट किया कि वे उस फीचर को मुख्य Xfinity ऐप में मिला रहे हैं, तो शायद पश्चिम भी अब पीछे-पीछे आ रहा है
मैं तुरंत मना कर देता हूं, और अगर उसके चलते ऐप की functionality खराब हो जाए तो ऐप भी हटा देता हूं
Google Maps का बार-बार precise location services चालू करने को कहना, यह पूछना कि क्या मैं किसी दोस्त की जगह navigation कर रहा हूं, और contacts access allow करने को कहना भी मुझे मंजूर नहीं
com.apple.developer.networking.HotspotHelperको iOS में कहां revoke किया जा सकता हैSettings → Privacy & Security → Local Network में, या किसी और item में
जो कंपनी privacy को अपना sales point बताकर आगे बढ़ाती है, वही पीछे से user notifications और location जानकारी चुरा रही है।
मुझे लगा था कि वह फीचर ब्लॉक है, इसलिए मेट्रो में चढ़ने-उतरने की अलर्ट संभव नहीं है, लेकिन पता चला कि यह फीचर पहले से मौजूद था। फिर सिर्फ iPhone में ही यह क्यों नहीं काम करता...