Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ephemera — Zero-Trust SSH CA | Kitploit
Strumenti/GitHubGitHub/qarait/ephemera
Autenticazione e AutorizzazioneSicurezza dell'Infrastruttura CloudStrumenti di Crittografia/DecrittografiaAudit di ConfigurazioneSicurezza di ReteCrittografiaDevSecOpsGestione Identità e Accessi (IAM)Risposta agli Incidenti
GitHubqarait/ephemera

ephemera

Zero-Trust SSH CA

2916 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

Ephemera: Autorità di Certificazione SSH Zero-Trust

CI Status OpenSSF Best Practices Codacy Badge Release License: Apache-2.0 Platform Docker Python Fuzz Soak

Ephemera è un'autorità di certificazione SSH leggera e auto-ospitata, progettata per imporre l'accesso Zero-Trust per le infrastrutture. Sostituisce le chiavi SSH statiche con certificati a breve durata, integra l'autenticazione MFA WebAuthn basata su hardware e mantiene registri di audit crittograficamente verificabili.

[!NOTE] Fonte Canonica: Codeberg
Mirror GitHub: GitHub (per disponibilità e hosting)

Architettura di Alto Livello

root@kitploit:~
graph LR
    subgraph Client["Utente (Operatore)"]
        SSH["Client SSH"]
        HW["Chiave Hardware<br/>WebAuthn / YubiKey"]
    end

    subgraph Auth["Confine di Autenticazione"]
        MFA["WebAuthn MFA<br/><i>Presenza umana richiesta</i>"]
        OIDC["OIDC<br/><i>Opzionale</i>"]
    end

    subgraph CA["Ephemera Autorità di Certificazione SSH"]
        CORE["CA auto-ospitata<br/>Capace di air-gap"]
        POLICY["Motore delle Policy<br/><i>Governance al rilascio</i>"]
        BUDGET["Budget di Fiducia<br/><i>Opzionale</i>"]
    end

    subgraph Targets["Server di Destinazione"]
        NATIVE["OpenSSH nativo<br/>TrustedUserCAKeys"]
        NOAGENT["Nessun agente<br/>Nessun proxy SSH"]
    end

    subgraph Audit["Audit e Recupero"]
        LOG["Registro Audit<br/>A prova di manomissione"]
        BACKUP["Backup Crittografati<br/>Recupero Shamir"]
    end

    Client --> Auth
    Auth -->|"Certificato a breve durata"| CA
    CA -->|"Il certificato scade<br/>automaticamente"| Targets
    CA -.->|"Integrità post-fatto"| Audit

    style Auth fill:#e8f5e9,stroke:#2e7d32
    style CA fill:#e3f2fd,stroke:#1565c0
    style Audit fill:#fff3e0,stroke:#ef6c00

Cosa fa Ephemera: Governa chi può ricevere accesso e per quanto tempo.
Cosa NON fa Ephemera: Monitoraggio in esecuzione, proxy MITM, ispezione dei comandi.
Applicazione: Interamente all'interno di OpenSSH nativo — nessun agente Ephemera sui server di destinazione.
Rotazione delle chiavi: Non necessaria — i certificati scadono automaticamente.

Cos'è Ephemera

Ephemera è un'autorità di certificazione SSH auto-ospitata basata sulle funzionalità native di OpenSSH. Sostituisce le chiavi SSH a lunga durata con certificati a breve durata emessi just-in-time, con presenza fisica esplicita ed escalation dei privilegi verificabile.

È progettato per team che desiderano una governance SSH centralizzata senza proxy MITM, protocolli personalizzati o dipendenze cloud.

Cosa NON è Ephemera

  • Non è un proxy SSH o un gateway MITM
  • Non è un sostituto di PAM
  • Non è uno strumento di monitoraggio in esecuzione o di analisi del comportamento
  • Non è un servizio cloud
  • Non è una piattaforma SIEM o di rilevamento

Stato del Progetto

Funzionalità principale CA SSH: Pronto per la produzione
Budget di Fiducia: Sperimentale (opt-in, soggetto a modifiche)

Le funzionalità sperimentali sono chiaramente isolate e disabilitate per impostazione predefinita.

Perché Ephemera?

L'SSH tradizionale si basa su chiavi private a lunga durata distribuite su laptop e server. Una volta che una chiave perde, l'accesso persiste fino a quando non la si scopre e la si ruota ovunque. Ephemera sostituisce le chiavi statiche con certificati a breve durata che scadono automaticamente, riducendo la finestra di utilizzo improprio da mesi a minuti.

Posizionamento

Ideale per

  • Distribuzioni Sovrane: Team che necessitano piena proprietà della CA senza dipendenze cloud esterne.
  • Ambienti Air-Gapped: Progettato per funzionare senza accesso internet in uscita una volta distribuito.
  • Overhead Minimo: Organizzazioni che necessitano di una forte sicurezza SSH senza la complessità di gestire una piattaforma segreti completa.

Non adatto per

  • Consolidamento IAM Aziendale: Se hai bisogno di una profonda integrazione con gerarchie AD/LDAP complesse, Teleport o HashiCorp Vault sono più indicati.
  • Preferenza per Servizi Gestiti: Ephemera è auto-ospitato e non offre una variante SaaS.

Capacità Chiave

Accesso Just-in-Time : I certificati scadono in pochi minuti (default 5m), riducendo la finestra di opportunità per credenziali rubate.

Applicazione WebAuthn : Il rilascio del certificato richiede interazione MFA fisica (FIDO2) tramite YubiKey o TouchID.

Recupero Sovrano : I backup crittografati sono protetti tramite Shamir's Secret Sharing, richiedendo un quorum per il ripristino.

Audit Verificabile : Tutte le azioni della CA sono registrate in un registro a catena Merkle per una cronologia a prova di manomissione.

RBAC Granulare : Un motore di policy basato su YAML definisce l'accesso in base a ruoli, risorse e condizioni.

Sudo Hang

Sperimentale: Budget di Fiducia (Opt-in)

Ephemera include un primitivo di governance sperimentale e opt-in chiamato Budget di Fiducia (Trust Budgeting).

Il Budget di Fiducia limita l'autorità privilegiata cumulativa al momento del rilascio del certificato, trattando l'accesso come una risorsa finita e visibile. Ogni rilascio di certificato consuma un budget esplicito. Quando il budget è esaurito, il rilascio normale si ferma fino a quando il budget non viene ripristinato o viene utilizzato un percorso di emergenza separato (break-glass).

Questo meccanismo:

  • opera solo al momento del rilascio del certificato
  • non introduce monitoraggio in esecuzione o agenti
  • è disabilitato per impostazione predefinita
  • non è una garanzia di sicurezza

Il Budget di Fiducia è sperimentale e potrebbe cambiare o essere rimosso.

Documentazione: docs/trust_budgeting.md

GateBridge: Valutazione Ombra delle Policy

Ephemera include GateBridge, un sistema di valutazione ombra che convalida le decisioni delle policy rispetto a un motore alternativo (Gate0) senza influenzare il comportamento di produzione.

Garanzie della Modalità Ombra

  • Fail-Open: Se Gate0 fallisce, si blocca o scade, il rilascio in produzione continua senza effetti.
  • Nessun Riprovo: Singolo tentativo per valutazione — nessun ciclo di riprovo.
  • Nessun Fallback: Il motore di policy YAML è sempre autorevole.
  • Solo Osservazionale: Gate0 non blocca né modifica mai il rilascio del certificato.

Schema del Registro (policy-shadow.log)

Ogni voce contiene:

Endpoint di Salute

root@kitploit:~
GET /api/admin/gate0/status

Ritorna:

root@kitploit:~
{
  "bridge_version": "1.0.0",
  "gate0_version": "v0.2.1",
  "policy_hash": "sha256:8f4b...",
  "status": "healthy",
  "last_mismatch": null,
  "telemetry": {
    "latency_p50_ms": 2.3,
    "latency_p95_ms": 5.1,
    "latency_p99_ms": 8.7
  }
}

Rollback

GateBridge può essere disabilitato tramite flag di configurazione. La modalità ombra è fail-open e non influisce sulle decisioni di autorizzazione.

Compatibilità

Nessuna modifica sostanziale all'interfaccia CLI di Gate0. I registri ombra acquisiscono nuovi campi ma rimangono retrocompatibili.

Avvio Rapido

Obiettivo: Emettere il tuo primo certificato SSH in meno di 5 minuti.

1. Avvia Ephemera

root@kitploit:~
# Clona e avvia
git clone https://github.com/Qarait/ephemera.git
cd ephemera
docker compose up -d

Nota: La password master della CA viene generata automaticamente e persistita al primo avvio.
Per la produzione, imposta CA_MASTER_PASSWORD in un file .env prima di avviare.

[!IMPORTANT] Distribuzioni di Produzione: Utilizza il backend SoftHSM per l'isolamento delle chiavi basato su hardware. La chiave privata della CA non tocca mai il disco. Vedi Guida all'Installazione PKCS#11.

2. Accedi al Dashboard

Apri http://localhost:3000 nel tuo browser.

Credenziali predefinite:

  • Nome utente: admin
  • Password: Controlla i log Docker:
    root@kitploit:~
    docker compose logs ephemera | grep "Password:"
    

3. Emetti il Tuo Primo Certificato

  1. Completa la configurazione MFA WebAuthn (richiede chiave hardware o TouchID)
  2. Clicca su "Richiedi Certificato"
  3. Il tuo certificato è valido per 5 minuti

File Compose Alternativi:

  • docker-compose.dev.yml — Sviluppo con build locali e syslog
  • docker-compose.test.yml — Include target SSH per test end-to-end

2. Configurazione Client (La Magia)

root@kitploit:~
# Installa la CLI dal sorgente
git clone https://github.com/Qarait/ephemera.git
cd ephemera
pip install .

# Inizializza la tua configurazione SSH
ephemera init

# Accedi alla CA
ephemera login

# Emetti il tuo primo certificato
ephemera renew

# Controlla il tuo stato
ephemera status

# Connettiti in modo sicuro!
ssh user@your-server

Disaster Recovery (Backup Crittografato)

Ephemera fornisce un meccanismo di backup sicuro che crittografa i tuoi dati critici (chiavi CA, database) con una password casuale, e quindi suddivide quella password in frammenti Shamir. Ciò garantisce che nessuna singola persona possa ripristinare il backup, ma un quorum può farlo.

Creare un Backup

root@kitploit:~
# Crea backup crittografato e suddividi la password in 5 frammenti (soglia 3)
ephemera backup-create --k 3 --n 5 --out-dir ./backup

Questo produce:

  • ephemera_backup.enc (L'archivio crittografato)
  • backup_shard_1_of_5.json, ecc. (I frammenti della password)

Nota: Conserva i frammenti in posizioni separate e sicure. Conserva il file di backup crittografato in modo sicuro (è inutile senza i frammenti).

Ripristinare un Backup

root@kitploit:~
# Ripristina utilizzando il file crittografato e 3 frammenti qualsiasi
ephemera backup-restore --backup ./backup/ephemera_backup.enc --shards ./backup/backup_shard_1_of_5.json ./backup/backup_shard_2_of_5.json ./backup/backup_shard_4_of_5.json --out-dir ./restored

Esempio di Configurazione (policy.yaml)

Ephemera utilizza un potente motore di policy basato su YAML per il controllo degli accessi basato sui ruoli (RBAC).

root@kitploit:~
# Definisci i Ruoli
roles:
  developer:
    can_request_cert: true
    max_cert_duration: 300  # 5 minuti
    allowed_principals: ["dev-user"]
    
  admin:
    can_request_cert: true
    max_cert_duration: 3600 # 1 ora
    allowed_principals: ["root", "admin"]
    can_approve_sudo: true

# Definisci le Regole
rules:
  # Gli sviluppatori possono accedere solo ai server di sviluppo
  - role: developer
    resource: "dev-*"
    action: "ssh"
    effect: allow

  # Gli amministratori possono accedere a tutto con MFA
  - role: admin
    resource: "*"
    action: "ssh"
    effect: allow
    conditions:
      mfa_required: true

Documentazione

  • Panoramica della Documentazione in Vivo
  • Vedi ARCHITECTURE.md per i dettagli di progettazione.
  • Vedi SECURITY_MODEL.md per le ipotesi sulle minacce e i confini di fiducia.
  • Vedi SECURITY_SPECIFICATIONS.md per specifiche tecniche approfondite.
  • Vedi PRODUCTION_READY.md per liste di controllo per l'indurimento e le operazioni.
  • Vedi docs/ per guide aggiuntive.

Sicurezza

Consulta SECURITY.md per informazioni sulla divulgazione responsabile.

Vuoi contribuire? Dai un'occhiata ai nostri Compiti Piccoli per Nuovi Contributori.

[!TIP] Il modello delle minacce e le assunzioni di sicurezza sono documentati qui. Feedback e critiche sono benvenuti.

Scarica lo strumento
CampoDescrizione
timestampTimestamp ISO 8601 UTC
matchBooleano — i due motori sono d'accordo?
versions.bridgeVersione Python di GateBridge
versions.gate0Versione CLI di Gate0
versions.policy_hashHash SHA256 di policy.yaml
context_hashHash SHA256 dell'input canonico
yaml_decisionRisultato del motore YAML
gate0_decisionRisultato del motore Gate0
snapshotContesto completo (solo in caso di disaccordo, dimensione limitata)