
Hardwaregebundene & Cloud-gesteuerte Binärausführung, kryptografische Herkunft und manipulationssichere Umschlagversiegelung für Crystal.
Hardware-gebundene & cloud-gesteuerte Binärausführung und Anti-Manipulations-Umschlagversiegelung für Crystal.
Pyrite stellt sicher, dass Ihre kompilierte Crystal-Binärdatei nur auf Ihrer autorisierten Infrastruktur ausgeführt wird. Wenn ein Angreifer die Binärdatei extrahiert, leakt, stiehlt oder modifiziert, wird die Ausführung sofort gestoppt, bevor Anwendungslogik oder Geheimnisse offengelegt werden.
systemd-creds) oder Google Cloud Run IAM / Cloud KMS entschlüsselt werden kann./proc/self/exe und vergleicht ihn mit dem autorisierten Hash, der aus dem Umschlag entschlüsselt wurde. Jede 1-Byte-Änderung stoppt den Prozess sofort.strip -s) enthält null Symboltabellen, Reflexionsmetadaten oder Klartextkonfiguration. Dekompilierung ergibt nur einen toten Entschlüsselungs-Wrapper.shard.yml hinzufügendependencies:
pyrite:
github: renich/pyrite
version: ~> 0.1.0
require "pyrite"
require "kemal"
# Stark typisierte Anwendungskonfiguration definieren
struct AppConfig
include JSON::Serializable
getter database_url : String
getter session_secret : String
getter api_token : String
end
# 1-zeilige Verifizierung & Bootstrap:
config = Pyrite.bootstrap!(AppConfig)
puts "Pyrite hat die Binärintegrität verifiziert. Anwendung wird gestartet..."
get "/" do
"Sicherer Dienst läuft auf autorisierter Hardware."
end
Kemal.run
Während der Entwicklung oder beim Unit-Testen (crystal spec) benötigen Sie keine aktiven Cloud-Anmeldedaten oder einen physischen TPM. Erstellen Sie einfach .pyrite.dev.json oder setzen Sie PYRITE_DEV=1:
{
"database_url": "postgresql://postgres:pass@localhost:5432/dev",
"session_secret": "insecure-dev-secret-key",
"api_token": "dev-token"
}
Pyrite gibt eine klare visuelle Warnung im Terminal aus und leitet Ihre lokale Konfiguration durch.
bin/pyrite)Bei der Installation stellt Pyrite ein kompiliertes CLI-Tool bereit, um LLVM-Kompilierung, ELF-Symbol-Stripping, SHA-256-Digest-Hashing und Umschlagversiegelung zu automatisieren.
# Build & Seal für 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 für 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
Umfassende technische Dokumentation, Spezifikationen und Architektur-Entscheidungsprotokolle werden in reStructuredText unter docs/ gepflegt:
Alle Beiträge müssen dem Universal Code of Honor und den Contributing Guidelines entsprechen.
Copyleft © 2026 Rénich Bon Ćirić <[email protected]>.
Wenn Sie Pyrite nützlich finden und die laufende Entwicklung unterstützen möchten, ziehen Sie bitte eine Spende in Betracht:
| Umgebung | Anbieter | Vertrauenswurzel | Schutz |
|---|
| Google Cloud Run | Pyrite::Providers::GCPKMS | Google Cloud IAM + Cloud KMS | BinAuthz + Instance Metadata OIDC |
| Fedora / Bare-Metal | Pyrite::Providers::SystemdCreds | Host-TPM 2.0 (PCR 0,7) | systemd-creds + Linux Kernel IMA |
| Bare-Metal Direkt | Pyrite::Providers::TPM2Direct | /dev/tpmrm0-Chip | Direktes TPM2-PCR-Unseal (tpm2-tools) |
| AWS (ECS / Lambda) | Pyrite::Providers::AWSKMS | IMDSv2 + AWS KMS | AWS IAM Task Role Decrypt |
| Lokale Entwicklung | Pyrite::Providers::DevMock | Lokale Datei (.pyrite.dev.json) | Reibungslose lokale Entwicklung |
| Leitfaden | Umfang & Highlights | Direkter Link |
|---|
| Geschäftskontext & Strategie | Problemstellung, Bedrohungslandschaft, Stakeholder-Personas (Devon, Rénich, Sam) und quantifizierbare ROI-Ziele. | Business Specs • Personas • Problem Statement |
| Funktionale Spezifikationen | Anforderungen [FUNC-001]–[FUNC-005]: Ausführungsgating, Echtzeit-Selbstintegrität, Umschlagversiegelung, Entwicklererfahrung und CLI-Orchestrierung. | Functional Specs • Execution Gating • Self-Integrity |
| Technische Architektur | Spezifikationen [TECH-001]–[TECH-005]: Kern-Deserialisierungs-Engine, Streaming-16KB-SHA-256-Hasher, Provider-Treiber und formales STRIDE-Bedrohungsmodell. | Technical Specs • Core Engine • Threat Model |
| Architektur-Entscheidungsprotokolle | Unveränderliche ADRs, die Umschlagverschlüsselung versus clientseitiges DRM und das Zero-Dependency-Standardbibliotheksdesign dokumentieren. | ADR Index • ADR 001 (Envelope Encryption) • ADR 002 (Stdlib Only) |
| Projekt-Roadmap & Tracking | Sequenzierte 3-Phasen-Lieferverfolgung, Verifizierungskriterien und Meilenstein-Liefergegenstände über Kern-Engine, Provider und CLI. | Roadmap • Phase 1 • Phase 2 • Phase 3 |
| Crystal-API-Referenz | Vollständige interaktive Typhierarchie, Methodensignaturen und compiler-generierte Referenz. | API Reference |