SOLPDT 1.1 | APPENDIX R
INTEGRITY ANCHORING PROTOCOL | DID DOCUMENT VERIFICATION
FINAL RELEASE | 13.04.2026

Приложение R: Протокол Integrity Anchoring
Integrity Anchoring Protocol for DID Documents

Стандарт: SOLPDT 1.1 — Agentic Trust Layer Extension
Статус: Final Release (v1.1.2 — DID Expansion)
Назначение: Определение процедур криптографического контроля целостности внешних DID-документов. Обеспечение защиты от подмены идентификационных данных владельца ИИ-агента при использовании внешних резолверов (did:web, IPFS).

1. Введение и обоснование

Приложение Q вводит в стандарт SOLPDT 1.1 поддержку децентрализованных идентификаторов W3C DID и объекта owner_identity. Для методов DID, использующих внешние резолверы (did:web, IPFS), идентификационные данные владельца (публичные ключи, политики аутентификации) хранятся вне Initial-Dossier — по ссылке did_document_url.

Данная архитектура создает риск подмены DID-документа третьей стороной (атака Man-in-the-Middle, компрометация DNS-хостинга владельца, изменение файла на сервере). Без механизма контроля целостности злоумышленник может подменить публичный ключ в DID-документе и получить контроль над ИИ-агентом, сохранив при этом валидный DID.

Протокол Integrity Anchoring устраняет этот риск путем внедрения криптографического якоря — хеш-суммы эталонного DID-документа, зафиксированной в Initial-Dossier при первичной верификации агента.

2. Принцип Integrity Anchoring

Integrity Anchoring (якорение целостности) — это метод криптографической фиксации состояния внешнего документа в момент выпуска Authoritative Attestation (sig.a).

Принцип работы:

  1. При первичной верификации агента Уполномоченный Лицензиар (DAT-A) загружает DID-документ по ссылке did_document_url, предоставленной владельцем.
  2. DAT-A вычисляет SHA-256 хеш содержимого документа и фиксирует его в поле did_doc_hash объекта owner_identity внутри Initial-Dossier.
  3. Initial-Dossier подписывается Лицензиаром (sig.a) и становится неизменяемым эталоном.
  4. При каждой последующей верификации агента Compliance-Gateway (CGW) повторно загружает DID-документ, вычисляет его текущий хеш и сравнивает с did_doc_hash, зафиксированным в досье.
  5. Совпадение хешей гарантирует, что DID-документ не был изменен с момента первичной верификации. Расхождение хешей запускает процедуру дополнительной проверки.

3. Поле did_doc_hash в Initial-Dossier

Поле did_doc_hash включается в объект owner_identity (Приложение Q) и имеет следующие характеристики.

ХарактеристикаЗначение
Тип данныхString
Форматsha256:{64-символьная hex-строка} ОбязательностьДа, при наличии did_document_url и external_resolver: true АлгоритмSHA-256 Примерsha256:7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069
Правило валидации: Если в Initial-Dossier присутствует did_document_url и external_resolver: true, поле did_doc_hash обязательно. Отсутствие хеша при указанных условиях влечет отклонение запроса на верификацию с ошибкой PDT_ERR_MISSING_DID_HASH.

4. Алгоритм верификации Compliance-Gateway

При обработке транзакции агента, в Initial-Dossier которого присутствует объект owner_identity с external_resolver: true, Compliance-Gateway выполняет следующую последовательность действий.

Шаг 1. Загрузка внешнего DID-документа.

  • CGW выполняет HTTP GET запрос к did_document_url.
  • Таймаут соединения: 5 секунд.
  • При недоступности документа — переход к разделу 7 настоящего Приложения.

Шаг 2. Вычисление текущего хеша.

  • CGW вычисляет SHA-256 хеш тела ответа (до парсинга JSON).
  • Формат хеша: sha256:{hex}.

Шаг 3. Сравнение хешей.

  • Если current_hash == did_doc_hash — переход к Шагу 4 (Key Alignment Check).
  • Если current_hash != did_doc_hash — переход к разделу 5 (Статусы и действия).

Шаг 4. Key Alignment Check (проверка соответствия ключей).

  • CGW извлекает из DID-документа массив verificationMethod.
  • CGW проверяет, что все публичные ключи, перечисленные в verification_methods (Initial-Dossier), присутствуют в verificationMethod внешнего документа.
  • Если все ключи найдены — статус VERIFIED. Транзакция разрешена.
  • Если хотя бы один ключ отсутствует — статус KEY_MISMATCH. Транзакция отклонена.

5. Статусы верификации и действия при расхождении

По результатам проверки Integrity Anchoring CGW присваивает транзакции один из следующих статусов.

СтатусУсловиеДействие CGWВлияние на nma
VERIFIED Хеш совпадает, ключи совпадают Разрешить транзакцию nma сохраняется
PENDING_UPDATE Хеш не совпадает, но новый ключ авторизован контроллером Разрешить транзакцию с флагом Update Required. Инициировать процедуру Update-Dossier (раздел 6) nma сохраняется на время обновления (до 48 часов)
KEY_MISMATCH Хеш не совпадает, локальный ключ отсутствует в новом документе Отклонить транзакцию. Уведомить DAT-A и DAT-M nma сбрасывается в false
REVOKED DID-документ содержит запись о деактивации (deactivated: true) Отклонить транзакцию. Внести агента в TRL (Приложение 4 спецификации) nma аннулируется перманентно
RESOLVER_UNAVAILABLE did_document_url недоступен Действие согласно разделу 7 Временно nma сохраняется

6. Процедура обновления DID-документа (Update-Dossier)

Владелец агента имеет право планово обновить DID-документ (например, для ротации ключей или изменения политик аутентификации). Процедура обновления должна выполняться в следующем порядке.

  1. Публикация обновления. Владелец публикует обновленный DID-документ по тому же did_document_url.
  2. Обнаружение расхождения. При следующей транзакции агента CGW обнаруживает расхождение did_doc_hash и присваивает статус PENDING_UPDATE.
  3. Проверка авторизации. CGW проверяет, что:
    • Новый DID-документ содержит ключ, которым подписана текущая транзакция.
    • Контроллер DID (поле controller) не изменился или изменение авторизовано через recovery_did.
  4. Запрос подтверждения. Если проверка успешна, CGW направляет запрос Мастер-Лицензиару (DAT-M) на подтверждение легитимности обновления.
  5. Выпуск Update Attestation. DAT-M проверяет цепочку владения (связь с SOL-Активом v1.0) и выпускает Update Attestation.
  6. Обновление досье. Initial-Dossier агента обновляется: новое значение did_doc_hash, актуальный список verification_methods. Старая версия досье архивируется.
  7. Восстановление статуса. Статус агента возвращается к VERIFIED.
ПРИМЕЧАНИЕ: Если в течение 48 часов после первого обнаружения расхождения хешей процедура Update-Dossier не завершена, статус nma автоматически сбрасывается в false, и агент переводится в SUSPENDED до завершения обновления.

7. Обработка недоступности внешнего резолвера

Временная недоступность did_document_url (ошибки 4xx/5xx, таймаут соединения, проблемы DNS) не должна приводить к немедленной блокировке агента.

Правила обработки:

  • Первое обнаружение недоступности: CGW разрешает транзакцию, но помечает агента флагом RESOLVER_WARNING. Статус nma сохраняется.
  • Повторная недоступность в течение 24 часов: CGW разрешает транзакцию, флаг RESOLVER_WARNING повышается до RESOLVER_CRITICAL. DAT-A получает уведомление.
  • Недоступность более 72 часов подряд: CGW переводит агента в статус PENDING_VERIFICATION. nma временно приостанавливается до восстановления доступа к DID-документу. Транзакции агента отклоняются.
  • Восстановление доступа: После восстановления доступа и успешной проверки хеша статус агента автоматически восстанавливается до VERIFIED.

КОРНЕВОЙ УЗЕЛ (СОЗДАТЕЛЬ СТАНДАРТА): Юрий Соколов (SOL Trust Network)
ДАТА ВСТУПЛЕНИЯ В СИЛУ: 13.04.2026
КОНТАКТЫ: standards@solpdt.com