O que o seu sistema mostra e o que um invasor veria

Se alguém copiar o banco de dados, só leva a coluna da direita. Escreva, cifre e tente abrir com a senha errada.

O que a equipe vê

O que fica no banco

Ainda não há nada cifrado.
Salt, 16 bytes
vazio
IV, 12 bytes
vazio

Quatro testes que você mesmo pode fazer

  1. Abrir com a senha

  2. Alterar um único byte

    Um invasor muda um bit no banco, sem a senha. O GCM percebe, porque cada ficha leva uma etiqueta de autenticação.

  3. Cifrar a mesma ficha de novo

    O resultado precisa mudar a cada vez. Se fosse igual, daria para saber que dois clientes têm os mesmos dados.

  4. Medir o custo de adivinhar

    A chave passa por 600.000 rodadas de PBKDF2-SHA-256. Cada palpite de um invasor precisa pagar esse custo.

O que confiro em cada sistema que entrego

Vistoria de segurança

  • Nenhuma senha ou chave no código nem no histórico do Git
  • HTTPS e política de segurança de conteúdo (CSP)
  • Texto digitado tratado como texto, contra XSS
  • Consultas parametrizadas no banco, contra injeção de SQL
  • Senhas com hash lento, em vez de cifra reversível
  • Sessão, permissão por papel e proteção contra CSRF no servidor
  • Coleta só dos dados pessoais necessários, princípio da LGPD

O que esta tela não resolve

Criptografia protege o dado copiado, mas não um computador já invadido nem uma senha fraca. Quem perde a senha do cofre perde a ficha, porque não existe chave reserva nesta demonstração.

Em um sistema real, a chave fica fora do banco, em um cofre de chaves do servidor, e as senhas de login usam hash próprio para senha, como o Argon2id, em vez de cifra. Nenhum sistema é impossível de invadir, e a vistoria reduz o risco, sem eliminá-lo.

Como isto funciona

O navegador gera 16 bytes aleatórios (salt) e transforma senha e salt em uma chave de 256 bits com PBKDF2-SHA-256, em 600.000 rodadas. Depois gera 12 bytes aleatórios (IV) e cifra com AES-256-GCM. Tudo usa a Web Crypto, a criptografia nativa do navegador, sem biblioteca externa. Salt e IV não são segredo e ficam ao lado do texto cifrado.