
CA SSH de Confiança Zero
Ephemera é uma Autoridade Certificadora SSH leve e auto-hospedada, projetada para impor acesso Zero-Trust à infraestrutura. Ela substitui chaves SSH estáticas por certificados de curta duração, integra WebAuthn MFA com suporte a hardware e mantém trilhas de auditoria criptograficamente verificáveis.
[!NOTE] Fonte Canônica: Codeberg
Espelho GitHub: GitHub (para disponibilidade e hospedagem)
graph LR
subgraph Client["User (Operator)"]
SSH["SSH Client"]
HW["Hardware Key<br/>WebAuthn / YubiKey"]
end
subgraph Auth["Authentication Boundary"]
MFA["WebAuthn MFA<br/><i>Human presence required</i>"]
OIDC["OIDC<br/><i>Optional</i>"]
end
subgraph CA["Ephemera SSH Certificate Authority"]
CORE["Self-hosted CA<br/>Air-gap capable"]
POLICY["Policy Engine<br/><i>Governance at issuance</i>"]
BUDGET["Trust Budgeting<br/><i>Optional</i>"]
end
subgraph Targets["Target Servers"]
NATIVE["Native OpenSSH<br/>TrustedUserCAKeys"]
NOAGENT["No agents<br/>No SSH proxy"]
end
subgraph Audit["Audit & Recovery"]
LOG["Tamper-Evident<br/>Audit Log"]
BACKUP["Encrypted Backups<br/>Shamir Recovery"]
end
Client --> Auth
Auth -->|"Short-lived cert"| CA
CA -->|"Certificate expires<br/>automatically"| Targets
CA -.->|"Post-fact integrity"| Audit
style Auth fill:#e8f5e9,stroke:#2e7d32
style CA fill:#e3f2fd,stroke:#1565c0
style Audit fill:#fff3e0,stroke:#ef6c00
O que o Ephemera faz: Governa quem pode receber acesso e por quanto tempo.
O que o Ephemera NÃO faz: Monitoramento em tempo de execução, proxy MITM, inspeção de comandos.
Aplicação: Integralmente dentro do OpenSSH nativo — nenhum agente Ephemera nos servidores de destino.
Rotação de chaves: Desnecessária — os certificados expiram automaticamente.
O Ephemera é uma Autoridade Certificadora SSH auto-hospedada construída sobre os recursos nativos do OpenSSH. Ele substitui chaves SSH de longa duração por certificados de curta duração emitidos no momento exato (just-in-time), com presença física explícita e escalonamento de privilégios auditável.
Ele foi projetado para equipes que desejam governança SSH centralizada sem proxies MITM, protocolos personalizados ou dependências de nuvem.
Funcionalidade principal de CA SSH: Pronta para produção
Trust Budgeting: Experimental (opt-in, sujeito a alterações)
Os recursos experimentais são claramente isolados e desabilitados por padrão.
O SSH tradicional depende de chaves privadas de longa duração espalhadas por laptops e servidores. Quando uma chave vaza, o acesso persiste até que você a descubra e rotacione as chaves em todos os lugares. O Ephemera substitui chaves estáticas por certificados de curta duração que expiram automaticamente, reduzindo a janela de uso indevido de meses para minutos.
Acesso Just-in-Time: Os certificados expiram em minutos (padrão de 5m), reduzindo a janela de oportunidade para credenciais roubadas.
Aplicação de WebAuthn: A emissão de certificados exige interação física de MFA (FIDO2) via YubiKey ou TouchID.
Recuperação Soberana: Backups criptografados são protegidos pelo Compartilhamento de Segredo de Shamir, exigindo quórum para restaurar.
Auditoria Verificável: Todas as ações da CA são registradas em um ledger encadeado por Merkle para um histórico à prova de adulteração.
RBAC Granular: Um mecanismo de políticas baseado em YAML define acesso com base em papéis, recursos e condições.

O Ephemera inclui um primitivo de governança experimental e opt-in chamado Trust Budgeting.
O Trust Budgeting limita a autoridade privilegiada acumulada no momento da emissão de certificados, tratando o acesso como um recurso finito e visível. Cada emissão de certificado consome um orçamento explícito. Quando o orçamento é esgotado, a emissão normal é interrompida até que o orçamento seja redefinido ou um caminho de emergência separado (break-glass) seja utilizado.
Este mecanismo:
O Trust Budgeting é experimental e pode ser alterado ou removido.
Documentação: docs/trust_budgeting.md
O Ephemera inclui o GateBridge, um sistema de avaliação sombra que valida decisões de política contra um mecanismo alternativo (Gate0) sem afetar o comportamento em produção.
policy-shadow.log)Cada entrada contém: