- Bir uygulama izin istediğinde, işletim sistemi yalnızca evet/hayır yanıtına izin vermemeli; tüm izin kategorilerine “sahte veri sağlama seçeneği” eklemeli
- Kişiler istendiğinde üretilmiş sahte kişiler, mikrofon erişimi istendiğinde rastgele ortam sesi, konum bilgisi istendiğinde 5×5 m’lik küçük bir ada koordinatı sağlanması gibi
- Erişim engellenirse uygulama “o zaman kullanamazsın” diyerek reddediyor; ancak sahte veri verilirse gereksiz veri isteyen hizmetin cezalandırıldığı bir yapı oluşuyor
- Boykot kullanıcıdan büyük bir kişisel fedakârlık isterken şirketlere yalnızca önemsiz bir darbe vurduğu için, kötü niyetli uyumun (malicious compliance) boykottan daha etkili olduğu görüşü
- Kullanıcının, sahibi olduğu cihazın yöneticisi olarak uygulamaları ve sistem yazılımını kontrol edebilmesi gerektiğini savunan kullanıcı kontrolü meselesine bağlanıyor
Temel öneri — izin bazında sahte veri seçeneği
- İşletim sistemi, izin talepleri için evet/hayır dışında tüm kategorilerde “evet, ancak sahte veri sağla” seçeneği sunmalı
- Kişiler isteği → rastgele üretilmiş sahte kişiler sağlama
- Mikrofon isteği → rastgele ortam sesi (random ambiance) sağlama
- Konum isteği → 5×5 m’lik küçük bir adada bulunulduğu yanıtını verme
- Bir hizmet ihtiyaç duymadığı veriyi isterse, veritabanına işe yaramaz bilgi koyarak onu cezalandırma etkisi yaratır
- Erişimi engellemekten farklı olarak sahte veri, uygulamanın “kullanılamaz” diye karşılık vermesini engellerken gereksiz veri toplamayı da etkisizleştirir
Boykota göre üstün olduğu iddiası
- Gerekli bir uygulamayı boykot etmek, ciddi bir kişisel fedakârlık karşılığında milyarderlere fark edilmeyecek kadar küçük bir darbe vuran dezavantajlı bir takas
- Mücadele eden tarafın en çok şeyi kaybettiği bir yapı olduğundan kullanıcı için dezavantajlı
- Sahte veri enjekte etme yönteminin kullanıcıya daha fazla güç verdiği görüşü
- “Kötü niyetli uyumun (malicious compliance)” boykottan daha eğlenceli olduğu ifadesi kullanılıyor
Tartışmada bahsedilen mevcut araçlar
-
Konum sahteciliği (location spoofing)
- Geçmişte konum sahteciliği yalnızca global ayar olarak mümkündü; uygulama bazında seçim yapmak zordu
- Android geliştirici ayarlarında belirli bir uygulama sahte konum (mock location) uygulaması olarak atanırsa global olarak uygulanır
- Firefox’ta coğrafi konum gibi çeşitli veriler için sahtecilik eklentileri bulunuyor; ancak telefonda çalışması daha kullanışlı
- Pokémon GO’da sahte konum verisiyle kötüye kullanım örneği olduğundan bunun teknik olarak mümkün olduğu doğrulanmış durumda
-
XPrivacyLua
- Root edilmiş cihazlarda kullanıcının istediği davranışı tam olarak gerçekleştiriyordu; ancak Magisk (sistem modifikasyonu) gerektiriyordu
- Şu anda bakımı durdurulmuş durumda ve tüm cihazlarla uyumlu değil
-
Android’in yerleşik izin özellikleri
- Android zaten uygulama bazında bilgi erişimini seçmeye veya her seferinde sormaya izin veriyor
- Ancak bu yalnızca engelleme yöntemi; sahte veri sağlama ile aynı değil
Genişletme fikirleri ve örnekler
-
Yapay zekâ kullanarak veri kirletme
- Veri madencilerine anlamsız bilgiyi özyinelemeli biçimde sağlayarak etkisizleştirme önerisi
- Yapay zekânın ürettiği verilerle yapay zekâ eğitim içeriklerini de kirletme fikri
-
Reklam takibine karşılık
- Reklamları engellerken tüm reklamlara tıklayarak hedefleme verilerini etkisizleştiren AdNauseam’dan (uBlock Origin fork’u) bahsediliyor
- Geçmişte denendiğinde kaynak tüketiminin yüksek olduğu değerlendirmesi var
-
Tarayıcı izleme profillerini karıştırma
- Tarayıcı ve çerezlerle birçok site arasında hızla dolaşarak fingerprinting ve izlemeyi karıştıran hizmetler mevcut
- Rastgele veya profil bazlı kalıplar seçilebiliyor (ör. “Ekvadorlu 70 yaşında bir hippi gibi gezin”)
- Mozilla’nın yaptığı TrackThis örneğinden bahsediliyor
Dile getirilen sınırlamalar ve endişeler
- Rastgele bir doğum tarihi girilirse rastgele bir tarihte doğum günü kutlaması alınır; ancak güvenlik sorularında hangi tarihin kullanıldığını bilmeme sorunu doğar
- İşletim sisteminin kullanıcıya kendi sahte veri değerlerini gösterebilmesi gerektiği yönünde tamamlayıcı görüş
- Yaklaşık 10 yıl önce bu, startup fikri olarak değerlendirilmiş; ancak savunulabilir hâle getirecek bir hukukçu bulunamamış
- Ticari geliştiriciler bundan büyük korku duyacağı için Google’ın bunu uygulama ihtimalinin neredeyse hiç olmadığı öngörülüyor
- Temel nedenin, Google ve Apple’ın ikisinin de kullanıcıların kontrole sahip olmasını istememesi olduğu belirtiliyor
1 yorum
Hacker News yorumları
“Sahte veri” fikrini destekliyorum, ancak uygulamaların kullanıcı gerçek verilere erişim iznini reddetse bile bunu zarif biçimde ele alması zorunlu olmalı
Eskiden iOS geliştirirken Apple politikası, izin reddedildi diye kullanıcıyı cezalandırmamanızı veya
exit()ile uygulamayı kapatmamanızı şart koşuyordu; uygulama çalışmaya devam etmeliydiDaha da önce, uygulama çalışmak için “hesap” da isteyemezdi. 10 yıldan da uzun süre önce şirketimin hesabı zorunlu hale getirdiği için App Store’dan haklı olarak reddedildiğini hatırlıyorum. Bugünlerde hesap zorunlu uygulamalar giderek arttığına bakılırsa bu tutum gevşemiş gibi görünüyor
Banka uygulamaları, çevrimiçi oyunlar, günümüzdeki Twitter uygulaması, Dropbox/Nextcloud gibi uygulamalar hesap olmadan nasıl çalışabilir
Birçok uygulamada hesap istemenin pazarlama numarası olduğu doğru, ama böyle genel bir kuralın işlemesi mümkün görünmüyor
Facebook/Meta berbat
Haritada konumumu göstermek ya da yakındaki işletmeleri aramak içinse sahte veri verilebilir
Ama bir internet hız testi uygulaması operatör bazında hızları haritalıyorsa veya kullanıcıların yerel hava durumunu bildirerek tahmini iyileştirdiği bir uygulamaysa, “ya doğru konumu ver ya da hiç verme, sahte konum istemiyorum” diyebilmesi bence makul
Platformun, başkalarını etkileyen kullanıcı katkılı veriler toplayan uygulamalara istisna tanıyıp tanımayacağına karar vermesi gerekir
Apple bu konuda oldukça iyi bir orta yol bulmuş gibi görünüyor. Uygulamaya “kesin konum” vermek zorunda değilsiniz ve fotoğraflar için de sistemin sunduğu görsel seçici üzerinden yalnızca kullanıcının seçtiği fotoğrafları uygulamaya gösterebiliyorsunuz
Bulutta zaten kayıtlı fotoğrafları sadece görmek isteseniz bile durum aynı
Bu, teknik bir soruna kurumsal bir çözüm önermek oluyor; işlemesi zor ve pratik tek çözüm sahte veri. Uygulamanın gözünde, gerçekte izin verilmemiş olsa bile verilmiş gibi görünmeli
Root’lu Android’de XPrivacy 7 yıl önce zaten bunu yapabiliyordu ve modern alternatifler de var. Gerçi telefonumu uzun zamandır root etmediğim için kefil olamam: https://github.com/M66B/XPrivacy
Elbette bu ana akım bir yaklaşım değil ve varsayılan olarak yerleşik gelmesi gerektiğine katılıyorum. Ama hem Android hem iOS bölge kısıtlamalı uygulamalar veya DRM içeriklerinde ekran görüntüsü engelleme gibi saçmalıklara izin verdiği için iş zor
Telefonlar satıcının içerik dağıtım aygıtları ve kullanıcılar da onların insafına kalmış durumda
GrapheneOS banka uygulamalarıyla pek iyi anlaşmıyordu, Google Android Beta’da Magisk ile root’u birkaç kez bozdu ve bir noktada artık umursamamaya başladım
GrapheneOS veya benzeri bir proje belki böyle bir özelliği yapabilir
O kadar kötüydü ki doğrudan “reddet”e basmak yerine hep önce “geçici reddet”e basardım. Uygulama çalışırsa kalıcı reddederdim, çöküyorsa da izin verilmesi gereken asgari izin kümesini bulmaya çalışırdım
Bir uygulama her ülkede iyi deneyim sunamayabilir, her dil için yerelleştirilmemiş olabilir, ilgili dilde içerik moderatörleri olmayabilir, ülke yasalarına uyması gerekebilir ya da telifli içeriğin dağıtım lisansı belli ülkelerle sınırlı olabilir; bu yüzden bu, uygulama mağazaları için önemli bir özellik
DRM içeriklerinde ekran görüntüsünü engellemek de film gibi içeriklerin lisans koşullarının hukuki bir gereği olduğu için uygulama geliştiricilerinin talep ettiği bir özellik. Film stüdyoları insanların filmi akıştan oynatmasını veya kaydetmesini istemediğinden, uygulama platformlarının bu içeriği güvenli biçimde gösterecek bir yönteme ihtiyacı var
“Birisi size sormaya hakkı olmayan bir soru soruyorsa, ona gerçeği söylemek zorunda değilsiniz”
— Leonard Schiffman
Kaynak: “Blend me in: Privacy-Preserving Input Generalization for Personalized Online Services” https://drive.google.com/file/d/10OmoqMmHFcb7PsQtaU_GW4aCAJe...
Uygulama izin isterken işletim sisteminin yalnızca evet/hayır değil, “evet, ama uygulamaya sahte veri ver” seçeneğini de sunması gerektiği iddiasında bir sorun var
Kullanıcıların önemli bir kısmı e-postayı nasıl yönlendireceğini bile bilmiyor
Böyle insanların Google Maps navigasyonunu kullanırken anlamını kavramadan sahte veriyi seçmesi halinde ne tür bir karmaşa çıkacağını düşünün
Google Maps: “Sağa dönün”
Sahil yolunda giden sürücü: “Tamam”
Araba: şlap
Veri sahteciliği özelliğini ayarların derinliklerine saklar, açmadan önce basit bir dille açıkça anlatır ve ekranda, kullanıcının bizzat açtığı gizlilik özelliği nedeniyle uygulamaya alternatif bilgi verildiğini ve bunun kolayca kapatılabileceğini net biçimde gösterirseniz yeterli olur
Yine de yanlışlıkla açanlar olacaktır ama bunun dışında kalan pek çok kullanıcı için büyük değer yaratabilir
Her iki durumda da kendi kendini çözen bir sorun
İşletim sisteminin “evet”, “hayır”, “özelleştir” seçeneklerini sunması daha iyi görünüyor. “Özelleştir” seçilirse o menü içinde gerekirse uyarı mesajı gösterilebilir, ama kullanıcının istediği gibi ayarlamasının önüne geçilmemeli
Apple Maps'te bu sorun olmayacaktır. Haritalar cihaza indirilebilir, bu yüzden veri bağlantısı olmadan da çevrimdışı çalışabilir
iOS'ta izin verilip verilmediğinin ayırt edilememesinin neden en üstteki yorumda yer almadığı şaşırtıcı
Örneğin bir uygulama fotoğraf erişimi isterse her zaman bir dizi alır. Sadece izin reddedilirse bu dizi boş olur; dolayısıyla kullanıcının arşivinin gerçekten boş mu olduğu yoksa erişimin mi reddedildiği anlaşılamaz. Basit ve zarif, hoşuma gidiyor
Elbette fotoğraflar söz konusu olduğunda neredeyse herkesin birkaç fotoğrafı vardır, dolayısıyla sezgisel kurallar kullanılabilir. Ama sağlık verisi gibi başka türlerde bu kadar açık değildir
Push bildirimlerinde UNAuthorizationStatus var: https://developer.apple.com/documentation/usernotifications/...
Sağlık verilerinde HKAuthorizationStatus var: https://developer.apple.com/documentation/healthkit/hkauthor...
Kişiler için CNAuthorizationStatus var: https://developer.apple.com/documentation/contacts/cnauthori...
Fotoğraflar için PHAuthorizationStatus var: https://developer.apple.com/documentation/photokit/phauthori...
Fotoğraflar, kullanıcının erişimi reddetme, sınırlı erişim ve tam erişim arasında seçim yapabildiği özel bir durum. Erişimin reddedildiği anlaşılabilir ama sınırlı erişim ile tam erişim ayırt edilemez
Ayrıca fotoğraf klasörü boşsa bu neredeyse kesin olarak izin olmadığı anlamına gelir. Hayatında hiç fotoğraf çekmemiş biri çok nadirdir
Örneğin kullanıcı konumu görme izni verirse uygulamaya iletilen konum nesnesi doğal olarak ilgili bilgileri içerir. İşletim sistemi boş bir konum nesnesi verirse izin reddi bariz hale gelmez mi, yoksa bunu bir hatanın arkasına mı saklar
“Sahte veri sağlama”nın yanlış yaklaşım olduğunu düşünüyorum. Daha iyi yaklaşım alternatif kaynaktan veri sağlama olmalı ve bu alternatif kaynak başka herhangi bir program olabilmeli
Alternatif kaynak, boş veri, rastgele veri, sahte ama tutarlı veri, alternatif dosyadan gelen veri (ör. ayrı bir kişi listesi ya da kamera yerine dosyadaki fotoğraflar), dönüştürülmüş veri (ör. kamera fotoğrafını ters çevirmek), filtreleme, kayıt tutma, her bir veri için kullanıcıya sorma, veri yerine hata kodu verme ve hata kodunu kullanıcının belirleyebilmesi gibi kullanıcının istediği her şey olabilir. Buna mevcut tarih/saat erişimi de tamamen dahil olmalı
Bu, kullanıcı denetimini artırır ve test ile erişilebilirlik amaçları için de yararlıdır
İşletim sistemi tasarımına dair fikirlerimden biri vekil izinler. İzin tabanlı güvenliğe vekil izinler eklenir, tüm giriş/çıkış bunları kullanır ve komut kabuğunda UNIX pipe'lardan daha iyi bir yöntemle ya da başka şekillerde de kullanılabilir. Tarih/saat de buna dahildir. Yield ve Quit dışında, izin anahtarı olmadan hiçbir sistem çağrısı kullanılamaz
Uygulama geliştiricilerinin kullanılamayan izinleri iyi şekilde ele alması çok zor; ayrıca nispeten az sayıdaki kullanıcı için test kapsamı çok daha geniş ve zor hale geliyor, bu yüzden küçük ticari uygulamaların çoğu bunu düzgün ele almaya çalışmayacaktır
İzni verip alternatif veri kaynağı beslemek hem geliştiriciler hem de kullanıcılar için en kolay yol
Elbette dolandırıcılığı da kolaylaştırabilir. Örneğin bankalar daha karmaşık cihaz kayıt süreçleri kullanmaya başlayacaktır
Birbirimize ille de kötü davranmamız gerekmiyor. Basit kural şu: "hayır da bir seçenektir; gerçekten seçenek olmadığı durumlar hariç"
Eğer seçenek değilse bunun nedeni son derece açık olmalı, muhtemelen uygulama inceleme sürecinde açıklanmalı ve aksi halde uygulama reddedilmelidir
Örneğin TikTok/Instagram kamera ve mikrofon izni istiyorsa, ikisi de uygulamayı kullanmak için zorunlu değildir; dolayısıyla hayır bir seçenektir. Belirli bir izin olmadan da uygulamanın bazı bölümleri kullanılabiliyorsa, bunun öyle çalışacak şekilde tasarlanmasının sorumluluğu uygulamaya aittir. Kamera veya mikrofon kapalıysa, yalnızca bu izni gerektiren özellikler koşullu olarak devre dışı bırakılmalıdır
Daha basit söylersek, yük talep edendedir. Durum net değilse ya da akıllıca bir kaçış yolu aranıyorsa, cevap hayırdır. Kulağa katı gelebilir ama uygulama geliştiricileri izinleri isteğe bağlı hale getirerek bu ek adımı tamamen ortadan kaldırabilir
Bunu zorunlu kılmaya odaklanmak, küçük çaplı bir silahlanma yarışını gereksiz kılar ve insanlar için de daha iyi bir seçimdir
Burada bunu zorlayabilecek tek aktör Google/Apple/Microsoft uygulama mağazaları. Bunu tutarlı ve kullanıcı dostu bir şekilde uygulamak için yeterli teşvikleri olduğundan emin olmak zor. Öyle olsaydı bunu zaten yapmış olurlardı
Samsung telefonlarda kamera erişimi ve mikrofon erişimi için anahtarlar var
Kapatıldığında şu mesaj çıkıyor:
"Her kategori için 'evet, ama uygulamaya sahte veri sağla' seçeneği" yerine uygulama bazlı ayarlar daha iyi olur
Konum verisini neredeyse hiçbir uygulamaya vermek istemeyebilirsiniz ama Google Maps ve acil yardım çağrısı uygulamalarına vermek isteyebilirsiniz. Kişiler ve kişisel veriler için de aynı şey geçerli
Ancak böyle uygulamalar, kullanıcı profillemesinden kâr eden Google ve diğer şirketlerden ciddi direnç görecektir
Örneğin bir uygulamada bir izin için gerçek veri verirken, başka bir izin için sahte veri ya da kullanıcı tanımlı/manuel girilmiş veri verilebilmeli ve üçüncü bir izin reddedilebilmelidir
Test amacıyla ya da mevcut konumun hava durumunu gösteren bir uygulamada geçici olarak başka bir yerin hava durumuna bakıp sonra tekrar gerçek konuma dönmek gibi durumlarda, ayarları geçici olarak değiştirmek isteyebilirsiniz
Eğer bir uygulama verilerime benim deneyimimi, hem de yalnızca benim deneyimimi iyileştirmek için ihtiyaç duyuyorsa, ona sahte veri verdiğimde yalnızca benim deneyimim kötüleşmeli. Uygulama geliştiricisi ya da sahibi için fark etmemeli
Ama çoğu durumda olduğu gibi amaç beni veri madenciliğine tabi tutmaksa, sahte veri bunu engellemede gayet işe yarar
Elbette WhatsApp gibi durumlarda bunun pek faydası yok. Çünkü insanlar biraz daha iyi bir mesajlaşma deneyimi uğruna tüm kişi listelerini Facebook/Meta ile isteyerek senkronize ediyor
En azından mobilde, kişi senkronizasyonu yapılana kadar uygulama ve hizmet ancak zar zor kullanılabilir durumdaydı