OpenHaystack: Apple ağı üzerinden Bluetooth cihaz takibi için “AirTags” yapma tekniği
(github.com/seemoo-lab)- OpenHaystack, Apple’ın Find My ağını kullanarak kişisel Bluetooth cihazlarını takip etmeye yarayan bir framework; Mac ve BBC micro:bit ya da Bluetooth destekli bir cihazla kendi takip etiketinizi oluşturabilirsiniz
- Yakındaki bir iPhone, OpenHaystack aksesuarının BLE reklamını algıladığında konumu şifreleyip Apple sunucularına yükler; OpenHaystack bu konum raporunu indirip şifresini çözerek haritada gösterir
- Bu proje, TU Darmstadt Secure Mobile Networking Lab’in Find My ağını tersine mühendislik ve güvenlik analizi çalışmalarının bir çıktısıdır; konum verilerine erişim açığı CVE-2020-9986 Apple tarafından düzeltilmiştir
- macOS uygulaması, konum raporlarını almak için Apple Mail eklentisi kullanır; kurulum sırasında Gatekeeper’ı geçici olarak devre dışı bırakmanız ve kullanım sırasında Mail’i açık tutmanız gerekir
- Deneysel bir yazılım olduğundan kod test edilmemiş ve eksiktir; sağlanan firmware’e dayalı aksesuarlar sabit bir açık anahtar yayınladığı için yakındaki başka cihazlar tarafından da takip edilebilir olabilir
OpenHaystack ne yapar
- OpenHaystack, Apple’ın Find My ağı üzerinden kişisel Bluetooth cihazlarını takip etmeye yarayan bir framework’tür
- Kullanıcılar kendi takip etiketlerini oluşturup anahtarlık, sırt çantası gibi nesnelere takabilir veya dizüstü bilgisayar gibi Bluetooth destekli cihazlara entegre edebilir
- Gerekenler bir Mac ve BBC micro:bit ya da başka bir Bluetooth destekli cihazdır
- Hücresel bağlantı olmasa bile yakındaki iPhone aksesuarı algılar ve ağ bağlantısı olduğunda konumu Apple sunucularına yükler
Araştırma temeli ve güvenlik analizi
- OpenHaystack, Apple’ın Find My network ya da offline finding sistemine yönelik tersine mühendislik ve güvenlik analizi sonuçlarından doğmuştur
- TU Darmstadt’ın Secure Mobile Networking Lab ekibi, Apple’ın Haziran 2019’daki offline finding duyurusundan sonra analize başlamıştır
- Bu sistem şu unsurları birleştirir
-
Bluetooth reklamı
- Açık anahtarlı şifreleme
- Şifrelenmiş konum raporlarından oluşan merkezi veritabanı
- Analiz sırasında iki güvenlik açığı bulunmuştur
- En ciddi açık, kötü niyetli bir uygulamanın konum verilerine erişmesine olanak tanıyordu
- Bu açık Apple tarafından düzeltilmiş ve CVE-2020-9986 olarak tanımlanmıştır
- İlgili güvenlik ve gizlilik analizi, PoPETs 2021 makalesi Who Can Find My Devices? Security and Privacy of Apple's Crowd-Sourced Bluetooth Location Tracking System kapsamında ele alınmıştır
-
Deneysel yazılım olmanın kısıtları
- OpenHaystack deneysel yazılımdır; kod test edilmemiştir ve eksiktir
- Sağlanan firmware’i kullanan OpenHaystack aksesuarları sabit bir açık anahtar yayınlar
- Bu nedenle yakındaki diğer cihazlar tarafından da takip edilebilir olabilir
- Bu davranış gelecekteki sürümlerde değişebilir
- OpenHaystack, Apple Inc. ile bağlantılı ya da Apple tarafından onaylanmış bir proje değildir
Bileşenler ve kullanım akışı
- OpenHaystack iki bileşenden oluşur
- macOS uygulaması: Kişisel Bluetooth cihazlarının son bildirilen konumunu gösterir
- Firmware imajı: Bluetooth cihazının iPhone’lar tarafından algılanabilecek bir beacon yayınlamasını sağlar
- Sistem gereksinimi macOS 11 Big Sur’dur
- Yeni bir aksesuar oluştururken kullanıcı bir ad girer ve isteğe bağlı olarak simge ile renk seçer
- Uygulama, konum raporlarını şifrelemek ve çözmek için kullanılacak yeni bir anahtar çifti oluşturur
- Özel anahtar Mac’in anahtar zincirinde saklanır
- Cihaz dağıtımı, desteklenen cihazın USB ile Mac’e bağlanıp uygulamadaki Deploy düğmesinin kullanılmasıyla yapılır
- Entegre dağıtım yerine, reklamda kullanılan açık anahtar kopyalanarak manuel dağıtım da yapılabilir
- Haritada ilk konum raporunun görünmesi 30 dakikaya kadar sürebilir
- Harita tüm öğelerin en güncel konumunu gösterir
- Her öğeye tıklayarak son güncellemenin ne zaman alındığını görebilirsiniz
- reload düğmesiyle konum raporları yenilenebilir
Mail eklentisi ve kurulum yöntemi
- OpenHaystack uygulaması, Apple sunucularından konum raporlarını indirmek için Apple Mail için özel bir eklenti gerektirir
- Bu eklenti, özel API kullanımına gereken Apple Mail izinlerini devralacak şekilde çalışır
- Kurulum sırasında Gatekeeper’ın geçici olarak devre dışı bırakılması gerekir
sudo spctl --master-disableile Gatekeeper kapatılır- Mail’in Preferences → General → Manage Plug-Ins bölümünde
OpenHaystackMail.mailbundleetkinleştirilir - Ardından
sudo spctl --master-enableile Gatekeeper yeniden açılır
- Eklentinin e-posta gibi diğer kişisel verilere erişmediği belirtilir
- Konum raporları indirilirken OpenHaystack uygulaması eklentiyle iletişim kurduğundan Mail’in açık tutulması gerekir
Find My ağının çalışma şekli
- OpenHaystack, Apple’ın offline finding sistemini dört aşamada açıklar
-
Eşleştirme
- Find My ağını kullanmak için P-224 eliptik eğrisi tabanlı açık anahtar/özel anahtar çifti oluşturulur
- Özel anahtar Mac anahtar zincirinde güvenli şekilde saklanır
- Açık anahtar, micro:bit gibi aksesuarlara dağıtılır
-
Kayıp durumu
- Aksesuar, açık anahtarı Bluetooth Low Energy reklamı olarak yayınlar
- Yakındaki iPhone’lar OpenHaystack aksesuarını gerçek bir Apple cihazından ya da sertifikalı aksesuardan ayırt edemez
-
Bulma
- Yakındaki iPhone BLE reklamını aldığında GPS ile mevcut konumu alır
- iPhone, reklamda yer alan açık anahtarla konumu şifreler ve şifrelenmiş raporu Apple sunucularına yükler
- iOS 13 ve üzeri iPhone’lar varsayılan olarak bu davranışı gerçekleştirir
- Bu aşamada OpenHaystack yer almaz
-
Arama
- Apple, hangi şifrelenmiş konumun hangi Apple hesabına veya cihaza ait olduğunu bilmez
- Karşılık gelen açık anahtar biliniyorsa Apple kullanıcısı herhangi bir konum raporunu indirebilir
- Raporlar uçtan uca şifreli olduğundan özel anahtar olmadan şifreleri çözülemez
- OpenHaystack, OpenHaystack aksesuarlarına ait raporları Apple’dan indirir, Mac anahtar zincirinde saklanan özel anahtarla şifresini çözer ve haritada en güncel konumu gösterir
- Apple, yalnızca kimliği doğrulanmış Apple kullanıcılarının konum raporlarını indirebilmesini sağlayarak veritabanına rastgele erişimi sınırlar
Desteklenen cihazlar ve genişletme
- Prensipte Bluetooth cihazları, Apple Find My ağıyla takip edilebilen OpenHaystack aksesuarlarına dönüştürülebilir
- Şu anda pratik firmware dağıtım yöntemi yalnızca bazı gömülü cihazları destekler
- Linux cihazları genel HCI script’i ile desteklenir
- Destek örnekleri şöyledir
- Nordic nRF51: BBC micro:bit v1 üzerinde test edildi, uygulama üzerinden dağıtım desteklenir, şu anda yalnızca nRF51822 desteklenir
- Espressif ESP32: ESP32-WROOM ve ESP32-WROVER üzerinde test edildi, uygulama üzerinden dağıtım desteklenir, dağıtım 3 dakikaya kadar sürebilir ve Python 3 gerektirir
- Linux HCI: Raspberry Pi 4 ve Raspbian üzerinde test edildi, tüm Linux makinelerini desteklemesi gerekir
- Bluetooth Low Energy destekleyen diğer cihazlara port edilebilir; firmware kaynak kodu ve makaledeki teknik özellikler temel alınarak çalışılabilir
OpenHaystack Mobile
- OpenHaystack Mobile, OpenHaystack macOS uygulamasının akıllı telefonlar için tamamen yeniden uygulanmış halidir
- Aksesuar oluşturma ve takip özellikleri sunar; özellikle yeni kullanıcılar için kullanılabilirliği artırmayı hedefler
- macOS uygulamasından farklı olarak akıllı telefonda konum raporları doğrudan alınamaz
- Find My ağına erişmek için Mac donanımında barındırılan bir proxy sunucusu gerekir
- Proxy sunucusuna ağ üzerinden birden fazla kullanıcı aynı anda erişebilir
- Proxy sunucusuna bağlanmak için
openhaystack-mobile/lib/findMy/reports_fetcher.dartiçinde doğru URL ayarlanmalıdır - OpenHaystack Mobile, Flutter framework ile geliştirilmiştir ve Android ile iOS’ta çalışır
Lisans ve kaynaklar
- OpenHaystack GNU Affero General Public License v3.0 ile dağıtılır
- Başlıca kaynaklar
1 yorum
Hacker News yorumları
Apple kullanıcısı olmayanlar için de iyi bir seçenek olsa keşke. Duyduğuma göre Google sürümü beklendiği gibi epey kötüymüş
Kendi etiketinizi arayabileceğiniz sıklıkta sınırlama var; birden fazla telefon tarafından algılanana kadar konumu göstermiyor ve kapsama alanı da kötü
Bir testte Samsung ağının daha iyi olduğu ortaya çıkmıştı; oysa Samsung telefonlar, Google ağındaki tüm Android telefonların yalnızca bir alt kümesi olmalı, bu yüzden mantıklı değil. Teoride iyi görünse de Apple yolu gösterdikten yıllar sonra bile uygulaması berbat olan tipik bir Google ürünü gibi
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...
Bu tercihle Google, gerçek performansın ne kadar kötü olduğu doğrulanmadan önce “yenilikçi” gizlilik iyileştirmelerini konu alan birkaç haber elde etti; ama Apple ile bu alanda rekabet etme şansını kaybetti ve Android/Pixel ekosistemine ve pazar payına da zarar verdi. Bu düzeyde beceriksizliği uydurmak bile zor
Göçebe gezgin biri olarak Apple ağı özellikle kullanışlı değil. Çünkü Apple telefonların çok olduğu zengin şehirlerde değil, Android payının %90’a yaklaştığı “dünyanın geri kalanı”nda dolaşıyorum. Buna rağmen oralarda bile Apple, Google’dan daha iyi iş çıkarıyor gibi görünüyor
Aslında hemen yanımdaki çantanın içindeydi
Çok ücra ülkelerdeki havalimanlarında veya kasabalarda bile 2 etiketi rahatça bulabildiği için içim rahat ediyor. Bu video da iPhone kullanıcısı olsanız bile Samsung SmartTag’in en iyisi olduğu sonucuna varıyor
https://m.youtube.com/watch?v=9wefUV_bR0Y
Koda bakınca, FindMy ağındaki cihazların topladığı konumları almak için kişisel Apple Mail izni kullanıyor gibi görünüyor
https://github.com/seemoo-lab/openhaystack/blob/8d214aa5eb68...
Apple geliştirici hesabı oluşturunca bunun da mümkün olup olmayacağını merak ediyorum
Gereken tek şey bir Apple hesabı; kodu Apple donanımında çalıştırmanız da gerekmiyor
https://github.com/biemster/FindMy
Daha önce gördüğüm bir kaynağı bulmak istiyorum. Apple, kullanıcıya “sizi takip edebilecek bir etiket” konusunda uyarı veriyor; hatırladığım kadarıyla biri anahtar türetme işlevi (KDF) ile MAC adresi veya özel anahtar gibi şeyleri döndüren bir uygulama yapmıştı ve bu türetilmiş değerler izlenebilecek kadar öngörülebilirdi
Yaşadığım yerde küçük çaplı hırsızlık sorunu gerçekten ciddi; kırılan camları sürekli onarmak veya zorla girme izlerini temizlemek epey zaman alıyor. Kimseyle doğrudan yüzleşme niyetim kesinlikle yok, ama bir gün özel dedektife ya da kolluk kuvvetlerine verebileceğim bir hareket güzergâhı oluşturmak istiyorum
Ya da bir koli şişe su alıp yakındaki uyuşturucu bağımlıları toplantı yerine giderek eşyalarınızı yağmalamayı bırakmalarını rica edebilirsiniz
Yalnız döndürme periyodu yavaş olabilir; tam algoritmayı da bilmiyorum
Ancak bu birkaç yıl önceydi, şimdi değişmiş olabilir
Konumu kendi istikrarsız prosedürüyle almak yerine Find My uygulamasıyla entegre etmenin bir yolu olsa iyi olurdu.
Çin malı kopyalar kendi markalarıyla da olabildiğine göre, bir şekilde mümkün olduğu kesin gibi görünüyor.
Bu imzayı Apple doğruluyor ve böylece cihaz ilgili Apple ID hesabına ve uygulamaya eklenebiliyor. Buna karşılık, kayıp modunda cihazların yayınladığı anahtarlar rastgele ve tamamen opak; Apple’ın bunları bir kimlikle, cihazla veya geliştiriciyle ilişkilendirmesinin yolu yok. Bu projenin çalışmasının nedeni de o anahtarların eninde sonunda Apple sunucularına gitmesi.
Kopyalar, eşleştirme süreci için geçerli bir anahtarı ele geçirmiş gibi görünüyor. Apple isterse o anahtarı tespit edip tüm cihazları tüm hesaplardan kaldırabilir gibi, ama cihazın kendisi yayın yapmayı sürdürebilir ve yukarıdaki gibi kaba bir yöntemle konumuna erişilebilir. Asıl anahtar sahibinin, Apple daha sonra veritabanında “bu anahtarla imzalanıp Apple ID’ye eklenmiş cihaz sayısını” sayarsa cihaz başına telif ücreti olarak yüklü bir fatura alıp almayacağını da merak ediyorum.
OpenHaystack ise farklı anahtarlar kullanan bir hack; kriptografik nedenlerle uygulamada görünemez.
Gerçekten harika. Apple AirTag’i seviyorum ama çok kalın ve şekli de biraz belirsiz.
Cüzdana koyulabilecek kredi kartı formunda bir AirTag olsa iyi olurdu; kedi tasmasına takılabilecek daha küçük bir AirTag de olsa iyi olurdu.
Elimdeki birini kasasından çıkarıp neyi daha ince yapabileceğime baktım; kalınlığın büyük kısmı CR2032 pil yuvası, hoparlör ve düğmeden kaynaklanıyordu. Hoparlör ve düğme ilk kurulumdan sonra kaldırılabilir gibi; ince kart form faktörü istiyorsanız pil yuvası da çıkarılıp güç üstten değil yandan verilebilir.
https://imgur.com/a/r9EGSOc
Fotoğrafı az önce Meta Stories gözlüğümle çektim.
https://www.amazon.com/gp/product/B09DCVFNFF/
Ancak AirTag’in tutucudan dönerek çıkmaması için şeffaf bantla sarmam gerekmişti.
Ayrıntılı araştırmadım ama bununla küçük, rastgele veri yükleri bindirip gönderip gönderemeyeceğini merak ediyorum.
Bilgisayar tamamen izole olsa bile, veri yazan kişinin iPhone’u üzerinden geri dönebilir.
Anahtar değişip yeni, farklı bir cihaz görünürse posta gelmiş demek; oldukça zekice.
Tek bir cihazın Apple sunucularına yükleyebileceği aktarım miktarının üst sınırını merak ediyorum. Apple cihazında hücresel bağlantı ya da Wi‑Fi yoksa bu konum ping geçmişi cihazda ne kadar süre kalır?
Ayrıca burada hizmet engelleme saldırısı olasılığı olup olmadığını da merak ediyorum. Saldırganın 1 milyondan fazla Bluetooth cihazını taklit etmesi ve kurban tesadüfen yanından geçtiğinde, tek bir yerde muazzam sayıda cihaz varmış gibi telefonun kilitlenip Apple sunucularına sürekli yükleme yapması gibi.
Peki iPhone veya Mac gibi başka Apple cihazları olmadan bununla gerçek bir AirTag kurulumu yapılabilir mi?
Önceki yazı: https://news.ycombinator.com/item?id=26342504
Bunları gerçek Apple Find My uygulamasıyla eşleştirip uygulama içinde bulabiliyor muyuz?