Segurança na Vaulted

Criptografia zero-knowledge: não conseguimos ler seus segredos, mesmo que quiséssemos.

Criado e mantido por Maxim Novak · [email protected]

Não confie na gente: verifique você mesmo

Cada afirmação desta página pode ser observada a partir do seu próprio navegador. Abra o DevTools, execute quatro testes rápidos e confirme que nem o texto simples nem a chave atravessam a rede. Cinco minutos, sem nenhuma ferramenta para instalar.

Security HeadersA+Mozilla ObservatoryA+SSL LabsA+Verificações de terceiros ao vivo: clique para verificar.

Criptografia AES-256-GCM

Todo segredo é criptografado no seu navegador usando AES-256-GCM, conforme especificado em NIST SP 800-38D — o mesmo padrão usado por governos e instituições financeiras do mundo todo. A criptografia acontece antes de qualquer dado sair do seu dispositivo.

A chave nunca sai do seu navegador

A chave de criptografia é colocada no fragmento da URL (a parte depois do #). Conforme o RFC 3986, fragmentos de URL nunca são enviados ao servidor: eles existem apenas no seu navegador. Só quem tem o link completo pode descriptografar o segredo.

Arquitetura zero-knowledge

Nosso servidor armazena apenas o texto cifrado e metadados (número de visualizações, expiração). Não temos como descriptografar seus dados: nunca vemos a chave nem o texto simples. Mesmo um comprometimento total do servidor só revelaria blocos criptografados.

Proteção opcional com frase-senha

Para mais segurança, você pode definir uma frase-senha ao criar um segredo. A frase-senha encapsula a chave de criptografia: mesmo que alguém intercepte o link, não conseguirá descriptografar o segredo sem ela. Compartilhe a frase-senha por um canal diferente (como uma ligação ou uma mensagem separada) para proteção máxima.

O que o servidor armazena

Um bloco criptografado, o número de visualizações restantes e um carimbo de data/hora de expiração. Só isso. Sem registros de IP, sem contas de usuário, sem análises sobre o conteúdo do segredo.

Exclusão automática

Os segredos são excluídos permanentemente quando o limite de visualizações é atingido ou quando o tempo de expiração passa. Não há lixeira, nem backup, nem forma de recuperar segredos excluídos.

Aberto por design

A lógica de criptografia e descriptografia roda inteiramente no seu navegador usando a Web Crypto API. Você pode inspecionar o código-fonte, verificar a implementação criptográfica e confirmar que nenhum texto simples sai do seu dispositivo.

Contra o que a Vaulted protege

Escuta na rede

Todos os dados são criptografados no seu navegador antes da transmissão. Mesmo que o tráfego de rede seja interceptado, os atacantes veem apenas o texto cifrado AES-256-GCM: a chave de criptografia nunca atravessa a rede.

Comprometimento do servidor

A Vaulted usa uma arquitetura zero-knowledge. O servidor armazena apenas o texto cifrado e metadados. Ele nunca recebe a chave de criptografia nem o texto simples, então uma invasão total do servidor não rende nada utilizável.

Acesso não autorizado

Os segredos são protegidos por limites de visualizações configuráveis, expiração automática (TTL) e proteção opcional com frase-senha. Uma vez atingido o limite de visualizações ou expirado o TTL, o segredo é excluído permanentemente.

Persistência dos dados

Os segredos são excluídos automática e permanentemente do armazenamento ao serem consumidos ou expirados. Não há backups, lixeiras nem mecanismos de recuperação.

Contra o que a Vaulted NÃO protege

Navegador ou dispositivo comprometido

Se um malware tem acesso ao seu navegador, ele pode ler o conteúdo descriptografado do DOM depois que você visualiza um segredo.

Keyloggers

Um keylogger no dispositivo do remetente ou do destinatário pode capturar uma frase-senha à medida que ela é digitada.

Extensões de navegador maliciosas

Extensões com acesso ao DOM podem ler o conteúdo descriptografado do segredo depois que ele é renderizado no navegador.

Compartilhamento ou capturas de tela pelo destinatário

Uma vez descriptografado o segredo, o destinatário vê o texto simples. Não há DRM: ele pode copiar, capturar a tela ou compartilhar.

Interceptação do link antes da visualização

Se a URL completa (incluindo o fragmento que contém a chave) for interceptada antes que o destinatário pretendido a abra, o segredo fica comprometido.

Frases-senha fracas

Se uma frase-senha for usada e for fraca, um atacante com acesso à chave encapsulada pode descobri-la por força bruta.

O que entregaríamos a uma intimação judicial

Uma pergunta comum das equipes de segurança e jurídicas: se fôssemos obrigados por um processo legal, o que a Vaulted poderia entregar de fato? A resposta honesta é “não muita coisa” — e isso é por design, não por política. Não podemos compartilhar o que nunca recebemos.

O que mantemos de qualquer segredo

  • Texto cifrado AES-256-GCM, o contador de visualizações restantes e um carimbo de data/hora de TTL — armazenados como um hash do Redis no Upstash.
  • Um salt opcional de chave encapsulada, caso o remetente tenha escolhido uma frase-senha.
  • Tudo acima é purgado automaticamente ao expirar o TTL ou quando o número máximo de visualizações é atingido. Sem backups, sem arquivos.

O que nunca é armazenado ou registrado

  • O conteúdo em texto simples.
  • A chave de criptografia: ela vive apenas no fragmento da URL (depois do #), que os navegadores não enviam ao servidor conforme o RFC 3986.
  • As frases-senha (apenas um salt não reversível é armazenado).
  • A identidade, o e-mail ou a impressão digital do dispositivo do destinatário.
  • Corpos de requisição, corpos de resposta ou referrers.

O que é registrado, brevemente

  • O IP do solicitante, usado apenas pelo Upstash Ratelimit (janela deslizante) para aplicar 10 criações/min e 30 visualizações/min por IP. Retido somente pelo tempo que a janela de limite de taxa exige.
  • Registros operacionais padrão da Vercel e do Upstash (códigos de status, latências) — não vinculados ao conteúdo do segredo.

O que as autoridades poderiam obter com um processo válido

No máximo: um bloco de texto cifrado opaco enquanto ainda estiver dentro da sua janela de TTL, além dos metadados acima. O bloco é ilegível sem a chave de descriptografia — que nunca tivemos e não temos como recuperar.

Sinceramente, não temos nada útil para entregar.

Divulgação responsável

Levamos a segurança a sério. Se você descobrir uma vulnerabilidade, reporte-a de forma responsável para que possamos resolvê-la antes que ela afete os usuários.

O que incluir em um relatório

  • Uma descrição da vulnerabilidade e seu impacto potencial
  • Passos para reproduzir o problema
  • Qualquer código de prova de conceito ou capturas de tela

Escopo

  • Dentro do escopo: implementação da criptografia, contorno de autenticação, exposição de dados, vulnerabilidades do lado do servidor
  • Fora do escopo: engenharia social, negação de serviço, spam

Nosso objetivo é confirmar o recebimento dos relatórios em até 48 horas.

Quer ver em ação?

Experimente o Playground de criptografia — uma demonstração interativa da mesma criptografia AES-256-GCM que a Vaulted usa. Ou leia nosso guia visual da criptografia de ponta a ponta.

Perguntas frequentes