
하드웨어 바인딩 및 클라우드 게이트 바이너리 실행, 암호화 출처 증명, 그리고 Crystal용 변조 방지 봉투 밀봉.
Crystal을 위한 하드웨어 바인딩 및 클라우드 게이트 방식의 바이너리 실행과 변조 방지 봉투 봉인.
Pyrite는 컴파일된 Crystal 바이너리가 오직 승인된 인프라에서만 실행되도록 보장합니다. 공격자가 바이너리를 추출, 유출, 탈취 또는 변조하더라도, 애플리케이션 로직이나 비밀이 노출되기 전에 실행이 즉시 중단됩니다.
systemd-creds) 또는 Google Cloud Run IAM / Cloud KMS로만 복호화할 수 있는 봉투 안에 봉인됩니다./proc/self/exe의 SHA-256 다이제스트를 계산하고, 봉투에서 복호화된 승인된 해시와 비교합니다. 단 1바이트라도 변경되면 프로세스가 즉시 중단됩니다.strip -s)에는 심볼 테이블, 리플렉션 메타데이터, 평문 구성이 전혀 포함되지 않습니다. 디컴파일해도 죽은 복호화 래퍼만 나옵니다.shard.yml에 추가dependencies:
pyrite:
github: renich/pyrite
version: ~> 0.2.0
require "pyrite"
require "kemal"
# Define strongly-typed application configuration
struct AppConfig
include JSON::Serializable
getter database_url : String
getter session_secret : String
getter api_token : String
end
# 1-line verification & bootstrap:
config = Pyrite.bootstrap!(AppConfig)
puts "Pyrite verified binary integrity. Starting application..."
get "/" do
"Secure service running on authorized hardware."
end
Kemal.run
Pyrite는 절대적인 제로 트러스트, 페일 클로즈 정책을 적용합니다:
Pyrite::HardwareAuthError와 함께 중단되고 코드 1로 종료됩니다.bin/pyrite)설치되면 Pyrite는 LLVM 컴파일, ELF 심볼 제거, SHA-256 다이제스트 해싱, 봉투 봉인을 자동화하는 컴파일된 CLI 도구를 제공합니다.
# Build & Seal for Google Cloud Run (KMS):
bin/pyrite build \
--input=src/main.cr \
--output=bin/app \
--target=gcp \
--kms-key="projects/my-p/locations/global/keyRings/my-r/cryptoKeys/app-key" \
--config=config/production.json
# Build & Seal for Bare-Metal Fedora (TPM 2.0 / systemd-creds):
bin/pyrite build \
--input=src/main.cr \
--output=bin/app \
--target=baremetal \
--pcr=0,7 \
--config=config/production.json
# Build & Seal for AWS (ECS / Lambda / KMS):
bin/pyrite build \
--input=src/main.cr \
--output=bin/app \
--target=aws \
--kms-key="arn:aws:kms:us-east-1:123456789012:key/..." \
--config=config/production.json
| 환경 | 제공자 | 신뢰 루트 | 보호 |
|---|---|---|---|
| Google Cloud Run | Pyrite::Providers::GCPKMS | Google Cloud IAM + Cloud KMS | BinAuthz + Instance Metadata OIDC |
| Fedora / Bare-Metal | Pyrite::Providers::SystemdCreds | 호스트 TPM 2.0 (PCR 0,7) | systemd-creds + Linux Kernel IMA |
| Bare-Metal Direct | Pyrite::Providers::TPM2Direct | /dev/tpmrm0 칩 | 직접 TPM2 PCR 개봉 (tpm2-tools) |
| AWS (ECS / Lambda) | Pyrite::Providers::AWSKMS | IMDSv2 + AWS KMS | AWS IAM Task Role Decrypt |
방대한 기술 문서, 사양, 아키텍처 결정 기록은 docs/ 아래 reStructuredText로 유지 관리됩니다:
| 가이드 | 범위 및 주요 내용 | 직접 링크 |
|---|---|---|
| 비즈니스 컨텍스트 및 전략 | 문제 정의, 위협 환경, 이해관계자 페르소나(Devon, Rénich, Sam), 정량화 가능한 ROI 목표. | Business Specs • Personas • Problem Statement |
| 기능 사양 | 요구사항 [FUNC-001]–[FUNC-005]: 실행 게이팅, 실시간 자체 무결성, 봉투 봉인, 개발자 경험, CLI 오케스트레이션. | Functional Specs • Execution Gating • Self-Integrity |
| 기술 아키텍처 | 사양 [TECH-001]–[TECH-005]: 핵심 역직렬화 엔진, 스트리밍 16KB SHA-256 해셔, 제공자 드라이버, 공식 STRIDE 위협 모델. | Technical Specs • Core Engine • Threat Model |
| 아키텍처 결정 기록 | 봉투 암호화 대 클라이언트 측 DRM, 제로 의존성 표준 라이브러리 설계를 문서화한 불변 ADR. | ADR Index • ADR 001 (Envelope Encryption) • ADR 002 (Stdlib Only) |
| 프로젝트 로드맵 및 추적 | 순차적 3단계 제공 추적, 검증 기준, 핵심 엔진·제공자·CLI 전반의 마일스톤 산출물. | Roadmap • Phase 1 • Phase 2 • Phase 3 |
| Crystal API 레퍼런스 | 완전한 대화형 타입 계층, 메서드 시그니처, 컴파일러 생성 레퍼런스. | API Reference |
모든 기여는 Universal Code of Honor와 Contributing Guidelines를 준수해야 합니다.
Copyleft © 2026 Rénich Bon Ćirić [email protected].
Pyrite가 유용하다고 생각하시고 지속적인 개발을 지원하고 싶으시다면, 기부를 고려해 주세요: