Vendor Toolchain · PHP On-Premise

IRONCLAD STUDIO

Платформа для вендоров, поставляющих PHP On-Premise. Упакуйте приложение в единый зашифрованный бинарь, выпустите привязанную к железу лицензию и управляйте продлениями — без единого исходного файла у клиента.

0 Байт Кода на диске клиента
AES-256-GCM Шифрование исходников
Air-Gapped Лицензия без интернета
1 Файл Никаких зависимостей

Дилемма On-Premise

Распространение PHP-приложений на серверы клиентов исторически было кошмаром безопасности. Исходный код открыт, что позволяет украсть интеллектуальную собственность, обойти лицензирование или неавторизованно тиражировать инсталляции. IronClad меняет парадигму с «Исполнения скриптов» на «Бинарную среду выполнения».

📂

Классический подход

  • Тысячи .php файлов видны на диске клиента.
  • Лицензионная проверка отключается комментированием строки.
  • Один купленный экземпляр легко копируется на 10 серверов.
  • Обфускаторы несовместимы с Reflection и PHP 8 features.
  • IonCube/Zend Guard требуют расширений — запрещены в 90% госконтуров.
📦

IronClad Studio

  • Единый ELF-бинарь — код живёт зашифрованным внутри.
  • Лицензия встроена в бинарь, обойти нельзя без полной пересборки.
  • Node-locked: бинарь работает только на железе клиента по HWID.
  • Air-Gapped: проверка ключа без интернета — работает в любом контуре.
  • Нет зависимостей: клиент делает ./server — и готово.

Рабочий процесс Studio

От оплаты до работающего сервера у клиента — семь шагов. Вендор управляет всем процессом из единого интерфейса.

1
Клиент оплачивает лицензию
Вендор передаёт клиенту утилиту ironclad-harvester — небольшой исполняемый файл.
2
Клиент снимает Hardware ID
Harvester вычисляет цифровой отпечаток сервера (CPU, MAC-адреса) и возвращает зашифрованный JSON.
3
Вендор создаёт проект в Studio
Загружает PHP-источники (zip-архив или git-репозиторий), HWID-файл клиента и задаёт срок лицензии.
4
Studio собирает бинарь
Один клик — Studio шифрует код, компилирует C++ рантайм, вшивает PHP 8.4 и генерирует финальный ELF. Лог сборки в реальном времени.
5
Studio выпускает лицензию
Автоматически генерируются license.key и ironclad.state, привязанные к HWID клиента.
6
Вендор отгружает клиенту
Три файла: бинарь сервера + license.key + ironclad.state. Клиент запускает ./server — система работает.
Продление — без пересборки
Когда лицензия истекает, вендор нажимает «Extend» в Studio. Генерируется новый license.key весом 2 КБ. Клиент заменяет файл — сервер «оживает» без перезапуска бинаря. Подписочная модель работает даже в изолированных контурах.

Интерфейс Studio

Веб-приложение, запускаемое локально на машине вендора. Все операции — проекты, сборки, лицензии — в одном месте.

Dashboard — обзор проектов и лицензий

IronClad Studio — localhost:9000
📊 Dashboard
📁 Projects
🔑 Licenses
ℹ About
3
Total Projects
8
Active Licenses
1
Expiring Soon
12
Total Issued
ProjectClientSourceCreated
CRM ProООО «Альфа-Трейд»git23.04.2026Open →
MedSystem 2.0ФГБУ «Мед. центр»zip15.03.2026Open →
BillingXПАО «Регион Банк»git01.02.2026Open →

Build — сборка бинаря с реалтайм-логом

Projects / CRM Pro / Build
📊 Dashboard
📁 Projects
⚙️ Build
🔑 Licenses
🔒 Production 🐞 Debug
Security-hardened, node-locked binary
⚡ Start Build
Build ID: a4f2c8d1...
Status: success
⬇ Download .tar.gz
Step 1/6: Scanning PHP sources...
Step 2/6: Encrypting VFS blob (AES-256-GCM)...
Step 3/6: Compiling Engine runtime (musl static)...
Step 4/6: Patching binary — injecting VFS + license...
Step 5/6: Applying binary hardening...
Step 6/6: Generating license.key + ironclad.state...
──────────────────────
✓ BUILD SUCCESSFUL (47.2s)

Licenses — управление и продление

IronClad Studio — Licenses
📊 Dashboard
📁 Projects
⚙️ Build
🔑 Licenses
CRM Pro Go to Project
License IDBuildStatusExpiresDays LeftActions
a4f2c8d1 e9b31... Active 23.04.2027 365d 🔄 Extend⬇ Key
b8e10f23 7ac12... Active 11.05.2026 18d 🔄 Extend⬇ Key
c2d34e56 3fb88... Expired 01.01.2026 🔄 Extend⬇ Key

Подписочная модель для On-Premise

Исторически продажа «коробки» означала единовременный платёж без продлений. IronClad меняет экономику: клиент вынужден продлевать лицензию — без этого сервер перестаёт обрабатывать запросы.

🔒

Node-Locked

Бинарь работает только на сервере с совпадающим Hardware ID. Перенос на другую машину — фатальная ошибка при старте.

📡

Air-Gapped

Проверка лицензии полностью локальная — Ed25519 криптография внутри процесса. Не требует интернета, работает в ФСТЭК-контурах, банках, госструктурах.

🔄

Продление за 2 КБ

Renew = один клик в Studio, пересылка нового license.key клиенту. Пересборка бинаря не нужна. Клиент заменяет файл — сервер оживает.

Защита от отката часов

Самый распространённый взлом On-Premise лицензий — откат системного времени назад. IronClad ведёт зашифрованный счётчик реального времени работы. Манипуляции с часами ОС обнаруживаются и приводят к блокировке.

🔐

Скрытые переменные

ENV-переменные (ключи API, адреса БД, внутренние алгоритмы) вшиваются внутрь бинаря при сборке. Клиент никогда не увидит логины к облакам или секреты архитектуры.

💼

CLI-консоль внутри

Symfony bin/console работает через защищённый токен, встроенный в бинарь. Команды доступны клиенту, исходники — нет.

Артефакт сборки

Что Studio производит

Результат каждой сборки — единый статически скомпилированный ELF-файл. Внутри: интерпретатор PHP 8.4 со всеми расширениями, C++ HTTP-сервер, VFS с зашифрованным кодом вендора, встроенный лицензионный движок. Клиент получает один файл и запускает его без каких-либо зависимостей.

$ ./crm-server
[INFO] IronClad Engine v1.0
[VFS] Initializing encrypted storage...
[LIC] License valid · 365 days remaining
[NET] Listening on 0.0.0.0:8080

Состав бинарного файла (~65 МБ)

Гибридная виртуальная файловая система

Сердцем Engine является двухзонная VFS. Она перехватывает все файловые вызовы PHP и направляет их либо в зашифрованное хранилище исходников, либо на RAM-диск для кэша и сессий.

Среда PHP
Стандартные операции
file_get_contents()
include / require
glob() / stat()
Stream Wrapper
Ядро C++
Роутер VFS
нормализация и маршрутизация путей
mnt/
wmnt/
vfs://mnt 🔒

Исходный код (Read-Only)

AES-256-GCM Decrypt
vfs://wmnt 🧠

RAM-диск (Read/Write)

std::unordered_map

Производительность: RAM против Диска

Symfony-кэш и логи полностью живут на RAM-диске (wmnt). Дисковый I/O исключён — это даёт значительное снижение TTFB по сравнению с классическим PHP-FPM на SSD.

Сравнение пропускной способности

Время отклика API (TTFB)