
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 / ベアメタル | 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 タスクロール復号 |
網羅的な技術ドキュメント、仕様、アーキテクチャ決定記録は、docs/ 配下の reStructuredText で管理されています:
| ガイド | 範囲とハイライト | 直接リンク |
|---|---|---|
| ビジネスコンテキストと戦略 | 問題定義、脅威ランドスケープ、ステークホルダーペルソナ(Devon、Rénich、Sam)、および定量化可能な ROI 目標。 | ビジネス仕様 • ペルソナ • 問題定義 |
| 機能仕様 | 要件 [FUNC-001]~[FUNC-005]:実行ゲーティング、リアルタイム自己整合性、エンベロープ封印、開発者体験、CLI オーケストレーション。 | 機能仕様 • 実行ゲーティング • 自己整合性 |
| 技術アーキテクチャ | 仕様 [TECH-001]~[TECH-005]:コア逆シリアライズエンジン、ストリーミング 16KB SHA-256 ハッシャー、プロバイダードライバー、および正式な STRIDE 脅威モデル。 | 技術仕様 • コアエンジン • 脅威モデル |
| アーキテクチャ決定記録 | エンベロープ暗号化対クライアントサイド DRM、およびゼロ依存標準ライブラリ設計を記録した不変の ADR。 | ADR インデックス • ADR 001(エンベロープ暗号化) • ADR 002(標準ライブラリのみ) |
| プロジェクトロードマップとトラッキング | コアエンジン、プロバイダー、CLI にわたる 3 フェーズの順序立てられたデリバリートラッキング、検証基準、マイルストーン成果物。 | ロードマップ • フェーズ 1 • フェーズ 2 • フェーズ 3 |
| Crystal API リファレンス | 完全なインタラクティブ型階層、メソッドシグネチャ、コンパイラ生成リファレンス。 | API リファレンス |
すべてのコントリビューションは、Universal Code of Honor および Contributing Guidelines に従う必要があります。
Copyleft © 2026 Rénich Bon Ćirić [email protected]。
Pyrite が役立つと感じ、その継続的な開発を支援したい場合は、寄付をご検討ください: