2 puan yazan GN⁺ 2024-08-20 | 1 yorum | WhatsApp'ta paylaş
  • FindMy Flipper, FlipperZero'nun Bluetooth özelliklerini genişleterek Apple AirTag, Samsung SmartTag ve Tile Tracker gibi çalışmasını sağlayan bir uygulamadır
  • FlipperZero'nun BLE beacon özelliğiyle SmartTag sinyallerini yayınlar; mevcut etiketleri klonlayabilir veya OpenHaystack anahtar çiftleri oluşturarak Apple FindMy ağıyla entegre olabilir
  • Mevcut etiket klonlama yöntemi, AirTag, Samsung SmartTag ve Tile Tracker'ın MAC adresi ve payload verilerini alıp yerel uygulamalarla izlemeyi mümkün kılar; ancak AirTag'e pil yeniden takılırsa anahtar dönebilir ve Flipper'ın mevcut anahtarı geçersiz hale gelebilir
  • AirTag anahtarı oluşturma yöntemi, gerçek bir AirTag veya Apple cihazı olmadan da kullanılabilir; ancak Docker Desktop, Python ve Git gerekir, ayrıca konum verisi almak için bir bilgisayar ve Apple ID kimlik doğrulaması kullanır
  • Uygulama arka planda çalışmayı ve beacon aralığıyla iletim gücü ayarını destekler; kullanıcılar izleme cihazlarıyla ilgili gizlilik mevzuatına ve orijinal cihaz sahipliğine saygı göstermelidir

FlipperZero'yu bir takip etiketi gibi kullanan uygulama

  • FindMy Flipper, FlipperZero'nun Apple AirTag, Samsung SmartTag ve Tile Tracker'ı emüle etmesini sağlayan bir uygulamadır
  • FlipperZero'nun BLE beacon özelliğini kullanarak FindMy Network tarafından algılanabilecek SmartTag sinyalleri yayınlar
  • Hedeflenen işlevler şunlardır
    • Mevcut Apple AirTag, Samsung SmartTag ve Tile Tracker cihazlarını FlipperZero'ya klonlamak
    • Gerçek bir AirTag olmadan FindMy ağı için OpenHaystack anahtar çifti oluşturmak
    • FlipperZero'nun konumunu sürekli izlemek

Başlıca özellikler

  • Etiket emülasyonu

    • Mevcut etiketlerin MAC adresi ve payload verileri klonlanabilir
    • Gerçek bir AirTag sahibi olmadan da FindMy ağı için anahtar çifti oluşturulabilir
  • Kullanıcı ayarları

    • Beacon yayın aralığı ayarlanabilir
    • Görünürlük ve pil ömrü arasında denge kurmak için iletim gücü değiştirilebilir
  • Arka plan çalışması

    • Uygulama arka planda çalışacak şekilde optimize edilmiştir
    • FlipperZero'nun normal kullanımını durdurmadan, düşük pil tüketimiyle izlemeyi sürdürmek için tasarlanmıştır

Kurulum yöntemi

  • Kurulum iki şekilde yapılabilir
    • Cihaza uygun release/önceden derlenmiş FAP firmware kullanmak
    • Firmware'i doğrudan fbt/ufbt ile derlemek
  • Şu anda tüm firmware'ler, simgeler dahil, main branch üzerinde çalışmalıdır

SmartTag verisini edinme yöntemi

  • Etiket emülasyonu verisini elde etmenin iki yolu vardır
    • Seçenek A: Mevcut etiketi klonlama

      • Seçenek B: AirTag anahtarı oluşturma
  • Seçenek A: Mevcut etiketi klonlama

    • Mevcut etiketi klonlama tercih edilen yöntemdir ve ek yapılandırma olmadan izleme yapılmasını sağlar
    • Apple, Samsung ve Tile etiketleri, gerçek etiketin MAC adresi ve payload verileri klonlanarak kullanılabilir
    • Bu yöntem, Apple FindMy, Samsung SmartThing ve Tile App gibi yerel uygulamalar üzerinden izlemeyi mümkün kılar
    • Temel prosedür şöyledir
    • Önce AirTag, Samsung SmartTag veya Tile Tracker'ı bir cihazla eşleştirin
    • Kayıtlı cihazdan etiketi yaklaşık 15 dakika uzaklaştırarak Lost moduna geçmesini sağlayın
    • Android'de nrfConnect veya ESP32 kullanın
    • nrfConnect'te Apple sürümü gerekli Raw veriyi göstermediği için Android sürümünün kullanılması önerilir
    • ESP32-WROOM veya ESP32-S3 kullanılırsa Android olmadan da gerekli veriler alınabilir
    • İlgili araç olarak ESP32-AirTag-Scanner kullanılabilir
    • Tarama prosedürü, filtrede etiket markası dışındaki öğeleri hariç tutmayı, RSSI değerini -40 dBm olarak ayarlamayı ve SmartTag "FindMy" cihazı olarak görünene kadar beklemeyi içerir
    • Payload ve MAC adresi yakalanır yakalanmaz etiketin pili çıkarılmalıdır
    • AirTag'e pil tekrar takılırsa anahtar Apple sunucularında dönebilir
    • Anahtar dönerse Flipper'daki mevcut anahtar geçersiz olur
    • Flipper'da kullanmaya devam etmek için AirTag kapalı tutulmalı veya pili çıkarılmış olmalıdır
    • AirTag ve Flipper aynı anda kullanılamaz; gerekirse işlem tekrarlanarak Flipper işlevi geri yüklenebilir
    • Yakalanan payload ve MAC Address değerleri FlipperZero uygulamasına girilir
  • Seçenek B: AirTag anahtarı oluşturma

    • AirTag anahtarı oluşturma, Apple cihazı veya AirTag olmadan AirTag emüle etme yöntemidir
    • Bu yöntem anahtar üretimine dayanır ve konum verisini indirmek için bir bilgisayar gerekir
    • Gerekli bileşenler şunlardır
    • Docker Desktop
    • Python
    • Git
    • Depoyu klonladıktan sonra AirTagGeneration klasöründe çalışılır
    git clone https://github.com/MatthewKuKanich/FindMyFlipper.git
    cd AirTagGeneration
    
    • Docker Desktop'ı başlattıktan sonra şu komutla sunucu kurulur
    docker run -d --restart always --name anisette-v3 -p 6969:6969 dadoum/anisette-v3-server:latest
    
    • Bu sunucu, Apple kimlik doğrulama sunucularını kandıran bir ortamı emüle eder
    • Python sanal ortamı oluşturulup etkinleştirildikten sonra bağımlılıklar kurulur
    python3 -m venv venv
    pip3 install -r requirements.txt
    
    • generate_keys.py, AirTag için gerekli anahtarları üretir ve bunları yeni bir keys klasörüne kaydeder
    • Oluşturulan .keys dosyası FlipperZero'ya aktarılıp uygulama içinden içe aktarılabilir
    • Uygulamanın config menüsünde "register tag" seçilir
    • Etiket türü seçilir
    • .keys veya .txt dosyası içe aktarılır ya da manuel giriş yapılır
    • Manuel girişte önce MAC ardından payload girilir
    • Kaydet'e basılarak kayıt tamamlanır
    • request_reports.py, Apple ID ve parola kimlik doğrulamasıyla gerçek zamanlı konum verisi ister
    • Apple giriş bilgileri auth dosyasına kaydedilir, böylece sonrasında yeniden girilmesi gerekmez
    • RequestReport&Map.py, son 24 saatin konum verisini etkileşimli bir haritada gösterir
    • keys klasöründeki hash'lenmiş reklam anahtarıyla konum raporları istenir
    • Aynı .keys dosyasındaki özel anahtarla veriler çözümlenir
    • Çözümlenen veriler terminalde gösterilir
    • Koordinatlar haritada gösterilir ve hareket rotası birleştirilir
    • Konum meta verileri gösterilir ve rapor tarihi adıyla bir HTML dosyasına kaydedilir

FlipperZero uygulama yapılandırması ve ayarları

  • Uygulama başlatıldıktan sonra config menüsünde Import Tag From File veya Register Tag Manually kullanılabilir
  • .keys dosyaları FlipperZero SD kartındaki apps_data->findmy veya AppsData/FindMyFlipper klasörüne yerleştirilip içe aktarılabilir
  • nrfConnect ile kaydedilen .txt dosyaları da aynı klasöre konularak içe aktarılabilir
  • Ayarlanabilir öğeler şunlardır
    • Beacon Interval: FlipperZero'nun varlığını hangi sıklıkta yayınlayacağını ayarlar
    • Transmit Power: İzleme menzili ile pil ömrü arasında denge kurmak için sinyal gücünü ayarlar

Uyumluluk, alternatifler ve sorumluluk

  • Desteklenen hedefler şunlardır
    • AirTag takibi için FindMy ağına erişen Apple cihazları
    • Samsung SmartTag takibini destekleyen cihazlar ve web tarayıcıları
    • Tile App üzerinden Tile Tracker
  • OpenHaystack ile izleme için macOS 14'ten eski bir sürüm gerekir
    • macOS 14 ve sonrasında Mail eklentisi uyumluluk sorunları vardır
  • Alternatif olarak macless-haystack önerilmektedir
    • Bu yöntemde de yalnızca AirTagGeneration klasöründeki generate_keys.py kullanılmalıdır
    • İlgili depodaki anahtar üretim betiği farklı bir anahtar dosyası biçimi kullanır; FindMy Flipper tarafındaki dosyalarda FlipperZero'nun düzgün içe aktarması için gereken veriler bulunur
  • Bu uygulama kişisel ve eğitim amaçlıdır
  • Kullanıcılar izleme cihazlarıyla ilgili yerel gizlilik mevzuatına ve düzenlemelere uymalıdır
  • İzleme etiketi klonlama ve emülasyonu, orijinal cihaz sahipliğine saygı gösterilerek sorumlu biçimde kullanılmalıdır
  • Bu proje Apple Inc. veya Samsung ile bağlantılı değildir

1 yorum

 
GN⁺ 2024-08-20
Hacker News yorumları
  • İlginç bir proje ama burada kullanılan alt bağımlılıklardan biri varsayılan olarak güvensiz görünüyor:
    https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
    iCloud için bir kimlik doğrulama kütüphanesi gibi görünüyor ve oluşturulan anahtarı cihaza bağlamak için MacBook device agent değerini hardcode etmiş gibi duruyor
    Merkezi hizmetlerde olduğu gibi, birçok servis veya dijital varlığın bağlı olduğu hesaplarda bunu kullanmazdım. Apple bu tür kullanım hesaplarını engellese şaşırmam
    Giriş için gereken benzersiz adsid kodu da olduğu için tespit etmesi zor görünmüyor

    • “Oluşturulan anahtarı cihaza bağlamak için MacBook device agent değerini hardcode etmiş gibi duruyor” ifadesi, teknik olarak AirTag kaydı için iOS cihazı gerekmediği ve herhangi bir Apple cihazının yeterli olduğu anlamına mı geliyor?
      O zaman Apple neden bunu resmen desteklemiyor, bilmiyorum. iOS cihaz satışlarını itmek için mi yapıyor diye düşündürüyor
      Apple masaüstü/mobil ekipmanına yaklaşık 5 bin dolar vermiş biri olarak, birkaç AirTag kaydetmek için ikinci el bir iPhone daha almak zorunda kaldığım için sinir bozucu
    • Önemli bir şey değil, bu localhost:
      https://github.com/biemster/FindMy/blob/113ebf4017729b92a381...
    • iCloud kimlik doğrulama kütüphanesi kullanıcı için özünde güvenli değil; tabii ki Apple, Inc. için öyle değil. Bu proje ne kadar kötü olsa da iki ayrı ürün olarak fork edilmeliydi diye düşünüyorum
      Bilinçli olarak hiçbir zaman üçüncü taraf bir kütüphaneyi entegre etmezdim. Hâlâ VenToyun tüm sürümlerini virüs tarayıcısından geçiriyorum ve NZ tarzı bir açığın gerçekten ortaya çıktığı anı bekliyorum
      Bu, Apple'ın ödeme akışından çok abonelik modeliyle ilgili. Apple'ın ilginç bulacağı bir özelliği ücretsiz sunuyorsanız dikkatli olmak gerekir. Apple erişimi kesip kullanıcılardan para almaya başlayabilir
      Geek'leri kızdırırken de iki kat dikkatli olmak gerekir. Cuma gecesi öfkeli uyuyup hafta sonu boyunca ürünü black-box analiz ederek implementasyonu önemsiz hâle getiren insanlar gerçekten korkutucu
  • Bu konsept, Apple ve benzerlerinin koyduğu stalking karşıtı özellikleri aşmak için de kullanılabilecek gibi görünüyor
    Örneğin N adet donor tag kullanıp 24/N saatte bir dönüşümlü kullanırsanız, Apple ya da cihaz takibi açısından hedef kişinin uzun süre tek bir etiket tarafından takip edildiği görünmez

    • Hâlâ yamalanmadıysa, yalnızca bir zamanlayıcıyla etiketin gücünü periyodik olarak kapatıp açarak da tespitten kaçınılabildiğini duymuştum
      Büyük bir batarya ve basit bir zamanlayıcı devresi ekleyip biperi çıkarırsanız mükemmel bir takip cihazına dönüşüyor
      Bunun, pahalı ekipman taşıyan yükleri izleme bağlamında tartışıldığını hatırlıyorum. Sevkiyat aylar sürebiliyor, AirTag büyük bataryayla uzun süre dayanacak kadar verimli ve mevcut GPS çözümleri yeterli olmuyordu
    • Neden donor tag gerekiyor? Bu projenin README dosyasında etiket oluşturma yöntemi var
    • Etiketleri sürekli döndürmek gerekiyorsa, o noktada doğrudan peşinden gitmek emek ve para açısından daha ucuz olmaz mı?
      Ya da AirTag “ağını” hiç kullanmayan bir GPS etiketi kullanırsınız ve döndürmeniz de gerekmez
  • Hâlâ Flipper'ı haftada birkaç kez kullanıyorum. Wi-Fi ve diğer frekansları destekleyen bir sonraki sürümü merakla bekliyorum

    • Ne için kullanıyorsunuz?
    • WiFi dev board yeterli olmuyor mu?
  • “Find My” uygulamasının aynı etiketi iki veya daha fazla konumda gördüğünde nasıl tepki verdiğini test eden oldu mu?

    • Apple sunucuları konum hakkında hiçbir şey bilmiyor, dolayısıyla konumların ortalamasının alınıp alınmayacağı implementasyona, bu durumda FindMy uygulamasına bağlı
    • Gözümden kaçan bir şey yoksa muhtemelen sadece en son konumu kullanır, değil mi?
  • Bunu kullanıyorum ve harika. Güç tüketimi de pratikte yok denecek kadar az
    Keşke Google'ın Find My Device ağıyla da konuşabilseydi ama Apple ağında zaten çok iyi çalışıyor

  • Keşke bunu ESP32-C3 gibi ucuz bir BLE cihazına port etmek mümkün olsa. Flipper'ı AirTag olarak kullanmak biraz pahalı

  • Ne yazık ki taklit edilecek bir donor tag gerekiyor ve bu etiketi bunu kullanırken kullanamıyorsunuz. Ya da OpenHaystack kullanmanız gerekiyor ama veri almak için Mac lazım

    • Hayır. Linux makinede AirTag olmadan kullanıyorum ve iyi çalışıyor
  • README.md içinde bunun ne olduğunu anlatan bir bağlantı olsa iyi olurdu: https://flipperzero.one/

  • Bunu kullanmak için hangi Android uygulaması gerekiyor? Mümkünse Google Services gerektirmeyen bir uygulama olsa iyi olur

    • Bu proje telefon için değil, Flipper Zero için
    • Flipper gerektiğini biliyorum, bende de var
      Ama bunu gerçekten “bulmak” için hangi Android uygulaması kullanılabilir? iPhone ya da Samsung cihazım yok
    • Hiçbiri. Sadece Python, git ve Docker bulunan bir bilgisayar yeterli