Scarnox · Blog

Як AI-розв'язувач капчі працює: моделі, токени і обмеження

AI-розв'язувач капчі - це програмне забезпечення, яке використовує моделі машинного навчання, щоб відповісти на капчу від вашого імені. Найкраще воно працює там, де відповідь можна прочитати з вмісту, наприклад у спотвореному тексті або в сітці зображень. Для токен-віджетів завдання моделі - створити відповідь, яку прийме сервер сайту, і це інша задача. Цей посібник пояснює обидва випадки, де проходять межі і що ви насправді отримуєте від сервісу розв'язання.

Цей посібник описує загальні техніки. Він не розкриває внутрішньої роботи жодного конкретного сервісу. Для вас як розробника важливий контракт: ви надсилаєте дані капчі і отримуєте токен.

Три родини капчі

Більшість капч належить до однієї з трьох родин, і AI по-різному працює з кожною.

Завдання з вмістом. Відвідувач читає або розпізнає щось: спотворені символи, набір номерів будинків, світлофори в сітці, повернутий об'єкт. Правильна відповідь міститься в самому зображенні або аудіо. Саме тут машинне навчання найсильніше.

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

Токен-віджети. Віджет працює на сторінці, виконує свої перевірки і записує токен у приховане поле форми. Серверна частина сайту потім перевіряє токен у постачальника. PopularCaptcha працює саме так, як і reCAPTCHA v2 та Cloudflare Turnstile.

Як моделі працюють із завданнями з вмістом

Для спотвореного тексту стандартний підхід - модель оптичного розпізнавання символів. Згорткова мережа або модель зору на основі трансформера читає зображення і видає послідовність символів. Навчання йде на великих наборах згенерованих капч з відомими відповідями, тож модель вивчає поширені спотворення: викривлення, шумові лінії, символи, що перекриваються, і фонову текстуру.

Для сіток зображень завдання - класифікація. Модель дивиться на кожну плитку і вирішує, чи містить вона об'єкт, якого вимагає завдання. Складні випадки - це об'єкти, що частково приховані, на краю плитки або неоднозначні, наприклад автобус, який майже весь поза кадром. Точність тут нижча, і хороший розв'язувач має вирішити, коли варто вгадати, а коли запросити ще один раунд.

Аудіо-завдання використовують розпізнавання мовлення. Модель транскрибує фрагмент, і відповіддю є транскрипція. Головні труднощі - фоновий шум і навмисні спотворення.

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

Як моделі працюють з оцінкою і токенами

Поведінкову оцінку і токен-віджети важче розв'язати, просто читаючи сторінку. Перевірки постачальника виконуються в браузері відвідувача, а їхній результат залежить від сигналів, таких як середовище браузера, час подій введення та історія сесії. Розв'язувач ззовні не бачить оцінку або сигнали з корисними деталями.

У таких випадках працює розв'язувач, який повертає відповідь, очікувану постачальником, використовуючи конвеєр, побудований для створення дійсних токенів. З вашого боку важлива проста властивість: ви отримуєте токен або помилку, а токен перевіряє сайт.

Саме тому API Scarnox має таку форму. Ви надсилаєте тип завдання, sitekey і URL сторінки, а токен отримуєте в полі solution:

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

Токен потрапляє в поле форми, якого очікує сайт, і спливає приблизно за дві хвилини. Повний запит описано в посібнику по API розв'язувача капчі.

Де AI допомагає і де зупиняється

AI-розв'язувачі добре справляються з:

Слабші вони в таких випадках:

Є й практичне обмеження, якого жодна модель не усуває. Капча - навмисний бар'єр, і постачальники оновлюють свої завдання. Розв'язувач, що працює сьогодні, може перестати працювати наступного місяця, тож результати розв'язувача варто відстежувати, а не вважати, що вони працюватимуть завжди.

Вибір розв'язувача

Чотири питання допомагають оцінити будь-який сервіс розв'язання:

  1. Які типи капчі він підтримує сьогодні, а не в дорожній карті?
  2. Скільки вам коштує невдалий розв'язок? Розв'язувач, що бере плату за невдачі, робить повтори дорогими.
  3. Як він поводиться при тайм-ауті або повільній відповіді? Вашому коду потрібна чітка помилка, на яку можна відреагувати.
  4. Що треба змінити у вашому коді, коли капча змінюється? Чим менше, тим краще.

Scarnox наразі підтримує PopularCaptcha без проксі, цей тип уже працює. Інші типи з'являться скоро, а посібник про типи капчі пояснює статус кожного з них.

Наступні кроки