Аутентификация запросов с помощью Web Bot Auth (экспериментальная функция)

Google тестирует применение Web Bot Auth, проекта IETF. Это новый криптографический протокол, который помогает сайтам подтверждать подлинность роботов. Мы тестируем его на ряде ИИ-агентов, размещенных на инфраструктуре Google. Из этого руководства вы узнаете, что такое протокол Web Bot Auth, каков его текущий статус и как реализовать проверку на этапе эксперимента.

Что такое Web Bot Auth?

Web Bot Auth – это экспериментальный криптографический протокол, который используется для аутентификации запросов, отправленных роботами. Вместо того чтобы полагаться исключительно на IP-адреса и заголовки, которые легко подделать, Web Bot Auth позволяет подтверждать подлинность запросов агентов с помощью криптографических подписей.

Использование Web Bot Auth помогает владельцам сайтов распознавать автоматизированный трафик и не позволяет злоумышленникам выдавать себя за проверенных агентов. Вот некоторые преимущества Web Bot Auth:

  • Криптографическая точность. Забудьте о привязке агентов к IP-адресам и откажитесь от легко подделываемых заголовков в пользу надежной идентификации.
  • Улучшенная наблюдаемость. Получайте более точные данные о том, как агенты взаимодействуют с вашим контентом.
  • Перспективы на будущее. Помогите сформировать интернет-среду, в которой поставщики агентов и владельцы сайтов могут доверять друг другу и принимать взвешенные решения о предоставлении доступа.

Текущий статус Web Bot Auth: экспериментальная функция

В настоящее время Web Bot Auth – экспериментальная функция по следующим причинам:

  • Web Bot Auth – это проект спецификации, разработанный рабочей группой WBA инженерного совета интернета (IETF). Со временем спецификация может меняться. По мере развития проекта Google продолжает участвовать в деятельности рабочей группы.
  • Проверка роботов по IP-адресу и строке User-Agent сейчас является стандартом: вокруг этих методов десятилетиями строились системы, правила и рекомендации. Переход на новые стандарты требует времени и осторожности. Мы находимся на начальном этапе и все ещё анализируем технические характеристики протокола, а также то, как его внедрение может повлиять на сложившуюся экосистему.

Что это значит?

Экспериментальный статус означает следующее:

  • Не все агенты пользователя Google поддерживают Web Bot Auth.
  • Google пока подписывает не все запросы агентов, использующих этот протокол.
  • Мы рекомендуем не полагаться только на Web Bot Auth и продолжать использовать IP-адреса, обратные записи DNS и строки User-Agent, поскольку внедрение подписанного трафика происходит постепенно.

Если вы хотите принять участие в эксперименте, ознакомьтесь с инструкциями о том, как распознавать и добавлять в белый список ИИ-агентов Google.

Как добавлять ИИ-агентов Google в белый список с помощью Web Bot Auth

Если вы разработчик или системный администратор и хотите добавить наших экспериментальных ИИ-агентов в белый список, вы можете реализовать проверку с помощью протокола Web Bot Auth.

Как использовать продукты и сервисы с поддержкой Web Bot Auth

Основные сервисы для выявления роботов, CDN и WAF поддерживают Web Bot Auth. Некоторые инфраструктурные сервисы позволяют найти агента пользователя Google-Agent и добавить его в белый список. Чтобы узнать, как это сделать, обратитесь к поставщику. Часть запросов, поступающих от Google-Agent, подписывается с помощью Web Bot Auth. В таких случаях они аутентифицируются как https://agent.bot.goog. Если поставщик поддерживает Web Bot Auth, скорее всего, проверка подлинности выполняется автоматически.

Как самостоятельно проверять запросы

Если вы хотите проверять подлинность наших запросов самостоятельно, изучите спецификацию архитектуры подписей HTTP-сообщений для автоматизированного трафика и примеры реализации на GitHub. В целом, основные этапы работы выглядят так:

  1. Получите набор открытых ключей нашего агента с сайта https://agent.bot.goog/.well-known/http-message-signatures-directory и сохраните их в кеше в соответствии с заголовком Cache-Control.
  2. HTTP-запросы, участвующие в проверке и отправленные на ваш сервер, будут содержать заголовок Signature-Agent со значением g="https://agent.bot.goog" (обратите внимание на метку g=).
  3. Проверьте заголовок Signature в соответствии с Signature-Input, следуя стандарту подписей HTTP-сообщений (RFC 9421). Используйте заголовки Signature и Signature-Input с меткой g.
  4. Не забудьте предусмотреть проверку по IP-адресу, так как не все запросы содержат подпись.
Этапы проверки Web Bot Auth

Для запросов, критичных к задержкам, можно отправить ответ сразу, а проверку подписи выполнить позже в течение ее срока действия. В этом случае санкции будут применяться уже постфактум, и вы сможете распространить их на будущие запросы отправителя.

Что дальше?