
تنفيذ ثنائي مرتبط بالعتاد ومقيّد بالسحابة، وإثبات مصدر تشفيري، وختم مغلف مضاد للعبث لـ Crystal.
تنفيذ ثنائي مربوط بالعتاد ومقيّد بالسحابة، وإغلاق مغلّف مقاوم للعبث للغة Crystal.
Pyrite يضمن أن ملفك الثنائي المُجمَّع بلغة Crystal لا يعمل إلا على بنيتك التحتية المصرَّح بها. إذا قام خصم باستخراج الملف الثنائي أو تسريبه أو سرقته أو تعديله، يتوقف التنفيذ فورًا قبل كشف أي منطق تطبيقي أو أسرار.
systemd-creds) أو Google Cloud Run IAM / Cloud KMS./proc/self/exe ويقارنها بالبصمة المصرَّح بها التي تم فك تشفيرها من المغلّف. أي تغيير بمقدار بايت واحد يوقف العملية فورًا.strip -s) لا يحتوي على أي جداول رموز أو بيانات انعكاس أو إعدادات نصية واضحة. تفكيك الكود لا ينتج سوى غلاف فك تشفير ميت.shard.ymldependencies:
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
# سطر واحد للتحقق والتهيئة:
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 أداة CLI مُجمَّعة لأتمتة تجميع LLVM، وتجريد رموز ELF، وحساب بصمة SHA-256، وإغلاق المغلّف.
# 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
يتم الحفاظ على التوثيق التقني الشامل والمواصفات وسجلات قرارات البنية بصيغة reStructuredText تحت docs/:
يجب أن تلتزم جميع المساهمات بـ Universal Code of Honor وإرشادات المساهمة.
حقوق النشر © 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)، وأهداف عائد الاستثمار القابلة للقياس. | Business Specs • Personas • Problem Statement |
| المواصفات الوظيفية | المتطلبات [FUNC-001]–[FUNC-005]: بوابة التنفيذ، التحقق الذاتي من السلامة في الوقت الفعلي، إغلاق المغلّف، تجربة المطور، وتنسيق CLI. | Functional Specs • Execution Gating • Self-Integrity |
| البنية التقنية | المواصفات [TECH-001]–[TECH-005]: محرك إلغاء التسلسل الأساسي، مُجمّع بصمات SHA-256 المتدفق بحجم 16KB، برامج تشغيل المزوّدين، ونموذج تهديدات STRIDE الرسمي. | Technical Specs • Core Engine • Threat Model |
| سجلات قرارات البنية | ADRs غير قابلة للتعديل توثق تشفير المغلّف مقابل DRM من جانب العميل، وتصميم المكتبة القياسية بدون تبعيات. | ADR Index • ADR 001 (Envelope Encryption) • ADR 002 (Stdlib Only) |
| خارطة الطريق وتتبع المشروع | تتبع تسليم متسلسل على 3 مراحل، معايير التحقق، ومخرجات المراحل عبر المحرك الأساسي والمزوّدين وCLI. | Roadmap • Phase 1 • Phase 2 • Phase 3 |
| مرجع API بلغة Crystal | تسلسل هرمي تفاعلي كامل للأنواع، توقيعات الدوال، ومرجع مُولَّد بواسطة المترجم. | API Reference |