Двадцать лет личность краулера была утверждением. Вы пишете User-Agent: Googlebot в заголовок, а сервер решает, верить ли этому. Поскольку туда можно написать что угодно, операторы научились проверять утверждение по косвенным признакам: попадает ли обратный DNS-запрос по подключающемуся IP в нужный домен, разрешается ли этот домен обратно в тот же адрес, входит ли IP в опубликованный диапазон.
На этой проверке держится вся экономика того, кому позволено краулить. Она же и причина, по которой обнаружение ботов превратилось в фингерпринтинг, поведенческий скоринг и страницы с проверкой, ведь косвенный признак стоит ровно столько, сколько готовность атакующего арендовать нужный адрес.
В 2026 году это заменяется. Не лучшим фингерпринтингом, а асимметричной криптографией: краулер подписывает запросы приватным ключом, публикует открытую половину по well-known URL, а сервер проверяет подпись вместо того, чтобы взвешивать намёк. Утверждение становится доказательством.
Интересна не криптография, она обыкновенная. Интересно то, что произошло в день, когда её выкатили.
- Web Bot Auth подписывает запросы через Ed25519 и публикует ключи проверки в well-known каталоге JWKS, так что личность проверяется, а не угадывается.
- Cloudflare добавил это в программу Verified Bots 1 июля 2025 года, в тот же день, когда начал блокировать ИИ-краулеры по умолчанию и открыл бету pay per crawl.
- Личность стала доказуемой, а разрешение продаваемым в один и тот же день. Это не совпадение, это и есть суть.
- На 18 августа 2026 года протокол всё ещё индивидуальный Internet-Draft, не принятый рабочей группой, тогда как привратники проверяют его в продакшене.
- Доступ разделяется на подписанную и неподписанную полосы, и никакая работа над фингерпринтом ключа не даёт.
Что представляет собой механизм
Web Bot Auth это тонкий слой поверх RFC 9421, стандарта HTTP Message Signatures. У бота есть пара ключей Ed25519. Каждый запрос несёт три заголовка: Signature-Input описывает, что было покрыто, Signature несёт байты, а Signature-Agent указывает на HTTPS-адрес, где лежат открытые ключи.
Подпись покрывает компоненты запроса, а не всё тело. Черновик требует от подписывающего включить либо @authority , либо @target-uri, так что перехваченную подпись нельзя переиграть против другого хоста или пути.
GET /article/12345 HTTP/1.1 Host: example.com Signature-Agent: "https://crawler.example/.well-known/http-message-signatures-directory" Signature-Input: sig=("@authority" "signature-agent"); created=1740000000; expires=1740086400; keyid="poqkLGiymh_W0uP6PZFw-dvez3QJT5SolqXBCW38r0U"; tag="web-bot-auth" Signature: sig=:TUAfxGCoruBcOaEBRTdd6DcH0GJPd1v/1Vg1nCLmYFI=:
Четыре детали в этом блоке несут весь замысел.
Поле keyid это не имя, а отпечаток. Это SHA-256 отпечаток JSON Web Key в кодировке base64url. Чужой идентификатор присвоить нельзя, потому что идентификатор выводится из ключа, владение которым нужно доказать.
Значение tag равно web-bot-auth. Подписи привязаны к назначению, поэтому подпись, выпущенная для одного протокола, не может быть переиспользована для другого проверяющего.
Срок жизни короткий. Черновик рекомендует не более 24 часов, что ограничивает, как долго перехваченная подпись хоть чего-то стоит.
Каталог обнаруживаем. Ключи публикуются как JWKS по адресу /.well-known/http-message-signatures-directory, так что проверяющий забирает и кэширует их без какой-либо предварительной связи с краулером.
День, когда личность и разрешение пришли вместе
1 июля 2025 года Cloudflare добавил message signatures в программу Verified Bots, выпустил библиотеки на Rust и TypeScript и сообщил операторам, что заявки с корректно сформированными подписями будут одобряться быстрее.
В тот же день он начал блокировать ИИ-краулеры по умолчанию для новых доменов и открыл закрытую бету pay per crawl, где издатель назначает цену, а краулер либо платит, либо не получает страницу. Cloudflare стоит перед примерно пятой частью веба, так что настройка по умолчанию там близка к правилу.
Прочтите эти два объявления как одно, и форма станет очевидной. Брать деньги за доступ требует знать, кто спрашивает, а знать, кто спрашивает, требует неподделываемой личности. Pay per crawl невозможен поверх User-Agent. Он становится возможен в тот момент, когда личность это подпись.
Выкачено раньше, чем стандартизовано
Вот часть, над которой стоит задержаться. Черновик протокола, draft-meunier-webbotauth-httpsig-protocol-02, датирован 18 августа 2026 года и всё ещё является индивидуальным Internet-Draft. Он не принят рабочей группой и несёт обычную пометку, что черновик это работа в процессе.
Документация самого Cloudflare честна в этом: она говорит, что реализация опирается на черновики IETF, и называет конкретные версии, за которыми следует. При этом проверка работает в продакшене, и тот же механизм проверяют другие крупные операторы.
Такой порядок для веба не необычен и не скандален. Но у него есть последствия, которые стоит закладывать в планы. Спецификация, которую внедряют, пока она движется, означает, что движутся и детали: формы заголовков, пути каталогов и значения тегов уже менялись между ревизиями. Строя на ней, вы следуете за подвижной целью, которую в основном ведут стороны, больше всех выигрывающие от исхода.
Что меняется, если вы краулите
Гонка вооружений получает вторую полосу, а не замену
Подписанные агенты ничего не отменяют в фингерпринтинге. Машинерия из нашего разбора антибот-защиты никуда не девается: TLS-отпечатки, порядок заголовков и поведенческий скоринг продолжают работать и по-прежнему решают судьбу неподписанного трафика. Меняется то, что подписанный зарегистрированный агент может пропустить большую часть, потому что дорогой вопрос "тот ли это, за кого себя выдаёт" уже отвечен дёшево.
Так что популяция делится. Подписанные агенты получают быструю полосу. Все остальные упираются в ту же нарастающую стену, что и раньше, только внимания на различение между ними оператор тратит меньше.
Личность это не авторизация
Проверенная подпись доказывает, кто спрашивает. Она ничего не говорит о том, положена ли ему страница. Это разные решения, и их смешение самое частое непонимание этой технологии. Издатель может безупречно проверить вашу личность и всё равно отказать, выставить счёт или отдать урезанную версию. Web Bot Auth делает отказ точным, а не вероятностным.
Ключ это запись в allowlist, а у allowlist есть владельцы
На практике быть проверенным значит быть признанным привратником, и операторы этих программ это те же, кто уже решает, что доходит до origin. Путь регистрации проходит через программу оператора, и одобрение принадлежит ему. Это заметно меняет то, кто решает, какой автоматический трафик легитимен, отодвигая решение от издателя, чей контент на кону, и приближая его к инфраструктуре перед ним.
Она не доказывает ни намерения, ни уважения к лицензии, ни хорошего поведения. Она не делает краулер вежливым и не создаёт права на доступ. Она доказывает, что владелец конкретного приватного ключа отправил конкретный запрос до истечения срока. Все остальные вопросы, которые волнуют отрасль, по-прежнему решаются в политиках, договорах и судах, а подпись лишь проясняет, с кем именно спор.
Практическая позиция на ближайшие годы
Если вы держите крупный именованный краулер с публичной репутацией, подписаться просто и полезно: сгенерировать ключ, опубликовать каталог, зарегистрироваться в программах, которые важны для ваших целей.
Если вы собираете публичные данные в обычном объёме и не являетесь известным именем, честное прочтение такое: подписанная полоса вам практически не открыта, а неподписанная сужается. Между этими двумя фактами стоимость надёжного получения страницы всё дальше уходит от хитрой работы на клиенте и всё ближе к инфраструктуре, которая уже решила доступ.
Доступ как решённая задача, а не исследовательский проект: ротация резидентных IP, рендеринг настоящим браузером и обработка проверок внутри самой загрузки, с одним чистым ответом назад. Неудачные запросы не тарифицируются, поэтому ужесточающаяся цель стоит вам задержки, а не счёта. Начните бесплатно с 1 000 запросов, без карты.
Заключение
У веба появляется слой идентичности для автоматического трафика, и появился он обычным путём: черновик, реализация вендора и бизнес-модель, которой это понадобилось. Криптография ничем не примечательна. Последствия примечательны.
Два десятилетия вопрос на границе звучал так: "похоже ли это на бота?". Он становится таким: "тот ли это бот, за кого себя выдаёт, и есть ли у нас договорённость?". Это лучший вопрос, заданный честно. Это ещё и вопрос, у которого хороший ответ есть только если вы уже кто-то, и как раз об этом отрасль ещё не договорила.
Следите за черновиком, а не за освещением в прессе. Когда его примет рабочая группа, когда выкатится второй независимый проверяющий и когда первый издатель назначит цену, которую краулер действительно заплатит, форма ближайших лет станет видна по этим трём событиям.
Часто задаваемые вопросы
Является ли Web Bot Auth утверждённым интернет-стандартом?
Пока нет. На 18 августа 2026 года документ протокола это draft-meunier-webbotauth-httpsig-protocol-02, индивидуальный Internet-Draft, а не принятый рабочей группой, и Internet-Draft это явным образом работа в процессе. Лежащий в основе формат подписи, RFC 9421, опубликованный стандарт. Слой поверх него, который говорит, что боты должны подписывать и как проверяющие находят ключи, ещё движется.
Чем это отличается от проверки обратного DNS?
Проверка обратного DNS спрашивает, принадлежит ли подключающийся адрес организации, которой краулер себя называет. Это вывод из владения сетью: он ломается, когда адреса арендуют, делегируют или перевыдают, и он не переносится между сетями. Подпись это свидетельство о самом запросе: только владелец приватного ключа мог её создать, с любого адреса.
Позволяет ли подпись краулеру обойти антибот-системы?
Только в том смысле, что она отвечает на вопрос, который эти системы существуют, чтобы угадывать. Проверенный агент всё равно упирается в политику оператора, которая может разрешить, ограничить, выставить счёт или отказать. Подпись снимает неоднозначность о личности, а не право оператора сказать нет.
Можно ли переиграть подпись?
Не с пользой, если она построена правильно. Подписывающий обязан покрыть @authority или @target-uri, так что перехваченная подпись не переносится на другой хост, а черновик рекомендует срок не более 24 часов, что ограничивает окно, в котором повтор вообще имеет смысл.
Что происходит с краулерами без подписи?
То же, что и сегодня, только с меньшим терпением. Неподписанный трафик продолжает встречать фингерпринтинг, поведенческий скоринг и проверки, и по мере того как легитимный автоматический трафик уходит в подписанную полосу, неподписанная популяция выглядит для оценивающих систем всё более однородно подозрительной.
Стоит ли внедрять это сейчас?
Если вы держите именованный краулер, чья личность часть продукта, да: механика это пара ключей и JSON-документ, а быть ранним дёшево. Если вы потребляете публичные данные в обычном объёме, клиентская сторона сама по себе ничего не даёт, потому что ценность в признании программой, а не в том, чтобы выпустить корректную подпись. Следите за черновиком и смотрите, какие проверяющие выкатываются.
Обходите любой сайт в масштабе, без борьбы с инфраструктурой.
Crawlbase берёт на себя прокси, отпечатки и CAPTCHA, чтобы ваша команда выпускала конвейеры данных вместо поддержки обвязки краулинга. 1 000 запросов бесплатно, без карты.
