Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ephemera — Центр сертификации SSH с нулевым доверием | Kitploit
Инструменты/GitHubGitHub/qarait/ephemera
Аутентификация и авторизацияБезопасность облачной инфраструктурыИнструменты шифрования/дешифрованияАудит конфигурацииСетевая безопасностьКриптографияDevSecOpsУправление идентификацией и доступом (IAM)Реагирование на Инциденты
GitHubqarait/ephemera

ephemera

Центр сертификации SSH с нулевым доверием

2916 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

Ephemera : Центр сертификации SSH с нулевым доверием

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

Ephemera — это легковесный, самостоятельно размещаемый центр сертификации SSH, разработанный для обеспечения доступа с нулевым доверием к инфраструктуре. Он заменяет статические SSH-ключи на краткосрочные сертификаты, интегрирует WebAuthn MFA с аппаратной поддержкой и поддерживает криптографически проверяемые журналы аудита.

[!NOTE] Канонический источник: Codeberg
Зеркало на GitHub: GitHub (для доступности и хостинга)

Высокоуровневая архитектура

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

Что делает Ephemera: Управляет тем, кто может получить доступ и насколько долго.
Что Ephemera НЕ делает: Мониторинг в реальном времени, MITM-проксирование, инспекция команд.
Реализация: Полностью встроенный OpenSSH — никаких агентов Ephemera на целевых серверах.
Ротация ключей: Не требуется — сертификаты истекают автоматически.

Что такое Ephemera

Ephemera — это самостоятельно размещаемый центр сертификации SSH, построенный на встроенных функциях OpenSSH. Он заменяет долгоживущие SSH-ключи на краткосрочные сертификаты, выдаваемые по требованию, с явным физическим присутствием и аудитируемым повышением привилегий.

Он предназначен для команд, которым нужно централизованное управление SSH без MITM-прокси, собственных протоколов или облачных зависимостей.

Чем Ephemera не является

  • Не SSH-прокси или MITM-шлюз
  • Не замена PAM
  • Не инструмент мониторинга или анализа поведения в реальном времени
  • Не облачный сервис
  • Не SIEM или платформа обнаружения

Статус проекта

Базовая функциональность SSH CA: Готова к production
Trust Budgeting: Экспериментально (опционально, может измениться)

Экспериментальные функции четко изолированы и отключены по умолчанию.

Почему Ephemera?

Традиционный SSH опирается на долгоживущие закрытые ключи, распространяемые по ноутбукам и серверам. Как только ключ утекает, доступ сохраняется, пока вы не обнаружите это и не смените ключи везде. Ephemera заменяет статические ключи на краткосрочные сертификаты, которые истекают автоматически, сокращая окно злоупотребления с месяцев до минут.

Позиционирование

Лучше всего подходит для

  • Суверенные развертывания: Команды, которым нужна полная собственность на ЦС без внешних облачных зависимостей.
  • Изолированные среды: Спроектирован для работы без исходящего доступа в интернет после развертывания.
  • Минимальные накладные расходы: Организации, которым нужна надежная безопасность SSH без сложности управления полноценной платформой секретов.

Не подходит для

  • Консолидация корпоративного IAM: Если требуется глубокая интеграция со сложными иерархиями AD/LDAP, лучше подойдут Teleport или HashiCorp Vault.
  • Предпочтение управляемого сервиса: Ephemera размещается самостоятельно и не предлагает SaaS-варианта.

Ключевые возможности

Доступ по требованию : Сертификаты истекают через минуты (по умолчанию 5 мин), сокращая окно возможностей для кражи учетных данных.

Принуждение WebAuthn : Выдача сертификатов требует физического MFA (FIDO2) через YubiKey или TouchID.

Суверенное восстановление : Зашифрованные резервные копии защищены с помощью схемы Шамира, требующей кворума для восстановления.

Проверяемый аудит : Все действия ЦС записываются в журнал с цепочкой Меркла для защиты от несанкционированного изменения.

Гранулированное RBAC : Механизм политик на основе YAML определяет доступ по ролям, ресурсам и условиям.

Sudo Hang

Экспериментально: Trust Budgeting (Опционально)

Ephemera включает экспериментальный, опциональный примитив управления под названием Trust Budgeting.

Trust Budgeting ограничивает совокупные привилегированные полномочия во время выдачи сертификатов, рассматривая доступ как конечный, видимый ресурс. Каждая выдача сертификата потребляет явный бюджет. Когда бюджет исчерпан, обычная выдача прекращается до сброса бюджета или использования отдельного аварийного (break-glass) пути.

Этот механизм:

  • работает только во время выдачи сертификатов
  • не вводит мониторинг реального времени или агентов
  • отключен по умолчанию
  • не является гарантией безопасности

Trust Budgeting экспериментален и может быть изменен или удален.

Документация: docs/trust_budgeting.md

GateBridge: Теневое оценивание политик

Ephemera включает GateBridge — систему теневого оценивания, которая проверяет решения политик на альтернативном движке (Gate0), не влияя на производственное поведение.

Гарантии теневого режима

  • Fail-Open: Если Gate0 выходит из строя, падает или превышает таймаут, производственная выдача продолжается без последствий.
  • Без повторных попыток: Одна попытка на оценивание — без циклов повторения.
  • Без откатов: Движок политик YAML всегда является авторитетным.
  • Только наблюдение: Gate0 никогда не блокирует и не изменяет выдачу сертификатов.

Схема журнала (policy-shadow.log)

Каждая запись содержит:

Конечная точка работоспособности

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

Возвращает:

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

Откат

GateBridge можно отключить с помощью флага конфигурации. Теневой режим работает по принципу fail-open и не влияет на решения об авторизации.

Совместимость

Нет критических изменений в интерфейсе CLI Gate0. Теневые журналы получают новые поля, но остаются обратно совместимыми при парсинге.

Быстрый старт

Цель: Выпустить первый SSH-сертификат менее чем за 5 минут.

1. Запустите Ephemera

root@kitploit:~
# Клонирование и запуск
git clone https://github.com/Qarait/ephemera.git
cd ephemera
docker compose up -d

Примечание: Мастер-пароль ЦС генерируется автоматически и сохраняется при первом запуске.
Для production установите CA_MASTER_PASSWORD в файле .env перед запуском.

[!IMPORTANT] Производственные развертывания: Используйте бэкенд SoftHSM для изоляции ключей на аппаратном уровне. Закрытый ключ ЦС никогда не попадает на диск. См. Руководство по настройке PKCS#11.

2. Откройте панель управления

Откройте http://localhost:3000 в браузере.

Учетные данные по умолчанию:

  • Имя пользователя: admin
  • Пароль: Проверьте логи Docker:
    root@kitploit:~
    docker compose logs ephemera | grep "Password:"
    

3. Выпустите первый сертификат

  1. Пройдите настройку WebAuthn MFA (требуется аппаратный ключ или TouchID)
  2. Нажмите «Запросить сертификат»
  3. Ваш сертификат действителен в течение 5 минут

Альтернативные файлы Compose:

  • docker-compose.dev.yml — Разработка с локальной сборкой и syslog
  • docker-compose.test.yml — Включает SSH-цель для сквозного тестирования

2. Настройка клиента (Магия)

root@kitploit:~
# Установите CLI из исходников
git clone https://github.com/Qarait/ephemera.git
cd ephemera
pip install .

# Инициализируйте конфигурацию SSH
ephemera init

# Войдите в ЦС
ephemera login

# Выпустите первый сертификат
ephemera renew

# Проверьте свой статус
ephemera status

# Подключайтесь безопасно!
ssh user@your-server

Аварийное восстановление (Зашифрованная резервная копия)

Ephemera предоставляет безопасный механизм резервного копирования, который шифрует ваши критически важные данные (ключи ЦС, базу данных) случайным паролем, а затем разделяет этот пароль на части по схеме Шамира. Это гарантирует, что ни один человек не сможет восстановить резервную копию, но кворум сможет.

Создать резервную копию

root@kitploit:~
# Создать зашифрованную резервную копию и разделить пароль на 5 частей (порог 3)
ephemera backup-create --k 3 --n 5 --out-dir ./backup

Это создает:

  • ephemera_backup.enc (Зашифрованный архив)
  • backup_shard_1_of_5.json и т.д. (Части пароля)

Примечание: Храните части в отдельных, защищенных местах. Храните зашифрованный файл резервной копии в безопасности (он бесполезен без частей).

Восстановить резервную копию

root@kitploit:~
# Восстановить, используя зашифрованный файл и любые 3 части
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

Пример конфигурации (policy.yaml)

Ephemera использует мощный механизм политик на основе YAML для управления доступом на основе ролей (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

Документация

  • Обзор документации в реальном времени
  • См. ARCHITECTURE.md для деталей архитектуры.
  • См. SECURITY_MODEL.md для предположений об угрозах и границ доверия.
  • См. SECURITY_SPECIFICATIONS.md для углубленных технических спецификаций.
  • См. PRODUCTION_READY.md для чеклистов по усилению защиты и эксплуатации.
  • См. docs/ для дополнительных руководств.

Безопасность

Пожалуйста, смотрите SECURITY.md для информации об ответственном раскрытии.

Хотите внести вклад? Ознакомьтесь с нашими Небольшими задачами для новых участников.

[!TIP] Модель угроз и предположения по безопасности задокументированы здесь. Отзывы и критика приветствуются.

Скачать инструмент
ПолеОписание
timestampМетка времени ISO 8601 UTC
matchBoolean — согласны ли оба движка?
versions.bridgeВерсия Python GateBridge
versions.gate0Версия CLI Gate0
versions.policy_hashSHA256-хэш policy.yaml
context_hashSHA256-хэш канонизированного ввода
yaml_decisionРезультат движка YAML
gate0_decisionРезультат движка Gate0
snapshotПолный контекст (только при несовпадении, с ограничением размера)