Neste guia
Por Equipe Vaukt5 min de leituraAtualizado em
Resumo em 3 pontos
- Zero-knowledge, no sentido de produto, quer dizer que o provedor não tem as chaves e não consegue ler o conteúdo.
- É diferente da criptografia em trânsito e em repouso, em que o provedor ainda tem as chaves.
- Há contrapartidas: redefinir a senha gera chaves novas, e o modelo não protege um aparelho comprometido.
O que significa zero-knowledge
Num serviço zero-knowledge, a criptografia acontece no aparelho do usuário, antes de qualquer envio. O servidor recebe, guarda e entrega blocos cifrados, mas não tem a chave para abri-los. Quem invadir o servidor encontra material ilegível.
O termo também existe na criptografia acadêmica, como provas de conhecimento zero, que é outro conceito. Aqui usamos o sentido de produto: o provedor não tem acesso ao conteúdo.
Como difere da criptografia comum
- Em trânsito (TLS): protege o dado entre o navegador e o servidor, mas o servidor recebe o conteúdo aberto.
- Em repouso: o servidor cifra o que guarda, mas ele mesmo tem as chaves e consegue ler.
- Zero-knowledge: a chave nunca chega ao servidor. Quem não tem a chave, inclusive o provedor, não lê.
Por isso o modelo faz diferença em receber senhas de clientes: o escritório não precisa confiar que o provedor nunca olhará.
Como o Vaukt aplica o modelo
- Senha: nunca vai ao servidor. O navegador a transforma com PBKDF2-SHA256 (600 mil iterações) e deriva duas chaves: uma para autenticar e outra para selar a sua chave privada.
- Par de chaves: cada usuário tem um par RSA-OAEP 3072. A chave pública fica no servidor. A privada fica selada e, aberta, só existe no navegador.
- Chave do link: cada link tem uma chave AES-256-GCM própria. Ela viaja depois do # do endereço, parte que o navegador não envia ao servidor, e/ou trancada para a chave pública de quem vai ler.
- Dado: textos e arquivos são cifrados com essa chave antes de sair do aparelho. O servidor guarda só blocos ilegíveis.
- Cofre: os itens são cifrados com AES-256-GCM e uma chave do cofre, que fica no servidor trancada com a sua chave pública. O servidor não consegue abri-la.
O desenho completo está na página de segurança.
Contrapartidas que vêm com o modelo
- Redefinir a senha gera um par de chaves novo. Credenciais recebidas antes deixam de abrir. O Vaukt avisa nas telas de redefinição e no login. O cofre se reabre com a chave de recuperação.
- A chave de recuperação fica com você. Tem 32 caracteres e aparece uma única vez. Sem ela e sem a senha, ninguém abre o cofre, nem o Vaukt.
- O e-mail não pode ser alterado, porque entra no cálculo da chave.
- Trocar de navegador pede a senha de novo ("Desbloquear cofre"), porque as chaves não saem do aparelho.
- O servidor não recupera nada por você, nem o suporte.
O que zero-knowledge não resolve
- Aparelho comprometido: se o computador de quem lê estiver infectado, o conteúdo pode ser visto lá.
- Chave falsa: um servidor comprometido poderia tentar entregar uma chave pública trocada. Por isso o Vaukt usa um código de segurança de 16 dígitos, conferido no navegador do cliente.
- Metadados: datas, tamanho do arquivo e contagem de acessos ainda existem, como descrito na política de privacidade.
Como avaliar qualquer fornecedor
- Onde a criptografia acontece: no navegador ou no servidor?
- Quem guarda as chaves, e o que acontece numa redefinição de senha?
- Quais metadados ficam registrados, e por quanto tempo?
- Como o apagamento é feito: exclusão real ou só marcação?
- Há um jeito de verificar que a chave do destinatário é a correta?