Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ephemera — Zero-Trust SSH CA | Kitploit
Outils/GitHubGitHub/qarait/ephemera
Authentification et AutorisationSécurité de l'Infrastructure CloudOutils de Chiffrement/DéchiffrementAudit de ConfigurationSécurité RéseauCryptographieDevSecOpsGestion des Identités et des Accès (IAM)Réponse aux Incidents
GitHubqarait/ephemera

ephemera

Zero-Trust SSH CA

291il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Partager

Ephemera : Autorité de Certification SSH Zero-Trust

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

Ephemera est une autorité de certification SSH légère et auto-hébergée conçue pour imposer un accès Zero-Trust pour l'infrastructure. Elle remplace les clés SSH statiques par des certificats à courte durée de vie, intègre une MFA WebAuthn basée sur le matériel et maintient des pistes d'audit cryptographiquement vérifiables.

[!NOTE] Source canonique : Codeberg
Miroir GitHub : GitHub (pour la disponibilité et l'hébergement)

Architecture de haut niveau

root@kitploit:~
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

Ce que fait Ephemera : Gouverne qui peut recevoir l'accès et pour combien de temps.
Ce que Ephemera ne fait PAS : Surveillance en cours d'exécution, proxy MITM, inspection de commandes.
Application : Entièrement dans OpenSSH natif — aucun agent Ephemera sur les serveurs cibles.
Rotation de clés : Pas nécessaire — les certificats expirent automatiquement.

Ce qu'est Ephemera

Ephemera est une autorité de certification SSH auto-hébergée construite sur les fonctionnalités natives d'OpenSSH. Elle remplace les clés SSH à longue durée de vie par des certificats à courte durée de vie délivrés juste-à-temps, avec une présence physique explicite et une escalade de privilèges auditables.

Il est conçu pour les équipes qui souhaitent une gouvernance SSH centralisée sans proxies MITM, protocoles personnalisés ou dépendances cloud.

Ce qu'Ephemera n'est pas

  • Pas un proxy SSH ou une passerelle MITM
  • Pas un remplacement PAM
  • Pas un outil de surveillance en cours d'exécution ou d'analyse comportementale
  • Pas un service cloud
  • Pas une plateforme SIEM ou de détection

Statut du projet

Fonctionnalité principale de la CA SSH : Prêt pour la production
Trust Budgeting : Expérimental (optionnel, susceptible de changer)

Les fonctionnalités expérimentales sont clairement isolées et désactivées par défaut.

Pourquoi Ephemera ?

Le SSH traditionnel repose sur des clés privées à longue durée de vie réparties sur les ordinateurs portables et les serveurs. Une fois qu'une clé fuit, l'accès persiste jusqu'à ce que vous la découvriez et remplaciez les clés partout. Ephemera remplace les clés statiques par des certificats à courte durée de vie qui expirent automatiquement, réduisant la fenêtre de mauvaise utilisation de quelques mois à quelques minutes.

Positionnement

Idéal pour

  • Déploiements souverains : Équipes nécessitant la pleine propriété de leur CA sans dépendances cloud externes.
  • Environnements isolés (air-gapped) : Conçu pour fonctionner sans accès Internet sortant une fois déployé.
  • Faible surcharge : Organisations qui ont besoin d'une sécurité SSH solide sans la complexité de gérer une plateforme de secrets complète.

Pas pour

  • Consolidation IAM d'entreprise : Si vous nécessitez une intégration approfondie avec des hiérarchies AD/LDAP complexes, Teleport ou HashiCorp Vault sont mieux adaptés.
  • Préférence pour un service managé : Ephemera est auto-hébergé et ne propose pas de variante SaaS.

Capacités clés

Accès juste-à-temps : Les certificats expirent en minutes (5 min par défaut), réduisant la fenêtre d'opportunité pour des identifiants volés.

Application WebAuthn : La délivrance de certificats nécessite une interaction MFA physique (FIDO2) via YubiKey ou TouchID.

Récupération souveraine : Les sauvegardes chiffrées sont protégées via le partage de secret de Shamir, nécessitant un quorum pour restaurer.

Audit vérifiable : Toutes les actions de la CA sont enregistrées dans un registre chaîné Merkle pour un historique infalsifiable.

RBAC granulaire : Un moteur de politiques basé sur YAML définit l'accès en fonction des rôles, des ressources et des conditions.

Sudo Hang

Expérimental : Trust Budgeting (Optionnel)

Ephemera inclut une primitive de gouvernance expérimentale et optionnelle appelée Trust Budgeting.

Trust Budgeting limite l'autorité privilégiée cumulative au moment de la délivrance des certificats en traitant l'accès comme une ressource finie et visible. Chaque délivrance de certificat consomme un budget explicite. Lorsque le budget est épuisé, la délivrance normale s'arrête jusqu'à ce que le budget se réinitialise ou qu'un chemin d'urgence (break-glass) séparé soit utilisé.

Ce mécanisme :

  • fonctionne uniquement au moment de la délivrance des certificats
  • n'introduit aucune surveillance en cours d'exécution ni agent
  • est désactivé par défaut
  • n'est pas une garantie de sécurité

Trust Budgeting est expérimental et peut changer ou être supprimé.

Documentation: docs/trust_budgeting.md

GateBridge : Évaluation de politique en mode Shadow

Ephemera inclut GateBridge, un système d'évaluation en mode shadow qui valide les décisions de politique par rapport à un moteur alternatif (Gate0) sans affecter le comportement en production.

Garanties du mode Shadow

  • Fail-Open : Si Gate0 échoue, plante ou expire, la délivrance en production continue sans être affectée.
  • Pas de tentatives : Un seul essai par évaluation — pas de boucles de réessai.
  • Pas de repli : Le moteur de politiques YAML est toujours faisant autorité.
  • Observation seulement : Gate0 ne bloque ni ne modifie jamais la délivrance de certificats.

Schéma de log (policy-shadow.log)

Chaque entrée contient :

Point de terminaison de santé

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

Retourne :

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
  }
}

Retour en arrière

GateBridge peut être désactivé via un indicateur de configuration. Le mode shadow est fail-open et n'affecte pas les décisions d'autorisation.

Compatibilité

Aucun changement cassant dans l'interface CLI de Gate0. Les logs shadow gagnent de nouveaux champs mais restent rétrocompatibles en lecture.

Démarrage rapide

Objectif : Délivrer votre premier certificat SSH en moins de 5 minutes.

1. Démarrer Ephemera

root@kitploit:~
# Clone and start
git clone https://github.com/Qarait/ephemera.git
cd ephemera
docker compose up -d

Remarque : Le mot de passe maître de la CA est auto-généré et persisté au premier démarrage.
Pour la production, définissez CA_MASTER_PASSWORD dans un fichier .env avant de démarrer.

[!IMPORTANT] Déploiements en production : Utilisez le backend SoftHSM pour l'isolation des clés basée sur le matériel. La clé privée de la CA ne touche jamais le disque. Voir Guide d'installation PKCS#11.

2. Accéder au tableau de bord

Ouvrez http://localhost:3000 dans votre navigateur.

Identifiants par défaut :

  • Nom d'utilisateur : admin
  • Mot de passe : Vérifiez les logs Docker :
    root@kitploit:~
    docker compose logs ephemera | grep "Password:"
    

3. Délivrer votre premier certificat

  1. Terminez la configuration MFA WebAuthn (nécessite une clé matérielle ou TouchID)
  2. Cliquez sur "Demander un certificat"
  3. Votre certificat est valide pendant 5 minutes

Fichiers Compose alternatifs :

  • docker-compose.dev.yml — Développement avec builds locaux et syslog
  • docker-compose.test.yml — Inclut une cible SSH pour les tests de bout en bout

2. Configuration du client (La magie)

root@kitploit:~
# Install the CLI from source
git clone https://github.com/Qarait/ephemera.git
cd ephemera
pip install .

# Initialize your SSH config
ephemera init

# Login to the CA
ephemera login

# Issue your first certificate
ephemera renew

# Check your status
ephemera status

# Connect securely!
ssh user@your-server

Récupération après sinistre (Sauvegarde chiffrée)

Ephemera fournit un mécanisme de sauvegarde sécurisé qui chiffre vos données critiques (clés de la CA, base de données) avec un mot de passe aléatoire, puis divise ce mot de passe en fragments Shamir. Cela garantit qu'aucune personne seule ne peut restaurer la sauvegarde, mais qu'un quorum le peut.

Créer une sauvegarde

root@kitploit:~
# Create encrypted backup and split password into 5 shards (threshold 3)
ephemera backup-create --k 3 --n 5 --out-dir ./backup

Ceci produit :

  • ephemera_backup.enc (L'archive chiffrée)
  • backup_shard_1_of_5.json, etc. (Les fragments de mot de passe)

Remarque : Stockez les fragments dans des emplacements sécurisés distincts. Stockez le fichier de sauvegarde chiffré en toute sécurité (il est inutile sans les fragments).

Restaurer une sauvegarde

root@kitploit:~
# Restore using the encrypted file and any 3 shards
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

Exemple de configuration (policy.yaml)

Ephemera utilise un puissant moteur de politiques basé sur YAML pour le contrôle d'accès basé sur les rôles (RBAC).

root@kitploit:~
# Define Roles
roles:
  developer:
    can_request_cert: true
    max_cert_duration: 300  # 5 minutes
    allowed_principals: ["dev-user"]
    
  admin:
    can_request_cert: true
    max_cert_duration: 3600 # 1 hour
    allowed_principals: ["root", "admin"]
    can_approve_sudo: true

# Define Rules
rules:
  # Developers can only access dev servers
  - role: developer
    resource: "dev-*"
    action: "ssh"
    effect: allow

  # Admins can access everything with MFA
  - role: admin
    resource: "*"
    action: "ssh"
    effect: allow
    conditions:
      mfa_required: true

Documentation

  • Aperçu de la documentation en direct
  • Voir ARCHITECTURE.md pour les détails de conception.
  • Voir SECURITY_MODEL.md pour les hypothèses de menace et les limites de confiance.
  • Voir SECURITY_SPECIFICATIONS.md pour les spécifications techniques approfondies.
  • Voir PRODUCTION_READY.md pour les listes de contrôle de durcissement et d'exploitation.
  • Voir docs/ pour des guides supplémentaires.

Sécurité

Veuillez consulter SECURITY.md pour les informations de divulgation responsable.

Vous souhaitez contribuer ? Consultez nos Petites tâches pour les nouveaux contributeurs.

[!TIP] Le modèle de menace et les hypothèses de sécurité sont documentés ici. Les retours et critiques sont les bienvenus.

Télécharger l’outil
ChampDescription
timestampHorodatage UTC ISO 8601
matchBooléen — les deux moteurs étaient-ils d'accord ?
versions.bridgeVersion Python de GateBridge
versions.gate0Version CLI de Gate0
versions.policy_hashHash SHA256 du policy.yaml
context_hashHash SHA256 de l'entrée canonisée
yaml_decisionRésultat du moteur YAML
gate0_decisionRésultat du moteur Gate0
snapshotContexte complet (uniquement en cas de désaccord, limité en taille)