Pular para o conteúdo
brorn
Nº 009 · Vida pessoal

pass.me

Uma interface web nova e mais agradável para um cofre de senhas no formato KeePass, destrancado com uma chave de segurança física (YubiKey).

Em produção
Período
2026-08 → hoje
Plataformas
Web (só local)
Papel
Sozinho: design, código e entrega
Tecnologias
Fig. 1 · Toque para destrancar
Fig. 2 · Pastas e itens
Fig. 3 · Campo protegido

§1O problema

O cofre de senhas já existia e funcionava, mas a interface do programa de desktop era pouco prática para o dia a dia. Eu queria uma tela moderna sem trocar de formato nem abrir mão da chave física.

§2O que eu construí

  • Interface webLê e grava o próprio arquivo KeePass (o arquivo é o banco, sem outro banco por trás).
  • Desbloqueio pela YubiKeyDesafio e resposta, com toque, sem botão: a tela espera o toque e para quando a janela perde o foco.
  • Recursos do cofrePastas, campos protegidos, tipos livres de item e lixeira, tudo gravado dentro do formato KeePass.
  • Bloqueio automáticoPor inatividade.
  • Teste de ponta a pontaContra um cofre falso (fixture) com chave simulada por software.

§3As partes difíceis

4 itens
  1. 01

    Desbloqueio compatível com o KeePassXC

    Derivação de chave com Argon2 montada à mão em WebAssembly e resposta da YubiKey tratada do jeito do formato.

  2. 02

    Cada gravação pede um novo toque

    Cada gravação gera nova semente e exige novo toque na chave; por isso existe exclusão em lote (uma gravação, um toque).

  3. 03

    Escrita segura do arquivo

    Grava em temporário e renomeia, mantém backups rotativos, e se o arquivo mudou por fora a gravação é recusada e o app tranca.

  4. 04

    Testar sem nunca tocar no cofre real

    Cofre de teste e YubiKey falsa por software.

§4Resultado

Em produção desde agosto de 2026 e já testado e provado compatível com o cofre real do KeePassXC. O app só roda localmente; de propósito, não é exposto na rede.

§5Stack

  • Next.js 16
  • React 19
  • TypeScript 7
  • Tailwind 4
  • kdbxweb (KeePass / KDBX 4.1)
  • hash-wasm (Argon2)
  • YubiKey (ykman)
  • Design system próprio
  • pm2