Что такое капча, зачем нужна и как ею пользоваться?
Вариации на тему
Де-факто капча — это разновидность обратного теста Тьюринга, в ходе которого ИТ-система должна определить, кем является ее пользователь, человеком или компьютером (ботом, роботом), тогда как в классическом тесте Тьюринга всё наоборот. Аббревиатура CAPTCHA складывается из первых букв английских слов Completely Automated Public Turing test to tell Computers and Humans Apart, что можно перевести на русский язык примерно так: «полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей». Технология была запатентована в 1997 году, а первые коммерческие имплементации появились в начале 2000-х. На данный момент по всему миру успешно решаются сотни миллионов капча-шарад ежедневно.
Суть капчи в том, чтобы предложить потенциальному пользователю такую задачу, — она будет относительно простой для него, но чрезвычайно сложной для компьютера. Самый распространенный вариант — ввод символов, изображенных на рисунке. Причем для усложнения автоматического распознавания предусмотрены разнообразные спецприемы — добавление помех в виде зачеркиваний, использование разных регистров, шрифтов и цветов, полупрозрачности и иные искажения текста. Вариация такой капчи — ввод двух словарных слов, по-разному представленных графически. Кстати, в свое время для этой технологии нашли интересное применение (помимо защиты сайта). Первое слово генерировалось случайным образом, а второе было представлено в виде скана из старых оцифрованных книг, журналов или газет. И если первое слово система знала, то второе ей было неизвестно. Если пользователь правильно ввел первое слово, то второе также считалось правильным. Далее собирались и сопоставлялись ответы множества пользователей, затем наиболее часто встречающийся вариант второго слова признавался правильным и отправлялся в цифровой архив: так уточнялись результаты OCR-анализа. В частности, именно с помощью этого подхода было оцифровано множество номеров газеты The New York Times. Однако создатели этой версии капчи (reCAPTCHA Inc., с сентября 2009 года в составе Google) подвергались критике за использование бесплатного труда.
Не менее часто встречается разновидность капчи, где предлагается выбрать изображения определенной категории. Например, из девяти случайных фотографий отметить галочкой только те, на которых изображена зебра (пешеходный переход). Иногда в процессе прохождения капчи надо решить математический пример: в таких случаях обычно используются простые операции вроде сложения, вычитания, умножения, деления. Еще один вариант капчи — пазл, предлагающий найти подходящее место для его отдельного элемента.
В последние годы все чаще встречается обычная функция подтверждения в составе модуля reCAPTCHA — один из самых удобных способов, при котором достаточно поставить галочку рядом с фразой «Я не робот», однако время на совершение действия ограничено. Если пользователь не успел сделать все необходимое, страницу, скорее всего, придется загружать заново. Может показаться, будто это ненадежный способ проверки, человек ли пользователь, однако в процессе работы данного алгоритма анализируется не только скорость и точность реакции, но и особенности движения мыши, которые при управлении человеком соответствуют случайным паттернам, не свойственным программному роботу.
Надо отметить, что со временем встречаются все более сложные капчи, вплоть до ситуации, когда не каждый человек способен решить их с первого раза. Это связано с тем, что боты стремительно совершенствуются, в том числе на базе широких возможностей современных нейросетей. В результате подобного противостояния изощренность некоторых капч может поставить пользователя в тупик. В частности, пару недель назад на сайте одной известной социальной сети система предложила автору этих строк решить следующую задачу: соотнести левый рисунок с одним из пяти рисунков справа, причем левое изображение было лишь маленькой частью одного из пяти более сложных рисунков справа. Более того, для успешного прохождения капчи данную операцию требовалось повторить десять раз подряд. Одна ошибка, о наличии которой можно узнать только после выполнения всех заданий, приводила к необходимости проходить капчу заново. На решение подобной задачи может уйти 5–10 минут, что неприемлемо долго.
В редких случаях система может предложить пройти аудиоверсию капчи — неплохая альтернатива для слабовидящих людей и пользователей с дислексией (серьезные трудности с навыком чтения).
Когда появляется капча?
Причины, из-за которых пользователь вынужден проходить капчу (иногда не одну, а сразу несколько), определяет алгоритм и настройки используемого на сайте captcha-модуля. Обычно триггерами для активации капчи выступают определенные стандартные разовые действия пользователя либо, наоборот, необычная активность. В первом случае речь идет о необходимости обязательного успешного решения капчи для 100% пользователей, пытающихся сделать что-то конкретное на сайте. К таким действиям чаще всего относится первичная регистрация, размещение комментариев на форуме или отзывов под товаром, отправка личных сообщений другим пользователям или подтверждение покупки в интернет-магазине. Во втором случае система выборочно требует подтвердить свой статус с помощью решения капчи. Обычно это происходит, когда алгоритмы капча-модуля подозревают, что активность определенного аккаунта напоминает поведение автоматического скрипта или программного робота. Такие настройки разнятся от модуля к модулю и иногда могут быть заданы не совсем корректно: тогда просьба решить капчу может слишком часто появляться даже у «законопослушных» пользователей, выполняющих рутинные и безобидные действия, например, при активной работе с контентом сайта внутри CMS-системы. Для проведения дифференциальной диагностики между человеком и ботом алгоритмы могут анализировать самые разные параметры — от общего числа любых запросов к сайту с конкретного IP-адреса до скорости проставления лайков и комментирования сообщений. Слишком интенсивная и быстрая активность почти всегда приведет к запуску капчи, а в некоторых случаях даже к автоматической временной блокировке доступа к сайту. Кроме того, капча может появляться при попытке войти на сайт с помощью действительных логина и пароля. В одних случаях аутентификация и авторизация на сайте всегда сопровождается вводом капчи, в других — только в случае неправильного ввода связки логин-пароль один и более раз. Система может заподозрить попытку автоматического подбора входных данных, в итоге капча будет появляться при каждой попытке ввода пароля. Бывает и так, что красный флаг, присвоенный пользователю системой, можно снять только через обращение в техподдержку сайта.
Изображение: Dragon Claws/Shutterstock.com
Кому и зачем это нужно?
Решение задач, предлагаемых пользователю капча-модулями, обеспечивает защиту сайта от удаленного программного входа в учетные записи пользователей и последующего выполнения определенных действий от их имени. То есть потребность в защите сайтов с помощью капчи есть у всех владельцев сайтов, желающих видеть среди своих пользователей живых людей. С точки зрения пользователей капча в основном доставляет лишь дополнительные сложности при работе в Сети. Однако в определенных, не всегда очевидных для поверхностного восприятия случаях, капча защищает в том числе и их.
Капча позволяет осуществлять минимальную предварительную фильтрацию публикуемого на сайте контента, снижает потребность в живых модераторах и общую нагрузку на сайт. В этом контексте применение капчи имеет особую актуальность на ресурсах, где организовано активное общение: социальные сети, интернет-магазины, информационные сайты с возможностью оставления комментариев. С помощью капчи можно существенно снизить объемы бессмысленного контента, зловредного спама и несанкционированной рекламы. Использование капчи также помогает от накрутки рейтинга товаров в интернет-магазинах с помощью автоматического размещения комментариев — положительных или отрицательных (в зависимости от целей злоумышленников). На торговых онлайн-площадках и маркетплейсах капчу также можно использовать для подтверждения покупки во время распродаж, когда специально настроенные боты моментально делают попытки раскупить все акционные товары по невысоким ценам, не оставляя обычным людям никаких шансов.
За счет капчи можно попробовать снизить нагрузку на вычислительные возможности сервера, на котором расположен сайт. Для этого можно настроить модуль капчи таким образом, чтобы он реагировал на любую необычную деятельность, например, на попытки открыть сайт с IP-адресов из определенных диапазонов или с помощью средств маскировки реального IP-адреса, ошибки аутентификации и многочисленные однотипные действия. Капча способна помочь в защите даже от DDoS-атак малой и средней интенсивности. Напомним, что в процессе DDoS-атаки на сайт поступает множество одновременных запросов, в результате сервер не справляется с нагрузкой и сайт «падает». К сожалению, от серьезной DDoS-атаки только капчей не защититься — нужны специальные средства.
Благодаря капче можно значительно снизить количество успешных подборов логинов и паролей с помощью брутфорсинга, когда автоматический скрипт перебирает или генерирует миллионы различных связок, одна из которых, в конце концов, может оказаться успешной. Найти человека, у которого хватит терпения на взлом доступа к аккаунту таким способом, пожалуй, невозможно, а вот робот способен выполнять эту процедуру бесконечно долго и однажды попасть в яблочко. Большинство современных сайтов после нескольких неудачных попыток входа в учетную запись будут запрашивать дополнительные проверки, в том числе с помощью капчи.
Капча поможет защититься и от автоматического считывания данных страниц сайта с помощью скрипта/робота. В большинстве случаев парсинг не наносит непосредственного вреда сайту, однако может облегчить сбор важной информации для конкурентов. Капча защищает далеко не от любого парсингового ПО, однако во многих случаях существенно затрудняет автоматический сбор критической информации.
Как пользоваться?
Для того чтобы активировать капчу на своем сайте, достаточно найти подходящий плагин или модуль под конкретную CMS (Content Management System). Для всех популярных CMS существуют дополнительные модули расширения, реализующие функцию капчи, а в некоторые системы они встроены по умолчанию (например, в «1C-Битрикс»). В случае если такого плагина/модуля нет или штатные средства функционируют неудовлетворительно, нужно найти альтернативное ПО, скачать его и, следуя инструкции, интегрировать в систему управления сайтом. Очевидно, что после этого необходимо произвести его настройку в соответствии с запросами владельца сайта. На заключительном этапе имеет смысл протестировать модуль в реальных условиях.
На рынке есть как бесплатные капча-решения, так и платные (дешевые и не очень). Тем не менее прямой связи между качеством исполнения модуля и его бесплатностью нет. Достаточно ориентироваться на аналитику и отзывы других владельцев сайтов в целом по рынку. Во многих случаях подойдет наиболее известный и популярный плагин Google reCAPTCHA: в качестве примера расскажем о нем чуть подробнее. В настоящее время доступны для использования reCAPTCHA v.2 (2014); reCAPTCHA v.3 (2018) и reCAPTCHA Enterprise (2020). Первая версия этого плагина не работает с марта 2018 года. Доступ к версии Enterprise осуществляется через интеграцию с сервисом Google Cloud — это самая продвинутая капча от Google с поддержкой мультифакторной аутентификации и других расширенных функций. В свою очередь, ключи для v.2 (с поддержкой виджета «Я не робот») и v.3 (невидимая капча на базе оценки поведения пользователя) можно получить на отдельной странице управления сервисом. Если вы зарегистрированы и авторизованы в почте Gmail, то при переходе по этой ссылке откроется форма для регистрации нового сайта, на который планируется установить капчу. Сервисы предоставляются на бесплатной основе при условии соблюдения лимита до 1 млн запросов в месяц. Банковская карта для регистрации не требуется. Для настройки плагина достаточно определиться с названием проекта, выбрать тип капчи и указать домен, на который планируется установить капчу. В случае настройки Enterprise также нужно выбрать платформу (вебсайт, приложение Android или iOS). После завершения настройки пользователь получит нужные ключи (публичный и секретный) для использования у себя на сайте.
reCAPTCHA — хороший сервис, однако не стоит забывать о рисках внезапного отключения сервисов Google в связи с неустойчивой позицией компании относительно работы с российскими компаниями. В частности, большинство платных сервисов Google уже недоступны для новых клиентов. Тем не менее в категории капча-сервисов в Рунете до сих пор лидируют решения reCAPTCHA. В качестве возможной альтернативы решению от Google можно рассмотреть hCaptcha (Intuition Machines Inc.), MTCaptcha (Sun Spray Technologies LLC), Capy Puzzle CAPTCHA (Capy Inc.) и Yandex SmartCapcha (ООО «Яндекс.Облако»). Однако у всех из них (кроме решения от «Яндекс») плюс-минус такие же потенциальные риски и сложности, как и у reCAPTCHA. Также нельзя списывать со счетов самописные капча-решения и бесчисленное множество малоизвестных модулей для CMS.
Если резюмировать, то установка готовых модулей капчи на сайт происходит достаточно просто, чтобы обойтись без привлечения стороннего специалиста. После установки капчи дальнейшее управление модулем происходит непосредственно из административной панели CMS. Если же для управления сайтом используется самописная CMS, вероятно, правильным решением будет заказать разработку модуля капчи специально под эту CMS. При желании можно создаь собственный капча-плагин и для стандартных CMS.
Итого
Некоторые боты научились проходить даже сложные варианты капчи. В частности, в октябре 2023 года выяснилось, что чатбот OpenAI GPT-4 способен успешно решать капчи. Кроме того, все еще в ходу старый добрый способ прохождения капчи с помощью дешевой рабочей силы. Как ни крути, капча снижает число поддельных регистраций и объемы спама, но не защищает на 100%. Однако взаимодействие с ресурсом для злоумышленника может стать неоправданно сложным и дорогим.
В связи с этим использование капчи сегодня предполагается по умолчанию. Тем более при правильном выборе модуля и его адекватной настройке капча может стать почти незаметной на сайте, требуя решения неудобных для пользователя задач лишь в исключительных случаях.
В то же время не надо забывать, что старые капча-плагины, а также их неправильная настройка могут создавать серьезные неудобства даже для лояльных пользователей ваших сайтов. Из-за этого они могут быстро превратиться в нелояльных, а потенциальные клиенты — не стать реальными. Поэтому необходимо не только осознанно подойти к выбору программного модуля, но и грамотного его настроить, периодически тестировать в работе и следить за актуальностью версий и алгоритмов.
Опубликовано 25.03.2024