2 puan yazan GN⁺ 2025-01-12 | 1 yorum | WhatsApp'ta paylaş
  • go-haystack, Apple’ın Find My ağı üzerinden kişisel Bluetooth cihazlarını izlemeyi sağlayan Go/TinyGo tabanlı bir araç setidir
  • OpenHaystack ve Macless-Haystack’i birlikte kullanarak özel bir Find My ağı yapılandırır; Apple donanımı olmadan kurulabilir
  • TinyGo ve TinyGo Bluetooth paketiyle yazılmış beacon firmware’i sunar; nRF SoftDevice kartları, BBC Microbit, Seeed Studio XIAO nRF52840, ESP32 yardımcı işlemcili kartlar, RP2040 Pico-W gibi donanımları hedefler
  • Aynı beacon kodu Bluetooth donanımı bulunan Linux üzerinde de çalıştırılabilir; Raspberry Pi veya gömülü sistemler de hedefler arasındadır
  • Kullanıcılar Apple ID ve SMS tabanlı 2FA, anisette-v3-server, Macless-Haystack sunucusu ve haystack CLI’ını hazırladıktan sonra anahtar üretimi, firmware flash’lama ve JSON yükleme akışıyla cihazı kaydeder

go-haystack’in rolü

  • go-haystack, Apple’ın Find My ağı üzerinden kişisel Bluetooth cihazlarını izlemeyi sağlar
  • OpenHaystack ve Macless-Haystack ile birlikte özel bir Find My ağı kurar
  • Araçlar Go/TinyGo ile yazılmıştır ve Apple donanımı olmadan kullanılabilir

Kendi beacon’ınızı yapmak

Linux beacon’ı ve TinyScan

  • Bluetooth donanımı bulunan Linux üzerinde de beacon kodu çalıştırılabilir
    • Raspberry Pi veya diğer gömülü sistemler örnek olarak verilir
    • Gömülü Linux kodu, mikrodenetleyicilere yönelik beacon koduyla aynıdır ve depodaki firmware dizinindedir
  • go-haystack, yerel cihazlar için bir donanım tarayıcısı olan TinyScan’i de içerir
    • TinyScan, Bluetooth ve küçük ekranı olan çeşitli mikrodenetleyici kartlarında çalışır
    • Adafruit ve Pimoroni tarafından üretilen kartlar örnek olarak verilir
    • Kod tinyscan dizinindedir

Kurulum için gereken bileşenler

  • Bir Apple ID gerekir ve 2FA etkin olmalıdır
    • İkinci kimlik doğrulama faktörü olarak yalnızca SMS/kısa mesaj desteklenir
  • anisette-v3-server Docker ile çalıştırılır
    • Örnek komut, mh-network Docker ağını oluşturur ve dadoum/anisette-v3-server konteynerini 6969 portunda çalıştırır
  • macless-haystack endpoint’i etkileşimli modda çalıştırılarak yapılandırılır
    • Yapılandırma sırasında Apple ID, parola ve 2FA girilir
    • serving at port 6176 over HTTP görülürse yapılandırma tamamlanmış demektir
    • Yapılandırmadan sonra süreç sonlandırılır ve docker restart macless-haystack ile sunucu yeniden başlatılır
  • go-haystack CLI şu komutla kurulur
go install github.com/hybridgroup/go-haystack/cmd/haystack@latest

Kullanım akışı

  • Yerel kapsama alanındaki cihazlar haystack scan ile taranır
    • Çıktıda Bluetooth adresi, sinyal değeri, tanımlayıcı biçiminde veri ve pil durumu yer alır
  • Yeni bir cihaz eklemek için önce cihaz için anahtar üretilir
haystack keys DEVICENAME
  • Anahtar üretimi sonucunda DEVICENAME.keys dosyası ve Haystack yapılandırması için DEVICENAME.json dosyası kaydedilir
    • DEVICENAME, gerçek cihaz adıyla değiştirilerek kullanılır
  • Donanıma TinyGo hedefi ve cihaz adı belirtilerek flash atılır
haystack flash DEVICENAME nano-rp2040
  • Bu komut, TinyGo kullanarak anahtarları içeren firmware’i derler ve cihaza flash’lar
  • Son olarak ilgili cihazın JSON dosyası, çalışmakta olan macless-haystack örneğine web UI üzerinden yüklenir
    • Web tarayıcısında Macless-Haystack web uygulaması açılır ve “Accessories” bağlantısı ile “+” düğmesi üzerinden DEVICENAME.json dosyası seçilir
    • Bu web uygulaması yalnızca yerel verileri okuyup yazan tek sayfalık bir uygulamadır

Konum verilerini gösterme

  • Cihaz herhangi bir iPhone’un kapsama alanına girdiğinde, bir süre sonra Macless-Haystack verileri web UI’da görünür
  • İlk verilerin görünmesi zaman alabilir

1 yorum

 
GN⁺ 2025-01-12
Hacker News yorumları
  • Gerçekten harika. Bu tür denemeler ve Find My ağı her gördüğümde beni şaşırtıyor; ama bu yöntemi bizzat kullanmamamın nedeni, Apple’ın bir gün bu ağa yaslanmayı resmen kabul edebileceğini ya da tam tersine bununla ilişkili geçmişi olan Apple ID’leri yasaklayabileceğini düşünmem
    Şu anda Apple bunun farkında ama iki yönde de bir tutum almıyor. Apple ileride bunu daha resmî biçimde destekleyene ya da Apple ID/hesabımla doğrudan bağlantılı olmayan bir yöntem ortaya çıkana kadar sadece izlemekle yetinmeyi düşünüyorum

    • Belirli bir etiketin konumunu isteme süreci Apple Account ile bağlı değil. README’de anlatıldığı gibi macless haystack’e giriş yaparken yalnızca tek kullanımlık bir hesap kullanmak yeterli
    • Apple’ın buna göz yummasının olumlu etkileri de olabileceğini düşünüyorum. Bu ağ genişledikçe benimsenmesi de artar; P2P’yi daha üst düzey bir yapı olarak görürsek bu, tek bir satıcıdan daha büyük bir mesele, dolayısıyla benimsenmenin herhangi bir şekilde artması kabul edilebilir bir taviz olabilir
      Özellikle Apple’ın doğrudan çalışması gerekmediği için, şu anda benimsenmeyi bastırmak yerine sonunda mesh yoğunluğundan daha fazla yararlanmak isteyeceğini düşünüyorum
  • Geçen yaz eşimle Portekiz’de tatildeydik; havaalanına giden Uber’de eşim cüzdanını unuttu. Sürücü cüzdanı bulduktan sonra 20 doları ve birkaç takıyı alıp atmış; aynı günün ilerleyen saatlerinde AirTag ile terk edilmiş bir otoparka kadar takip edip Location uygulamasıyla bulduk
    O zamandan beri tüm çantalara AirTag koyuyor ve pillerini de programa göre değiştiriyorum

    • Ben de tüm çantalarıma AirTag koyuyorum. Birkaç yıl önce Sydney Havalimanı’nın kayıp bagaj bölümünde, havayolu ve havaalanıyla saatlerce uğraştıktan sonra orada olduğunu öğrendiğim çantamı beklemiştim
      O sırada başka bir adam da eşyasının orada olduğunu söyledi; bir ay önce New Zealand’da uçaktan tahliye edilirken iPad’ini koltuk cebinde bırakmış ve Find My ile Sydney’e kadar takip etmiş. Ayda birkaç kez uluslararası uçtuğunu ve AirTag’in sahip olduğu şeyler arasında en iyisi olduğunu söyledi. O günden sonra tüm arabaların, çantaların ve çalınabilecek pahalı eşyaların içine birkaç yem etiket de gizledim
    • Bunu sürücünün yaptığını, sonrasında binen başka bir yolcunun yapmadığını nasıl biliyorsunuz?
  • Bunu okuyunca da tam anlamadım. Apple AirTag ile birlikte kullanılabiliyor mu, yoksa kendi takip cihazımı mı yapmam gerekiyor?

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

  • İleride beacon konumunu 1 metreküpün altında bir doğrulukla bilebilsek iyi olurdu
    Eşimde ADD var, bu yüzden eşyalarını sık sık kaybediyor. Tile’ın sesi yüksek değil ve kararsız; iPhone’umuz olmadığı için AirTag de kullanamıyoruz. Bluetooth beacon konumunu bulmak için gereken matematiği öğrenemeyecek kadar yoruldum ama yapabilmeyi isterdim. “Sadece 4 küçük Bluetooth kartı daha ekleyin” gibi bir yazılım projesi olsa iyi olurdu; ancak çoğu açık kaynak geliştirici için bu, kaşınan yeri kaşıyan bir konu değil gibi görünüyor

    • AirTag ve iPhone 11 veya üstü tam olarak bu sorunu çözüyor. AirTag’i 1 feet içinde bulabiliyorsunuz
      Bluetooth bağlantı gücüyle değil, ultra geniş bant (UWB) ile hassas konum belirliyor. GPS gibi ışık hızı gecikmesini kullanan uçuş süresi yöntemiyle çalışıyor. Find My uygulamasını açtığınızda AirTag’e olan kesin mesafeyi çok hızlı öğreniyor; yürürken gözlenen konum değişimlerinden AirTag’in hangi yönde olduğunu da hesaplıyor. Oldukça havalı bir teknoloji. Find My uygulamasında “Play Sound” değil “Find” işlevini kullanmanız gerekiyor ve H1 ultra geniş bant çipi bulunan iPhone 11+ gerekiyor. Eve birkaç Bluetooth kartı kurmanın maliyetine benzer olabilir ve çok daha hassastır, ama hackleme eğlencesi daha az https://en.wikipedia.org/wiki/Ultra-wideband#Real-time_locat...
    • Biz de ikimiz de yalnızca Android kullanıyoruz, ama sadece AirTag hassas arama için kırık bir iPhone 11 veya 12 mini alıp bir kenarda tutmayı düşünüyoruz
      En azından ultra geniş bant hassas konum, satın alınabilirlik, makul fiyat ve kararlılığı bir araya getiren eşdeğer bir alternatif yok gibi. Öte yandan bazı Android’lerde Tile’ın UWB’siyle de çalışabilecek UWB desteği var gibi görünüyor: https://www.zdnet.com/article/how-to-enable-uwb-on-android-a...
    • Önümüzdeki birkaç yıl içinde Bluetooth Channel Sounding daha yaygınlaşsa iyi olur. Tüm BLE cihazlarına, UWB’den daha az hassas olsa da benzer bir mesafe tahmini yeteneği kazandırabileceği söyleniyor
      https://www.bluetooth.com/learn-about-bluetooth/feature-enha...
    • Bende de ADHD var ve sürekli eşya kaybediyorum; Pebblebee etiketleri işe yaradı. Anahtarlara etiket, cüzdana kart koydum; kalın tuğla duvarları olan eski bir evde bile sesi başka kattan duyulacak kadar yüksek
    • Burada sözü edilen “gereken matematik” sanırım sabit beacon’larla konumu üçgenleme anlamına geliyor. Apple bile alınan telefonun konumunu gönderdiği için, komşunun çocuğunun otobüste bulduğu kulaklık yüzünden polisin yanlış eve gitmesi gibi hikâyeler ortaya çıkıyor
      Eskiden beacon’larla biraz uğraşmıştım; çalıştırmanın kendisi oldukça kolaydı. Dizüstü bilgisayarın beacon gibi davranmasını sağlayan küçük bir program yazdım ve telefondaki herhangi bir “Bluetooth tracker” uygulamasıyla o beacon’a olan yaklaşık mesafeyi gördüm. Sonrası, mesafeye bakarak yürümekten ibaret
  • Artık Mac olmadan da kullanılabiliyor gibi mi? Öyleyse harika. Apple takip cihazları sadece birkaç avro; tabii üçüncü taraf ürünler için konuşuyorum

  • Sadece bana mı öyle geliyor bilmiyorum ama bu Find My ağ özelliğinin tamamı bir güvenlik kâbusu gibi görünüyor. Kullanışlılığını anlıyorum, ama belirli bir kurum Apple’dan, hücresel kapsama olmadan bile bu kişinin nerede olduğunu söylemesini isteyemez mi?
    Her hâlükârda bu yüzden Apple ekosisteminden çıkmaya karar verdim; gözetim açısından kâbus gibi görünüyor

    • Bu sistem tam olarak böyle şeyleri imkânsız kılacak şekilde tasarlanmış
      Etiket kendi konumunu bilmez, yalnızca kendi dönen açık anahtarını yayınlar. Anahtar rastgele değiştiği için meşru sahibi olarak siz bunu öngörebilirsiniz, ancak üçüncü bir tarafın etiketi kolayca takip etmesi zordur. Diğer cihazlar bu anahtarı görür ve kendi konumlarını etiketin açık anahtarıyla şifreleyerek paylaşır. Bu yüzden veriyi elde etmek oldukça zordur; Apple sistemi yeniden tasarlayıp kötü niyetli bir güncelleme dağıtmaya zorlanmadıkça pratikte imkânsızdır. Genelde bu seviyenin sıradan bir mahkeme celbiyle mümkün olanın ötesinde olduğu düşünülür
    • İmkânsız. Apple kimin hangi etikete sahip olduğunu bilmez. Gizlilik odaklı tasarım ile yapılmış. Apple’ın mahremiyet korumasını öne çıkarırken başka niyetleri de olduğunu biliyorum, ama teknik tasarım belgelerini gördüm ve bu oldukça iyi
      Samsung ve Google’ın kendi takip cihazlarında bu kadar ileri gidip gitmediğinden şüpheliyim
    • https://support.apple.com/guide/security/find-my-security-se...
    • Find My’da birbirinden farklı iki “ağ” olduğunu belirtmek gerekiyor. Biri, diğer Apple cihazlarının eşyalarımı bulmasına yardımcı olduğu ağ; diğeri ise kendi cihazlarımın kendi konumlarını doğrudan Apple’a yüklediği ağ
      Find My uygulaması bu ikisini birleştirip en güncel konumu gösterir. Bana kalırsa bu proje yalnızca ilkini kullanıyor gibi ve bu tarafta tasarım gereği açık bir arka kapı gerekir. Ancak devlet kurumlarına karşı savunma yapmaya çalışıyorsanız, ikinci ağ muhtemelen daha fazla dikkat etmeniz gereken kısım
    • Bunun bir güvenlik kâbusu olmasından endişeleniyorsanız ayarlardan kapatabilirsiniz: Settings → your_name → Find My → device → toggle off
      Bunu kapatınca gerçekten devre dışı kalacağına güvenmiyorsanız, sahip olduğunuz tüm elektronik cihazları derinlemesine düşünmeniz gerekir. Android telefonun firmware’ine güveniyor musunuz? Açık kaynak olmayan modem çipine? Java çalıştıran SIM karta? TV kumandasında fark etmediğiniz bir mikrofon olmadığından emin misiniz? Aslında birçok kumandada var. Tost makinenizde bile ağa bağlı DOS dönemi bilgisayarlardan daha güçlü bir çip bulunma ihtimali yüksek. Benimkinde de var. Onun yakındaki Wi‑Fi’a bağlanıp bilgi göndermediğini nasıl bilebilirsiniz? China/iCloud olayından sonra Apple’a tamamen güvenmiyorum, ama büyük teknoloji şirketleri arasında yine de en çok güvendiğim taraf o