
Аппаратно-привязанное и облачно-управляемое исполнение бинарных файлов, криптографическая проверка происхождения и защита от несанкционированного вмешательства с запечатыванием конверта для Crystal.
Привязка к оборудованию и облаку, управляемое облаком выполнение бинарных файлов и герметизация анти-тамперной оболочки для Crystal.
Pyrite гарантирует, что ваш скомпилированный бинарный файл Crystal будет выполняться только на вашей авторизованной инфраструктуре. Если злоумышленник извлечёт, сольёт, украдёт или изменит бинарный файл, выполнение немедленно останавливается до того, как будет раскрыта какая-либо логика приложения или секреты.
systemd-creds) или Google Cloud Run IAM / Cloud KMS./proc/self/exe и сравнивает его с авторизованным хешем, расшифрованным из оболочки. Любое изменение хотя бы на 1 байт немедленно останавливает процесс.strip -s) не содержит таблиц символов, метаданных рефлексии или конфигурации в открытом виде. Декомпиляция даёт лишь мёртвую обёртку расшифровки.shard.ymldependencies:
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 предоставляет скомпилированный 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
# 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 | Host TPM 2.0 (PCR 0,7) | systemd-creds + Linux Kernel IMA |
| Bare-Metal Direct | Pyrite::Providers::TPM2Direct | /dev/tpmrm0 chip | Direct TPM2 PCR unseal (tpm2-tools) |
| AWS (ECS / Lambda) | Pyrite::Providers::AWSKMS | IMDSv2 + AWS KMS | AWS IAM Task Role Decrypt |
Исчерпывающая техническая документация, спецификации и записи об архитектурных решениях ведутся в формате reStructuredText в каталоге docs/: