
CA SSH de Confianza Cero
Ephemera es una Autoridad Certificadora (CA) SSH ligera y autoalojada, diseñada para imponer acceso de Cero Confianza (Zero-Trust) para infraestructura. Reemplaza las claves SSH estáticas con certificados de corta duración, integra MFA WebAuthn respaldado por hardware y mantiene registros de auditoría criptográficamente verificables.
[!NOTE] Fuente Canónica: Codeberg
Espejo en GitHub: GitHub (por disponibilidad y alojamiento)
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
Qué hace Ephemera: Gobierna quién puede recibir acceso y por cuánto tiempo.
Qué NO hace Ephemera: Monitoreo en tiempo de ejecución, proxy MITM, inspección de comandos.
Aplicación: Íntegramente dentro de OpenSSH nativo — sin agente de Ephemera en los servidores de destino.
Rotación de claves: No es necesaria — los certificados expiran automáticamente.
Ephemera es una Autoridad Certificadora SSH autoalojada construida sobre las funciones nativas de OpenSSH. Reemplaza las claves SSH de larga duración con certificados de corta duración emitidos justo a tiempo (just-in-time), con presencia física explícita y escalamiento de privilegios auditable.
Está diseñado para equipos que desean una gobernanza SSH centralizada sin proxies MITM, protocolos personalizados o dependencias en la nube.
Funcionalidad principal de CA SSH: Lista para producción
Trust Budgeting: Experimental (opt-in, sujeto a cambios)
Las funciones experimentales están claramente aisladas y deshabilitadas por defecto.
El SSH tradicional depende de claves privadas de larga duración distribuidas entre portátiles y servidores. Una vez que una clave se filtra, el acceso persiste hasta que la detectas y rotas las claves en todas partes. Ephemera reemplaza las claves estáticas con certificados de corta duración que caducan automáticamente, reduciendo la ventana de uso indebido de meses a minutos.
Acceso Just-in-Time: Los certificados caducan en minutos (5m por defecto), reduciendo la ventana de oportunidad para credenciales robadas.
Aplicación de WebAuthn: La emisión de certificados requiere interacción MFA física (FIDO2) mediante YubiKey o TouchID.
Recuperación Soberana: Las copias de seguridad cifradas están protegidas mediante Shamir's Secret Sharing, requiriendo un quórum para restaurar.
Auditoría Verificable: Todas las acciones de la CA se registran en un libro de contabilidad encadenado con Merkle para un historial a prueba de manipulación.
RBAC Granular: Un motor de políticas basado en YAML define el acceso según roles, recursos y condiciones.

Ephemera incluye un primitivo de gobernanza experimental y opt-in llamado Trust Budgeting.
Trust Budgeting limita la autoridad privilegiada acumulada en el momento de la emisión de certificados, tratando el acceso como un recurso finito y visible. Cada emisión de certificado consume un presupuesto explícito. Cuando el presupuesto se agota, la emisión normal se detiene hasta que el presupuesto se restablece o se utiliza una ruta de emergencia separada (break-glass).
Este mecanismo:
Trust Budgeting es experimental y puede cambiar o eliminarse.
Documentación: docs/trust_budgeting.md
Ephemera incluye GateBridge, un sistema de evaluación en sombra que valida las decisiones de política contra un motor alternativo (Gate0) sin afectar el comportamiento en producción.
policy-shadow.log)Cada entrada contiene: