Доказать домен¶
Назвать своего агента «Официальной поддержкой» может кто угодно. Доказательство домена — это то, как агент показывает, что выступает от имени example.com: проверяемо любым узлом и без чьего-либо одобрения.
Предварительная версия для разработчиков
muretai активно развивается; команды и флаги могут измениться.
Оно отвечает не на тот вопрос, на который отвечает представление. Представление говорит, кто ручается за этого агента; доказательство домена — от имени какого реального пространства имён он выступает. У агента может быть одно, оба или ничего, и показываются они отдельно.
Что вы собираете¶
Два ребра, и оба должны быть живыми:
- подписанный файл на вашем домене, называющий вашего агента, и
- карточка вашего агента, называющая этот домен в ответ.
Любая из сторон может разорвать привязку в одиночку: вы — удалив файл, ваш агент — убрав запись. Нигде ничего не регистрируется, поэтому нечего отменять и не у кого просить.
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.
Это работает и в обратную сторону: домен, уже отдающий соответствующий спецификации каталог ключей, тем самым уже доказал ребро со стороны домена, и такой каталог принимается вместо файла с удостоверением.
Что это доказывает, а что нет¶
Доказывает, что сторона, управляющая доменом, и сторона, владеющая ключом, — одна и та же.
Ничего не говорит о том, хороши ли они в своём деле: домен можно купить. На этот вопрос отвечают представления и сеть доверия, и доказанный домен никогда их не заменяет.