Coldkey: Geração de Chaves na Era Pós-Quântica e Ferramenta de Backup em Papel

✍️ OpenClawRadar📅 Publicado: May 15, 2026🔗 Source
Coldkey: Geração de Chaves na Era Pós-Quântica e Ferramenta de Backup em Papel
Ad

Coldkey é uma ferramenta de linha de comando para gerar chaves de criptografia age pós-quânticas e criar backups em papel. Ela resolve o problema de perder chaves privadas age—essenciais para descriptografar arquivos criptografados com age ou sops—produzindo documentos HTML para impressão com códigos QR.

Instalação

# Homebrew (macOS/Linux)
brew install --cask pike00/tap/coldkey

Ou com Go

go install github.com/pike00/coldkey/cmd/coldkey@latest

Início Rápido com Docker (recomendado)

# Baixar a imagem
docker pull ghcr.io/pike00/coldkey:latest

Interativo — gerar uma chave e backup em papel

just docker-run

Fazer backup de uma chave existente

just docker-backup /.config/sops/age/keys.txt

Todos os comandos just docker-* incluem flags de hardening de segurança: --network none, --read-only, --cap-drop ALL, --security-opt no-new-privileges:true. A saída é escrita em ./output/.

Comandos

  • Modo interativo (coldkey): Menu para gerar uma nova chave ou criar um backup a partir de uma existente.
  • Gerar (coldkey generate [-o CAMINHO] [-f] [--no-backup]): Gera um novo par de chaves age pós-quânticas (ML-KEM-768 + X25519). Saída padrão para stdout a menos que -o seja fornecido.
  • Backup (coldkey backup [flags] ARQUIVO_CHAVE): Cria um backup em papel HTML para impressão a partir de um arquivo de chave existente.
  • Versão (coldkey version): Exibe a string de versão.
Ad

Modelo de Segurança

  • Memória: Usa mlockall(MCL_CURRENT|MCL_FUTURE) para evitar que o material da chave seja trocado para o disco.
  • Arquivos: Escritos com modo 0600, sincronizados via fsync; temporários destruídos (sobrescrita de 3 passagens).
  • Processo: Segredos passados apenas via stdin/arquivos, nunca em argumentos de processo.
  • Container: Imagem distroless/static:nonroot sem shell, UID não root 65534.
  • Zeragem de memória: secure.Zero() de melhor esforço em buffers de chave antes do GC.

Codificação de Código QR

Chaves age pós-quânticas armazenam apenas uma semente de 32 bytes, então keys.txt normalmente tem ~2.089 bytes—cabendo em um único código QR (versão 40, EC-L suporta 2.953 bytes). Para arquivos maiores, coldkey divide em múltiplos códigos QR usando um protocolo de enquadramento: COLDKEY:<parte>/<total>:<dados>. Recuperação: escaneie todos os QR codes em ordem, remova os prefixos, concatene e verifique o checksum SHA-256.

Conteúdo do Backup em Papel

O HTML gerado inclui: título/metadados (data, hostname, usuário, caminho de origem), texto da chave em monoespaçado, código(s) QR com anotação de capacidade, checksum SHA-256 e instruções de recuperação passo a passo.

Procedimento de Recuperação

  1. Escaneie o código QR ou digite o texto da chave.
  2. Salve em /.config/sops/age/keys.txt.
  3. Verifique: sha256sum keys.txt corresponde ao checksum impresso.
  4. Teste: sops -d <qualquer arquivo .sops>

Limitações

O garbage collector do Go pode copiar objetos na memória, e as strings em Go são imutáveis—material da chave mantido como string (ex.: de identity.String()) não pode ser zerado de forma segura. Coldkey realiza zeragem de melhor esforço em buffers de bytes.

📖 Leia a fonte completa: HN LLM Tools

Ad

👀 See Also