Güven ve sınırlar

CrispGuard'ın maskelemesi yerel mi — ve uzantının kendisi yakaladığınızı sızdırabilir mi?

CrispGuard maskelerini tarayıcıda çizer: anahtar sözcükler bir çubuğa, görseller yer tutucu bir bloğa, alanlar bir katmana dönüşür ve bunların hiçbiri sunucu gerektirmez. Ancak sayfa katmanında çalışır, işletim sistemi katmanında değil; bu yüzden tarayıcının çizimini atlayan bir yakalama maskeyi içermeyebilir. Bir güvenlik ürünü değildir ve ekranı şifrelemez.

CrispGuard'ın tam olarak neyi kapatabildiği ürün sayfasında üç katman türüyle anlatılıyor. Bu sayfanın kapsamı daha dar: maskeleme nerede oluyor ve bu konum neyi koruyor — neyi korumuyor.

CrispGuard'ın veri yolu: tarayıcıda ne kalıyor, ne çıkıyor

Maskeleme, uzantının içerik betiğinde, yani zaten açık olan sayfanın içinde çalışır. Metin eşleştirme, görsel değiştirme ve katman çizimi yerel çizim sırasında olur. Bu yolun hiçbir adımı sayfayı sunucuya yüklemez.

CrispGuard bir Chrome uzantısıdır ve işi yapan kısım bir içerik betiğidir: tarayıcının, baktığınız sayfaya enjekte ettiği kod. Belgede zaten bulunan metni ve görselleri okur, yapılandırdığınız anahtar sözcük listesiyle karşılaştırır ve tarayıcının birazdan çizeceği şeyi yeniden yazar. Eşleşen anahtar sözcük dolu bir çubuğa, renk bloğuna ya da emojiye dönüşür. Eşleşen görsel yer tutucu bir bloğa dönüşür. Seçilen alanın üstüne bir katman çizilir. Alttaki sayfa çalışmaya devam eder: bağlantılar açılır, formlar gönderilir, kaydırma etkilenmez.

Bu adımların her biri, zaten indirilmiş bir belge üzerinde yerel bir işlemdir: karşılaştırma uzantıyla birlikte saklanan bir listeye göre yapılır, sunucudaki bir modele göre değil, ve bu yolun hiçbir aşaması sayfayı bir yere göndermek zorunda değildir.

Ancak bu, maskeleme yolu hakkında bir ifadedir ve neyi kapsamadığını tam söylemek gerekir. "Yerel maskeleme" ile "hiç ağ isteği yok" iki farklı ifadedir. İkincisi daha güçlü ve denetlenebilir. Bu sayfa birincisini ikinciye yükseltmez. Mağaza sayfasındaki özellik açıklamasına göre maskeleme kararları ve çizim cihazınızda gerçekleşir. Uzantının ağ üzerinden kiminle konuştuğu — lisans doğrulama, başka ne varsa — gizlilik politikasında tanımlanır ve karar vermeden önce okunması gereken belge odur. Tasarım hedefi olabildiğince çok veriyi tarayıcı içinde tutmaktır; tam ağ davranışı bir pazarlama sayfasının değil, gizlilik politikasının konusudur.

Asıl kıyas, daha güçlü sürümü açıkça beyan eden bir üründür. ContextBlur'un gizlilik politikası %100 yerel işleme ve sıfır ağ isteği bildirir, otomatik bulanıklaştırmanın yalnızca kullanıcı "Run auto-blur now" düğmesine bastığında çalıştığını ve sayfa içeriğini değil yalnızca CSS seçicilerini sakladığını söyler. Bundan başka ne çıkarırsanız çıkarın, işe yarar bir şey ortaya koyar: bu kategoride "yerel olarak işlenir" bir sağlayıcının yayımlayabileceği ve hesabının sorulabileceği bir iddiadır. CrispGuard'a özgü bir sav değildir ve hiçbir sağlayıcıdan, bu üründen de, yalnızca kendi sözüne dayanarak kabul edilmemelidir.

Buraya bir sınır daha eklemek gerekir. Maskeleme sayfanın ne gösterdiğini değiştirir. Sayfayı şifrelemez, tarayıcının kendi süreçlerinden saklamaz ve kilitli olmayan bilgisayarınıza erişimi olan birinin geliştirici araçlarını açıp DOM'u doğrudan okumasını engellemez. CrispGuard ortak alanlar için bir gizlilik kolaylığıdır, güvenlik ürünü değildir ve öyle tanımlanmamalıdır.

Ekran görüntüsü alırken ya da ekran kaydı yaparken maskeye ne olur — neyi kapatır, neyi kapatmaz

Yalnızca yakalama yolu belirler. Araç tarayıcının çizdiği sayfayı okuyorsa maske genellikle o görüntünün parçasıdır. İşletim sisteminin çerçeve tamponunu okuyorsa ya da bir kamera ekranı fotoğraflıyorsa, uzantı maskeyi oraya koyamaz.

Mekanizma sonucu açıklar. Bir tarayıcı uzantısı sayfanın çizim hattının içinde yaşar: DOM'u ve ona uygulanan stilleri düzenler, tarayıcı da sonucu boyar. Yakalama araçları iki ailedir. Bazıları tarayıcıya şu anda ne gösterdiğini sorar; uzantının zaten değiştirdiği aynı çizilmiş sayfayı okurlar. Diğerleri işletim sisteminin çerçeve tamponunu, yani tüm ekranın birleştirilmiş görüntüsünü okur ve sayfaya hiç sormaz.

Mobil platformlar, platform işbirliği yaptığında ikinci ailenin ne yapabildiğini gösterir. Android'deki FLAG_SECURE ekran görüntülerini platformun güvenlik katmanında engeller, işletim sistemi yakalamayı doğrudan reddeder. Chrome uzantılarının böyle bir katmanı yoktur: bir uzantının Windows'a, macOS'a ya da bir yakalama aygıtına "bu kareyi reddet" demesini sağlayan bir API yoktur.

Bir yakalamada genellikle ne bulunur
Yakalama yöntemiMaske genellikle sonuçta görünür mü?Neden
Tarayıcı içi ekran görüntüsü (Chrome DevTools, uzantının kendi captureVisibleTab'i) Genellikle evet, ama yakalama anına ve uygulamaya bağlı Yakalama çizilmiş sayfayı okur, dolayısıyla katman dahil olabilir — ya da maske uygulanmadan önce yakalama yapıldıysa eksik kalabilir.
İşletim sistemi ekran görüntüsü (Win+Shift+S, macOS Cmd+Shift+4) Garanti edilmez Yakalama işletim sisteminin çerçeve tamponu katmanında olur, uzantı ise sayfanın DOM'unda çalışır; bu yüzden uzantı işletim sisteminin neyi yakaladığını denetlemez.
Üçüncü taraf kayıt yazılımı (OBS, Loom ve benzerleri, ekran yakalama kipinde) Garanti edilmez Kayıt yolu tarayıcının çizim birleştiricisini atlayıp ekranı doğrudan okuyabilir, bu durumda katman aldığı karelerin parçası olmaz.
Harici kamera ya da telefonla ekranın fotoğraflanması Garanti edilmez Kamera monitörün yaydığı ışığı kaydeder; uzantı sayfanın piksellerini değiştirir, panelin fiziksel çıktısını değil, bu yüzden fotoğraf panelin o anda gösterdiğini yakalar.
Toplantı uygulamasının tek sekme yerine tüm ekranı paylaşması Garanti edilmez Tüm ekran paylaşımı maskelenmiş sayfanın dışındaki başka pencereleri ve sistem bildirimlerini içerebilir; uzantı tarayıcının dışına erişemez.

CrispGuard'ın maskesi sayfa katmanında bir görünürlük denetimidir, ekran görüntüsü engeli değildir. Yakalamayı donanım düzeyinde engellemeniz gerekiyorsa işletim sisteminin ya da platformun sunduğu güvenli görüntüleme mekanizmasını kullanın; bir tarayıcı uzantısını değil.

Bundan iki pratik sonuç çıkar. Birincisi: test etmediğiniz her yakalamada maskenin bulunmadığını varsayın. İkincisi, test ucuzdur: gerçekten kullandığınız araçla, gerçekten maskelediğiniz bir sayfada bir kez yakalama yapın ve sonuca bakın.

Site kilidinin PIN'i nasıl saklanıyor — kendiniz doğrulayabileceğiniz bir güven sinyali

Site kilidinin PIN'i tuzlanmış özet olarak saklanır, düz metin olarak asla. Uzantının yerel depolamasını okuyan kişi, kilit açma alanına yazamayacağı bir değer elde eder. Ayarlar normal arayüz olarak kalır; PIN yalnızca kilit açılırken sorulur.

Site kilidi bir PRO özelliğidir: kilitlediğiniz bir sitede korumayı kaldırmadan önce PIN ister. Uzantının sakladığı şey bu PIN'in tuzlanmış özetidir — PIN'in rastgele bir değerle birlikte tek yönlü bir fonksiyondan geçirilmesiyle elde edilen değer — PIN'in kendisi değil. Dolayısıyla yerel depolamayı okumak kullanılabilir bir sır vermez. Tuzun da anlamı var: aynı PIN'i kullanan iki kurulum farklı saklanan değerler üretir, böylece veri PIN'lerin aynı olduğunu ele vermez.

Bu küçük karar tartılmaya değer, çünkü denetlenebilir. PIN'i düz metin saklayan bir ürün, saklama konusunda nasıl düşündüğünü söyler; özet saklayan ürün ise bu deponun bir gün birileri tarafından okunacağını varsaydığını söyler. İkisinden hiçbiri tek başına bir ürünü güvenilir yapmaz, ama açtığınız her sayfada oturan bir araçta ikincisini görmek istersiniz.

Özetin yapmadığı şey de aynı ölçüde önemli. Saklanan değeri korur, kilit açık durumu değil: site zaten açıksa ve arkanızda biri duruyorsa, okuduğu şey sayfadır, özet değil. Kısa bir sayısal PIN yeterli denemeyle tahmin de edilebilir ve özet, kaç denemeye izin verildiği konusunda hiçbir şey söylemez. Özet tam olarak tek bir soruyu yanıtlar — bir saldırgan bu dosyayı okuyarak ne öğrenir — ve onu iyi yanıtlar.

Bir ekran gizliliği uzantısına güvenip güvenmeyeceğinize karar veriyorsanız neyi kontrol etmelisiniz?

Beş kontrol çoğunu çözer: gizlilik politikasının sayfa içeriğinin aktarılması hakkında ne dediği, maskelemenin gerçekte hangi katmanda olduğu, hangi izinlerin istendiği, otomatik algılamanın tıklamayı bekleyip beklemediği ve ürünün kendi sınırlarını kabul edip etmediği.

Hiçbiri teknik bilgi gerektirmez. Bir politikayı ve bir izin listesini okumayı gerektirir — açtığınız her sayfayı okuma yeteneğini bir araca vermeden önce makul bir emek.

  1. Gizlilik politikası, sayfa içeriğinin, ekran görüntülerinin ve tarama geçmişinin aktarılmadığını bu sözcüklerle söylüyor mu? Bu üç kategoriyi adlandıran bir politika çürütülebilir bir taahhüt verir; yalnızca "gizliliğinize saygı duyuyoruz" diyen vermez — ve çürütülemeyen bir söz sonradan denetlenemez.
  2. Maskeleme bir içerik betiğinde ya da sayfa katmanında mı yapılıyor, yoksa içeriğin önce bir sunucuya ulaşması mı gerekiyor? Yanıt, "yerel"in mimarinin bir özelliği mi yoksa açıklamadaki bir sözcük mü olduğunu belirler — ve ağ kesintisinde ayakta kalan yalnızca birincisidir.
  3. Uzantı maskeleme ile ilgisi olmayan izinler istiyor mu — pano, istek engelleme, gereğinden çok daha geniş site erişimi? Her izin, mevcut sürüm kullansa da kullanmasa da var olan bir yetenektir; yani liste yalnızca ne olduğunu değil, ne olabileceğini de anlatır.
  4. Otomatik algılama yalnızca siz tetiklediğinizde mi çalışıyor? Varsayılan olarak her sayfayı tarayan bir özellik, tıklamayı bekleyen bir özellikten farklı bir gizlilik duruşuna sahiptir; ekranda ikisi de aynı sonucu verse bile.
  5. Ürün sınırlarını söylüyor mu — "güvenlik ürünü değildir", "sistem düzeyinde ekran görüntüsünü durdurmaz" — yoksa yakalamayı engelleyeceğini mi vaat ediyor? Sınırını adlandıran sağlayıcı genellikle sınırın nerede olduğunu düşünmüştür; her şeyi vaat eden ya yanılıyordur ya da başka bir şey satıyordur.

Bu bir puan kartı değil ve bu sayfa onu CrispGuard adına doldurmaz. Bir madde kamusal belgelerden doğrulanamıyorsa doğrulanmamış sayın ve gizlilik politikasını okuyun. Bu, yanıtın dürüst hâlidir — ve bir sonraki sürümden sonra da doğru kalan tek hâlidir.

Sık sorulan sorular

CrispGuard sayfa içeriğimi bir sunucuya gönderiyor mu?

Maskeleme yolu buna ihtiyaç duymaz. Eşleştirme içerik betiğinde, uzantıyla birlikte saklanan anahtar sözcük listesine göre yapılır ve değiştirme sayfanın kendisinde çizilir; bu yolun hiçbir adımı sayfayı yüklemez. Uzantının başka ağ istekleri yapıp yapmadığını — örneğin lisans doğrulamasını — gizlilik politikası tanımlar ve kontrol edilecek belge odur.

Sistem ekran görüntüsü aracını kullandım — maske hâlâ orada mı?

Garanti edilmez. Sistem ekran görüntüsü işletim sisteminin çerçeve tamponunu okur, uzantı ise yalnızca tarayıcının çizdiğini değiştirir; yani maskenin görünmesi açık olmasına değil, yakalama yoluna bağlıdır. Yakalama tarayıcının çizilmiş çıktısından geçiyorsa maske genellikle dahildir.

Ekran kaydı maskeyi yakalar mı?

Kayıt aracının yakalama kipine bağlıdır. Çizilmiş sayfayı veya tarayıcının birleştiricisini okuyan araçlar katmanı genellikle içerir; ekranı işletim sistemi düzeyinde alan araçlar onu tamamen atlayabilir. CrispGuard'da bunu değiştiren bir ayar yok, çünkü sınır uzantıda değil yakalama yolunda.

Site kilidinin PIN'ini unutursam uzantı düz metin olarak gösterir mi?

Hayır — yalnızca PIN'in tuzlanmış özeti saklanır, bu yüzden uzantının yerel depolamasını okumak PIN'i açığa çıkarmaz. Bu, saklananı korur, görülebileni değil: site zaten açıksa ve biri ekranınıza bakıyorsa PIN'in önemi yoktur.

Ekran gizliliği uzantısı gizlilik filtresinin yerini alır mı?

Hayır. Gizlilik filtresi fiziksel ekranın görüş açısını daraltır, yani yanınızda oturan kişi hiç okuyamaz; uzantı ise yalnızca tarayıcı içindeki pikselleri değiştirir. Filtre ayrıca ekrandaki her şeyi — diğer uygulamaları, bildirimleri, bir görüntülü görüşmeyi — kapatır; tarayıcı uzantısı oraya ulaşamaz. Yukarıdaki sınır tam olarak bunu söylüyor: sayfa katmanındaki bir denetim ekran görüntüsü engeli değildir.

Ekran görüntüsünü gerçekten engellemem gerekiyorsa ne kullanmalıyım?

Bir platform mekanizması, tarayıcı uzantısı değil. Android'in FLAG_SECURE'ü, DRM korumalı oynatma yolları ve yakalamayı devre dışı bırakan yönetilen cihaz ilkeleri işletim sistemi ya da platform katmanında çalışır; bir ekran görüntüsünün gerçekte geçtiği katman da orasıdır. Ortak alandaki çoğu durumda pratik yanıt gizlilik filtresi ve ekranı başka yöne çevirmektir.

← Tüm yazılar