Как стать автором
Обновить

Распознавание капчи – разбираемся в сложном для понимания процессе максимально просто

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.5K

Капча – это не отдельное слово, которому можно дать определение, а целых девять слов (и два предлога) - Completely Automated Public Turing Test To Tell Computers and Humans Apart. Сократили это все до емкого CAPTCHA, чтобы не создавать очередное сложнопроизносимое слово. В переводе на русский эта аббревиатура звучит так - Полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.

Не получается из этого набора слов КАПЧА, правда? Да это в принципе и не нужно, всем и так понятно о чем идет речь. Найди указанные картинки, или введи указанный текст, чтобы подтвердить что ты не робот.

Пройти капчу несложно, если ты человек. Сложнее, если ты человек с кучей аккаунтов, которые работают автономно (это называется автоматизация). Нужно использовать средства автоматизации, менять прокси, покупать отпечатки браузера и этот список можно продолжать долго, вариантов много.

И проблема в том, что универсального решения, как такового, нет. То есть, условный парсер, который собирает информацию с определенного сайта пишется под конкретный вид капчи, который в момент написания присутствует на сайте, и если на этом сайте обновляется капча, парсер перестает работать, вернее не так. Парсер при встрече с новой капчей перестает работать.

Получилось сумбурно… Попробую по-другому… Если ваш парсер может обойти reCAPTCHA V2 он не сможет обойти reCAPTCHA V3, так как это разные виды капчи, каждая из которых имеет свой набор уникальных параметров, которые необходимо учесть. 

Уточнение — если в вашем парсере не заложены все методы решения, а только один, то вышесказанное работает.

И пример для самых маленьких – если вы попытаетесь протолкнуть в отверстие в форме кубика шар, он туда не пролезет. Так и тут…

Теперь давайте разберемся в видах капчи и что потребуется для того, чтобы распознать капчу.

Зачем и кому нужно обходить капчу и кто в этом помогает?

Довольно простой вопрос, для тех, кто понимает, о чем речь и более сложный для тех, кто не в теме. Казалось бы – сидит пользователь в интернете, хочет где-то зарегистрироваться или что-то скачать, выползла капча – он ее распознал и продолжил свою работу, все…

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

Итак, обход капчи важен для:

Автоматизаторов (те, кто автоматизирует рутинные задачи, монотонное выполнение которых на некоторых ресурсах провоцируют появление капчи)

Тестировщиков (при настройке безопасности веб-ресурсов необходимо предусмотреть различные варианты, в том числе наплыв ботов, и чтобы защититься от этого в будущем, в настоящем необходимо этот наплав сгенерировать самостоятельно)

Разработчики скриптов или парсеров (сбор информации вручную занимает много времени, даже с собственных интернет-ресурсов, что уж говорить про конкурентов, а любой ресурс с информацией защищается от нагрузки, в том числе капчей)

Кто помогает в обходе капчи? Для самых крутых программистов не нужна ничья помощь, они в состоянии обучить собственные модели распознавать капчу либо будут использовать прокси (через перебор прокси можно добиться того, что капча совсем не будет появляться).

Что касается тех, кто не может или не хочет заморачиваться – тут на помощь приходят сервисы распознавания капчи. Они бывают нескольких видов:

Ручное распознавание обойдется дороже, но и точность распознавания тут стремится к 100% (ты понимаешь за что ты платишь), тогда как сервисы автоматического распознавания, наоборот могут быть дешевле, но и качество тут оставляет желать лучшего, при обходе сложных капч они могут быть и вовсе бесполезными. OCR  вообще предназначены для обхода текстовых капч и не справляются с капчами последнего поколения.

Теперь разберемся в видах капчи.

Распознавание капчи по видам и чем эти виды отличаются 

Существует несколько видов капчи, которые различаются по степени сложности и количеству учитываемых факторов для ее прохождения.

Перечислять каждую капчу будет скучно и муторно, поэтому я попытался их классифицировать, вот что у меня вышло:

Картинные и визуальные капчи

  • reCAPTCHA V2

  • hCaptcha

  • GeeTest CAPTCHA

  •  Rotate CAPTCHA

Поведенческие и невидимые капчи

  • reCAPTCHA V3

  • Cloudflare Turnstile

Текстовые капчи

  • Простая капча

  • Amazon CAPTCHA

Аудио капчи

  • Audio CAPTCHA

Иные интерактивные капчи

  • CyberSiARA

  • atbCAPTCHA

  • GeeTest CAPTCHA

  • MTCaptcha

  • Cutcaptcha

  • Tencent CAPTCHA

  • Lemin CAPTCHA

Картинные и визуальные капчи - обход капчи в картинках

В данном виде собраны топ 1 и топ 2 всех капч. Эти капчи стоят на 70-80% ресурсов и это reCAPTCHA V2 и hCAPTCHA. Да, принцип решения у них разный, но смысл действия примерно похожий

reCAPTCHA V2: Использует изображения, требует выбора объектов (например, машины), учитывает пользовательские действия (движения мыши, клики).

hCaptcha: Похож на reCAPTCHA, использует выбор изображений, анализирует клики и задержки.

Помимо стандартных наборов задач (необходимость кликнуть по определенному предмету или картинке, каждая капча анализирует поведение пользователей. И в каждом случае этот набор разный и приоритезация у этих факторов, также, может отличаться. Эти данные достоверно известны только самой компании, разрабатывающей защиту от ботов, а мы можем лишь строить предположения, оценивая значимость движений мышки или задержек.

Менее популярный вид капчи, который попал в этот подвид - Rotate CAPTCHA. Тут необходимо повернуть изображение в нужное положение. Капча учитывает точность манипуляций пользователя при решении капчи.

Поведенческие и невидимые капчи - решение капчи, которой не видно

Абсолютно иной вид капч, который использует анализ поведения пользователя без явного взаимодействия с ним. Но надо понимать, что невидимая часть капчи – это лишь верхушка айсберга, и в случае, когда система решит, что пользователь (бот) не проходит под параметры добропорядочного посетителя – ему будет предложено решить другой (видимый) вид капчи, а это может уже быть любая из перечисленных в статьей капча – текстовая ли, или интерактивная и т.д.

К невидимым относят:

reCAPTCHA V3: Анализирует действия на странице без прямого взаимодействия, присваивает оценку риска. Работает со score пользователя, присваивая его от 0 до 1, и в зависимости от того, что указал администратор либо пропускает юзера, либо продолжает его мучать дальше уже видимыми капчами.

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

Текстовые капчи - распознавание капчи практически даром

Самый простой вид капчи – текст, который необходимо ввести в указанное поле. Несмотря на простоту, в свое время эта капча имела несколько видов сложности. Учитывала пробелы или не учитывала, была чувствительна к регистру или нет, с цифрами или специальными символами и т.д. Но факт остается фактом, по сравнению с другими видами капчи обойти текстовую капчу очень просто.

Для того, чтобы обойти текстовую капчу использовались дешевые OCR сервисы. Почему использовались? Да просто текстовая капча уже редко где встречается и для ее обхода уже придумали кучу бесплатных решений, которые не требуют денег за распознавание.

Основной параметр, который учитывается при распознавании такой капчи – правильность ввода текста. То есть задача автоматизатора (если вдруг понадобиться автоматизировать распознавание текстовой капчи).

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

Аудио капчи - обход капчи на слух

Изначально была разработана для удобства слепых людей, чтобы они могли пройти капчу, если система решит что пользователь подозрителен. Принцип работы Audio CAPTCHA - пользователь слушает аудио и вводит услышанный текст, учитывает точность распознавания звуков. Наличие аудио капчи позволяло обходить сложные виды капчи. То есть, пользователь (бот) просто переключался на аудио, транскрибировал его и проходил капчу.

Иные интерактивные капчи - когда распознавание капчи похоже на игру

Этот подвид капч включает в себя различные варианты капч, использующих нестандартные способы проверки, что вы человек. Они уже могут не иметь ничего общего с первоначальным тестом Тьюринга, а просто предлагают пользователю сложные и не очень задачки.

CyberSiARA: Специальные задачи, такие как головоломки или выбор объектов, анализирует поведение.

atbCAPTCHA: Интерактивные задачи с манипуляцией элементами, учитывает точность действий.

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

MTCaptcha: Использует задачки с выбором объектов и манипуляцией с изображениями, анализирует время взаимодействия и точность.

Cutcaptcha: Требует вырезать или переместить части изображения, учитывает точность движений.

Tencent CAPTCHA: Предлагает пазлы и задачи с перемещением, фиксирует точность и плавность действий.

Lemin CAPTCHA: Включает мини-игры и задачи по выбору объектов, анализирует поведение и время ответа.

Как распознать капчу каждого вида?

Конечно было бы слишком просто, если бы решить любую капчу можно бы было примерно одним и тем же способом. Я решил классифицировать капчи по способу их решения, вот что у меня получилось:

Решение капчи токенами

Используется для капч, где нужно получить специальный ответный токен для подтверждения. Суть решения проста, вы отправляете капчу для решения на сервис распознавания капчи, а они в ответ присылают вам токен, который вы подставляете в нужное место, после чего капча считается пройдённой.

К таким капчам относятся:

  • reCAPTCHA V2

  • reCAPTCHA V3

  • hCaptcha

  • Cloudflare Turnstile

Решение капчи текстовым вводом

Распознавание текста с изображения и ввод его пользователем, пользователь шлет сервису изображение капчи, а сервис ему в ответ текст, который (пользователь) он подставляет в нужное поле.

Сюда относятся:

  • Amazon CAPTCHA

  • Текстовая капча

Решение капчи координатным методом

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

Сюда можно отнести такую капчу, как:

  • GeeTest CAPTCHA

  • Click CAPTCHA

  • Draw Around

  • Capy Puzzle CAPTCHA

Существуют капчи, которые можно решать несколькими методами, токенами или координатами. Наиболее надежный способ – решение капчи токеном, но он может быть сложнее, а вот координаты будет легче, но не всегда может сработать.
То ест в случае с координатами, вы получаете не готовый ответ с гарантией, что капча пройдена, а лишь способ ее обхода, а обходить вам все равно придется самостоятельно (вашему боту).

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

Теги:
Хабы:
+4
Комментарии2

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн