Scarnox · Blog

Как работает AI-решатель капчи: модели, токены и ограничения

AI-решатель капчи — это программа, которая использует модели машинного обучения, чтобы ответить на капчу вместо вас. Лучше всего он работает с задачами, где ответ можно прочитать из содержимого, например с искаженным текстом или сеткой изображений. Для виджетов на основе токенов задача модели — получить ответ, который серверная часть сайта примет, и это совсем другая задача. Это руководство описывает оба случая, где проходят границы возможностей и что вы на самом деле получаете от сервиса-решателя.

Руководство описывает общие приемы. Оно не раскрывает внутреннее устройство какого-либо конкретного сервиса. Для вас как разработчика важен контракт: вы отправляете данные капчи и получаете токен.

Три семейства капчи

Большинство капч относятся к одному из трех семейств, и ИИ работает с каждым по-своему.

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

Поведенческая оценка. Видимого задания может не быть вовсе. Сайт следит за тем, как ведет себя браузер, смотрит историю запросов и выставляет оценку посетителю. reCAPTCHA v3 работает именно так и возвращает число, а не головоломку. Модель не может просто «прочитать» ответ, потому что ответа нет. Вопрос в том, достаточно ли похожи сигналы на человеческие.

Виджеты на основе токенов. Виджет работает на странице, выполняет свои проверки и записывает токен в скрытое поле формы. Серверная часть сайта затем проверяет токен у провайдера. PopularCaptcha работает именно так, так же как reCAPTCHA v2 и Cloudflare Turnstile.

Как модели справляются с заданиями с содержимым

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

Для сеток изображений задача — классификация. Модель смотрит на каждую плитку и решает, есть ли на ней нужный объект. Трудные случаи — объекты, которые частично скрыты, находятся на краю плитки или неоднозначны, например автобус, который почти весь вышел из кадра. Точность здесь ниже, и хороший решатель должен решать, когда угадывать, а когда запросить новый раунд.

Аудиозадания используют распознавание речи. Модель расшифровывает клип, и ответом становится расшифровка. Основные трудности — фоновый шум и намеренные искажения.

Задания-головоломки, например поворот изображения или перемещение фрагмента на место, требуют модели другого типа. Модель оценивает угол или позицию по изображению, затем выдает перетаскивание или клик, которые ему соответствуют.

Как модели справляются с оценкой и токенами

Поведенческую оценку и виджеты на основе токенов сложнее решить, просто читая страницу. Собственные проверки провайдера выполняются в браузере посетителя, и их результат зависит от сигналов: окружения браузера, тайминга событий ввода и истории сессии. Решатель снаружи не видит ни оценку, ни сигналы в каком-либо полезном объеме.

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

Поэтому API Scarnox устроен именно так. Вы отправляете тип задачи, sitekey и URL страницы и получаете токен в поле solution:

{"errorId": 0, "solution": {"token": "..."}, "cost": ...}

Токен вставляется в поле формы, которое ожидает сайт, и истекает примерно через две минуты. Полный запрос описан в руководстве по API решателя капчи.

Где ИИ помогает и где останавливается

AI-решатели хорошо справляются с:

Слабее они работают с:

Есть и практическое ограничение, которое ни одна модель не убирает. Капча — это намеренный барьер, а провайдеры обновляют свои задания. Решатель, который работает сегодня, может перестать работать через месяц, поэтому вывод решателя нужно отслеживать и не предполагать, что он будет работать всегда.

Выбор решателя

Четыре вопроса помогут оценить любой сервис-решатель:

  1. Какие типы капчи он поддерживает сегодня, а какие — только в планах?
  2. Сколько стоит неудачное решение? Решатель, который берет деньги за ошибки, делает повторы дорогими.
  3. Как он ведет себя при таймауте или медленном ответе? Вашему коду нужна понятная ошибка, на основе которой можно действовать.
  4. Что нужно изменить в вашем коде, когда капча меняется? Чем меньше, тем лучше.

Scarnox сейчас поддерживает PopularCaptcha, без прокси, в режиме онлайн. Другие типы скоро появятся, а руководство по типам капчи объясняет статус каждого.

Следующие шаги