Что такое капча и как она защищает веб‑ресурсы
2026-02-21 08:45 Diff

#статьи

  • 26 май 2023
  • 0

Что такое капча и как она защищает веб‑ресурсы

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

Иллюстрация: Катя Павловская для Skillbox Media

Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.

Само слово «капча» образовано от английской аббревиатуры CAPTCHA — completely automated public Turing test to tell computers and humans apart, что означает «полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей».

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

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

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

Подобные тесты для распознавания, человек перед тобой или машина, начал разрабатывать ещё Алан Тьюринг в 1956 году, когда вплотную занялся изучением искусственного интеллекта. Он придумал такое задание: человеку даются два невидимых собеседника: один из них человек, другой — машина. Человек задаёт собеседникам несколько вопросов. Если он не может определить, кто из них робот, а кто — человек, значит, машина мыслит.

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

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

Интернет стал не просто средством обмена информацией — некоторые разглядели в нём средство лёгкого и не всегда законного заработка. Например, с помощью несложных программ можно зарегистрироваться на тысячах сайтов и рассылать рекламу, ссылки на вирусы, реквизиты для перевода денежных средств для фейковых больных и многое другое.

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

Их владельцы остро нуждались в приложении для отсеивания ботов. Первое такое приложение разработали специалисты Университета Карнеги — Меллона, написавшие скрипт на основе теста Тьюринга. Перед регистрацией на сайте пользователю предлагали ввести символы с «зашумлённой» картинки — человек мог их распознать, а большинство хакерских программ нет. Тогда же университет зарегистрировал товарный знак CAPTCHA, приняв сочетание букв, близкое к английскому catch («поймать»).

Первыми капчу стали использовать в Yahoo — таким образом компания пыталась предупредить автоматическую регистрацию почтовых ящиков для рассылки спама. В то время справиться с капчей было непросто — чтобы разобраться в задании, приходилось напрягать зрение и часто обновлять страницу. Особенно тяжело было людям с ограниченными возможностями здоровья.

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

Хотя назойливые капчи раздражают пользователей, владельцам сайтов они необходимы. Рассмотрим подробнее, от чего они защищают:

Спам. Боты рассылают «мусорную» рекламу, оставляют негативные комментарии и отзывы. Их сложно вычищать вручную, особенно на крупных сайтах. Капча избавляет от этой напасти.

DDoS-атаки. Злоумышленники направляют на сайт большое количество запросов, больше, чем он может выдержать. Веб-ресурс переполняют фейковые посетители, он перестаёт нормально работать и может рухнуть. Капча сдерживает натиск ботов.

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

Подбор логинов и паролей. Человеку трудно подобрать вручную логин или пароль на сайте. А бот может генерировать их до бесконечности, пока не найдёт подходящие. Капча это предотвращает.

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

Например:

  • Капча появляется, когда пользователь регистрируется на сайте или оставляет комментарии и отзывы, — система защиты проверяет, человек это или бот.
  • То же самое происходит при покупке товара в интернет-магазине — капча проверяет, не взломали ли покупателя.
  • Пользователь слишком быстро отвечает на сообщения, много лайкает, часто щёлкает по гиперссылкам, запрашивает веб-страницы. По мнению защиты, он ведёт себя как бот, и она запускает капчу.
  • Компьютер решил, что вы пытаетесь подобрать логин и пароль. Он думает, что это бот, и не хочет пускать вас на сайт. Это действительно сложный случай — капча будет появляться постоянно.

Назовём самые распространённые виды капчи — они чаще всего попадаются пользователям.

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

Текстовая капча от «Яндекса»
Изображение: «Яндекс»

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

Логическая капча от WordPress
Изображение: WordPress

А такую логическую капчу можно встретить на «Фейсбуке»*. Здесь нужно выбрать имя своего друга:

Логическая капча с «Фейсбука»*
Изображение: Meta*

Звуковая. Обычно даётся в дополнение к текстовой капче. Это серия букв или цифр, которые произносит компьютер, чтобы помочь слабовидящим. Также это может быть альтернативный вариант капчи, например:

Звуковая капча от «Яндекса»
Изображение: «Яндекс»

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

В 2009 году специалисты Университета Карнеги — Меллона представили усовершенствованную версию, которую назвали ReCAPTCHA. Она имела более сложный механизм и обладала большей надёжностью, чем ранее существовавшие капчи.

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

ReCAPTCHA v1
Изображение: Google

Проверка пользователя осуществляется только по тому слову, которое известно системе, а второе слово вводить необязательно. Если пользователь всё же ввёл второе слово, то оно сохраняется системой в качестве одного из вариантов для распознавания. Таким образом ReCAPTCHA первой версии использовалась не только для защиты сайтов, но и для оцифровывания архивов.

На перспективную технологию обратили внимание в Google и выкупили её. Однако поумневшие боты вскоре научились справляться и с этой версией капчи. В 2015 году Google прекратила использовать ReCAPTCHA v1.

Затем была разработана ReCaptcha v2, с которой мы часто сталкиваемся. В ней можно пройти тест в один клик. Работа капчи начинается с появления таблички с надписью «Я не робот» — от пользователя требуется поставить галочку в нужном поле.

Возможно, вы задумывались, зачем таким способом доказывать, что ты человек. Но компьютер интересует не сам факт установки флажка, а действия, которые совершает пользователь. Этот тест анализирует движения мыши. У человека они имеют определённую степень случайности — боты не смогут это имитировать. Алгоритм также проверяет надёжность IP-соединения пользователя, его приблизительное местонахождение, часовой пояс, время на его компьютере, сохранённые cookie-файлы и многое другое.

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

ReCAPTCHA v2
Изображение: Google

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

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

В 2018 году появилась третья версия ReCAPTCHA. Её называют невидимой, или капчей, которой нет. Пользователю уже не нужно совершать никаких действий — капча использует усовершенствованный механизм анализа его поведения. Система анализирует задержки при печати, движение мыши, прокрутку страниц, взаимодействия с интерактивными элементами и многое другое. Впрочем, Google не даёт точной информации о работе ReCAPTCHA, чтобы не помогать разработчикам ботов.

По результатам анализа система выставляет пользователю оценки от 0.0 до 1.0, где 0.0 означает, что это, вероятно, бот, а 1.0 — вероятно, человек.

Капча может раздражать, но это лучший способ борьбы с вр��доносными программами, мешающими нормальной работе сайтов, особенно больших. Разработчики систем защиты стараются упростить тесты, сделать их менее навязчивыми и даже незаметными. Но не стоит забывать, что злоумышленники тоже совершенствуют своих ботов и задача защиты сайтов со временем становится всё сложнее.

* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу