Bu, herhangi bir Linux bilgisayarın anonim biçimde Find My sorgulayabildiği anlamına gelmiyor. Araştırma, Apple olmayan bir işletim sisteminin kimlik doğrulama ve cihaz kaydı adımlarını tamamladıktan sonra ilgili istemci davranışını taklit edebildiğini gösteriyor.
Proje, normalde kullanıcıya görünmeyen birkaç Apple bileşenini aynı akışta birleştirdi:
Hesap doğrulama: Zerotistic, Apple’ın GrandSlam oturum açma protokolünü kullandı. Akışta Secure Remote Password (SRP) değişimi ve iki aşamalı doğrulama yer aldı. Bunun sonucunda hesap tanımlayıcıları ve kısa ömürlü, parola eşdeğeri bir belirteç elde edildi.
Cihaz kaydı: İstemci, 2048 bitlik RSA anahtarı ve SHA-1 imzası içeren bir PKCS#10 sertifika imzalama isteği (CSR) oluşturdu. Bu istek, Apple’ın eski authenticateDS profil kayıt uç noktasına gönderildi ve karşılığında Apple Identity Services sertifikası alındı.
IDS kaydı: Sertifika ve ilişkili cihaz bilgileriyle Linux, Identity Services destekleyen bir cihaz olarak kaydedilebildi. İstemci gerekli mesajlaşma alt servislerine abone oldu, desteklediği şifreleme türlerini bildirdi ve Apple Push Notification Service (APNs) teslimat kimlik bilgilerini aldı.
Find My senkronizasyonu: İstemci, yerel Find My People akışını yeniden üretti. Başlatma ve yenileme işlemlerinin ardından intent: distributeKeysmode: proactiveSubscribeAndFetch isteği gönderildi. Apple da konum paylaşımını onaylamış kişinin cihazından mevcut konum anahtarı materyalini IDS ve APNs üzerinden yeni kaydedilen kimliğe iletmesini istedi.
Yerel şifre çözme: Şifreli IDS yükü, ilişki ve SearchParty anahtar materyalini içeriyordu. Açık kaynaklı pypush kütüphanesi bildirim ve IDS katmanını yönetirken, FindMy.py ilgili Find My raporlarını sorgulayıp koordinat, zaman damgası ve doğruluk bilgisine dönüştürdü.
Burada söz konusu olan sahte bir Apple sertifikası üretmek değildi. Kimlik doğrulama ve kayıt akışı tamamlandıktan sonra gerekli kimlik bilgilerini yine Apple sunucuları verdi.
Gösterilen SubscribeAndFetch davranışı, Apple’ın mevcut bir konum paylaşımı ilişkisi bulunan yeni ve yetkili bir cihaza güncel konum anahtarlarını sonradan iletebildiğini düşündürüyor. Bu, cihaz değişimi ve hesap senkronizasyonu açısından mantıklı bir gereklilik: Kullanıcı yeni bir cihaz eklediğinde her kişiden konum paylaşımını kapatıp yeniden açmasını istemek pratik olmazdı.
Aktarılan yükte bir ilişki tanımlayıcısı, anahtar dizini, 32 baytlık özetlenmiş reklam anahtarı ve 85 baytlık özel anahtar gösterimi bulunduğu bildirildi. Bu alanlar, Find My konum raporlarının şifresinin çözülmesinde ilişkiye ve anahtar sürümüne özgü materyallerin kullanıldığını; bu materyallerin IDS üzerinden yeniden dağıtılabildiğini gösteriyor.
Bununla birlikte, yayımlanan teknik inceleme anahtarların evrensel olarak hangi aralıklarla yenilendiğini ortaya koymuyor. Araştırma, mevcut anahtar durumunun nasıl iletildiğine dair kanıt sunuyor; Apple’ın tüm anahtar yönetimi takvimini açıklamıyor.
Test edilen Linux istemcisi özellikle dar kapsamlıydı. Araştırmacının Apple Hesabı ile daha önce kabul edilmiş bir konum paylaşımını okuyabiliyor ve verileri yerel olarak işleyebiliyordu. Coğrafi alan (geofence) kontrolleri de Apple sunucularında değil, şifre çözme sonrasında yerel makinede çalışıyordu.
Teknik yazıya göre istemcide şu işlevler bulunmuyordu:
Dolayısıyla bu sonuç, uzaktan rastgele kişileri takip etmeye yarayan bir açık değil; birlikte çalışabilirlik ve güven sınırı bulgusu olarak değerlendirilmeli. Daha gerçekçi güvenlik riski, bir Apple Hesabı’nın veya güvenilir cihazın ele geçirilmesi: Saldırgan yetkisiz bir cihazı hesaba kaydederse, o hesap için zaten erişilebilir olan konum paylaşımları açığa çıkabilir.
Zerotistic’in gösterimi ile nRootTag, Find My ekosisteminin farklı bölümlerini ve farklı tehdit modellerini ele alıyor.
Zerotistic’in çalışması Find My People’a odaklandı. Mevcut ve onaylanmış bir konum paylaşımının alıcı tarafını yeniden oluşturdu. Apple hesabının ve cihazın Apple tarafından kabul edilmesi, ayrıca kişinin konumunu o hesapla paylaşmış olması gerekiyordu.
nRootTag ise Find My Network ve çevrim dışı bulma işlevini hedefledi. Araştırmacılar, Apple servisinin beklenmeyen Bluetooth adres türlerini de kabul ettiğini bildirdi. Bu zayıflık, Bluetooth özellikli bir bilgisayarın AirTag benzeri bir takip işaretçisi gibi davranmasına ve yakındaki Apple cihazlarının hedef sahibinin bilgisi olmadan konum aktarmasına imkân verebilir.
Kısacası Zerotistic’in projesi, hesabın görmeye zaten yetkili olduğu veriyi aldı; nRootTag ise yetkisiz bir takip altyapısı oluşturmaya çalıştı. İki çalışmayı aynı şeymiş gibi anlatmak, Linux gösteriminin kapasitesini olduğundan büyük gösterir.
Zerotistic’in açıkladığı başlangıç amacı rızaya dayalı otomasyondu. Konumunu zaten paylaşan bir arkadaşının belirli yerlere varıp varmadığını veya bu yerlerden ayrıldığını yerel coğrafi alanlarla takip etmek ve Discord bildirimleri göndermek istiyordu.
Araştırmacı başlangıçta bunun kimliği doğrulanmış bir web isteğinden ibaret olacağını ve yaklaşık bir akşam süreceğini düşünüyordu. Ancak tersine mühendislik çalışması bu tahminin çok ötesine geçti. Mevcut kaynaklar, projenin tamamının kesin olarak kaç gün veya saat sürdüğünü ortaya koymuyor; daha net bir süre vermek spekülasyon olur.
Mevcut kaynaklar gösterimin gerçekleştiğini doğruluyor; ancak Apple’ın bu özel Linux Find My People uygulamasına ilişkin doğrulanmış bir kamu açıklaması, kesinleşmiş bir düzeltme veya açıklanmış bir hata ödülü sonucu sunmuyor.
Bu nedenle araştırmanın ana dersi değişmiyor: Bir özelliği yalnızca belirli donanımlarda sunmak, o donanımın otomatik olarak güvenlik sınırı olduğu anlamına gelmez. Sunucu tarafındaki güven, büyük ölçüde kimlik bilgileri, sertifikalar, yetenekler ve protokol davranışına göre veriliyorsa, yeterince uyumlu bir istemci başka bir işletim sistemi üzerinde de ürün sınırını aşabilir. Yine de bu istemci, yalnızca hesabın meşru biçimde elde ettiği izinler ve kriptografik anahtarlarla sınırlı kalır.