The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

PKI с аппаратным TRNG за 10 дней при помощи AI
1. Проблема

AI-инструменты для разработки доступны всем. Результаты - нет.

Copilot, Claude, GPT - генерируют код за секунды. Но попробуйте построить
PKI-систему с аппаратным TRNG, тремя MCU-платами и деплоем на ARM64. Не
лендинг. Не TODO-приложение. Систему, где нарушение контракта на генерацию
ключей - не ошибка, а уязвимость.

Проблема не в качестве генерации. Проблема в контексте.

Контекстное окно модели - конечный ресурс. 200K токенов звучит много, пока не
загрузишь туда архитектуру проекта, историю решений, спецификации, тесты и
текущую задачу. На сложном проекте контекст заканчивается раньше, чем задача.

Три уровня потери:

  • Внутри сессии: на 50-м сообщении агент забывает что было на 10-м
  • Между сессиями: новый чат = чистый лист, каждый раз заново
  • Между проектами: переключился - потерял всё На одном проекте это терпимо. На одиннадцати - это стена. 420+ сессий, и каждая начинается с нуля, если не решить проблему системно. Вайб-кодинг - термин, который описывает работу с AI без структуры. "Напиши мне X" -> получил код -> вставил -> работает (или нет) -> следующий промт. Для лендинга хватает. Для системы с аппаратным TRNG, тремя MCU-платами, SELinux-политиками и FIPS-совместимой криптографией - нет. Не потому что AI плохой. Потому что без методологии работы с AI сложность побеждает. Шкала: вайб-кодинг -> структурированные промты -> оркестрация сессий -> полная система с контрактами. Большинство застревает на первых двух уровнях. 2. Решение: файлы вместо инфраструктуры Большие компании строят RAG-пайплайны: vector DB, embedding-сервер, chunking, retrieval tuning, GPU. Месяцы работы команды. 0.agent делает то же самое через readFile: RAG pipeline -> 0.agent:
  • Vector search -> ROUTE_CACHE.json (650 строк, 3% контекста)
  • RAG retrieval -> CONTEXT_LEVEL_1/2/3 (200/700/2000 токенов)
  • Fine-tuning -> Компетенции + роли (предметные знания проекта)
  • Evaluation pipeline -> drift_check.py (84 проверки, 0 расхождений)
  • Стоимость инфраструктуры: миллионы $ + команда DevOps -> текстовый редактор + git Это не упрощение. Это осознанный выбор: readFile детерминирован, vector search - нет. Когда речь о криптографических контрактах, детерминированность - не роскошь, а требование. Ты точно знаешь что загружено в контекст. С RAG - надеешься. Принцип: файловая система - это база данных. Markdown - формат. Git - версионирование. Никакой инфраструктуры кроме того что уже есть. Не нужен Redis для кэша, не нужен PostgreSQL для метаданных, не нужен S3 для хранения. Всё что нужно - текстовый редактор и git. Пять механизмов:
  • Маршрутизация - JSON-файл, 3% контекста при старте вместо 19%
  • Сессии с уровнями контекста - L1/L2/L3, 8 типов включая оркестраторы
  • Роли - режимы мышления: analyst видит архитектуру, coder - код, tester - edge cases
  • Контракты (SDD/DbC) - формальные PRE/POST/INV на поведение агента
  • Правила - кодифицированный опыт, каждое правило - шрам от реальной проблемы Это не фреймворк, спроектированный на доске. Это система, выросшая из 420+ сессий. Каждый механизм - ответ на конкретную проблему. Вместе - метод оркестрации AI-агента. Текущая реализация работает с Claude (Anthropic), но файлы портативны - vendor lock-in отсутствует. Завтра локальные модели дорастут - система переносится без изменений. 3. Доказательство: pki-on-box Теория без proof - маркетинг. Вот цифры:
  • Коммитов: 129
  • PR (merged): 15
  • Веток: 34
  • Дни активной работы: 10 (из 16 календарных, 27.03 - 11.04)
  • Автор: 1 человек
  • Python файлов: 36
  • C файлов (firmware): 19
  • Тестов: 62 contract + 15 HW + unit (99+ passed)
  • MCU борды: 3 (STM32G474, STM32G431, STM32H750)
  • Целевая платформа: RK3328 ARM64 (Cortex-A53, 2GB RAM)
  • Стоимость железа: ~$129 (SBC $111 + STM32 $18)
  • Стоимость токенов AI: 1208 руб за 18 из 35 сессий (остальные без трекинга) Репозиторий: github.com/vasilievsv/hw.pki-on-box Архитектура: тепловой шум с аппаратного TRNG -> DRBG (NIST SP 800-90A) -> генерация ключей -> CA -> сертификат X.509. Entropy chain: физический процесс (тепловой шум на ADC микроконтроллера) -> кондиционирование -> DRBG seed -> криптографически стойкая последовательность. Три мира: Windows (разработка), Linux ARM64 (продакшн), MCU (firmware). Деплой через SSH, systemd, без Docker на железке. Стоимость железа: $129 (RK3328 плата + STM32 борда). Производительность: 15.6 КБ/с энтропии, 1.6с на выпуск сертификата. Безопасность: SELinux enforcing + eBPF-фильтры + systemd sandboxing. Zero trust: HSM изолирован от PKI Core, коммуникация только через unix socket. Firmware hardening: 12 уязвимостей закрыты по NIST 800-90B (6 CRITICAL). Ноль открытых. Два кейса: 53 руб / 9 минут - оркестратор-сессия: 99 тестов, zeroization, FIPS KAT, CI security pipeline. Агент в роли architect декомпозировал задачу на 8 дочерних сессий, каждая со своей ролью. 5 руб / 2 минуты - три MCU-платы (STM32G474, G431, H750), PlatformIO, firmware для аппаратного TRNG. Класс задач убит: конфигурация embedded-проекта из "часы мучений с HAL" превратилась в рутину. Агент в роли firmware-coder знает HAL, знает PlatformIO, знает pinout конкретной борды - потому что компетенции загружены в контекст. 35 сессий. 6 ролей (analyst, architect, coder, tester, firmware-coder, devops). 3 оркестратора. 906 запросов к модели. 18.4 часа суммарной работы. Один человек. Для контекста: оценка аналогичной работы без агента - 40+ человеко-часов квалифицированного инженера. С учётом embedded-части (firmware TRNG, HAL, PlatformIO) и DevOps (systemd, SELinux, eBPF, деплой на ARM64) - скорее 60+. Здесь 18.4 часа. Разница не в скорости набора кода. Разница в том, что агент переключается между ролями без потери контекста: architect декомпозирует, coder реализует, tester проверяет, devops деплоит - и каждый "помнит" решения предыдущего. 4. Контракты: Design by Contract в эпоху AI Бертран Мейер сформулировал Design by Contract в 1986 году. Формальные контракты между модулями: предусловия, постусловия, инварианты. Красивая теория. Не взлетела - двойная работа: человек пишет и контракт, и код. AI-агент убирает то, что убило DbC. Человек пишет контракт. Агент пишет код и тесты. Человек проверяет контракт, а не тысячи строк реализации. Контракт становится единственной задачей человека. Всё остальное делегировано. Это не теория. Это рабочий процесс: контракт -> агент генерирует реализацию -> тесты проверяют postconditions -> автоматическая проверка находит расхождения. Мейер (1986) -> С AI-агентом (2026):
  • Кто пишет контракт: Человек -> Человек
  • Кто пишет код: Человек -> Агент
  • Кто проверяет: Компилятор Eiffel -> Агент + тесты + автоматическая верификация
  • Почему не работало: Двойная работа -> Работа делегирована Реальный контракт из pki-on-box - генерация ключей: contract: key_generation PRE: - DRBG.seeded == true - DRBG.reseed_counter { max_requests - algorithm {RSA-2048, RSA-4096, ECDSA-P256, Ed25519} POST: - private_key.encrypted(AES-256-GCM) - nonce.unique() - public_key = derive(private_key) INV: - padding == RSA-PSS (подпись) | RSA-OAEP (шифрование) - PKCS#1 v1.5 == ЗАПРЕЩЕНО Нарушение INV (PKCS#1 v1.5 вместо RSA-PSS) - это не баг. Это атака Блейхенбахера. Контракт предотвращает класс уязвимостей до того, как код написан. Контекст: Claude Mythos нашёл 0-day в OpenBSD (27 лет), FFmpeg (16 лет), Linux kernel, Rust unsafe. AI ломает быстрее, чем люди чинят. Язык не спасает - Rust unsafe это доказал. Контракты работают выше уровня языка. DbC Мейера - ответ на угрозу, которую показал Mythos. pki-on-box - живое доказательство: формальные гарантии на криптографию, не "надеемся что тесты поймают". Контракт на выпуск сертификата: contract: certificate_issuance PRE: - issuer_ca.valid() && !issuer_ca.revoked() - csr.signature.verify() == true POST: - cert.serial.unique() - cert.signature.verify(issuer_ca.public_key) == true - cert.extensions.key_usage.set() INV: - cert_chain.depth {= max_path_length - root_ca.offline == true (air-gapped) Два контракта - два стыка архитектуры. На каждом стыке формальные гарантии. CRYPTO_COMPLIANCE_REVIEW нашёл 2 CRITICAL проблемы именно через контрактный подход: PKCS#1 v1.5 padding и неправильный AES mode. Без контрактов это нашли бы тесты - может быть. Или пентест. Или злоумышленник. Реализация contract-тестов: test_crypto_engine_contract.py 5. Вывод Инструмент доступен всем. Метод - нет. 129 коммитов, 10 дней, $129 на железо, один человек - это не про AI. Это про организацию работы с AI. Вайб-кодинг работает для прототипов. Для PKI с аппаратным TRNG и формальными контрактами на криптографию нужен метод. Метод не продаётся и не скачивается. Он выращивается - через сессии, ошибки, рефлексию. 420+ сессий, 11 проектов, от embedded firmware до DevOps на ARM64. Каждая сессия - решение, которое стало частью системы. Каждое правило - шрам от реальной ошибки. Retry limit 3 - после 7 попыток починить один баг. Heartbeat каждые 3 операции - после двух "завис?" от пользователя. Task focus - после 30-итерационного фикса pytest вместо прогона тестов. Файлы портативны. Vendor lock-in отсутствует. Завтра локальные модели дорастут - система та же. Проверьте. Если сможете повторить - вы на правильном пути. Если нет - задумайтесь, почему. Ссылки
  • Meyer B. "Object-Oriented Software Construction" (1988, 2nd ed. 1997)
  • Meyer B. "Applying Design by Contract" (IEEE Computer, 1992)
  • NIST SP 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators
  • NIST SP 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation
  • pki-on-box на GitHub
  •  
    19.04.2026 , Автор: Васильев Сергей , Источник: https://github.com/vasilievsv...
    Ключи: ai, pki
    Раздел:    Корень / Программисту и web-разработчику / AI

    Обсуждение [ RSS ]
  • 1, Аноним (1), 09:18, 20/04/2026 [ответить]  
  • +/
    Ваше сообщение имеет характерный для Клода нейрослопный стиль.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру