
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.1.0
require "pyrite"
require "kemal"
# 型付きアプリケーション設定を定義
struct AppConfig
include JSON::Serializable
getter database_url : String
getter session_secret : String
getter api_token : String
end
# 1行での検証&ブートストラップ:
config = Pyrite.bootstrap!(AppConfig)
puts "Pyrite verified binary integrity. Starting application..."
get "/" do
"Secure service running on authorized hardware."
end
Kemal.run
開発中またはユニットテスト(crystal spec)中は、アクティブなクラウド認証情報や物理TPMは不要です。.pyrite.dev.json を作成するか、PYRITE_DEV=1 を設定するだけです:
{
"database_url": "postgresql://postgres:pass@localhost:5432/dev",
"session_secret": "insecure-dev-secret-key",
"api_token": "dev-token"
}
Pyriteはターミナルに明確な視覚的警告を表示し、ローカル設定をそのまま通過させます。
bin/pyrite)インストールすると、PyriteはLLVMコンパイル、ELFシンボルストリップ、SHA-256ダイジェストハッシュ、エンベロープ封印を自動化するコンパイル済みCLIツールを提供します。
# 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
# ベアメタル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
網羅的な技術ドキュメント、仕様、アーキテクチャ決定記録は、docs/ 配下にreStructuredTextで管理されています:
すべてのコントリビューションは、Universal Code of Honor および Contributing Guidelines に準拠する必要があります。
コピーレフト © 2026 Rénich Bon Ćirić <[email protected]>。
Pyriteが役立つと感じ、継続的な開発を支援したい場合は、寄付をご検討ください:
| 環境 | プロバイダー | 信頼のルート | 保護 |
|---|
| Google Cloud Run | Pyrite::Providers::GCPKMS | Google Cloud IAM + Cloud KMS | BinAuthz + Instance Metadata OIDC |
| Fedora / ベアメタル | Pyrite::Providers::SystemdCreds | ホストTPM 2.0(PCR 0,7) | systemd-creds + Linux Kernel IMA |
| ベアメタル直接 | Pyrite::Providers::TPM2Direct | /dev/tpmrm0 チップ | 直接TPM2 PCRアンシール(tpm2-tools) |
| AWS(ECS / Lambda) | Pyrite::Providers::AWSKMS | IMDSv2 + AWS KMS | AWS IAMタスクロール復号 |
| ローカル開発 | Pyrite::Providers::DevMock | ローカルファイル(.pyrite.dev.json) | 摩擦のないローカル開発 |
| ガイド | 範囲とハイライト | 直接リンク |
|---|
| ビジネスコンテキスト&戦略 | 問題定義、脅威環境、ステークホルダーペルソナ(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) |
| プロジェクトロードマップ&追跡 | コアエンジン、プロバイダー、CLIにわたる、順序付けられた3フェーズ納品追跡、検証基準、マイルストーン成果物。 | Roadmap • Phase 1 • Phase 2 • Phase 3 |
| Crystal APIリファレンス | 完全な対話型型階層、メソッドシグネチャ、コンパイラ生成リファレンス。 | API Reference |