Проверяемые учетные данные (VC) - это электронный эквивалент физических учетных данных, которыми мы все сегодня располагаем, например: пластиковые карты, паспорта, водительские права, квалификации и награды и т. д. Модель данных для проверяемых учетных данных - это Рекомендация Консорциума World Wide Web, «Модель проверяемых учетных данных 1.0 - Представление проверяемой информации в Интернете», опубликованная 19 ноября 2019 г..
Модель VC помещает держателя учетных данных в центр экосистемы идентичности, давая людям возможность управлять своими атрибутами идентичности. Это контрастирует с моделью федеративного управления идентификацией (FIM), принятой в SAML и OpenID Connect, в которой поставщик удостоверений (IdP) играет центральную роль. как распределитель атрибутов идентичности и определитель того, каким поставщикам услуг (SP) он будет их передавать. В федеративной модели нарушается конфиденциальность пользователя, поскольку IdP знает каждый SP, который посещает пользователь. Модель W3C VC, с другой стороны, аналогична тому, как мы используем сегодня идентификационные карты: пользователь держит пластиковые карты в своем кошельке и может предъявить их кому угодно в любое время, не требуя разрешения эмитента карты. Такая модель децентрализована и дает участникам гораздо больше автономии и гибкости.
Владелец проверяемых учетных данных находится в центре треугольника доверия, выступая посредником между эмитентом и проверяющим. Эмитент и держатель доверяют друг другу, держатель доверяет верификатору, а верификатор доверяет эмитенту. Любую роль в треугольнике может сыграть человек, организация или устройство IoT.Стандарт W3C VC определяет синтаксис и семантику проверяемых учетных данных. Для передачи VC от эмитента / IdP держателю и от держателя к верификатору указывается множество различных протоколов. Примеры включают:
Однако ни один из этих протоколов еще не стандартизирован, и могут появиться другие конкурирующие протоколы. Многие люди, которые сегодня экспериментируют с VC, используют некоторые разновидности HTTPS для передачи VC между различными сторонами. Ожидается, что со временем наиболее популярные протоколы или протоколы де-факто будут стандартизированы W3C или другим органом по стандартизации после того, как будет накоплен дополнительный опыт.
Одна интересная особенность VC заключается в том, что владелец VC не всегда должен быть субъектом учетных данных. В большинстве случаев пользователи будут иметь свои собственные VC, так же как мы носим с собой физические учетные данные сегодня, то есть владелец и субъект будут одним и тем же лицом. Но так будет не всегда. Например, если субъект VC является домашним животным, а VC - свидетельством о вакцинации, владелец может быть владельцем домашнего животного; если субъект VC - младенец, а VC - свидетельство о рождении, держателем может быть один или оба родителя.
Проверяемые учетные данные могут быть выражены с помощью JSON. VC обычно состоит из контекста VC, идентификатора эмитента, даты и времени выдачи, даты и времени истечения срока действия, типа VC, объекта VC, одного или нескольких атрибутов идентичности Тема VC и, наконец, криптографическое доказательство, созданное эмитентом для обеспечения целостности и аутентичности VC. Единый механизм проверки не стандартизирован. Напротив, модель данных достаточно гибкая, чтобы поддерживать несколько существующих криптографических механизмов, таких как цифровые подписи. Механизмы доказательства, которые в настоящее время используются разработчиками, включают: веб-токены JSON с веб-подписями JSON, доказательства JSON-LD и доказательства с нулевым разглашением. с использованием таких схем, как анонимные учетные данные IBM.
Контекст VC, определенный с помощью свойства @context
JSON, представляет собой конструкцию JSON-LD, которая позволяет использовать понятные термины использоваться для свойств JSON. Согласно модели данных VC, значение многих свойств должно быть URI. Хотя они глобально однозначны, что является важной особенностью для стандартизированной на международном уровне модели данных, они не удобны для пользователя. Следовательно, свойство @context
позволяет определять краткие, удобные для пользователя псевдонимы для каждого URI. Это значительно упрощает и делает более удобным указание VC. Пример приведен ниже
{"@context": ["https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/ v1 "]," id ":" http://example.edu/credentials/3732 "," type ": [" VerifiableCredential "," UniversityDegreeCredential "]," эмитент ":" https://example.edu/issuers / 14 "," IssueDate ":" 2010-01-01T19: 23: 24Z "," expirationDate ":" 2020-01-01T19: 23: 24Z "," credentialSubject ": {" id ":" did: example: ebfeb1f712ebc6f1c276e12ec21 "," degree ": {" type ":" BachelorDegree "," name ":" Bachelor of Science and Arts "}}," proof ": {}}
Венчурные компании W3C расширяемы. К VC может быть добавлено не только любое новое свойство, как определено издателем, но также есть некоторые стандартные свойства, которые были определены специально как точки расширения. К ним относятся следующие: