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.
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.