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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/mrcord77/rust_citadel
Authentication & AuthorizationEncryption/Decryption ToolsCryptographyCloud SecurityAPI Security
GitHubmrcord77/rust_citadel

rust_citadel

X25519 + ML-KEM-768과 AES-256-GCM을 결합한 포스트퀀텀 하이브리드 암호화 라이브러리

저장소 보기
23개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Citadel

포스트퀀텀 하이브리드 암호화 및 키 관리 서버.

Citadel은 키 캡슐화에 X25519 + ML-KEM-768을, 데이터 암호화에 AES-256-GCM을 결합하여 NIST의 포스트퀀텀 전환 하이브리드 방식을 따릅니다. 애플리케이션은 REST API를 통해 데이터를 암호화하고 복호화합니다. Citadel은 키 생성, 순환(rotation), 폐기(revocation), 접근 제어 및 감사 로깅을 관리합니다.

상태: 작동하는 구현체입니다. 감사(audit)되지 않았으며 프로덕션 배포 사례가 없습니다. 아래 보안을 참조하세요.


기능

root@kitploit:~
Your Application              Citadel                         Database
       |                         |                               |
       |-- POST /encrypt ------->|                               |
       |                         |-- hybrid KEM (X25519+ML-KEM)  |
       |                         |-- derive AES-256 key (HKDF)   |
       |                         |-- encrypt with AES-256-GCM    |
       |<-- encrypted blob ------|                               |
       |                                                         |
       |-- store blob ------------------------------------------>|

애플리케이션은 원시 키 자료(raw key material)를 직접 다루지 않습니다. 암호화된 blob은 자체 포함형(self-contained)으로, 래핑된 키, 알고리즘 식별자, 암호문을 포함합니다. 이를 아무 데이터베이스에나 저장하세요. 동일한 AAD와 컨텍스트를 사용해 Citadel로 다시 보내면 복호화됩니다.

아키텍처

root@kitploit:~
citadel-envelope    Hybrid encryption core (X25519 + ML-KEM-768 + AES-256-GCM)
citadel-keystore    Key lifecycle management, 4-level hierarchy, threat-adaptive policies
citadel-api         HTTP server, scoped API key auth, rate limiting, real-time dashboard

빠른 시작

Docker (권장)

root@kitploit:~
# Clone
git clone https://github.com/mrcord77/rust_citadel.git
cd rust_citadel

# Set your admin API key
echo -n "your-secret-key" | sha256sum | cut -d' ' -f1
# Copy the hash

# Start
CITADEL_API_KEY_HASH=<paste-hash> docker compose up -d

# Verify
curl http://localhost:3000/health
# {"status":"ok","version":"0.2.0"}

대시보드: http://localhost:3000

소스에서 빌드

Rust 1.75+가 필요합니다.

root@kitploit:~
cargo build --release -p citadel-api
CITADEL_API_KEY="your-secret-key" CITADEL_SEED_DEMO=true ./target/release/citadel-api

사용법

Python

root@kitploit:~
import requests

api = "http://localhost:3000"
headers = {"Authorization": "Bearer your-secret-key"}

# Encrypt
r = requests.post(f"{api}/api/keys/{dek_id}/encrypt", headers=headers, json={
    "plaintext": "sensitive data",
    "aad": "record-001",        # binds ciphertext to this record
    "context": "patient-records" # domain separation
})
blob = r.json()

# Decrypt
r = requests.post(f"{api}/api/decrypt", headers=headers, json={
    "blob": blob,
    "aad": "record-001",
    "context": "patient-records"
})
plaintext = r.json()["plaintext"]

AAD 바인딩, 키 순환, 위협 인지 애플리케이션 동작을 포함한 완전한 작동 예제는 citadel_example.py를 참조하세요.

curl

root@kitploit:~
# Status
curl http://localhost:3000/api/status -H "Authorization: Bearer $KEY"

# List keys
curl http://localhost:3000/api/keys -H "Authorization: Bearer $KEY"

# Encrypt
curl -X POST http://localhost:3000/api/keys/$DEK_ID/encrypt \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"plaintext":"hello","aad":"test","context":"demo"}'

API 엔드포인트

키 계층

root@kitploit:~
Root Key
  └── Domain Key (per environment / business unit)
        └── KEK — Key Encrypting Key (wraps DEKs)
              └── DEK — Data Encrypting Key (encrypts application data)

NIST SP 800-57을 따릅니다. 각 계층은 침해 시 피해 범위(blast radius)를 제한합니다. DEK가 유출되어도 KEK가 분리되어 있으므로 다른 DEK까지 노출되지 않습니다.

API 키 범위(Scope)

범위권한
read키, 상태, 메트릭, 위협 수준 조회
encrypt데이터 암호화 및 복호화
manage키 생성, 순환, 폐기, 파기

admin은 다른 모든 범위를 포함합니다. 최소 권한 원칙: 모니터링 대시보드에는 read, 애플리케이션 서비스에는 read + encrypt, 관리 도구에는 admin을 부여하세요.

적응형 위협 시스템

Citadel은 보안 이벤트를 모니터링하고 키 정책을 자동으로 조정합니다:

위협 수준을 높이는 이벤트: 인증 실패, 복호화 실패, 빠른 접근 패턴, 수동 상향 조정. 점수는 시간이 지나며 감소합니다.

암호화

하이브리드 구성: 두 공유 비밀 값을 연결하여 HKDF에 입력합니다. X25519 또는 ML-KEM-768 중 어느 하나라도 안전하다면 보안이 유지됩니다.

와이어 형식

root@kitploit:~
version[1] || suite_kem[1] || suite_aead[1] || flags[1] || kem_ct_len[2] ||
x25519_ephemeral_pk[32] || mlkem768_ct[1088] || nonce[12] || aead_ct[variable]

자기 설명적(self-describing), 버전 관리되며 협상(negotiation)이 없습니다(다운그레이드 공격 방지). 전체 사양은 SPEC.md를 참조하세요.

보안 특성

  • 상수 시간 비교 — subtle 크레이트를 통한 API 키 검증으로 타이밍 공격 방지
  • 제로화(Zeroization) — 모든 공유 비밀 값과 AES 키를 Zeroizing<T>로 감싸 해제(drop) 시 0으로 초기화
  • 균일한 오류 — 복호화 실패 시 동일한 오류 메시지 반환(복호화 오라클 방지)
  • 무결성 체인 감사 로그 — SHA-256 해시 체인으로 로그 변조 감지
  • 속도 제한 — IP별 토큰 버킷과 위반 시 위협 수준 상향 조정

보안

Citadel은 감사되지 않은 소프트웨어입니다.

이 구현은 검증된 Rust 크레이트(ml-kem, x25519-dalek, aes-gcm, hkdf)를 통해 NIST 표준화 프리미티브를 사용합니다. 자체적으로 암호화 알고리즘을 구현하지 않습니다. 가치는 새로운 수학이 아니라 올바른 구성에 있습니다.

수행된 작업:

  • 알려진 정답 테스트(known-answer tests)를 포함한 포괄적인 테스트 스위트
  • 와이어 형식 파서 및 전체 복호화 경로 퍼즈 테스트
  • 암호화/복호화 작업 타이밍 분석
  • 복호화 오라클 방지를 위한 균일한 오류 처리

수행되지 않은 작업:

  • 독립적인 보안 감사
  • 정식 검증(formal verification)
  • FIPS 검증
  • 프로덕션 배포

독립적인 검토 없이는 민감한 데이터에 사용하지 마십시오. 취약점 신고는 SECURITY.md를 참조하세요.

규정 준수

NIST SP 800-57의 34개 통제 항목에 대해 매핑: 26개 충족, 7개 부분 충족, 1개 미흡. 전체 매핑은 COMPLIANCE_MATRIX.md를 참조하세요.

관련 프레임워크: NIST SP 800-57(키 관리), CNSA 2.0(PQC 일정), HIPAA(저장 데이터 암호화), SOC 2(접근 통제 및 감사).

프로젝트 구조

root@kitploit:~
rust_citadel/
├── citadel-envelope/        # Core hybrid encryption library
│   ├── src/
│   │   ├── envelope.rs      # Encrypt/decrypt operations
│   │   ├── kem.rs           # X25519 + ML-KEM-768 hybrid KEM
│   │   ├── kdf.rs           # HKDF-SHA256 key derivation
│   │   ├── wire.rs          # Wire format encode/decode
│   │   ├── aead.rs          # AES-256-GCM wrapper
│   │   ├── aad.rs           # Additional authenticated data
│   │   ├── error.rs         # Uniform error types
│   │   └── sdk.rs           # High-level API
│   ├── tests/               # KAT + roundtrip tests
│   └── fuzz/                # Fuzz targets
├── citadel-keystore/        # Key lifecycle management
│   └── src/
│       ├── keystore.rs      # Key CRUD + state machine
│       ├── policy.rs        # Crypto-period policies
│       ├── threat.rs        # Adaptive threat intelligence
│       ├── storage.rs       # File-based key storage
│       ├── audit.rs         # Integrity-chained audit log
│       └── types.rs         # Key types and states
├── citadel-api/             # HTTP server
│   └── src/
│       ├── main.rs          # API routes, auth, rate limiting
│       └── dashboard.html   # Real-time security dashboard
├── citadel_example.py       # Python integration example
├── Backup-Citadel.ps1       # Backup/restore tooling
├── docker-compose.yml       # Development deployment
├── docker-compose-production.yml  # Production with TLS
├── SPEC.md                  # Wire format specification
├── THREAT_MODEL.md          # Security goals and attacker model
├── COMPLIANCE_MATRIX.md     # NIST 800-57 control mapping
└── CITADEL_OVERVIEW.md      # Commercial overview

문서

라이선스

이 프로젝트는 이중 라이선스로 제공됩니다:

  • GNU Affero General Public License v3 (AGPL) — 오픈소스 사용용
  • 상업용 라이선스 — 독점 또는 상업적 사용용

상업 환경에서 이 소프트웨어를 사용하거나 AGPL 조건을 준수하고 싶지 않다면 상업용 라이선스를 취득해야 합니다.

상업적 조건은 COMMERCIAL_LICENSE.md를 참조하세요.

AGPL 전문은 AGPL-3.0.txt 및 COPYING에 제공됩니다.

연락처: [email protected]

저자

Andre Cordero — [email protected]

도구 다운로드
엔드포인트메서드범위설명
/healthGET—상태 확인
/api/statusGETread위협 수준, 키 개수
/api/metricsGETread보안 메트릭
/api/keysGETread모든 키 나열
/api/keysPOSTmanage새 키 생성
/api/keys/:idGETread키 세부 정보 가져오기
/api/keys/:id/activatePOSTmanage대기 중인 키 활성화
/api/keys/:id/rotatePOSTmanage키 순환(새 버전)
/api/keys/:id/revokePOSTmanage키 영구 폐기
/api/keys/:id/destroyPOSTmanage키 자료 파기
/api/keys/:id/encryptPOSTencrypt데이터 암호화
/api/decryptPOSTencrypt데이터 복호화
/api/threatGETread위협 인텔리전스 세부 정보
/api/policiesGETread활성 키 정책
/api/auth/whoamiGETread현재 API 키 정보
/api/auth/keysGETadminAPI 키 나열
/api/auth/keysPOSTadminAPI 키 생성
/api/auth/keys/:idDELETEadminAPI 키 폐기
admin
위 모든 권한 + API 키 관리
수준트리거대응
LOW정상 운영표준 암호 기간(crypto-period)
GUARDED경미한 이상 징후순환 주기 약간 단축
ELEVATED의심스러운 패턴순환 일정 압축
HIGH활성 위협 지표강제 순환, 사용량 제한 축소
CRITICAL공격 진행 중최대 제한
구성 요소
알고리즘
표준
키 캡슐화(고전)X25519 ECDHRFC 7748
키 캡슐화(포스트퀀텀)ML-KEM-768FIPS 203
데이터 암호화AES-256-GCMNIST SP 800-38D
키 파생HKDF-SHA256NIST SP 800-56C
문서대상 독자
SPEC.md와이어 형식 사양
THREAT_MODEL.md보안 목표 및 가정
COMPLIANCE_MATRIX.mdNIST 800-57 규정 준수 매핑
CITADEL_OVERVIEW.md상업적 포지셔닝
SECURITY.md취약점 신고
API_FREEZE.mdAPI 안정성 보장
DEPLOYMENT.md프로덕션 배포 가이드
QUICKSTART.md시작 가이드