Fiducia e limiti

La mascheratura di CrispGuard è locale? E l'estensione stessa può rivelare ciò che catturi?

CrispGuard disegna le sue maschere nel browser: le parole chiave diventano una barra, le immagini un blocco segnaposto, le aree una sovrapposizione, e nulla di tutto ciò richiede un server. Ma lavora a livello di pagina, non di sistema operativo, quindi un'acquisizione che aggira il rendering del browser può non contenere la maschera. Non è un prodotto di sicurezza e non cifra lo schermo.

Che cosa CrispGuard possa coprire esattamente lo elenca la pagina del prodotto con i tre tipi di sovrapposizione. Questa pagina è più stretta: dove avviene la mascheratura e che cosa protegge quella posizione — e che cosa no.

Il percorso dei dati di CrispGuard: cosa resta nel browser e cosa ne esce

La mascheratura gira nel content script dell'estensione, dentro la pagina che hai già aperto. Confronto del testo, sostituzione delle immagini e disegno delle sovrapposizioni avvengono durante il rendering locale. Nessun passaggio di quel percorso carica la pagina su un server.

CrispGuard è un'estensione di Chrome, e la parte che fa il lavoro è un content script: codice che il browser inietta nella pagina che stai guardando. Legge il testo e le immagini già presenti nel documento, li confronta con l'elenco di parole chiave che hai configurato e riscrive ciò che il browser sta per disegnare. Una parola chiave trovata diventa una barra piena, un blocco di colore o un'emoji. Un'immagine trovata diventa un blocco segnaposto. Un'area selezionata riceve una sovrapposizione. La pagina sotto continua a funzionare: i link navigano, i moduli si inviano, lo scorrimento non cambia.

Ognuno di quei passaggi è un'operazione locale su un documento già scaricato: il confronto avviene con un elenco salvato insieme all'estensione, non con un modello su un server, e nessuna fase di quel percorso deve mandare la pagina da qualche parte.

Questa è un'affermazione sul percorso della mascheratura, e conviene dire con precisione cosa non copre. «Mascheratura locale» e «zero richieste di rete» sono due affermazioni diverse. La seconda è più forte e verificabile. Questa pagina non promuove la prima a seconda. Secondo la descrizione delle funzioni nella scheda dello store, le decisioni di mascheratura e il disegno avvengono sul tuo dispositivo. Con chi parli l'estensione attraverso la rete — verifica della licenza, qualunque altra cosa — lo definisce la sua informativa sulla privacy, e quel documento è quello da leggere prima di decidere. L'obiettivo di progettazione è tenere quanti più dati possibile dentro il browser; il comportamento di rete esatto è una domanda per l'informativa, non per una pagina di marketing.

Il confronto utile è con un prodotto che dichiara la versione più forte. L'informativa sulla privacy di ContextBlur dichiara elaborazione 100% locale e zero richieste di rete, dice che la sfocatura automatica parte solo quando l'utente preme «Run auto-blur now» e che memorizza selettori CSS anziché il contenuto della pagina. Qualunque altra cosa se ne ricavi, stabilisce un fatto utile: in questa categoria «elaborato localmente» è una dichiarazione che un fornitore può pubblicare e sulla quale può essere chiamato a rispondere. Non è un argomento esclusivo di CrispGuard e non andrebbe creduto sulla parola da nessun fornitore, questo compreso.

Un altro confine va detto qui. La mascheratura cambia ciò che la pagina mostra. Non cifra la pagina, non la nasconde ai processi del browser stesso e non impedisce a chi ha accesso al tuo computer sbloccato di aprire gli strumenti per sviluppatori e leggere il DOM direttamente. CrispGuard è una comodità per la privacy negli spazi condivisi, non un prodotto di sicurezza, e non va descritto come tale.

Cosa succede alla maschera quando fai uno screenshot o registri lo schermo: cosa copre e cosa no

Decide solo il percorso di acquisizione. Se uno strumento legge la pagina renderizzata dal browser, la maschera di solito fa parte di quell'immagine. Se legge il framebuffer del sistema operativo, o una fotocamera fotografa lo schermo, l'estensione non può metterci la maschera.

Il meccanismo spiega il risultato. Un'estensione del browser vive dentro la pipeline di rendering della pagina: modifica il DOM e gli stili applicati, e il browser dipinge il risultato. Gli strumenti di cattura sono di due famiglie. Alcuni chiedono al browser cosa sta mostrando: leggono la stessa pagina renderizzata che l'estensione ha già modificato. Altri leggono il framebuffer del sistema operativo, l'immagine composta dell'intero schermo, e non interrogano affatto la pagina.

Le piattaforme mobili mostrano cosa può fare la seconda famiglia quando la piattaforma collabora. FLAG_SECURE di Android blocca gli screenshot a livello di sicurezza della piattaforma, così il sistema operativo rifiuta l'acquisizione. Le estensioni di Chrome non hanno un livello equivalente: nessuna API permette a un'estensione di chiedere a Windows, a macOS o a un dispositivo di cattura di rifiutare il fotogramma.

Cosa contiene di solito un'acquisizione
Metodo di acquisizioneLa maschera compare di solito nel risultato?Perché
Screenshot nel browser (Chrome DevTools, captureVisibleTab dell'estensione) Di solito sì, ma dipende dal momento della cattura e dall'implementazione La cattura legge la pagina renderizzata, quindi la sovrapposizione può essere inclusa — o mancare se la cattura è avvenuta prima che la maschera fosse applicata.
Screenshot di sistema (Win+Shift+S, macOS Cmd+Shift+4) Non garantito La cattura avviene a livello di framebuffer del sistema operativo, mentre l'estensione lavora nel DOM della pagina, quindi l'estensione non controlla cosa cattura il sistema.
Registratore di terze parti (OBS, Loom e simili in modalità cattura schermo) Non garantito Il percorso di registrazione può aggirare il compositore di rendering del browser e leggere lo schermo direttamente, quindi la sovrapposizione non fa parte dei fotogrammi che riceve.
Fotocamera esterna o telefono che fotografa lo schermo Non garantito La fotocamera registra la luce emessa dal monitor; l'estensione cambia i pixel della pagina, non l'uscita fisica del pannello, quindi la foto riprende ciò che il pannello sta mostrando.
App di riunione che condivide l'intero schermo invece di una singola scheda Non garantito La condivisione dell'intero schermo può includere altre finestre e notifiche di sistema che stanno fuori dalla pagina mascherata, e l'estensione non arriva fuori dal browser.

La mascheratura di CrispGuard è un controllo di visibilità a livello di pagina, non un blocco degli screenshot. Se ti serve impedire le acquisizioni a livello hardware, usa il meccanismo di visualizzazione sicura offerto dal sistema operativo o dalla piattaforma, non un'estensione del browser.

Ne seguono due conseguenze pratiche. La prima: dai per scontato che la maschera manchi in ogni acquisizione che non hai provato. La seconda è che il test costa poco: fai uno screenshot con lo strumento che usi davvero, su una pagina che hai davvero mascherato, e guarda il risultato.

Come viene memorizzato il PIN del blocco sito: un segnale di fiducia che puoi verificare

Il PIN del blocco sito è memorizzato come hash con salt, mai in chiaro. Chi legge l'archivio locale dell'estensione ottiene un valore che non può digitare nella casella di sblocco. Le impostazioni restano un'interfaccia normale; il PIN viene chiesto solo allo sblocco.

Il blocco sito è una funzione PRO: chiede un PIN prima di togliere la protezione da un sito che hai bloccato. Ciò che l'estensione conserva è un hash con salt di quel PIN — il PIN passato per una funzione unidirezionale insieme a un valore casuale — e non il PIN stesso. Leggere l'archivio locale non consegna quindi un segreto utilizzabile. Anche il salt conta: due installazioni con lo stesso PIN producono valori diversi, quindi i dati non rivelano che i PIN coincidono.

Vale la pena soppesare questa scelta perché è verificabile. Un prodotto che salva il PIN in chiaro dice qualcosa di come pensa l'archiviazione; uno che salva un hash dice di aver dato per scontato che prima o poi qualcuno avrebbe letto quell'archivio. Nessuna delle due scelte rende un prodotto affidabile da sola, ma in uno strumento che sta su ogni pagina che apri vuoi vedere la seconda.

Ciò che l'hash non fa è altrettanto importante. Protegge il valore memorizzato, non lo stato sbloccato: se un sito è già sbloccato e qualcuno ti sta dietro, sta leggendo la pagina, non l'hash. Un PIN numerico corto è anche indovinabile con tentativi sufficienti, e un hash non dice nulla su quanti tentativi siano consentiti. L'hash risponde esattamente a una domanda — cosa impara un attaccante leggendo questo file — e la risponde bene.

Se stai decidendo se fidarti di un'estensione per la privacy dello schermo, cosa dovresti controllare?

Cinque controlli risolvono gran parte: cosa dice l'informativa sulla trasmissione dei contenuti delle pagine, dove avviene davvero la mascheratura, quali permessi sono stati chiesti, se il rilevamento automatico aspetta un clic e se il prodotto ammette i propri limiti.

Nessuno richiede competenze tecniche. Richiedono la lettura di un'informativa e di un elenco di permessi: un lavoro ragionevole prima di dare a uno strumento la capacità di leggere ogni pagina che apri.

  1. L'informativa dice, con quelle parole, che il contenuto delle pagine, gli screenshot e la cronologia non vengono trasmessi? Un'informativa che nomina quelle tre categorie fa un'affermazione falsificabile; una che dice solo «rispettiamo la tua privacy» no, e ciò che non si può falsificare non si può nemmeno controllare dopo.
  2. La mascheratura avviene in un content script o a livello di pagina, oppure il contenuto deve prima arrivare a un server? La risposta determina se «locale» è una proprietà dell'architettura o solo una parola nella descrizione — e solo la prima sopravvive a un'interruzione di rete.
  3. L'estensione chiede permessi che non c'entrano con la mascheratura — appunti, intercettazione delle richieste, accesso ai siti ben oltre il necessario? Ogni permesso è una capacità che esiste a prescindere dall'uso nella versione attuale, quindi l'elenco descrive ciò che potrebbe accadere, non solo ciò che accade.
  4. Il rilevamento automatico gira solo quando lo attivi tu? Una funzione che analizza ogni pagina per impostazione predefinita ha una postura diversa da una che aspetta un clic, anche quando entrambe producono lo stesso risultato sullo schermo.
  5. Il prodotto dichiara i propri limiti — «non è un prodotto di sicurezza», «non ferma gli screenshot a livello di sistema» — o promette di bloccare le acquisizioni? Un fornitore che nomina il confine di solito ha pensato a dove sta; uno che promette tutto o si sbaglia o ti sta vendendo qualcosa.

Non è una scheda di valutazione, e questa pagina non la compila al posto di CrispGuard. Dove un punto non è confermabile dalla documentazione pubblica, trattalo come non confermato e leggi l'informativa sulla privacy. È la versione onesta della risposta, e l'unica che resta vera dopo la prossima release.

Domande frequenti

CrispGuard invia il contenuto delle mie pagine a un server?

Il percorso della mascheratura non ne ha bisogno. Il confronto avviene nel content script contro un elenco di parole chiave salvato con l'estensione, e la sostituzione è disegnata nella pagina stessa, quindi nessun passaggio di quel percorso carica la pagina. Se l'estensione fa altre richieste di rete — la verifica della licenza, per esempio — lo definisce la sua informativa sulla privacy, ed è quel documento da controllare.

Ho usato lo strumento di cattura di sistema: la maschera c'è ancora?

Non è garantito. Uno screenshot di sistema legge il framebuffer del sistema operativo, mentre l'estensione cambia solo ciò che il browser renderizza, quindi la presenza dipende dal percorso di cattura e non dal fatto che la maschera sia attiva. Se la cattura passa dall'output renderizzato del browser, la maschera di solito è inclusa.

Un registratore di schermo cattura la maschera?

Dipende dalla modalità di cattura del registratore. Gli strumenti che leggono la pagina renderizzata o il compositore del browser di solito includono la sovrapposizione; quelli che catturano lo schermo a livello di sistema operativo possono aggirarla del tutto. Nessuna impostazione di CrispGuard cambia questo, perché il limite sta nel percorso di cattura, non nell'estensione.

Se dimentico il PIN del blocco sito, l'estensione lo espone in chiaro?

No: viene memorizzato solo un hash con salt del PIN, quindi leggere l'archivio locale dell'estensione non rivela il PIN. Questo protegge ciò che è memorizzato, non ciò che qualcuno può vedere: se il sito è già sbloccato e qualcuno guarda il tuo schermo, il PIN è irrilevante.

Un'estensione per la privacy dello schermo può sostituire una pellicola per la privacy?

No. Una pellicola per la privacy restringe l'angolo di visuale dello schermo fisico, così chi ti sta accanto non riesce a leggerlo affatto, mentre un'estensione cambia solo i pixel dentro il browser. La pellicola copre anche tutto ciò che è sullo schermo — altre applicazioni, notifiche, una videochiamata — e a questo un'estensione del browser non arriva. È quello che dice il limite qui sopra: un controllo a livello di pagina non è un blocco degli screenshot.

Se devo davvero impedire gli screenshot, cosa dovrei usare?

Un meccanismo di piattaforma, non un'estensione del browser. FLAG_SECURE di Android, i percorsi di riproduzione protetti da DRM e le policy dei dispositivi gestiti che disattivano la cattura lavorano a livello di sistema operativo o di piattaforma, cioè il livello che uno screenshot attraversa davvero. Per la maggior parte delle situazioni in spazi condivisi, una pellicola per la privacy e girare lo schermo è la risposta pratica.

← Tutti gli articoli