services_relations
диаграмма взаимосвязей сервисов (без методов)
Исправленная диаграмма (убраны кириллические символы из ID, исправлены названия узлов):
📖 Пояснительная записка: VC-реестр и DID-владелец
Контекст: X.509 vs Verifiable Credential (VC)
Характеристика | X.509 (СКПЭП) | VC (W3C стандарт) |
Структура | Жёсткая, ASN.1 DER | Гибкая, JSON-LD |
Иерархия | Централизованная (цепочка УЦ) | Децентрализованная (DID) |
Проверка | CRL/OCSP + цепочка сертификатов | Проверка по DID Document + статус в реестре |
Сфера применения | ЭП, TLS, документооборот | Любые верифицируемые утверждения |
Обратная совместимость | Полная (не меняется) | Можно обернуть X.509 в VC |
Вывод: X.509 — частный случай VC с более строгой иерархией. В прототипе VC-реестр выступает универсальным слоем абстракции над любыми источниками СКПЭП.
а) Получение СКПЭП из разных источников
Проблема:
Система получает сертификаты из:
Российских УЦ (ГОСТ 34.10)
Европейских УЦ (ECDSA/RSA)
Ведомственных УЦ (Минпромторг, ФНС)
Самоподписанных (для тестов)
Решение:
VC-сервис (VcSvc) выступает адаптером-нормализатором:
Приём:
На вход подаётся любой сертификат (PEM/DER) + метаданные об источнике (страна, стандарт, УЦ).
Валидация на уровне PKISvc:
Проверка базовой цепочки (если доступен корневой сертификат)
Проверка статуса (CRL/OCSP, если доступен)
Трансформация в VC (VcSvc):
Из X.509 извлекаются:
subject→credentialSubjectserialNumber→idvalidityNotBefore/After→validFrom/Untilissuer→issuer(DID, если есть маппинг)publicKey→publicKeyJwkилиpublicKeyMultibase
Добавляется
type: ["VerifiableCredential", "X509Credential"]Добавляется
proof(подпись VC, если требуется)
б) Подтверждение DID-владельца (личность/организация/прибор)
Проблема:
У DID нет встроенного механизма подтверждения связи с реальным субъектом.
Кто и как должен подтвердить, что DID did:example:123 действительно принадлежит Иванову И.И., ООО «Ромашка» или датчику давления №42?
Решение — композитная модель подтверждения:
Уровень | Кто подтверждает | Что подтверждает | Как фиксируется |
1. Личность (Person) | Удостоверяющий центр (УЦ) или нотариус | ФИО, СНИЛС, паспортные данные | VC типа |
2. Организация (Organization) | ФНС / ЕГРЮЛ / регистратор | ОГРН, ИНН, статус юрлица | VC типа |
3. Прибор / Устройство (Device) | Производитель или метрологическая лаборатория | Серийный номер, калибровка, поверка | VC типа |
Процесс создания DID-владельца:
Первичная регистрация (сам себе):
Субъект создаёт DID и DID Document (хранится в HLF).
DID Document содержит публичный ключ и ссылки на VC-подтверждения (если есть).
Проверка личности (onboarding через OrganizationsSvc):
Представитель загружает свой X.509-сертификат.
PKISvc валидирует сертификат, извлекает данные.
VcSvc создаёт VC-обёртку (тип
PersonCredential).Этот VC становится первичным подтверждением для DID.
OrganizationsSvc проверяет, что данные из VC совпадают с заявленными.
Проверка организации:
Если субъект — представитель ЮЛ, он дополнительно предъявляет VC от ФНС (или X.509 с ИНН/ОГРН).
VcSvc создаёт
OrganizationCredentialи привязывает к тому же DID.
Проверка прибора (если актив):
Производитель выпускает ЦП на прибор.
ЦП содержит VC с характеристиками прибора и серийным номером.
DID прибора создаётся при регистрации ЦП (или извлекается из него).
Производитель подписывает
DeviceCredentialи сохраняет в реестр.
Итоговая модель:
DID: did:example:person_123 ├── PersonCredential (от УЦ/нотариуса) │ ├── fullName: Иванов И.И. │ ├── snils: 123-456-789-01 │ └── issuer: did:example:uc_ros ├── OrganizationCredential (от ФНС) │ ├── inn: 7701234567 │ ├── ogrn: 1027700123456 │ └── issuer: did:example:fns └── DeviceCredential (от производителя) — если прибор ├── serialNumber: SN-2026-001 ├── model: ВЗЛЕТ-ФБ └── issuer: did:example:manufacturer_456
Проверка DID-владельца (алгоритм):
Запросить DID Document из реестра (HLF).
Получить все VC, связанные с этим DID.
Для каждого VC проверить:
подпись VC (issuer должен быть доверенным)
статус VC (не отозван, не истёк)
Если хотя бы один VC подтверждает нужный атрибут (личность/организация/прибор) — DID считается валидным.
Уровень доверия зависит от количества и качества VC (чем больше подтверждений — тем выше уровень).
🏷️ Резюме для архитектурного решения
Вопрос | Ответ |
Как обрабатывать разные СКПЭП? | VcSvc нормализует X.509 → VC с сохранением источника и уровня доверия. |
Кто подтверждает DID-владельца? | Композитная модель: независимые эмитенты VC (УЦ, ФНС, производители). |
Где хранится привязка DID ↔ VC? | В HLF (реестр VC) + DID Document в том же реестре. |
Что делать с недоверенными УЦ? | PKISvc ведёт список доверенных корней (trust store) для каждой страны/стандарта. |
Как быть с отзывом? | VC содержит |
Журнал изменений
Дата | Перечень изменений | Автор |
2026-11-05 | Перенесён из архива DID-VC-итоги-2026-11-03 без изменения содержания. | Дис |