Segurança e privacidade
Seu arquivo permanece no seu dispositivo
O ZipRecover é construído como uma ferramenta de privacidade. Aqui está exatamente o que roda e onde, o que nunca recebemos e como o motor trata seus arquivos como entrada não confiável.
- Ler e analisar o arquivo
- Detectar o método de criptografia
- Derivar chaves e testar candidatas
- Confirmar e exibir um resultado
- Descriptografia local opcional de arquivos
- O próprio arquivo ZIP
- O conteúdo de qualquer arquivo dentro do ZIP
- Os nomes de arquivo armazenados dentro do ZIP
- As senhas candidatas que estão sendo testadas
- A senha recuperada
- Hashes do arquivo que pudessem identificar ou expor seus dados
O fluxo de dados
Quando você seleciona um arquivo, o navegador lê seus bytes com a File API. A página analisa a estrutura do ZIP no seu dispositivo, escolhe uma entrada criptografada, de preferência a menor que seja grande o bastante para confirmar uma senha de forma decisiva, e entrega a cada Web Worker só os bytes de que ele precisa para testar senhas (no AES, o sal, o valor de verificação, o texto cifrado e o código de autenticação; no ZipCrypto, os bytes criptografados dessa entrada), junto com um resumo do arquivo (nomes e tamanhos das entradas). Os workers fazem as verificações de senha, com o cálculo pesado em WebAssembly (hash-wasm) ou, na derivação de chave do AES, com a Web Crypto nativa do navegador quando ela é mais rápida no seu dispositivo, e nunca recebem o arquivo inteiro. Nada nesse fluxo vai para um servidor, e ele tem este aspecto:
Seu arquivo ZIP --> File API do navegador (local) --> ZIP analisado na página (local) --> Web Workers testam senhas (local) --> Resultado exibido somente para você
Deliberadamente não há nenhuma ramificação nesse diagrama que envie o seu arquivo para um servidor. O motor de recuperação não contém código de rede que envie dados do arquivo. Esse é o cerne da questão de saber se as ferramentas online de senha ZIP são seguras: o risco está no envio, e aqui o seu arquivo nunca é enviado.
Duas coisas que a ferramenta guarda no seu dispositivo ficam neste navegador: uma cópia de curta duração do arquivo que a página inicial entrega à ferramenta (no IndexedDB local, apagada assim que a página de recuperação a lê) e, durante uma busca por máscara ou por força bruta em pausa, um registro de retomada no armazenamento local. Nenhuma das duas é enviada a nós em momento algum. A seção 4 da política de privacidade descreve o que cada uma guarda e como apagá-la, o que importa em um computador compartilhado.
Relatórios de erro e análise de uso
Se o próprio código do site falhar no seu navegador, ele envia um relatório curto
para /api/error, neste mesmo site, e o servidor do site o registra (ele está
preparado para encaminhar os relatórios ao nosso hub central de erros, que ainda
não está funcionando). O relatório traz o tipo e a mensagem do erro, o stack
trace, o endereço do script com a linha e a coluna, o caminho da página (sem a
query string), o idioma da página, o user-agent do seu navegador, a hora, a versão
do site e, no caso de uma falha dentro da ferramenta de recuperação, um rótulo de
uma palavra que indica a parte que falhou. Ele nunca inclui o seu arquivo, o
conteúdo ou os nomes de arquivo dele, nem qualquer senha, e o navegador envia no
máximo dez relatórios por visualização de página. Os relatórios ficam guardados
por até 90 dias (veja a seção 4 da política de privacidade).
A ferramenta de recuperação inclui no próprio código uma função de análise de uso. Ela só consegue registrar alguns rótulos não identificadores sobre uma busca (o método de criptografia, o tamanho da chave AES do arquivo quando ele tem uma, o modo que você escolheu e se o arquivo é compatível), e nunca o seu arquivo, o conteúdo ou os nomes de arquivo dele, nem qualquer senha. Hoje não há nenhum coletor conectado, então ela não envia nada. A Cloudflare continua registrando os metadados habituais de cada requisição a cada visualização de página (veja a seção 4 da política de privacidade). Qualquer análise agregada do site adicionada no futuro ficará dentro dessa mesma lista de dados permitidos e nunca receberá conteúdo do arquivo, nomes de arquivo, senhas candidatas, senhas recuperadas ou hashes do arquivo.
Modelo de segurança de entrada não confiável
Um arquivo ZIP que você abre na ferramenta pode estar malformado ou ser hostil, então o motor trata cada arquivo como não confiável:
- Análise com verificação de limites. O analisador do formato valida cada deslocamento e comprimento antes de ler, de modo que um arquivo truncado ou manipulado gera um erro limpo em vez de ler fora dos limites.
- Limites de memória. A ferramenta testa as senhas contra uma única entrada criptografada de no máximo 256 MB comprimidos, e a descompressão dela para assim que a saída passa do tamanho que o arquivo declara para essa entrada, então uma entrada do tipo bomba de descompressão não pode se expandir sem limite. O arquivo que você abre na ferramenta é lido inteiro na memória.
- Verificação sem extração. Testar uma senha não requer extrair arquivos arbitrários. A confirmação lê apenas a entrada de verificação (a menor entrada que dá uma verificação definitiva, se o arquivo tiver uma): no AES, ela confere o HMAC armazenado sobre os dados criptografados, e no ZipCrypto ela descriptografa a entrada, descomprime se ela usa Deflate e compara seu CRC-32.
- Sem execução de código. O conteúdo do arquivo é tratado puramente como dados. Nada dentro de um arquivo é jamais executado ou interpretado.
O que "sem envio" significa e o que não significa
Seu arquivo não é enviado a nós. Como em qualquer site, as páginas, os scripts e a sondagem de compatibilidade do WebAssembly são baixados do nosso provedor de hospedagem. O único dado que o site envia de volta é o relatório de erro descrito acima, e ele não contém nenhum dado do seu arquivo.
Componentes de código aberto
A recuperação é construída sobre bibliotecas de código aberto consolidadas e licenciadas. A derivação de chave, o HMAC e o CRC-32 vêm do hash-wasm ou da Web Crypto do navegador; o fluxo de chave do ZipCrypto segue a especificação publicada da PKWARE no nosso próprio código, que os testes verificam com arquivos gravados pelo zip.js.
| Componente | Licença | Função |
|---|---|---|
| hash-wasm | MIT | WebAssembly PBKDF2-HMAC-SHA1, HMAC-SHA1, CRC-32 |
| zip.js | BSD-3-Clause | Descriptografia local opcional e referência do formato |
| fflate | MIT | Descompressão DEFLATE de reserva |
| Astro | MIT | Framework de sites estáticos |
Transporte e cabeçalhos
O site é servido por HTTPS com uma Content-Security-Policy rigorosa,
X-Content-Type-Options: nosniff, uma
Permissions-Policy restritiva e frame-ancestors 'none' para
evitar clickjacking. O WebAssembly é permitido via
script-src 'wasm-unsafe-eval'; as conexões são limitadas à
própria origem do site.
O que este projeto não consegue fazer
Como a recuperação é feita no lado do cliente, não podemos ver nem controlar como a ferramenta é usada, e é por isso que o uso autorizado é uma política que você aceita em vez de algo que possamos impor tecnicamente. E nenhuma ferramenta consegue recuperar uma senha forte arbitrária: os arquivos AES, em particular, usam uma derivação de chave lenta que torna a tentativa e erro cara por design.
Perguntas frequentes de segurança e privacidade
Vocês recebem meu arquivo ZIP em algum momento?
Não. Não há etapa de envio. O arquivo é lido localmente com a File API e analisado na própria página, e Web Workers testam as senhas contra os bytes de uma entrada criptografada dele. Nenhuma requisição de rede do aplicativo transporta seu arquivo, seu conteúdo ou seus nomes de arquivo internos.
Vocês armazenam ou transmitem as senhas recuperadas?
Não. Uma senha recuperada é exibida apenas na sua aba do navegador e copiada somente quando você clica em copiar. Ela nunca é enviada a lugar algum e a ferramenta não a grava em armazenamento persistente.
Quais componentes de código aberto impulsionam a recuperação?
É necessário isolamento de origem cruzada?
Não. O motor não usa SharedArrayBuffer nem WebAssembly com múltiplas threads, então o site não envia Cross-Origin-Embedder-Policy e não tem isolamento de origem cruzada (ele envia, sim, Cross-Origin-Opener-Policy: same-origin). Isso mantém a implantação simples e evita quebrar outros recursos.
Privacidade e processamento local
Continue explorando este tema
Temas relacionados: Recuperação de senha ZIP Criptografia ZIP
Pronto para recuperar sua senha de ZIP?
Tudo é executado localmente no seu navegador. Seu arquivo nunca sai do seu dispositivo.