Binary Attestation
Верификация целостности бинарников FlowLink — SHA-256 измерения, policy baseline, dashboard мониторинг.
~4 мин чтения
Обзор
Binary Attestation (RFC-002, Layer 2) обеспечивает верификацию целостности исполняемых файлов FlowLink. При каждом старте системы SHA-256 хеши всех бинарников (gateway + relay) измеряются и сравниваются с зафиксированным baseline. Если бинарник был изменён — система переходит в состояние TAMPERED.
Архитектура
1. Измерение (Measurement)
При старте `crates/attestation` вычисляет SHA-256 каждого бинарника (gateway, relay). Результат: имя, путь, хеш, размер, timestamp.
2. Policy Baseline
Администратор фиксирует текущие хеши как baseline через POST /api/v1/attestation/policy. Baseline сохраняется в конфигурации и используется для последующих сравнений.
3. Верификация (Verification)
Текущие измерения сравниваются с baseline. Совпадение = ATTESTED, несовпадение = TAMPERED. Результат доступен через API и dashboard.
API
/api/v1/attestation/reportТекущие измерения всех бинарников.
1curl -s https://flowlink.example.com/api/v1/attestation/report \2 -H "Authorization: Bearer flk_live_..."34# Response:5{6 "hostname": "server-01",7 "timestamp": "2026-05-31T15:00:00Z",8 "components": [9 {10 "name": "gateway",11 "path": "/opt/flowlink/bin/flowlink-gateway",12 "sha256": "2b12285b...",13 "size": 24775680,14 "measured_at": "2026-05-31T15:00:00Z"15 }16 ]17}
/api/v1/attestation/policyОжидаемые хеши (baseline). Если baseline не установлен — пустой ответ.
/api/v1/attestation/policyЗафиксировать текущие измерения как baseline. Выполняется один раз при настройке.
/api/v1/attestation/verifyСравнить текущие измерения с baseline. Возвращает ATTESTED или TAMPERED.
1curl -X POST https://flowlink.example.com/api/v1/attestation/verify \2 -H "Authorization: Bearer flk_live_..."34# Response (OK):5{6 "status": "ATTESTED",7 "verified_at": "2026-05-31T15:00:00Z",8 "components": [9 { "name": "gateway", "status": "OK" },10 { "name": "relay", "status": "OK" }11 ]12}1314# Response (Tampered):15{16 "status": "TAMPERED",17 "verified_at": "2026-05-31T15:00:00Z",18 "components": [19 { "name": "gateway", "status": "TAMPERED",20 "expected": "2b12285b...", "actual": "a1c3d4e5..." },21 { "name": "relay", "status": "OK" }22 ]23}
Dashboard
Страница /dashboard/attestation отображает текущий статус attestation с визуальным индикатором:
- 🟢ATTESTED — Все бинарники совпадают с baseline
- 🔴TAMPERED — Один или несколько бинарников не совпадают. Красная пульсация для привлечения внимания.
Быстрый старт
1# 1. Deploy FlowLink gateway + relay2# 2. Capture baseline (once):3curl -X POST https://flowlink.flow-masters.ru/api/v1/attestation/policy \4 -H "Authorization: Bearer flk_live_..."56# 3. Verify (can be automated in cron):7curl -X POST https://flowlink.flow-masters.ru/api/v1/attestation/verify \8 -H "Authorization: Bearer flk_live_..."910# 4. Check dashboard:11# https://flowlink.flow-masters.ru/dashboard/attestation
RFC-002
Binary Attestation — Layer 2 из RFC-002 (Audit Integrity). Layer 1 (Hash Chain) обеспечивает целостность audit логов, Layer 2 — целостность исполняемых файлов. Layer 3 (TEE Enclave) и Layer 4 (Policy Verification) запланированы в roadmap.