2 पॉइंट द्वारा GN⁺ 2025-01-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • OpenHaystack Apple के Find My नेटवर्क का उपयोग करके निजी Bluetooth डिवाइसों को ट्रैक करने वाला एक framework है, जिससे Mac और BBC micro:bit या Bluetooth-सक्षम डिवाइस के साथ अपना खुद का ट्रैकिंग टैग बनाया जा सकता है
  • जब आसपास का iPhone OpenHaystack accessory के BLE advertisement को खोजता है, तो वह लोकेशन को encrypt करके Apple server पर upload करता है, और OpenHaystack उस लोकेशन रिपोर्ट को download करके decrypt कर मैप पर दिखाता है
  • यह प्रोजेक्ट TU Darmstadt Secure Mobile Networking Lab के Find My नेटवर्क के reverse engineering और security analysis का परिणाम है, और लोकेशन डेटा एक्सेस से जुड़ी कमजोरी CVE-2020-9986 को Apple ने ठीक कर दिया है
  • macOS app लोकेशन रिपोर्ट पाने के लिए Apple Mail plugin का उपयोग करता है, और इंस्टॉलेशन के दौरान Gatekeeper को अस्थायी रूप से disable करना पड़ता है तथा उपयोग के समय Mail खुला रखना होता है
  • यह experimental software है, इसलिए कोड का पूरा परीक्षण नहीं हुआ है और यह अधूरा है; दिए गए firmware-आधारित accessory fixed public key broadcast करते हैं, इसलिए आसपास के दूसरे डिवाइसों से भी उनका ट्रैक होना संभव हो सकता है

OpenHaystack क्या करता है

  • OpenHaystack Apple के Find My नेटवर्क के माध्यम से निजी Bluetooth डिवाइसों को ट्रैक करने वाला एक framework है
  • उपयोगकर्ता अपना खुद का ट्रैकिंग टैग बनाकर उसे keychain, backpack जैसी वस्तुओं पर लगा सकते हैं या laptop जैसे Bluetooth-सक्षम डिवाइस में integrate कर सकते हैं
  • इसके लिए Mac और BBC micro:bit या कोई अन्य Bluetooth-सक्षम डिवाइस चाहिए
  • cellular connection न होने पर भी आसपास का iPhone accessory को खोज सकता है और नेटवर्क कनेक्शन मिलने पर उसकी लोकेशन Apple server पर upload कर देता है

शोध पृष्ठभूमि और security analysis

  • OpenHaystack, Apple के Find My network या offline finding पर किए गए reverse engineering और security analysis के परिणामों पर आधारित है
  • TU Darmstadt की Secure Mobile Networking Lab ने जून 2019 में Apple द्वारा offline finding की घोषणा के बाद इसका analysis शुरू किया
  • यह system निम्न तत्वों को जोड़ता है
    • Bluetooth advertisement

      • public-key cryptography
      • encrypted location report का केंद्रीय database
      • analysis के दौरान दो vulnerabilities मिलीं
      • सबसे गंभीर vulnerability ने malicious application को लोकेशन डेटा तक पहुँचने की अनुमति दी
      • इस vulnerability को Apple ने ठीक किया और इसे CVE-2020-9986 के रूप में पहचाना गया
      • संबंधित security और privacy analysis PoPETs 2021 के पेपर Who Can Find My Devices? Security and Privacy of Apple's Crowd-Sourced Bluetooth Location Tracking System में शामिल है

experimental software होने की सीमाएँ

  • OpenHaystack experimental software है और इसका कोड पूरी तरह tested नहीं है तथा यह अधूरा है
  • दिए गए firmware का उपयोग करने वाले OpenHaystack accessory fixed public key broadcast करते हैं
    • इस वजह से आसपास के दूसरे डिवाइस भी उन्हें ट्रैक कर सकते हैं
    • यह व्यवहार भविष्य की release में बदल सकता है
  • OpenHaystack, Apple Inc. से संबद्ध नहीं है और न ही Apple द्वारा endorsed project है

components और उपयोग प्रवाह

  • OpenHaystack दो components से बना है
    • macOS application: निजी Bluetooth डिवाइस की आखिरी reported location दिखाता है
    • firmware image: Bluetooth डिवाइस को ऐसा beacon broadcast करने देता है जिसे iPhone खोज सके
  • system requirement macOS 11 Big Sur है
  • नया accessory बनाते समय उपयोगकर्ता नाम दर्ज करता है और वैकल्पिक रूप से icon और color चुनता है
    • app location report के encryption और decryption के लिए एक नई key pair बनाता है
    • private key Mac के keychain में store होती है
  • डिवाइस deployment के लिए supported device को USB से Mac से जोड़कर app का Deploy button इस्तेमाल किया जाता है
    • integrated deployment की बजाय advertisement में इस्तेमाल होने वाली public key को copy करके manual deployment भी किया जा सकता है
  • मैप पर पहली location report दिखने में अधिकतम 30 मिनट लग सकते हैं
    • मैप सभी items की latest location दिखाता है
    • हर item पर क्लिक करके उसका आखिरी update received time देखा जा सकता है
    • reload button से location report refresh की जा सकती है

Mail plugin और इंस्टॉलेशन तरीका

  • OpenHaystack app, Apple server से location report download करने के लिए Apple Mail के लिए custom plugin मांगता है
  • यह plugin private API के उपयोग के लिए Apple Mail की permissions inherit करके काम करता है
  • इंस्टॉलेशन प्रक्रिया में Gatekeeper को अस्थायी रूप से disable करना पड़ता है
    • sudo spctl --master-disable से Gatekeeper बंद करें
    • Mail की Preferences → General → Manage Plug-Ins में OpenHaystackMail.mailbundle को enable करें
    • इसके बाद sudo spctl --master-enable से Gatekeeper फिर चालू करें
  • कहा गया है कि plugin email जैसे अन्य निजी डेटा तक पहुँच नहीं करता
  • location report download के दौरान OpenHaystack app plugin से communicate करता है, इसलिए Mail खुला रखना ज़रूरी है

Find My नेटवर्क कैसे काम करता है

  • OpenHaystack, Apple के offline finding system को चार चरणों में समझाता है
  • Pairing

    • Find My नेटवर्क के उपयोग के लिए P-224 elliptic curve आधारित public/private key pair बनाई जाती है
    • private key को Mac keychain में सुरक्षित रखा जाता है
    • public key को micro:bit जैसे accessory पर deploy किया जाता है
  • Lost state

    • accessory public key को Bluetooth Low Energy advertisement के रूप में broadcast करता है
    • आसपास का iPhone OpenHaystack accessory को असली Apple डिवाइस या certified accessory से अलग नहीं पहचान सकता
  • Discovery

    • आसपास का iPhone जब BLE advertisement प्राप्त करता है, तो GPS से वर्तमान लोकेशन लेता है
    • iPhone advertisement में शामिल public key से लोकेशन encrypt करता है और encrypted report को Apple server पर upload करता है
    • iOS 13 या उसके बाद के iPhone यह काम default रूप से करते हैं
    • इस चरण में OpenHaystack शामिल नहीं होता
  • Retrieval

    • Apple को यह पता नहीं होता कि कौन-सी encrypted location किस Apple account या डिवाइस की है
    • संबंधित public key पता होने पर Apple user कोई भी location report download कर सकता है
    • report end-to-end encrypted होती है, इसलिए private key के बिना उसे decrypt नहीं किया जा सकता
    • OpenHaystack, OpenHaystack accessory के लिए report Apple से download करता है, Mac keychain में stored private key से उसे decrypt करता है, और फिर मैप पर latest location दिखाता है
    • Apple केवल authenticated Apple users को location report download करने देता है, ताकि database की arbitrary access सीमित रहे

supported devices और विस्तार

  • सिद्धांततः Bluetooth डिवाइस को Apple Find My नेटवर्क से ट्रैक किए जा सकने वाले OpenHaystack accessory में बदला जा सकता है
  • फिलहाल सुविधाजनक firmware deployment केवल कुछ embedded devices पर supported है
  • Linux डिवाइस सामान्य HCI script के साथ supported हैं
  • support के उदाहरण इस प्रकार हैं
    • Nordic nRF51: BBC micro:bit v1 पर tested, app deployment supported, फिलहाल केवल nRF51822 supported
    • Espressif ESP32: ESP32-WROOM, ESP32-WROVER पर tested, app deployment supported, deployment में अधिकतम 3 मिनट लग सकते हैं और Python 3 चाहिए
    • Linux HCI: Raspberry Pi 4 और Raspbian पर tested, सभी Linux machines को support करना चाहिए
  • इसे Bluetooth Low Energy support करने वाले अन्य डिवाइसों पर port किया जा सकता है, और इसके लिए firmware source code तथा paper specification का आधार लिया जा सकता है

OpenHaystack Mobile

  • OpenHaystack Mobile ऐसा app है जो OpenHaystack macOS application का smartphone के लिए पूरा reimplementation है
  • यह accessory creation और tracking features देता है, और खास तौर पर नए उपयोगकर्ताओं की usability बेहतर बनाना इसका लक्ष्य है
  • macOS app से अलग, smartphone पर location report सीधे प्राप्त नहीं की जा सकती
    • Find My नेटवर्क तक पहुँचने के लिए Mac hardware पर hosted proxy server की आवश्यकता होती है
    • proxy server तक नेटवर्क के जरिए कई उपयोगकर्ता एक साथ पहुँच सकते हैं
  • proxy server से connect करने के लिए openhaystack-mobile/lib/findMy/reports_fetcher.dart में सही URL सेट करना होगा
  • OpenHaystack Mobile Flutter framework में बनाया गया है और Android तथा iOS पर चलता है

लाइसेंस और संदर्भ सामग्री

1 टिप्पणियां

 
GN⁺ 2025-01-28
Hacker News की राय
  • अच्छा हो अगर Apple यूज़र न होने वालों के लिए भी कोई बेहतर विकल्प हो। जो सुना है, उसके मुताबिक Google का वर्ज़न उम्मीद के हिसाब से काफी खराब है
    अपने टैग को खोजने की frequency पर सीमा है, कई फोन द्वारा detect किए जाने से पहले location नहीं दिखाता, और coverage भी खराब है
    एक test में Samsung network बेहतर निकला, लेकिन यह समझ में नहीं आता, क्योंकि Samsung फोन तो Google network में मौजूद सभी Android फोन का सिर्फ एक subset होने चाहिए। Theory में अच्छा दिखने के बावजूद, Apple ने तरीका दिखा दिया था उसके कई साल बाद भी execution बेहद खराब है—बिलकुल Google product जैसा
    https://security.googleblog.com/2024/04/find-my-device-netwo...
    https://9to5google.com/2024/08/01/find-my-device-stress-test...
    https://9to5google.com/2024/08/03/google-android-find-my-dev...
    https://www.androidcentral.com/accessories/testing-new-googl...

    • यह लगभग अविश्वसनीय है कि Google के Find network के ज़िम्मेदार लोगों ने privacy protection को प्राथमिकता देते हुए product के इकलौते काम को ही खराब कर दिया
      इस choice से Google को actual performance कितनी खराब है यह verify होने से पहले “innovative” privacy improvements पर कुछ articles तो मिल गए, लेकिन उसने Apple से इस क्षेत्र में compete करने का मौका गंवा दिया और Android/Pixel ecosystem व market share पर भी बुरा असर डाला। इस level की अक्षमता गढ़ना भी मुश्किल है
    • यकीन करना मुश्किल है कि Google ने network को इतना खराब कर दिया। Android share की वजह से इसे Apple network को आसानी से पछाड़ देना चाहिए था
      एक nomadic traveller के तौर पर Apple network मेरे लिए खास उपयोगी नहीं है। मैं उन अमीर शहरों में नहीं घूमता जहां Apple फोन बहुत हैं, बल्कि “बाकी दुनिया” में जाता हूं जहां Android share 90% के करीब है। फिर भी वहां भी Apple, Google से बेहतर करता दिखता है
    • मैंने अपनी चाबियों में एक लगा रखा था, और जब एक बार इसे इस्तेमाल करने की कोशिश की तो कई बार refresh करने के बाद भी इसने बस 0.25 mile radius वाला circle दिखाया
      असल में वह ठीक बगल वाले bag के अंदर था
    • Samsung का solution subset नहीं, बल्कि अलग और बेहतर तरीका है
      बहुत दूरदराज़ देशों के airports या गांवों में भी मेरे 2 tags ठीक से मिल जाते हैं, इसलिए तसल्ली रहती है। यह video भी यही conclude करता है कि iPhone users के लिए भी Samsung SmartTag सबसे अच्छा है
      https://m.youtube.com/watch?v=9wefUV_bR0Y
    • लगता है Google को भी बस Find My पर ही चढ़ जाना चाहिए
  • Code देखने पर लगता है कि FindMy network के devices द्वारा collect की गई locations लाने के लिए personal Apple Mail permission इस्तेमाल हो रही है
    https://github.com/seemoo-lab/openhaystack/blob/8d214aa5eb68...
    सोच रहा हूं कि Apple developer account बनाने पर क्या यह भी संभव होगा

    • ऐसे versions हैं जिनमें Apple Mail के साथ interaction की जरूरत नहीं पड़ती
      जरूरत सिर्फ Apple account की है, और Apple hardware पर code चलाने की भी जरूरत नहीं
      https://github.com/biemster/FindMy
  • मैं वह material फिर ढूंढना चाहता हूं जो पहले देखा था। Apple users को “ऐसा tag जो आपका पीछा कर सकता है” के बारे में alert करता है, लेकिन याद है कि किसी ने key derivation function (KDF) से MAC address या private key जैसी चीजों को rotate करने वाला implementation बनाया था, और वे derived values इतनी predictable थीं कि उन्हें track किया जा सके
    जहां मैं रहता हूं वहां छोटी-मोटी चोरी की समस्या वाकई बहुत ज्यादा है, इसलिए टूटे शीशे बार-बार ठीक करने या जबरन घुसने के निशान साफ करने में काफी समय जाता है। मेरा किसी से सीधे भिड़ने का बिल्कुल इरादा नहीं है, लेकिन कभी किसी private investigator या law enforcement को देने लायक movement trail बनाना चाहता हूं

    • GPS cellular tracker खरीद लें और बहुत सस्ता, यहां तक कि free IoT SIM इस्तेमाल कर लें
      या फिर पानी की bottles का एक crate लेकर नजदीकी drug addicts के meeting spot पर जाएं और उनसे कहें कि आपका सामान चुराना बंद करें
    • जहां तक मुझे पता है, AirTag भी वैसे भी private key rotate करता है, इसलिए नहीं पता कि वह problem solve करने में मदद करेगा या नहीं
      हालांकि rotation period धीमा हो सकता है, और exact algorithm मुझे ठीक से नहीं पता
    • मेरी submissions list में OpenHaystack और उसके alerts के बारे में लिखे post का link है। Summary यह है कि कुछ समय तक कार में रखे OpenHaystack-based tracker के बारे में iOS ने एक बार भी warning नहीं दी
      हालांकि यह कुछ साल पहले की बात है, इसलिए अब चीजें बदल गई होंगी
  • अपनी अस्थिर प्रक्रिया से लोकेशन लाने के बजाय Find My ऐप के साथ integrate करने का कोई तरीका हो तो अच्छा होगा
    चीनी clones अपने-अपने brand के नाम से भी चल सकते हैं, इसलिए किसी न किसी तरह यह संभव होना तय लगता है

    • यहां यह Apple के walled garden जैसा दिखता है। पहले official partners के लिए Apple specs पढ़े थे; pairing process में device, Apple द्वारा उस developer को जारी किए गए certificate/key से किसी चीज़ पर sign करता है। अहम बात यह है कि यह contract, यानी पैसे के बाद मिली key होती है, और वास्तविक broadcast में इस्तेमाल होने वाली key pair से अलग होती है
      उस signature को Apple verify करता है, इसलिए उसे उस Apple ID account और app में add किया जा सकता है। दूसरी तरफ lost mode में devices जो keys broadcast करते हैं वे arbitrary और पूरी तरह opaque होती हैं, इसलिए Apple के पास भी उन्हें ID, device या developer से जोड़ने का कोई तरीका नहीं होता। यह project काम इसलिए करता है क्योंकि वे keys अंततः Apple servers तक पहुंचती हैं
      clones ने pairing process के लिए legitimate key चुराई हुई लगती है। अगर Apple चाहे और उस key को खोज निकाले, तो शायद सभी accounts से सभी devices हटा सकता है, लेकिन device खुद broadcast करना जारी रखेगा और ऊपर वाले crude तरीके से location access की जा सकेगी। यह भी सोचता हूं कि असली key owner को बाद में, अगर Apple database में “इस key से sign होकर Apple ID में add हुए devices की संख्या” गिने, तो प्रति-device royalty का बड़ा bill मिल सकता है या नहीं
    • “चीनी clones” official supported products हैं, और तरीका यहां है: https://developer.apple.com/find-my/
    • चीनी clones Apple Find My Program का उपयोग करते हैं, इसलिए वे app में दिख सकने वाले official tags हैं
      OpenHaystack दूसरी key इस्तेमाल करने वाला hack है, इसलिए cryptographic वजहों से app में नहीं दिख सकता
    • क्या clones पर भी limitations नहीं हैं? उदाहरण के लिए, मुझे याद है कि Precision Finding जैसी feature नहीं होती, हालांकि हो सकता है मैंने कहीं और पढ़ी बात गलत याद रखी हो
  • वाकई शानदार। मुझे Apple AirTag पसंद है, लेकिन यह बहुत मोटा है और shape भी awkward है
    wallet में रखने लायक credit card-form AirTag हो तो अच्छा होगा, और cat collar में लगाने के लिए और छोटा AirTag भी अच्छा रहेगा

    • Temu या Aliexpress पर लगभग 5 डॉलर में third-party Find My-compatible tags मिल सकते हैं। size सामान्य AirTag जैसा ही है, लेकिन अगर case हटाना हो तो इन्हें खोलना आसान और सस्ता है
      मेरे पास मौजूद एक को case से निकालकर देखा कि क्या चीज़ इसे और पतला बना सकती है; thickness का ज़्यादातर हिस्सा CR2032 battery holder, speaker और button की वजह से था। initial setup के बाद speaker और button शायद हटाए जा सकते हैं, और अगर पतला card-form factor चाहिए तो battery holder भी हटाकर ऊपर से नहीं बल्कि side से power दी जा सकती है
    • wallet में फिट होने वाले ultra-thin AirTag-compatible cards पहले से हैं
    • यह मेरी 8.5-pound वज़न वाली calico cat की AirTag वाली तस्वीर है, जिसे वह 3 महीने की उम्र से collar पर पहन रही है
      https://imgur.com/a/r9EGSOc
      तस्वीर अभी-अभी Meta Stories glasses से ली है
    • मैं अपने dog के लिए यह इस्तेमाल कर रहा हूं और यह बहुत minimal है
      https://www.amazon.com/gp/product/B09DCVFNFF/
      हालांकि AirTag holder से मुड़कर बाहर न निकल जाए, इसलिए इसे transparent tape से लपेटना पड़ा
  • विस्तार से जांच नहीं की है, लेकिन सोच रहा हूं कि क्या इसका उपयोग करके small arbitrary data payload piggyback करके भेजा जा सकता है

    • हां, संभव है। हाल ही में AirTag network का उपयोग करके hardware keylogger data transmit करने वाला एक project था
      computer पूरी तरह air-gapped हो तब भी typing करने वाले व्यक्ति के iPhone के जरिए data वापस जा सकता है
    • मैंने इसका उपयोग mailbox status track करने के एक case में देखा था। mailbox के अंदर contact sensor trigger count के हिसाब से broadcast key rotate करता है
      key बदलकर अगर कोई नया अलग device दिखे, तो मतलब mail आ गई है—काफी clever
  • उत्सुक हूं कि एक single device Apple servers पर कितना maximum data upload करा सकता है। अगर Apple device में cellular या Wi-Fi न हो, तो वह location ping history device पर कितनी देर तक रहती होगी?
    और यह भी सोच रहा हूं कि यहां denial-of-service attack की संभावना है या नहीं। attacker 10 लाख से ज्यादा Bluetooth devices की नकल करे, और victim संयोग से पास से गुजरे, तो एक जगह बहुत बड़ी संख्या में devices दिखें, phone hang हो जाए और Apple servers पर लगातार upload करता रहे

  • वैसे, क्या iPhone या Mac जैसे किसी दूसरे Apple device के बिना इससे वास्तविक AirTag setup किया जा सकता है?

  • पिछली post: https://news.ycombinator.com/item?id=26342504

  • क्या इन्हें वास्तविक Apple Find My app के साथ pair करके app के अंदर find किया जा सकता है?