- iOS 9'dan beri sunulan HotspotHelper API, uygulamaların yakındaki WiFi erişim noktası bilgilerini almasına imkan vererek kullanıcı onayı olmadan konum takibi için bir yol oluşturabiliyor
- Uygulamalar, kayıtlı callback içinde yakındaki ağların SSID ve BSSID bilgilerini okuyup bunları sunucuya göndererek konum tahmini mantığında kullanabiliyor
- WiFi erişim noktalarının çoğu sabit olduğundan, Precisely veya Google Geolocation API gibi herkese açık servislerle birleştirildiğinde WiFi tabanlı konum tahmini mümkün hale geliyor
- Bu davranış yalnızca ayarlar ekranı kullanılırken değil, cihaz kilitliyken çevredeki WiFi ağlarını taradığı durumlarda da gerçekleşebiliyor ve kullanıcının bunu fark etmesi ya da kapatması mümkün değil
- WeChat ve Alipay gibi geniş kullanım alanına sahip uygulamalar da bu özelliği uyguladığı için, Apple'ın konum ve bildirim izinlerinde olduğu gibi açık izin/verme reddetme seçeneği sunması gerektiği yönünde çağrılar artıyor
HotspotHelper API'nin açığa çıkardığı WiFi bilgileri
- Apple, iOS 9'dan beri HotspotHelper API'sini sunuyor; böylece uygulamalar sistemin WiFi erişim noktalarına bağlanmasına yardımcı olacak işlevler talep edebiliyor
- Örnek kod, uygulamanın
NEHotspotHelper.registerile WiFi ağ bilgilerini alma akışını gösteriyorcommand.networkListile yakındaki ağların listesi alınabiliyor- Her ağ için
network.ssidvenetwork.bssidokunabiliyor - Bu değerler
trackLocation(withSSID:andMACAddress:)gibi konum izleme mantıklarına aktarılabiliyor
- Asıl amaç sorunsuz bağlantı desteği olsa da, uygulamalar elde ettikleri SSID ve BSSID verilerini konum takibi için de kullanabiliyor
Kullanıcı onayı olmadan konum tahmini yapılabilen yol
- Yakındaki WiFi erişim noktası bilgileri, kullanıcının konumunu tahmin etmek için bir referans noktası olabilir
- WiFi erişim noktalarının çoğu kurulduktan sonra yer değiştirmez
- Çevredeki erişim noktalarının listesi kullanılarak kullanıcının mevcut konumu üçgenleme ya da tahmin yoluyla belirlenebilir
- Herkese açık API örnekleri arasında Precisely Location By Wi-fi Access Point ve Google's Geolocation API yer alıyor
- Bu özellik yalnızca kullanıcı ayarlar ekranında açıkça işlem yaptığında etkinleşmiyor
- Cihaz yakındaki WiFi erişim noktalarını tararken kayıtlı uygulamalar çalıştırılabiliyor
- Buna cihazın kilitli olduğu ve kullanıcının cebinde bulunduğu durumlar da dahil
- Uygulamalar çevredeki SSID ve MAC adresi bilgilerini alıp sunucuya gönderebiliyor; geliştirici isterse neredeyse gerçek zamanlıya yakın konum takibi mümkün olabiliyor
- Kullanıcının ekranda bu sürecin gerçekleştiğini anlaması zor ve bu özelliği devre dışı bırakabileceği bir seçenek de yok
WeChat ve Alipay örneği
- WeChat ve Alipay, bu özelliği halihazırda uygulamış başlıca uygulamalar arasında anılıyor
- Her iki uygulama da Çin anakarasında çok yaygın kullanılıyor ve insanların yaşamının birçok alanına dokunuyor
- Bu kadar yaygın kullanılan uygulamalarda kullanıcı onayı olmadan konum takibi ihtimali ortaya çıktığında etki alanı büyüyor
- Veri toplama amacı kullanıcı deneyimini iyileştirmek ya da yakındaki WiFi bağlantılarını desteklemek olsa bile, sunucu tarafı mantık şeffaf olmadığından şeffaflık ve hesap verebilirlik sorunu sürüyor
Apple'ın yaklaşımı ve gerekli izin modeli
- Bu sorun yaklaşık 2 yıl önce keşfedildi ve Bilibili'de bir video ile paylaşıldı, ancak kamuoyundaki bilinirliği sınırlı kaldı
- Apple'a da endişeler iletildi ve e-posta yanıtı alındı, ancak sonrasında ek bir güncelleme gelmedi
- Apple, konum ve bildirim gibi gizlilik ayarlarında olduğu gibi kullanıcılara bu özelliği devre dışı bırakma seçeneği sunmalı
- Uygulamalar bu özelliğe erişmeden önce açıkça izin istemeli ve kullanıcılar uygulamayı kullanırken erişime izin verme ya da reddetme seçeneğine sahip olmalı
- HotspotHelper, Apple'ın gizlilik vaatleri ile kullanıcı verilerinin korunması arasındaki tartışmalı alanlardan biri olmayı sürdürüyor
3 yorum
Hacker News görüşleri
Bağlantılı belgeye bakınca, bu API’nin WiFi hotspot sahibinin yaptığı uygulamaların kullanıcıyı ilgili hotspot’a bağlamasına yardımcı olmak için tasarlandığı görülüyor: https://developer.apple.com/documentation/networkextension/h...
NEHotspotHelper, kullanıcının daha geniş internete erişebilmesi için ağla etkileşime girmesi gereken Wi-Fi ağlarında, yani hotspot ağlarının kimlik doğrulama sürecinde uygulamanın yer almasına izin verirAyrıca bunun yalnızca hotspot entegrasyonu için yararlı olduğu, aksesuar entegrasyonu veya Wi-Fi tabanlı konum belirleme gibi diğer işler için teknik ve ticari kısıtlamalar bulunduğu ve kullanım öncesinde Apple’ın özel
com.apple.developer.networking.HotspotHelperyetkisi için onay gerektiği yazıyorO halde neden WeChat veya Alipay gibi uygulamalara bu yetkinin verildiği soru işareti
Böyle bir API kullanımı, uygulama arka plan bildirimleri almadan önce kullanıcıya görünen bir izin penceresi göstermeli ve kullanıcı “yalnızca bir kez izin ver, kullanım sırasında izin ver, arka planda izin ver, izin verme” seçeneklerinden birini seçebilmelidir
Uygulama etkinliği de uygulama gizlilik raporunda gösterilmelidir
WeChat bir “süper uygulama” ve Wi-Fi hotspot bağlantısı için de kullanılabildiği iddia edilebilir, ancak Alipay için akla net bir açıklama gelmiyor
CoreLocationAPI’sini kullanıyorsa ve kullanıcının hassas konum erişimi onayını aldıysa. Zaten hassas konum alındığı için zararsız görünüyorNEHotspotConfigurationAPI’siyle yapılandırdıysa. Bu yazının kapsamı tam olarak buna giriyor gibi görünüyorNEDNSSettingsManageryapılandırması kuruluysa. Bunun tam olarak ne olduğunu bilmiyorum ama VPN tarafına benziyorBu arada, bu API’yi kullanmak için özel bir yetki gerekiyor ve bunu ancak Apple’dan isteyip kullanım amacını gerekçelendirdikten sonra alabiliyorsunuz
Herhangi bir uygulamanın kullanabileceği genel amaçlı bir API değil
Elbette bunlar “süper uygulamalar” ve Wi-Fi hotspot hizmeti de sundukları özelliklerden biri olabilir, ama tam da bu yüzden bunun “yerel ağ erişimi” gibi kullanıcının verebileceği bir izin olması gerekir
Eğer hotspot özelliğiyle ilgilenmiyorsam uygulamanın bu yeteneğe sahip olmasını istemem
Test uygulamasını bizzat denemeden bunun da öyle olup olmadığını bilmiyorum, ama kullanıcı izni sorulması gerektiğini düşünüyorum
Apple’ın yetki kullanımını analiz edip kötüye kullanım olursa geri alıp almadığını merak ediyorum
Benzer şekilde, Facebook VPN “skandalı” sırasında Apple’ın Facebook’un kurumsal imza sertifikasını geri çektiğini hatırlıyorum
“Merak etme, sen ya da ben bunu kötüye kullanamayız; bunu sadece büyük şirketler ve veri toplayıcılar yapabilir” deniyormuş gibi geliyor
Yazıyı yazanın Çinli olduğu için WeChat ve Alipay’e odaklandığı anlaşılıyor ama Facebook ve Google için durumun ne olduğunu merak ediyorum
Kullanıcıdan bu izni vermesini isteyen istemi zaten aldığını sanıyordum
Bu günlerde uygulamalar sık sık “yerel ağ” erişimine izin verip vermeyeceğimi soruyor; ben de bunu yerel Wi‑Fi hotspot’larını görebilme yeteneği olarak anlayıp neredeyse her zaman reddediyorum
Bu yazıyı okuduktan sonra Spotify’da da kapattım
Ancak çoğu kullanıcı bu bilgiyle konum çıkarımı yapılabileceğini bilmiyor, bu yüzden izin iletişim kutusunun iyileştirilmesi gerekiyor
Birincisi, uygulaması özensiz. Diğer izinlerin aksine istemi açıkça gösterme yöntemi yok ve Apple uygun gördüğü anda birden çıkıyor
Temel işlev için gerekli olduğunda bile bunu doğal biçimde açıklamanın bir yolu yok, ayrıca iznin verilip verilmediğini kontrol etmenin de bir yolu yok
İkincisi ve daha önemlisi, Apple’ın kendi uygulamaları bu uyarıyı göstermediği için rekabet koşulları adil değil
AirPlay vb. sorunsuz çalışırken rakip teknolojiler böyle çalışmıyor ve geliştirici izin durumunu bilemediği için kullanıcı deneyimi kötüleşiyor
Apple bir kısıtlama getirecekse bunu kendi uygulamalarına da uygulamalı. AirPlay ve AirDrop sırasıyla Bluetooth ve yerel ağ erişimi istemeli, Photos uygulaması açılışta “fotoğraf seç, tümüne izin ver, reddet” istemini göstermeli ve Camera uygulaması da aynı istem olmadan fotoğraf arşivine yazmamalı
Ancak o zaman Apple’ın da bu tür kısıtlamalar etrafındaki kullanıcı deneyimini düzgün tasarlamak için bir teşviki olur ve kafa karıştırıcı iletişim kutuları yerine daha yaratıcı çözümler arar
Şu anda iyi tasarlamak için bir teşvik yok. Bu API’lerle uğraşmış herhangi bir iOS geliştiricisi, keyfi ve beklenmedik kısıtlamalar yüzünden tasarımın berbat olduğunu bilir
AirPlay bu izni gerektirmez
Belgeler: https://developer.apple.com/documentation/technotes/tn3111-i...
İnceleme küçük spam uygulamalarını durdurabilir, ancak yazarın ve başkalarının dediği gibi büyük oyuncuları durduramayacak gibi görünüyor
Ancak izin mevcut olduğunda kullanıcının API kullanımını reddedebileceği bir istemin çıkıp çıkmadığı hâlâ net değil
Hangi popüler uygulamaların bunu kullandığını doğrulamanın bir yolu var mı
Buradaki çoğu kişi gibi ben de WeChat veya Alipay kurmadım, ama Instagram, Facebook, WhatsApp, Twitter, TikTok, Snapchat, Chrome, Firefox, Photoshop, Lightroom gibi uygulamaları merak ediyorum
Ne yapmaya çalışacağını görmek için uygulamayı indirip kurmak zorunda kalmamalısınız
App Store zaten bu bilgiyi biliyor ve bunu indirmeden önce uygulama ayrıntılarında göstermek çok kolay olurdu
iOS/macOS’un her sistem güncellemesinde Wi‑Fi ve Bluetooth kablosuz aygıtlarını açması sorunundan da bahsetmeliyiz
Pazarlamanın anlattığı ninnilerin aksine, sanki gözetimi en üst düzeye çıkarmak için bilerek yapılmış cihazlar gibi görünüyor
İnsanların %99’u bunları kullanıyor ya da ihtiyaç duyuyor, bu yüzden ayar durumunu takip etmemeyi seçmiş gibi görünüyor; ayrıca Apple Bluetooth klavye ve fareleri seviyor
Şimdi merak etmeye başladım. Başka hangi uygulamalarda bu izin var
Telefonuma kurulu uygulamalardan hangilerinin bu izne sahip olduğunu öğrenmenin bir yolu var mı
Bu, tamamen kilitli bir platformun büyük sorunlarından biri
Platform sahibinin gizliliğe saygı duyacağı ve başkalarının ihlalini engelleyeceği garantisi sonuçta sadece sözlü bir güvence
Bilgi işlem platformu güvenliği zaten zor; özellikle gizlilik, genelde teknik erişim kontrolünün aşılması üzerinden tanımlanan bilgisayar güvenliğine kıyasla kültürel olarak çok daha muğlak tanımlanıyor
Asıl mesele, Apple’ın ekosistemi kontrol eden bir küratör rolü üstlenmek isteyip istemediği
Geçmişte Uber şüpheli şeyler yaptığında bunu durdurmak için brinkmanship’e girdiği olmuştu
Elbette Alipay ve WeChat, Çin pazarının Apple için ne kadar büyük olduğu ve bugünkü başarısı açısından ne kadar önemli olduğu düşünülürse daha zor olabilir
Apple’ın önümüzdeki birkaç yılda buna nasıl uyum sağlayacağını görmek ilginç olacak
Açık platformlarda da bu sorun var ve belki de sözlü güvenceye daha fazla dayanıyorlar
Eğer kastedilen “bu sorun çözülmeyecekse bari açık platform daha iyi” değilse, asıl noktayı tam anlayamıyorum
Bu mantığın sorunu şu: bu, pek çok sorundan sadece birindeki başarısızlık örneği ve ileride çözülebilir; oysa açık platformlarda bu sorunla birlikte çözülmemiş daha birçok sorun var
Bu başlığın abartılı olduğuna dair şikâyetler duydum; daha iyi, daha doğru ve daha nötr bir başlık öneriniz varsa değiştirebiliriz
Emin değilim ama yazıyı okuduktan sonra mevcut başlık kulağa şu an pek olgusal gelmiyor
NEHotspotHelperkullanımı için başvurulması gereken özelcom.apple.developer.networking.HotspotHelperyetkisi gerekiyor ve Apple, uygulamanın meşru bir ihtiyacı yoksa bunu muhtemelen vermeyecektirAncak bu, Apple'ın gizlilik stratejisi ile WeChat ve Alipay gibi süper uygulamalar arasındaki uyumsuzluğu gösteriyor gibi görünüyor
Bir şirket tüm işlevleri tek bir uygulamaya doldurduğunda, o uygulama bir anda tüm izinlere sahip oluyor ve hassas verilerin ne zaman, nasıl kullanıldığını anlamak zorlaşıyor
Batı'da uygulamalar genelde bu şekilde yapılmıyor. Örneğin Comcast'in ayrı bir “WiFi Hotspots” uygulaması var
Komik olan, iki gün önce bu özelliği ana Xfinity uygulamasına entegre edeceklerini duyurmuş olmaları; yani Batı da yetişiyor olabilir
Son kullanıcının hangi uygulamaların bu izne sahip olduğunu görmesinin bir yolu var mı
Facebook da bir süper uygulama. Yıllardır uygulamanın içinde Wi-Fi hotspot bulucu özelliği vardı
Uygulamayı açar açmaz kamera, mikrofon, kişiler vb. erişim isteklerinin yağmasından gerçekten nefret ediyorum
Hemen reddediyorum; sonuçta uygulamanın işlevi bozulursa uygulamayı da siliyorum
Google Maps'in durmadan hassas konum servislerini açmam için darlamasını, arkadaşım yerine navigasyonda olup olmadığımı sormasını ve kişilere erişim izni istemesini de reddediyorum
com.apple.developer.networking.HotspotHelperiOS'ta nereden iptal edilebilirAyarlar → Gizlilik ve Güvenlik → Yerel Ağ mı, yoksa başka bir bölüm mü
Yani sonuçta Apple hangi şirketin benim konum verilerimi alabileceğine karar veriyor, öyle mi. Harika
Gizliliği bir satış kozu olarak öne çıkaran bir şirketin, arka planda kullanıcı bildirimleriyle konum bilgilerini de sızdırdığı ortaya çıkıyor.
Ben o özelliğin engellendiği için metroya biniş-iniş bildirimlerinin mümkün olmadığını sanıyordum, meğer özellik zaten varmış. O zaman neden sadece iPhone'da çalışmıyor ki...