Tatuzim

Tatuzim e uma camada de seguranca autonoma que entrega arquivos de alto valor (certificados TLS, plugins, configs sensiveis) entre um hub central e VPS remotos com forte garantia de autenticidade e integridade.

Visao Geral

Atributo Valor
Versao 0.1.0
Linguagem Rust (Edition 2024)
Licenca MIT
Status MVP / Smoke test em producao
Components Tatuzim Server, Tatuzim Agent, step-ca

Posicionamento

Tatuzim e um fundamento de seguranca, nao uma feature de produto. Ele e construido para ser uma dependencia confiavel de outros sistemas (Implant, Runner, DeployAlly, etc.) que precisam entregar segredos ou arquivos sensiveis em VPS remotos.

Principios nao-negociaveis:

  • Independencia operacional: Tatuzim nao depende de nenhum outro sistema pra funcionar. Se o ecossistema cair, Tatuzim continua entregando.
  • Agente proprio: o tatuzim-agent no VPS roda como usuario UNIX dedicado, em processo separado de qualquer outro daemon. Raio de blast limitado.
  • Pull-first: operacoes sensiveis (CSR, modo selado) sempre sao iniciadas pelo agente. Nada e empurrado sem autorizacao previa.
  • Tudo via mTLS strict: depois do enrollment inicial, todo trafego entre agent e server exige autenticacao mutua via certs emitidos por uma CA pinada.

Objetivos do Projeto

O Tatuzim foi criado para resolver:

  1. Distribuicao de certificados TLS sem chave privada trafegando pela rede (modo CSR)
  2. Entrega de segredos com confidencialidade end-to-end (modo selado, futuro)
  3. Configuracao centralizada com auditoria imutavel (modo push, futuro)
  4. Bootstrap seguro de VPS com identidade verificavel (enrollment com one-time token)
  5. Independencia operacional do resto do ecossistema CCS

Arquitetura (alto nivel)

┌──────────────────────────────────────────────────────────────────┐
│                            HUB                                    │
├──────────────────────────────────────────────────────────────────┤
│                                                                   │
│   step-ca (intermediate CA online)                                │
│      │                                                            │
│      │ assina certs                                               │
│      ▼                                                            │
│   tatuzim-server                                                  │
│   ├── vault Stoolap criptografado (ChaCha20-Poly1305)             │
│   ├── HTTP enroll (porta 8444, plain — sem cert do agent ainda)   │
│   └── HTTPS mTLS strict (porta 8443 — issue, manifest, events)    │
│                                                                   │
└────────────────────────────┬─────────────────────────────────────┘
                             │
                  mTLS via Internet ou WireGuard
                             │
                             ▼
┌──────────────────────────────────────────────────────────────────┐
│                          VPS / EDGE                               │
├──────────────────────────────────────────────────────────────────┤
│                                                                   │
│   tatuzim-agent (systemd, user `tatuzim`, /var/lib/tatuzim-agent) │
│   ├── identity/agent.{crt,key,ca.pem}  (emitido no enroll)        │
│   ├── out/                              (artefatos pra consumir)  │
│   └── state/processed.json              (idempotencia)            │
│                                                                   │
└──────────────────────────────────────────────────────────────────┘

Tres modos de operacao (roadmap)

Modo Status Uso
CSR (alta seguranca, pull) ✓ Disponivel Cert TLS - agente gera keypair e CSR localmente
Selado (envelope encryption) Roadmap Plugins, secrets - cifrado por destinatario
Push (server-initiated) Roadmap Configs nao-confidenciais, regras WAF

Features Principais

Vault criptografado em repouso

  • Stoolap (SQL embedded em pure Rust) + ChaCha20-Poly1305 + Argon2id
  • Padrao do Cofre adaptado pra simplicidade do MVP
  • Passphrase mestra define a chave (suporta env var pra automacao)

Identidade mTLS via step-ca

  • step-ca como CA hierarquica (root offline + intermediate online)
  • Server auto-bootstrap do proprio cert TLS no 1o boot
  • Agentes recebem cert no enrollment, renovam automaticamente antes da expiracao

Enrollment one-time

  • Token de 32 bytes URL-base64, SHA256 no DB
  • TTL configuravel (default 1h)
  • Vinculacao a hostname e role esperados
  • Single-use: rejeitado em duplicate enrollment

Audit log com hash chain

  • Cada evento (enroll, cert_renewed, entrega_instalada) inclui SHA256 do anterior
  • Adulteracao detectavel via tatuzim evento list --verify
  • Append-only por design

Hooks pos-instalacao

  • Apos cada carga processada, agent invoca $HOOK_DIR/post-{tipo}
  • Util pra systemctl reload, docker exec, etc.
  • Best-effort: hook falhando nao trava o processamento

Self-update verificado

  • tatuzim-agent self-update --url URL
  • Baixa binario + .minisig, valida com pubkey embutida (minisign-verify)
  • Swap atomic do binario, recusa releases nao assinados

Versionamento

Versao Data Destaque
0.1.0 2026-05-23 MVP inicial - Server full (vault + mTLS + audit) + Agent .deb com self-update

Ver Changelog para detalhes.

Como Comecar

Suporte

By Borlot.com.br on 23/05/2026