Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ephemera — 제로 트러스트 SSH CA | Kitploit
도구/GitHubGitHub/qarait/ephemera
Authentication & AuthorizationCloud Infrastructure SecurityEncryption/Decryption ToolsConfiguration AuditingNetwork SecurityCryptographyDevSecOpsIdentity & Access Management (IAM)Incident Response
GitHubqarait/ephemera

ephemera

제로 트러스트 SSH CA

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는 네이티브 OpenSSH 기능을 기반으로 구축된 자체 호스팅 SSH 인증 기관입니다.
장기 사용 SSH 키를 필요 시점에 발급되는 수명이 짧은 인증서로 대체하며,
명시적인 물리적 존재 확인과 감사 가능한 권한 상승을 요구합니다.

중앙 집중식 SSH 거버넌스를 원하지만 MITM 프록시, 맞춤 프로토콜, 클라우드 종속성을 원하지 않는 팀을 위해 설계되었습니다.

Ephemera가 아닌 것

  • SSH 프록시나 MITM 게이트웨이가 아닙니다.
  • PAM 대체품이 아닙니다.
  • 런타임 모니터링 또는 행동 분석 도구가 아닙니다.
  • 클라우드 서비스가 아닙니다.
  • SIEM 또는 탐지 플랫폼이 아닙니다.

프로젝트 상태

핵심 SSH CA 기능: 프로덕션 준비 완료
신탁 예산(Trust Budgeting): 실험적(옵트인, 변경 가능)

실험적 기능은 명확히 분리되어 있으며 기본적으로 비활성화되어 있습니다.

왜 Ephemera인가?

전통적인 SSH는 랩톱과 서버에 흩어져 있는 장기 사용 개인 키에 의존합니다. 키가 유출되면 이를 발견하고 모든 곳에서 키를 교체할 때까지 접근이 지속됩니다. Ephemera는 정적 키를 자동으로 만료되는 수명이 짧은 인증서로 대체하여 오용 가능 시간을 몇 달에서 몇 분으로 줄입니다.

포지셔닝

가장 적합한 대상

  • 독립적 배포: 외부 클라우드 종속성 없이 CA의 완전한 소유권이 필요한 팀.
  • 에어갭 환경: 배포 후 아웃바운드 인터넷 접속 없이 작동하도록 설계됨.
  • 최소 오버헤드: 전체 시크릿 플랫폼을 관리하는 복잡성 없이 강력한 SSH 보안이 필요한 조직.

적합하지 않은 대상

  • 엔터프라이즈 IAM 통합: 복잡한 AD/LDAP 계층 구조와의 심층 통합이 필요하다면 Teleport나 HashiCorp Vault가 더 적합합니다.
  • 관리형 서비스 선호: Ephemera는 자체 호스팅되며 SaaS 변형을 제공하지 않습니다.

주요 기능

적시 접근(Just-in-Time Access) : 인증서가 몇 분 안에 만료(기본 5분)되어 도난된 자격 증명의 기회 창을 줄입니다.

WebAuthn 강제: 인증서 발급에는 YubiKey 또는 TouchID를 통한 물리적 MFA(FIDO2) 상호작용이 필요합니다.

독립적 복구: 암호화된 백업은 샤미르 비밀 공유(Shamir's Secret Sharing)로 보호되며, 복원을 위해 정족수가 필요합니다.

검증 가능한 감사: 모든 CA 작업은 변조 방지 기록을 위해 머클 체인 원장에 기록됩니다.

세분화된 RBAC: YAML 기반 정책 엔진이 역할, 리소스 및 조건에 따라 접근을 정의합니다.

Sudo Hang

실험적: 신탁 예산(Trust Budgeting) (옵트인)

Ephemera는 신탁 예산(Trust Budgeting)이라는 실험적이고 옵트인 방식의 거버넌스 기본 요소를 포함합니다.

신탁 예산은 접근을 유한하고 가시적인 리소스로 취급하여 인증서 발급 시 누적된 권한 있는 권한을 제한합니다. 각 인증서 발급은 명시적인 예산을 소비합니다. 예산이 소진되면 예산이 재설정되거나 별도의 비상(break-glass) 경로가 사용될 때까지 정상적인 발급이 중단됩니다.

이 메커니즘은:

  • 인증서 발급 시에만 작동합니다.
  • 런타임 모니터링이나 에이전트를 도입하지 않습니다.
  • 기본적으로 비활성화되어 있습니다.
  • 보장된 보안이 아닙니다.

신탁 예산은 실험적이며 변경되거나 제거될 수 있습니다.

문서: 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는 구성 플래그를 통해 비활성화할 수 있습니다. 섀도우 모드는 실패-개방이며 인증 결정에 영향을 미치지 않습니다.

호환성

Gate0 CLI 인터페이스에 대한 호환성이 깨지지 않습니다. 섀도우 로그는 새로운 필드를 얻지만 이전 버전과의 파싱 호환성은 유지됩니다.

빠른 시작

목표: 5분 안에 첫 번째 SSH 인증서를 발급합니다.

1. Ephemera 시작

root@kitploit:~
# 클론 및 시작
git clone https://github.com/Qarait/ephemera.git
cd ephemera
docker compose up -d

참고: CA 마스터 비밀번호는 첫 실행 시 자동 생성되어 유지됩니다.
프로덕션의 경우 시작 전에 .env 파일에 CA_MASTER_PASSWORD를 설정하세요.

[!IMPORTANT] 프로덕션 배포: 하드웨어 기반 키 격리를 위해 SoftHSM 백엔드를 사용하세요. CA 개인 키는 디스크에 절대 저장되지 않습니다. 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

# CA에 로그인
ephemera login

# 첫 번째 인증서 발급
ephemera renew

# 상태 확인
ephemera status

# 안전하게 연결!
ssh user@your-server

재해 복구 (암호화된 백업)

Ephemera는 임의의 비밀번호로 중요 데이터(CA 키, 데이터베이스)를 암호화한 후, 해당 비밀번호를 샤미르 조각으로 분할하는 안전한 백업 메커니즘을 제공합니다. 이렇게 하면 단 한 사람이 백업을 복원할 수 없지만, 정족수는 가능합니다.

백업 생성

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는 역할 기반 접근 제어(RBAC)를 위한 강력한 YAML 기반 정책 엔진을 사용합니다.

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] 위협 모델 및 보안 가정은 여기에 문서화되어 있습니다. 피드백과 비판을 환영합니다.

도구 다운로드
필드설명
timestampISO 8601 UTC 타임스탬프
match부울 — 두 엔진이 일치했는지 여부
versions.bridgeGateBridge Python 버전
versions.gate0Gate0 CLI 버전
versions.policy_hashpolicy.yaml의 SHA256 해시
context_hash정규화된 입력의 SHA256 해시
yaml_decisionYAML 엔진 결과
gate0_decisionGate0 엔진 결과
snapshot전체 컨텍스트(불일치 시에만, 크기 제한)