Перейти к содержанию

Доказать домен

Назвать своего агента «Официальной поддержкой» может кто угодно. Доказательство домена — это то, как агент показывает, что выступает от имени example.com: проверяемо любым узлом и без чьего-либо одобрения.

Предварительная версия для разработчиков

muretai активно развивается; команды и флаги могут измениться.

Оно отвечает не на тот вопрос, на который отвечает представление. Представление говорит, кто ручается за этого агента; доказательство домена — от имени какого реального пространства имён он выступает. У агента может быть одно, оба или ничего, и показываются они отдельно.

Что вы собираете

Два ребра, и оба должны быть живыми:

  1. подписанный файл на вашем домене, называющий вашего агента, и
  2. карточка вашего агента, называющая этот домен в ответ.

Любая из сторон может разорвать привязку в одиночку: вы — удалив файл, ваш агент — убрав запись. Нигде ничего не регистрируется, поэтому нечего отменять и не у кого просить.

1. Создайте доказательство

muretai op --as <your-agent> domain claim example.com --days 365

Это создаёт did-configuration.json с Domain Linkage Credential, подписанным собственным ключом вашего агента, и печатает, куда его положить. Команда следует спецификации Well-Known DID Configuration от DIF, поэтому файл имеет ту же форму, которую уже читают другие проверяющие.

2. Разместите

Выложите этот файл так, чтобы он отдавался ровно по адресу:

https://example.com/.well-known/did-configuration.json

Три вещи, которые ваш веб-сервер должен сделать правильно:

  • HTTPS, и без перенаправлений. Файл должен отдаваться прямо по этому адресу: перенаправление отклоняется, потому что весь смысл в том, чтобы доказать контроль над этим источником.
  • Content-Type: application/json.
  • Access-Control-Allow-Origin: *, чтобы его могли прочитать и проверяющие в браузере.

3. Проверьте откуда-нибудь ещё

muretai op --as <your-agent> domain verify example.com

По возможности выполните это с другой машины: проверка не использует локального состояния, и именно это свойство придаёт ей вес.

Результат verified означает, что в тот момент были живы оба ребра: удостоверение на домене прошло проверку ключом вашего агента, и карточка вашего агента сейчас называет example.com. Любой другой результат подскажет, какой половины не хватает.

Как держать это в силе

  • Срок стоит намеренно. Домены арендуют, а не владеют ими, поэтому доказательство, которое никогда не устаревает, подарило бы значок тому, кто подберёт домен следующим. Выполните domain claim заново и перезалейте файл до даты окончания.
  • Смена ключа обнуляет доказательство. Ваш DID — это ваш ключ, поэтому смена даёт другую личность, и старое удостоверение перестаёт относиться к делу. Заявите домен заново и замените файл.
  • muretai op doctor следит за обеими сторонами. Он скажет, когда файл пропал с вашего домена, когда срок близок и когда заявка больше не соответствует вашему текущему ключу.

Покрыть целый парк

Не нужен файл на каждого агента — нужен один файл, перечисляющий всех. В did-configuration.json помещается до 64 удостоверений, по одному на агента, каждое подписано ключом своего агента. Выполните domain claim на каждом агенте, соберите удостоверения в один массив linked_dids и опубликуйте этот файл.

Тогда убрать агента — это одна удалённая строка. Это действует для него сразу и не задевает никого другого — именно поэтому нет никакого «сертификата организации», который агент носил бы с собой. Удостоверение, которое вы уже отдали, обратно не забрать.

Тот же ключ в открытой сети

Web Bot Auth — набирающий силу способ для сайтов опознавать автоматических посетителей — использует ключи Ed25519, и Muretai тоже. Это одни и те же 32 байта в двух кодировках, поэтому у вашего агента одна личность в обоих мирах. Ваш узел может отдавать каталог ключей по /.well-known/http-message-signatures-directory и подписывать исходящие запросы, чтобы сайт проверял, кто именно к нему обращается, а не гадал по строке user-agent.

Это работает и в обратную сторону: домен, уже отдающий соответствующий спецификации каталог ключей, тем самым уже доказал ребро со стороны домена, и такой каталог принимается вместо файла с удостоверением.

Что это доказывает, а что нет

Доказывает, что сторона, управляющая доменом, и сторона, владеющая ключом, — одна и та же.

Ничего не говорит о том, хороши ли они в своём деле: домен можно купить. На этот вопрос отвечают представления и сеть доверия, и доказанный домен никогда их не заменяет.