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-agentno 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:
- Distribuicao de certificados TLS sem chave privada trafegando pela rede (modo CSR)
- Entrega de segredos com confidencialidade end-to-end (modo selado, futuro)
- Configuracao centralizada com auditoria imutavel (modo push, futuro)
- Bootstrap seguro de VPS com identidade verificavel (enrollment com one-time token)
- 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
- Inicio Rapido — instalacao e primeiro enrollment em 5 minutos
- Instalar Server — setup detalhado do hub
- Instalar Agent — instalacao via .deb em VPS
- Arquitetura — visao detalhada dos componentes
Suporte
By Borlot.com.br on 23/05/2026