Criptografia de localStorage do Vault do Navegador
Importante: O Que Isto Cobre
Este post do blog explica o recurso opcional de vault do navegador - uma ferramenta de conveniência para salvar chaves API no localStorage do seu navegador com criptografia por senha.
Isto NÃO é sobre como armazenamos chaves API no lado do servidor. Quando você compra uma chave API, fazemos hash do segredo com bcrypt (13 rodadas) antes de armazená-lo em nosso banco de dados. O segredo em texto simples é limpo após sua primeira visualização.
O vault do navegador é totalmente opcional e roda 100% no seu navegador. Vamos explorar como funciona.
Criptografia Apenas no Navegador
Quando você salva uma chave API no vault do seu navegador, tudo acontece no lado do cliente:
1. Geração de Salt Específico do Dispositivo
-
Apenas na primeira vez: Gerar salt aleatório de 32 bytes via
CryptoJS.lib.WordArray.random(32) -
Armazenado no
localStoragecomounsandbox_device_salt - Único para seu dispositivo e navegador
2. Derivação do ID do Vault
- Você fornece uma senha (mínimo 8 caracteres)
-
Concatenar:
senha + device_salt -
Fazer hash:
SHA256(senha + device_salt) - O resultado se torna seu ID do Vault
3. Criptografia e Armazenamento
- Chaves API criptografadas usando AES-256 com sua senha
-
Dados criptografados armazenados no
localStoragecomounsandbox_vaults - ID do Vault usado como chave de busca
4. Descriptografia
- Re-derivar ID do Vault a partir de senha + device salt
- Buscar dados criptografados usando ID do Vault
- Descriptografar com sua senha
- Chaves existem descriptografadas apenas na memória
Isolamento de Dispositivo
A mesma senha em diferentes dispositivos produz IDs de Vault diferentes:
-
Dispositivo A:
SHA256("minhasenha" + "salt_abc123")→ ID do Vault:def456... -
Dispositivo B:
SHA256("minhasenha" + "salt_xyz789")→ ID do Vault:ghi012...
Mesmo que alguém roube sua senha, não poderá acessar seu vault sem o localStorage do seu dispositivo.
Arquitetura de Conhecimento Zero
O servidor nunca recebe:
- Sua senha do vault
- Seu device salt
- Seu ID do Vault
- Suas chaves criptografadas
Tudo permanece no localStorage do seu navegador. Literalmente não podemos acessar o conteúdo do seu vault mesmo que quiséssemos.
O Trade-Off
O Que Você Ganha ✅
- Máxima privacidade - não podemos acessar suas chaves
- Sem risco de violação de servidor - não há nada para violar
- Segurança específica do dispositivo
O Que Você Perde ❌
- Sem sincronização entre dispositivos
- Sem recuperação de senha
- Dependência de localStorage - limpar dados do navegador = perda permanente de dados
O Que Acontece Quando Você Limpa o localStorage?
Isto é crítico: Limpar localStorage é perda permanente e irrecuperável de dados.
Quando você limpa o localStorage do seu navegador, você perde:
- O device salt - não pode mais regenerar IDs de Vault
- Os vaults criptografados - todas as chaves API criptografadas deletadas para sempre
É como queimar tanto o cofre quanto a fechadura de combinação. Mesmo que você se lembre da sua senha, não pode recriar o mesmo ID do Vault sem o device salt original.
Por Que Isto É Na Verdade um Recurso
- Recomeço limpo: Reset completo de fábrica
- Sem dados órfãos: Vaults antigos não podem ser acessados ou vazados
- Auto-destrutivo: Dados não persistem se você não quer que persistam
- Sem backdoors: Nem mesmo você pode recuperá-los
Design definitivo com privacidade em primeiro lugar.
Propriedades de Segurança
Determinístico Por Dispositivo
- Mesma senha + mesmo dispositivo = mesmo ID do Vault (sempre)
- Você sempre pode desbloquear seu vault com a senha correta
Diferente Por Dispositivo
- Mesma senha + dispositivo diferente = ID do Vault diferente
- Vaults são isolados e não podem ser transferidos
Criptograficamente Forte
- SHA-256 para derivação de ID do Vault (hash unidirecional)
- AES-256 para criptografia (grau militar)
- Biblioteca CryptoJS (bem testada, amplamente usada)
Melhores Práticas
🔐 Segurança de Senha
- Use uma senha forte e única (12+ caracteres)
- Não existe recuperação de senha - escolha com sabedoria
💾 Estratégia de Backup
- Exporte suas chaves do vault desbloqueado para salvá-las em outro lugar
- Salve chaves exportadas em um gerenciador de senhas ou arquivo criptografado
- Vault é para conveniência, não armazenamento primário
- Não existe recurso de importação - chaves devem ser re-inseridas manualmente se o vault for perdido
- Trate limpar localStorage como formatar um disco rígido
🧹 Manutenção do Navegador
- Tenha cuidado ao limpar dados do navegador
- “Limpar histórico recente” é mais seguro que “Limpar todo o histórico”
- Exporte chaves antes de trocar de navegador
Comparação: Vaults do Lado do Servidor vs. do Lado do Cliente
| Recurso | Lado do Servidor | Lado do Cliente (Nosso) |
|---|---|---|
| Recuperação de senha | ✅ Sim | ❌ Não |
| Sincronização entre dispositivos | ✅ Sim | ❌ Não |
| Exportar vault | ✅ Sim | ✅ Sim (JSON) |
| Importar vault | ✅ Sim | ❌ Não (entrada manual) |
| Servidor pode acessar chaves | ⚠️ Tecnicamente sim | ✅ Impossível |
| Sobrevive a limpeza de localStorage | ✅ Sim | ❌ Não |
| Requer conta | ✅ Sim | ✅ Não |
| Sujeito a intimação judicial | ⚠️ Sim | ✅ Não |
| Verdadeiro conhecimento zero | ❌ Não | ✅ Sim |
Escolhemos segurança e privacidade sobre conveniência. Para sincronização entre dispositivos, use um gerenciador de senhas dedicado como 1Password, Bitwarden ou KeePass.
FAQ
P: Posso recuperar meu vault se esquecer minha senha? R: Não. Não temos sua senha, salt ou chaves.
P: Posso usar o mesmo vault em múltiplos dispositivos? R: Não. Cada dispositivo tem um salt único.
P: O que acontece se eu limpar o cache do meu navegador? R: Cache geralmente é seguro, mas limpar localStorage deleta seu vault permanentemente.
P: A unsandbox.com pode acessar minhas chaves salvas? R: Não. Tudo é criptografado no seu navegador.
P: Isto é mais seguro que um gerenciador de senhas? R: Trade-offs diferentes. Gerenciadores de senhas oferecem backup e sincronização. Nós oferecemos privacidade de conhecimento zero. Use ambos!
P: Posso exportar meu vault? R: Sim! Você pode exportar todas as chaves de um vault desbloqueado como JSON. No entanto, não há recurso de importação - você deve re-inserir chaves manualmente se perder seu vault.
Conclusão
O vault do navegador prioriza privacidade e segurança sobre conveniência. Perfeito para usuários que valorizam:
- Segurança de conhecimento zero
- Criptografia do lado do cliente
- Sem armazenamento do lado do servidor
- Máxima privacidade
Suas chaves, seu dispositivo, sua senha. Ninguém mais—nem mesmo nós—pode acessá-las.
É assim que deveria ser. 🔐