1. Что путешествует с отчётом
Три значения делают отчёт самопроверяемым. Они появляются на артефакте отчёта и в публичных метаданных share-портала для ссылки.content_hash — SHA-256 доказательств
content_hash — SHA-256 доказательств
Строчный hex-дайджест SHA-256 канонического JSON доказательств отчёта.
Байты детерминированы для данного отчёта, так что любой с теми же
доказательствами пересчитает идентичный хэш. Любое редактирование
доказательств меняет это значение.
signature — Ed25519 над хэшем
signature — Ed25519 над хэшем
Подпись Ed25519 в base64, вычисленная над hex
content_hash. Она
доказывает, что хэш был подписан подписывающим ключом OrcaRouter и не
подделан.sig_key_id — каким ключом подписан
sig_key_id — каким ключом подписан
Короткий, стабильный идентификатор активного публичного ключа (например,
orca-, за которым следует hex-фрагмент). Проверяющий использует его,
чтобы подтвердить, что отчёт был подписан ключом, который сейчас
опубликован — отчёт, подписанный неизвестным id ключа, fail closed.Подпись покрывает хэш содержимого, а не отрендеренные байты PDF, CSV или
JSON напрямую. Одни и те же доказательства рендерятся во все три формата из
одного хэша, так что гарантия целостности — на лежащих в основе
доказательствах — каждый экспорт данного отчёта разделяет один
content_hash,
signature и sig_key_id.2. Получите публичный ключ
Подписывающий публичный ключ опубликован на открытом эндпоинте — без авторизации, без контекста рабочего пространства. Аудитор вызывает его напрямую.public_key — это 32-байтовый публичный ключ Ed25519 в base64. key_id
здесь должен совпадать с sig_key_id на отчёте — если нет, отчёт был подписан
другим (вероятно, ротированным или более старым) ключом и не пройдёт проверку
по этому опубликованному ключу.
3. Проверьте подпись
Вы можете проверить подпись двумя способами. Либо попросите OrcaRouter проверить кортеж за вас, либо проверьте полностью офлайн опубликованным публичным ключом.Хостинговый verify-эндпоинт
Отправьте POST’ом три значения из отчёта на открытый verify-эндпоинт. Он публичный — аудитор вызывает его без учётных данных.valid: true означает, что подпись сходится с активным ключом для этого id
ключа. valid: false означает, что либо подпись не совпадает с хэшем, либо
хэш пуст, либо sig_key_id не совпадает с текущим опубликованным ключом.
Проверьте офлайн публичным ключом
Скептичному аудитору не нужно доверять verify-эндпоинту вовсе. Поскольку алгоритм — это стандартный Ed25519 над hex-хэшем содержимого, подпись проверяема любой крипто-библиотекой:4. Что покрывает подпись
Подпись доказывает, чтоcontent_hash отчёта был подписан OrcaRouter, а хэш
доказывает, что доказательства не редактировались. Одна тонкость: хэш
вычисляется над канонической формой доказательств, которую строит шлюз, —
а не над сырыми байтами JSON- или PDF-файла. Так что перехэширование
скачанного артефакта самостоятельно не воспроизведёт content_hash.
Используйте verify-эндпоинт (§2/§3), который пересчитывает канонический хэш и
проверяет подпись Ed25519 за вас:
| Проверка | Значение |
|---|---|
signature_valid: true | content_hash был подписан ключом OrcaRouter — доказательства подлинны и не редактировались. |
| Id ключа совпадает | sig_key_id отчёта == опубликованный id ключа → подписан активным ключом. |
5. Проверка переданного отчёта
Когда вы отправляете аудитору ссылку на share-портал вместо файла, метаданные портала уже несутcontent_hash, signature и
sig_key_id, плюс вычисленный сервером флаг signature_valid. Аудитор может
доверять флагу и перепрогнать проверки выше по публичному ключу
независимо — share-портал не требует логина, а путь проверки идентичен.
Переданный артефакт отдаётся только пока его проштампованный регион ещё
совпадает с заявленным
регионом резидентности данных
вашего рабочего пространства. Если регион был изменён, скачивания
удерживаются, даже хотя метаданные подписи остаются проверяемыми. Это
сделано намеренно — см.
Межрегиональные чтения.
6. Куда дальше
Подписанные отчёты
Как генерируется подписанный отчёт, какие доказательства он захватывает и
как создать ссылку-шеринг для аудитора.
Экспорт доказательств
Выгрузите доказательства отчёта в PDF, CSV или JSON для рабочих бумаг
вашего аудитора.
Резидентность данных
Как регион-штамп на отчёте управляет тем, где он хранится и отдаётся.
Разделённая ответственность
Что OrcaRouter гарантирует на пути шлюза и что остаётся вашим.
