Если ты хоть раз создавал автономных ИИ-агентов, парсеры рыночных данных или поисковых ботов, то прекрасно знаешь, во что превратилась эта разработка в последние годы. Это бесконечная и изматывающая гонка вооружений с системами защиты от ботов (WAF, Cloudflare, Akamai). Чтобы твоего бота не срезало капчей на первом же запросе, приходится городить целый зоопарк: поднимать «антидетект-браузеры» на базе Firefox или Chromium (вроде Camoufox), арендовать пулы дорогих резидентских прокси, подменять отпечатки Canvas и WebGL и рисовать движения курсора мыши по кривым Безье, имитируя поведение живого человека.
Но давай посмотрим правде в глаза: это архитектурный тупик. На каждый экземпляр агента ты тратишь гигабайт оперативной памяти, секунды драгоценного времени на запуск тяжелого браузерного движка и кучу денег на прокси. А главное — любая смена эвристик WAF в одночасье ломает весь твой пайплайн.
Разработчик MrKoriy предложил сменить парадигму: вместо того чтобы прятаться под маской человека, агент должен открыто предъявлять криптографический паспорт на базе стандарта IETF RFC 9421 (HTTP Message Signatures) и открытого протокола wbauth.
Я разобрал эту механику до винтиков, и должен сказать: это именно то, как должен выглядеть цивилизованный веб будущего.
Как работает протокол wbauth
Идея проста и элегантна: вместо анализа поведенческих факторов сервер проверяет математическую цифровую подпись.
Стандарт RFC 9421 (окончательно принятый IETF в феврале 2024 года) стандартизирует способ цифровой подписи любых компонентов HTTP-сообщения (метода, пути, заголовков и хэша тела запроса). Протокол wbauth надстраивает над ним прозрачную инфраструктуру идентификации:
- Ключевая пара Ed25519. Агент генерирует легковесную пару ключей. Публичный ключ выкладывается в открытый децентрализованный каталог (например, на Cloudflare Workers + D1 или на домене компании-владельца агента).
- Заголовки
SignatureиSignature-Agent. При отправке запроса агент подписывает метод, хост, целевой URI и временные метки (created,expires). В заголовокSignature-Agentпомещается идентификатор ключаkeyidи адрес каталога, где лежит открытый ключ. - Мгновенная проверка на Edge. Сервер или защитный экран (WAF) извлекает открытый ключ (кэшируя его на своих edge-нодах) и за пару микросекунд проверяет подлинность подписи. Защита от replay-атак гарантируется сроком жизни подписи и привязкой к телу запроса.
Практическое подключение в Python и Node.js
Использовать wbauth в реальном коде проще, чем настраивать Playwright. Вот как выглядит клиент на Python с библиотекой httpx:
import httpx
from wbauth import Agent, HttpxAuth
# 1. Загружаем приватный ключ Ed25519 и параметры каталога из переменных окружения
# WBAUTH_PRIVATE_KEY, WBAUTH_KEY_ID, WBAUTH_DIRECTORY_URL
agent = Agent.from_env()
# 2. Инициализируем клиент с автоматической подписью каждого запроса
with httpx.Client(auth=HttpxAuth(agent)) as client:
response = client.get("https://api.targetservice.com/v1/market-data")
print(f"Статус ответа: {response.status_code}")
print(response.json())
А вот аналогичный вызов на TypeScript в среде Node.js или Bun с удобной оберткой нативного fetch:
import { createSigner, wrapFetch } from "wb-auth";
// 1. Создаем криптографического подписанта
const signer = await createSigner({
privateKey: process.env.WBAUTH_PRIVATE_KEY!,
keyId: "prod-agent-alpha",
directoryUrl: "https://keys.mycompany.com/directory",
});
// 2. Оборачиваем fetch — заголовки Signature и Signature-Agent добавятся на лету
const signedFetch = wrapFetch(fetch, signer);
const response = await signedFetch("https://api.targetservice.com/v1/market-data", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ category: "electronics" }),
});
const result = await response.json();
console.log("Данные получены:", result);
Бенчмарки: холодный душ для антидетекта
А теперь самое интересное — сухие цифры реального тестирования против браузерного стека Camoufox:
- Холодный старт: 5 миллисекунд в
wbauthпротив 1744 мс у браузера (ускорение в 350 раз!). - Потребление оперативной памяти: 0,76 МБ на процесс вместо 500–1500 МБ у браузера (сокращение в 650 раз!).
- Вес рантайма: 14 МБ зависимостей вместо 1,3 ГБ тяжелых браузерных образов Chromium и Firefox.
Пока мы наблюдаем, как происходит превращение сред исполнения в полноценные операционные системы (мы подробно разбирали это в статье Встроенные браузеры в Claude Desktop и Codex: превращение ИИ в операционную систему), протоколы вроде RFC 9421 возвращают легковесным агентам их главное преимущество — колоссальную энергоэффективность.
Разумеется, криптографический паспорт работает только с теми сервисами и WAF, которые настроили у себя проверку заголовков Signature-Agent и открыли «зеленый коридор» для легитимных ботов. Для закрытых сайтов без поддержки стандарта антидетект-стек пока остается в строю, но тренд на открытые протоколы доверия уже не остановить.
Вместо партизанской войны с блокировками мы наконец-то получаем открытый контракт: агент заявляет о себе честно и доказуемо, а сервер экономит гигабайты памяти на проверках.
