Confiança e limites

A máscara do CrispGuard é local — e a própria extensão pode vazar o que você captura?

O CrispGuard desenha as máscaras no navegador: palavras-chave viram uma barra, imagens viram um bloco provisório, áreas viram uma sobreposição, e nada disso precisa de servidor. Mas ele trabalha na camada da página, não na do sistema operacional, então uma captura que ignore a renderização do navegador pode não conter a máscara. Não é um produto de segurança e não criptografa a tela.

O que o CrispGuard consegue cobrir exatamente está na página do produto, com os três tipos de sobreposição. Esta página é mais estreita: onde a máscara acontece e o que essa posição protege — e o que não protege.

O caminho dos dados no CrispGuard: o que fica no navegador e o que sai dele

A máscara roda no content script da extensão, dentro da página que você já tem aberta. Comparar texto, trocar imagens e desenhar sobreposições acontece durante a renderização local. Nenhuma etapa desse caminho envia a página para um servidor.

O CrispGuard é uma extensão do Chrome, e a parte que faz o trabalho é um content script — código que o navegador injeta na página que você está vendo. Ele lê o texto e as imagens que já estão no documento, compara com a lista de palavras-chave que você configurou e reescreve o que o navegador vai desenhar. Uma palavra-chave encontrada vira uma barra sólida, um bloco de cor ou um emoji. Uma imagem encontrada vira um bloco provisório. Uma área selecionada recebe uma sobreposição. A página por baixo continua funcionando: links navegam, formulários enviam, a rolagem não muda.

Cada uma dessas etapas é uma operação local sobre um documento que já foi baixado: a comparação é feita contra uma lista guardada com a extensão, não contra um modelo em servidor, e nenhuma etapa desse caminho precisa mandar a página para algum lugar.

Isso é uma afirmação sobre o caminho da máscara, e vale ser preciso sobre o que ela não cobre. "Máscara local" e "zero requisições de rede" são duas afirmações diferentes. A segunda é mais forte e verificável. Esta página não promove a primeira a segunda. Segundo a descrição de recursos na ficha da loja, as decisões de máscara e o desenho acontecem no seu dispositivo. Com quem a extensão fala pela rede — verificação de licença, o que mais for — é definido pela política de privacidade dela, e esse é o documento a ler antes de decidir. O objetivo de projeto é manter o máximo de dados dentro do navegador; o comportamento exato de rede é uma pergunta para a política de privacidade, não para uma página de marketing.

A comparação útil é com um produto que declara a versão mais forte. A política de privacidade do ContextBlur declara processamento 100% local e zero requisições de rede, diz que o desfoque automático só roda quando o usuário clica em "Run auto-blur now" e que guarda seletores CSS em vez do conteúdo da página. Seja o que mais você tirar disso, ele estabelece algo útil: nesta categoria, "processado localmente" é uma afirmação que um fornecedor pode publicar e pela qual pode ser cobrado. Não é um argumento exclusivo do CrispGuard e não deveria ser aceito por confiança de nenhum fornecedor, incluindo este.

Cabe mais um limite aqui. A máscara muda o que a página exibe. Não criptografa a página, não a esconde dos processos do próprio navegador e não impede que alguém com acesso ao seu computador desbloqueado abra as ferramentas de desenvolvedor e leia o DOM diretamente. O CrispGuard é uma conveniência de privacidade para espaços compartilhados, não um produto de segurança, e não deveria ser descrito como tal.

O que acontece com a máscara quando você tira um print ou grava a tela: o que cobre e o que não cobre

Só o caminho da captura decide. Se a ferramenta lê a página renderizada pelo navegador, a máscara costuma fazer parte dessa imagem. Se lê o framebuffer do sistema operacional, ou uma câmera fotografa a tela, a extensão não consegue colocar a máscara ali.

O mecanismo explica o resultado. Uma extensão de navegador vive dentro do pipeline de renderização da página: edita o DOM e os estilos aplicados a ele, e o navegador pinta o resultado. As ferramentas de captura são de duas famílias. Umas perguntam ao navegador o que ele está exibindo — leem a mesma página renderizada que a extensão já modificou. Outras leem o framebuffer do sistema operacional, a imagem composta da tela inteira, e não consultam a página em momento algum.

As plataformas móveis mostram o que a segunda família consegue quando a plataforma colabora. O FLAG_SECURE do Android bloqueia prints na camada de segurança da plataforma, e o sistema operacional recusa a captura. Extensões do Chrome não têm camada equivalente — não existe API que permita a uma extensão pedir ao Windows, ao macOS ou a um dispositivo de captura que recuse o quadro.

O que uma captura costuma conter
Método de capturaA máscara costuma aparecer no resultado?Por quê
Captura dentro do navegador (Chrome DevTools, captureVisibleTab da extensão) Costuma aparecer, mas depende do momento da captura e da implementação A captura lê a página renderizada, então a sobreposição pode estar incluída — ou faltar, se a captura ocorreu antes de a máscara ser aplicada.
Captura do sistema operacional (Win+Shift+S, macOS Cmd+Shift+4) Não garantido A captura acontece na camada de framebuffer do sistema operacional, enquanto a extensão trabalha no DOM da página, então a extensão não controla o que o sistema captura.
Gravador de terceiros (OBS, Loom e similares no modo de captura de tela) Não garantido O caminho de gravação pode contornar o compositor de renderização do navegador e ler a tela direto, de modo que a sobreposição não faz parte dos quadros recebidos.
Câmera externa ou celular fotografando a tela Não garantido A câmera registra a luz emitida pelo monitor; a extensão muda pixels da página, não a saída física do painel, então a foto mostra o que o painel está exibindo.
Aplicativo de reunião compartilhando a tela inteira em vez de uma aba Não garantido O compartilhamento da tela inteira pode incluir outras janelas e notificações do sistema que ficam fora da página mascarada, e a extensão não alcança nada fora do navegador.

A máscara do CrispGuard é um controle de visibilidade na camada da página, não um bloqueio de captura. Se você precisa impedir capturas em nível de hardware, use o mecanismo de exibição segura que o sistema operacional ou a plataforma oferece, não uma extensão de navegador.

Duas consequências práticas decorrem disso. A primeira: presuma que a máscara está ausente em qualquer captura que você não testou. A segunda é que o teste é barato: tire uma captura com a ferramenta que você realmente usa, numa página que você realmente mascarou, e olhe o resultado.

Como o PIN do bloqueio de site é armazenado — um sinal de confiança que você pode conferir

O PIN do bloqueio de site é guardado como hash com sal, nunca em texto puro. Quem lê o armazenamento local da extensão obtém um valor que não pode digitar na caixa de desbloqueio. As configurações continuam uma interface normal; o PIN só é pedido no desbloqueio.

O bloqueio de site é um recurso PRO: ele pede um PIN antes de retirar a proteção de um site que você bloqueou. O que a extensão guarda é um hash com sal desse PIN — o PIN passado por uma função de mão única junto com um valor aleatório — e não o PIN. Ler o armazenamento local, portanto, não entrega um segredo utilizável. O sal também importa: duas instalações com o mesmo PIN produzem valores diferentes, então os dados não revelam que os PINs coincidem.

Vale pesar essa decisão porque ela é verificável. Um produto que guarda o PIN em texto puro diz algo sobre como pensa o armazenamento; um que guarda um hash diz que assumiu que alguém acabaria lendo aquele armazenamento. Nenhuma das duas escolhas torna um produto confiável por si só, mas numa ferramenta que fica em cada página que você abre, você quer ver a segunda.

O que o hash não faz é igualmente importante. Ele protege o valor guardado, não o estado desbloqueado: se um site já está desbloqueado e alguém está atrás de você, essa pessoa está lendo a página, não o hash. Um PIN numérico curto também é adivinhável com tentativas suficientes, e um hash não diz nada sobre quantas tentativas são permitidas. O hash responde exatamente a uma pergunta — o que um atacante aprende ao ler este arquivo — e responde bem.

Se você está decidindo se confia numa extensão de privacidade de tela, o que deve verificar?

Cinco verificações resolvem a maior parte: o que a política de privacidade diz sobre transmitir conteúdo de páginas, onde a máscara realmente acontece, quais permissões foram pedidas, se a detecção automática espera um clique e se o produto admite seus limites.

Nenhuma exige conhecimento técnico. Exigem ler uma política e uma lista de permissões — um trabalho razoável antes de dar a uma ferramenta a capacidade de ler cada página que você abre.

  1. A política de privacidade diz, com essas palavras, que conteúdo de páginas, capturas e histórico de navegação não são transmitidos? Uma política que nomeia essas três categorias faz uma afirmação refutável; uma que só diz "respeitamos sua privacidade" não faz, e o que não pode ser refutado também não pode ser verificado depois.
  2. A máscara é feita num content script ou na camada da página, ou o conteúdo precisa primeiro chegar a um servidor? A resposta determina se "local" é propriedade da arquitetura ou apenas uma palavra na descrição — e só a primeira sobrevive a uma queda de rede.
  3. A extensão pede permissões sem relação com a máscara — área de transferência, interceptação de requisições, acesso a sites muito além do necessário? Toda permissão é uma capacidade que existe independentemente de a versão atual usá-la, então a lista fala do que poderia acontecer, não só do que acontece.
  4. A detecção automática só roda quando você a aciona? Um recurso que varre cada página por padrão tem postura de privacidade diferente de um que espera um clique, mesmo quando os dois produzem o mesmo na tela.
  5. O produto declara seus limites — "não é um produto de segurança", "não impede capturas no nível do sistema" — ou promete bloquear capturas? Um fornecedor que nomeia a fronteira normalmente pensou em onde ela está; um que promete tudo ou está errado ou está vendendo outra coisa.

Isto não é uma cartela de pontos, e esta página não a preenche em nome do CrispGuard. Quando um ponto não puder ser confirmado em documentação pública, trate-o como não confirmado e leia a política de privacidade. Essa é a versão honesta da resposta, e a única que continua verdadeira depois do próximo lançamento.

Perguntas frequentes

O CrispGuard envia o conteúdo das minhas páginas para um servidor?

O caminho da máscara não precisa disso. A comparação acontece no content script contra uma lista de palavras-chave guardada com a extensão, e a substituição é desenhada na própria página, então nenhuma etapa desse caminho envia a página. Se a extensão faz outras requisições de rede — a verificação de licença, por exemplo — isso é definido pela política de privacidade dela, e esse é o documento a consultar.

Usei a ferramenta de captura do sistema — a máscara continua lá?

Não é garantido. Uma captura do sistema lê o framebuffer do sistema operacional, enquanto a extensão só altera o que o navegador renderiza, então a presença da máscara depende do caminho de captura, não de ela estar ligada. Se a captura passa pela saída renderizada do navegador, a máscara costuma estar incluída.

Um gravador de tela captura a máscara?

Depende do modo de captura do gravador. Ferramentas que leem a página renderizada ou o compositor do navegador costumam incluir a sobreposição; ferramentas que capturam a tela no nível do sistema operacional podem ignorá-la por completo. Não há ajuste no CrispGuard que mude isso, porque a limitação está no caminho de captura, não na extensão.

Se eu esquecer o PIN do bloqueio de site, a extensão expõe o texto?

Não — só um hash com sal do PIN é guardado, então ler o armazenamento local da extensão não revela o PIN. Isso protege o que está guardado, não o que alguém pode ver: se o site já está desbloqueado e alguém olha para a sua tela, o PIN é irrelevante.

Uma extensão de privacidade de tela substitui uma película de privacidade?

Não. Uma película de privacidade estreita o ângulo de visão da tela física, então quem está ao seu lado não consegue ler de jeito nenhum, enquanto a extensão muda apenas pixels dentro do navegador. A película também cobre tudo na tela — outros aplicativos, notificações, uma videochamada —, e a isso uma extensão de navegador não chega. É o que o limite acima diz: controle na camada da página não é bloqueio de captura.

Se eu realmente precisar impedir capturas, o que devo usar?

Um mecanismo da plataforma, não uma extensão de navegador. O FLAG_SECURE do Android, os caminhos de reprodução protegidos por DRM e as políticas de dispositivos gerenciados que desativam a captura funcionam na camada do sistema operacional ou da plataforma, que é a camada por onde uma captura realmente passa. Na maioria das situações em espaços compartilhados, película de privacidade e virar a tela é a resposta prática.

← Todos os artigos