2 पॉइंट द्वारा GN⁺ 2025-01-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • go-haystack एक Go/TinyGo-आधारित टूलसेट है, जो Apple के Find My नेटवर्क के ज़रिए निजी Bluetooth डिवाइसों को ट्रैक करने की सुविधा देता है
  • यह OpenHaystack और Macless-Haystack को साथ में इस्तेमाल करके कस्टम FindMy नेटवर्क बनाता है, और इसे Apple हार्डवेयर के बिना भी सेटअप किया जा सकता है
  • यह TinyGo और TinyGo Bluetooth package से लिखी गई beacon firmware देता है, जो nRF SoftDevice बोर्ड, BBC Microbit, Seeed Studio XIAO nRF52840, ESP32 सह-प्रोसेसर बोर्ड, और RP2040 Pico-W जैसे हार्डवेयर को सपोर्ट करती है
  • Bluetooth हार्डवेयर वाले Linux पर भी वही beacon कोड चलाया जा सकता है, और Raspberry Pi या embedded system भी इसमें शामिल हैं
  • उपयोगकर्ता Apple ID, SMS-आधारित 2FA, anisette-v3-server, Macless-Haystack सर्वर, और haystack CLI तैयार करने के बाद key generation, firmware flashing, और JSON upload वाले फ्लो से डिवाइस रजिस्टर करते हैं

go-haystack की भूमिका

  • go-haystack Apple के Find My नेटवर्क के ज़रिए निजी Bluetooth डिवाइसों को ट्रैक करने में मदद करता है
  • यह OpenHaystack और Macless-Haystack को साथ में इस्तेमाल करके कस्टम FindMy नेटवर्क सेट करता है
  • यह टूल Go/TinyGo में लिखा गया है और Apple हार्डवेयर के बिना इस्तेमाल किया जा सकता है

अपना beacon बनाना

Linux beacon और TinyScan

  • Bluetooth हार्डवेयर वाले Linux पर भी beacon कोड चलाया जा सकता है
    • Raspberry Pi या अन्य embedded system इसके उदाहरण हैं
    • embedded Linux के लिए कोड, माइक्रोकंट्रोलर वाले beacon कोड के समान है और रिपॉज़िटरी की firmware डायरेक्टरी में मौजूद है
  • go-haystack में लोकल डिवाइसों के लिए TinyScan नाम का हार्डवेयर स्कैनर भी शामिल है
    • TinyScan, Bluetooth और छोटे डिस्प्ले वाले कई माइक्रोकंट्रोलर बोर्ड पर चलता है
    • Adafruit और Pimoroni के बनाए बोर्ड उदाहरण के तौर पर दिए गए हैं
    • कोड tinyscan डायरेक्टरी में है

इंस्टॉलेशन के लिए आवश्यक घटक

  • Apple ID आवश्यक है और 2FA सक्षम होना चाहिए
    • दूसरे authentication factor के रूप में केवल SMS/टेक्स्ट मैसेज सपोर्टेड है
  • anisette-v3-server को Docker से चलाया जाता है
    • उदाहरण कमांड में mh-network Docker नेटवर्क बनाना और dadoum/anisette-v3-server कंटेनर को 6969 पोर्ट पर चलाना शामिल है
  • macless-haystack endpoint को interactive mode में चलाकर कॉन्फ़िगर किया जाता है
    • सेटअप के दौरान Apple ID, पासवर्ड, और 2FA दर्ज किए जाते हैं
    • serving at port 6176 over HTTP दिखने पर सेटअप पूरा माना जाता है
    • सेटअप के बाद प्रोसेस बंद करके docker restart macless-haystack से सर्वर दोबारा शुरू किया जाता है
  • go-haystack CLI को इस कमांड से इंस्टॉल किया जाता है
go install github.com/hybridgroup/go-haystack/cmd/haystack@latest

उपयोग का फ्लो

  • लोकल रेंज के भीतर मौजूद डिवाइसों को haystack scan से स्कैन किया जाता है
    • आउटपुट में Bluetooth address, signal value, identifier जैसे डेटा, और battery status शामिल होते हैं
  • नया डिवाइस जोड़ने के लिए पहले उसके लिए key बनाई जाती है
haystack keys DEVICENAME
  • key generation के बाद DEVICENAME.keys फ़ाइल और Haystack कॉन्फ़िगरेशन के लिए DEVICENAME.json फ़ाइल सेव होती है
    • DEVICENAME की जगह वास्तविक डिवाइस नाम इस्तेमाल किया जाता है
  • हार्डवेयर पर TinyGo target और डिवाइस नाम देकर flash किया जाता है
haystack flash DEVICENAME nano-rp2040
  • यह कमांड TinyGo का उपयोग करके keys शामिल firmware को compile करती है और डिवाइस पर flash करती है
  • अंत में उस डिवाइस की JSON फ़ाइल को चल रही macless-haystack instance में web UI के ज़रिए upload किया जाता है
    • वेब ब्राउज़र में Macless-Haystack वेब ऐप खोलें, फिर “Accessories” लिंक और “+” बटन के माध्यम से DEVICENAME.json फ़ाइल चुनें
    • यह वेब ऐप एक single-page application है, जो केवल लोकल डेटा पढ़ती और लिखती है

लोकेशन डेटा दिखाना

  • जब डिवाइस किसी iPhone की रेंज में आता है, तो कुछ समय बाद Macless-Haystack डेटा web UI में दिखाई देने लगता है
  • पहला डेटा दिखने में थोड़ा समय लग सकता है

1 टिप्पणियां

 
GN⁺ 2025-01-12
Hacker News की टिप्पणियाँ
  • वाकई कमाल है। ऐसे प्रयोग और Find My नेटवर्क हर बार देखकर हैरानी होती है, लेकिन मैं खुद इस तरीके का इस्तेमाल इसलिए नहीं करता क्योंकि लगता है कि कभी न कभी Apple या तो ऐसे नेटवर्क hitchhiking को आधिकारिक रूप से स्वीकार कर लेगा, या उल्टा इससे जुड़े इतिहास वाले Apple ID को बैन भी कर सकता है
    अभी Apple को इसके बारे में पता है, फिर भी वह किसी भी दिशा में अपनी स्थिति साफ़ नहीं कर रहा। जब तक Apple इसे ज़्यादा आधिकारिक समर्थन न दे, या ऐसा कोई तरीका न आए जो मेरे Apple ID/अकाउंट से सीधे जुड़ा न हो, तब तक मैं सिर्फ़ देखता रहूँगा

    • किसी खास टैग की लोकेशन रिक्वेस्ट करने की प्रक्रिया Apple Account से बंधी नहीं है। README के मुताबिक macless haystack में लॉगिन करते समय बस एक burner account इस्तेमाल कर लो
    • मुझे लगता है Apple के इसे नज़रअंदाज़ करने का एक सकारात्मक असर भी है। जितना यह नेटवर्क बड़ा होगा, उतना adoption भी बढ़ेगा, और अगर P2P को ऊपरी संरचना की तरह देखें तो यह किसी एक vendor से बड़ा मुद्दा है, इसलिए किसी भी तरह adoption बढ़ना शायद स्वीकार करने लायक समझौता हो सकता है
      खासकर क्योंकि Apple को खुद काम नहीं करना पड़ता, इसलिए अभी adoption दबाने के बजाय वह आखिरकार mesh density का ज़्यादा फ़ायदा उठाना चाहेगा
  • पिछले साल गर्मियों में मैं और मेरी पत्नी Portugal में छुट्टियों पर थे, और एयरपोर्ट जाते समय Uber में पत्नी अपना बटुआ छोड़ गई। ड्राइवर को बटुआ मिला, उसने 20 डॉलर और कुछ गहने निकाल लिए और उसे फेंक दिया, लेकिन उसी दिन देर में हमने AirTag से उसे एक बंद पड़े पार्किंग लॉट तक ट्रैक किया और Location ऐप से ढूँढ़ निकाला
    उसके बाद से हम हर बैग में AirTag रखते हैं और बैटरी भी तय समय पर बदलते हैं

    • मैंने भी अपने हर बैग में AirTag डाल रखा है। कुछ साल पहले Sydney एयरपोर्ट के lost luggage area में मैंने घंटों एयरलाइन और एयरपोर्ट से पूछताछ करने के बाद उस बैग का इंतज़ार किया था, जिसके वहाँ होने का पता चला था
      वहाँ एक और आदमी ने कहा कि उसका सामान भी वहीं है; एक महीने पहले New Zealand में फ़्लाइट से evacuate करते समय वह अपना iPad सीट-पॉकेट में छोड़ आया था और Find My से उसे Sydney तक ट्रैक किया था। वह महीने में कई बार international flights लेता है और उसका कहना था कि AirTag उसकी सबसे बेहतरीन चीज़ है। उसके बाद से उसने हर कार, हर बैग, और चोरी हो सकने वाली महँगी चीज़ों के अंदर कुछ decoy tags भी छिपाकर रख दिए हैं
    • आपको कैसे पता कि यह ड्राइवर ने किया था, बाद में उसकी गाड़ी में बैठे किसी दूसरे यात्री ने नहीं?
  • यह पढ़कर भी मुझे पूरी तरह समझ नहीं आया। क्या इसे Apple AirTag के साथ इस्तेमाल कर सकते हैं, या फिर अपना अलग tracking device बनाना पड़ेगा?

  • https://media.ccc.de/v/38c3-find-my-101

  • आगे चलकर अच्छा होगा अगर beacon की लोकेशन 1 घन मीटर से कम सटीकता के साथ पता चल सके
    मेरी पत्नी को ADD है, इसलिए वह चीज़ें अक्सर खो देती है। Tile की आवाज़ बहुत तेज़ नहीं है और वह भरोसेमंद भी नहीं, और हमारे पास iPhone नहीं है इसलिए AirTag भी नहीं इस्तेमाल कर सकते। Bluetooth beacon की लोकेशन खोजने के लिए जो गणित चाहिए, उसे सीखने की ऊर्जा अब नहीं बचती, लेकिन काश यह हो पाता। अगर कोई ऐसा software project होता जो कहता “बस 4 छोटे Bluetooth boards और जोड़ दीजिए”, तो बढ़िया होता, लेकिन लगता है ज़्यादातर open source developers की खुजली यह नहीं है

    • AirTag और iPhone 11 या बाद का मॉडल ठीक यही समस्या हल करते हैं। आप AirTag को 1 foot के भीतर तक ढूँढ़ सकते हैं
      यह Bluetooth signal strength से नहीं, बल्कि ultra-wideband(UWB) से precise location पता करता है। यह GPS की तरह light-speed delay का इस्तेमाल करने वाले time-of-flight तरीके से काम करता है। Find My ऐप खोलते ही AirTag तक की सटीक दूरी बहुत जल्दी पता चल जाती है, और चलते-फिरते observed position changes से यह भी निकाल लेता है कि AirTag किस दिशा में है। काफ़ी शानदार तकनीक है। Find My ऐप में “Play Sound” नहीं बल्कि “Find” फीचर इस्तेमाल करना होता है, और H1 ultra-wideband chip वाला iPhone 11+ चाहिए। घर में कई Bluetooth boards लगाने की लागत के आसपास हो सकता है और काफ़ी ज़्यादा सटीक भी है, बस hack करने का मज़ा कम है
      https://en.wikipedia.org/wiki/Ultra-wideband#Real-time_locat...
    • हम दोनों भी सिर्फ़ Android इस्तेमाल करते हैं, लेकिन सोच रहे हैं कि एक टूटा-फूटा iPhone 11 या 12 mini खरीदकर सिर्फ़ AirTag precision finding के लिए रख लें
      कम से कम ultra-wideband precision location, उपलब्धता, ठीक-ठाक कीमत और reliability — इन सबको साथ देने वाला बराबरी का कोई विकल्प शायद नहीं है। हालाँकि कुछ Android डिवाइसों में UWB support दिखता है, जो शायद Tile के UWB के साथ काम कर सके: https://www.zdnet.com/article/how-to-enable-uwb-on-android-a...
    • उम्मीद है आने वाले कुछ सालों में Bluetooth Channel Sounding ज़्यादा आम हो जाएगा। कहा जाता है कि यह सभी BLE डिवाइसों को UWB जितनी सटीक नहीं, लेकिन मिलती-जुलती distance estimation दे सकता है
      https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
    • मुझे भी ADHD है और मैं लगातार चीज़ें खोता रहता हूँ, लेकिन Pebblebee tags मेरे लिए कारगर रहे हैं। मैंने चाबियों में टैग और बटुए में कार्ड रखा है, और पुराने घर की मोटी ईंट की दीवारों के बावजूद उनकी आवाज़ इतनी तेज़ है कि दूसरी मंज़िल से भी सुनाई दे जाती है
    • यहाँ “ज़रूरी गणित” से शायद मतलब fixed beacons के ज़रिए लोकेशन triangulation करना है। Apple भी आखिरकार signal पाने वाले फ़ोन की लोकेशन भेजता है, इसलिए ऐसी कहानियाँ आती हैं कि पड़ोसी के बच्चे ने बस में मिले headphones उठा लिए और पुलिस किसी गलत घर पहुँच गई
      मैंने पहले beacons के साथ थोड़ा काम किया है, और उन्हें चलाना अपने आप में काफ़ी आसान था। मैंने एक छोटा-सा प्रोग्राम लिखा था जो laptop को beacon की तरह काम करने देता था, और फ़ोन के किसी भी “Bluetooth tracker” ऐप से उस beacon तक की लगभग दूरी देख लेता था। उसके बाद बस दूरी देखते हुए चलते रहना होता है
  • अब लगता है कि इसे Mac के बिना भी इस्तेमाल किया जा सकता है? अगर ऐसा है, तो यह कमाल है। Apple ट्रैकर की कीमत तो बस कुछ यूरो ही होती है, बेशक थर्ड-पार्टी प्रोडक्ट्स के मामले में

  • शायद सिर्फ मुझे ही ऐसा लग रहा हो, लेकिन यह पूरा Find My नेटवर्क फीचर एक security nightmare जैसा दिखता है। इसकी उपयोगिता समझ में आती है, लेकिन क्या कोई खास एजेंसी Apple से यह नहीं कह सकती कि cellular coverage के बिना भी बता दो कि यह व्यक्ति कहाँ है?
    खैर, इसी वजह से मैंने Apple ecosystem से बाहर निकलने का फैसला किया, और निगरानी के लिहाज़ से यह एक बुरे सपने जैसा लगता है

    • यह सिस्टम खास तौर पर ऐसी चीज़ को असंभव बनाने के लिए डिज़ाइन किया गया है।
      टैग को अपनी लोकेशन पता नहीं होती, और वह सिर्फ अपनी rotating public key broadcast करता है। क्योंकि key रैंडम तरीके से बदलती रहती है, वैध मालिक के तौर पर आप उसका अनुमान लगा सकते हैं, लेकिन किसी तीसरे पक्ष के लिए टैग को आसानी से ट्रैक करते रहना मुश्किल होता है। दूसरे डिवाइस उस key को देखकर अपनी लोकेशन को टैग की public key से encrypt करके शेयर करते हैं। इसलिए डेटा हासिल करना काफ़ी मुश्किल है, और जब तक Apple को सिस्टम दोबारा डिज़ाइन करने और कोई दुर्भावनापूर्ण update पुश करने के लिए मजबूर न किया जाए, यह व्यावहारिक रूप से असंभव है। आम तौर पर ऐसा स्तर किसी साधारण subpoena की पहुँच से बाहर माना जाएगा
    • असंभव है। Apple को यह नहीं पता कि किसके पास कौन-सा टैग है। इसे privacy-first design के साथ बनाया गया है। मुझे पता है कि Apple गोपनीयता की बात करते हुए भी कुछ और इरादे रख सकता है, लेकिन मैंने technical design documents देखे हैं, और यह सच में काफ़ी शानदार है।
      मुझे शक है कि Samsung और Google अपने ट्रैकर्स में इस स्तर तक पहुँचे होंगे
    • https://support.apple.com/guide/security/find-my-security-se...
    • यह बताना ज़रूरी है कि Find My में दो अलग-अलग “network” हैं। एक वह नेटवर्क है जिसमें दूसरे Apple डिवाइस मेरी चीज़ें ढूँढने में मदद करते हैं, और दूसरा वह जिसमें मेरे डिवाइस अपनी लोकेशन सीधे Apple को upload करते हैं।
      Find My app इन दोनों को मिलाकर सबसे हाल की लोकेशन दिखाता है। मेरी समझ से यह प्रोजेक्ट पहले वाले का ही उपयोग करता है, और इस हिस्से में डिज़ाइन के हिसाब से साफ़ तौर पर backdoor की ज़रूरत होगी। लेकिन अगर आप सरकारी एजेंसियों के खिलाफ़ सुरक्षा की बात कर रहे हैं, तो शायद दूसरा नेटवर्क ज़्यादा चिंता का विषय है
    • अगर आपको यह security nightmare लगती है, तो आप इसे settings में बंद कर सकते हैं: Settings → your_name → Find My → device → toggle off
      अगर इसे बंद करने के बाद भी आपको यक़ीन नहीं कि यह सच में निष्क्रिय होगा, तो फिर आपको अपने पास मौजूद हर इलेक्ट्रॉनिक डिवाइस के बारे में गंभीरता से सोचना चाहिए। क्या आपको Android फ़ोन के firmware पर भरोसा है? Non-open-source modem chips पर? Java चलाने वाले SIM cards पर? क्या आपके TV remote में कोई ऐसा microphone तो नहीं है जिसके बारे में आपको पता ही नहीं? असल में बहुत से remotes में होता है। यहाँ तक कि आपके toaster में भी शायद ऐसा chip हो जो network से जुड़े DOS-युग के कंप्यूटर से ज़्यादा ताकतवर हो। मेरे वाले में तो है। आपको कैसे पता कि वह पास के Wi‑Fi से जुड़कर जानकारी नहीं भेज रहा? China/iCloud घटना के बाद मैं Apple पर पूरी तरह भरोसा नहीं करता, लेकिन बड़ी tech कंपनियों में फिर भी वही है जिस पर मैं सबसे ज़्यादा भरोसा करता हूँ