CAPTCHA: история, виды и применение¶
CAPTCHA (англ. Completely Automated Public Turing test to tell Computers and Humans Apart — «полностью автоматизированный публичный тест Тьюринга для отличия компьютеров от людей») — это метод защиты компьютерных систем, основанный на проверке, способен ли пользователь выполнить задание, доступное человеку, но трудновыполнимое для автоматизированной программы. Термин введён в 2000 году группой исследователей из Массачусетского технологического института (Луис фон Ан, Мануэль Блюм, Николас Хоппер и Джон Лангфорд). Системы CAPTCHA применяются на сайтах и в приложениях для предотвращения автоматической регистрации аккаунтов, спама, брутфорса паролей и иных злоупотреблений.
¶История
Идея теста Тьюринга, предложенного Аланом Тьюрингом в 1950 году, заключается в определении способности машины демонстрировать интеллектуальное поведение. CAPTCHA переосмыслил эту идею: вместо проверки интеллекта машины выполняется проверка способности человека решать задачу, для которой у алгоритмов нет надёжного решения.
Первые системы CAPTCHA появились в конце 1990-х годов. В 1997 году компания AltaVista внедрила механизм, требующий от пользователя ввода искажённых символов при регистрации почтовых ящиков — это было сделано для ограничения автоматической регистрации. В 2000 году исследователи Массачусетского технологического института опубликовали статью, в которой закрепили термин и предложили алгоритм генерации искажённых текстовых заданий.
В 2003 году Google приобрёл технологию reCAPTCHA, разработанную в МТИ. Система использовала искажённые слова из оцифровываемых книг и газет, что позволяло совмещать защиту сайтов с распознаванием текста. В 2009 году Google выкупил проект reCAPTCHA целиком, а в 2012 году представил невидимую CAPTCHA (reCAPTCHA v2), основанную на поведенческом анализе пользователя. В 2017 году была представлена reCAPTCHA v3, которая не требует от пользователя никаких действий и оценивает риск автоматизации на основе взаимодействия с сайтом.
¶Принцип работы
CAPTCHA строится на асимметрии: задание легко выполняется человеком, но трудно решается программой. Проверка обычно выполняется на стороне сервера, который генерирует задание, сохраняет эталонный ответ и сравнивает его с введённым пользователем. Некоторые системы используют сторонние сервисы (например, Google reCAPTCHA или hCaptcha), которые предоставляют виджеты для интеграции на сайтах.
¶Виды
CAPTCHA классифицируются по типу задания:
| Вид | Принцип | Примеры |
|---|---|---|
| Текстовая | Ввод искажённых букв и цифр | reCAPTCHA v1,早期 системы |
| Аудиальная | Распознавание произнесённого текста | Google Audio CAPTCHA |
| Математическая | Решение арифметической задачи | Простые формы на форумах |
| Изображения | Выбор объектов на картинках | reCAPTCHA v2 «выберите все перекрёстки» |
| Логическая / головоломка | Решение нестандартной задачи | Puzzle CAPTCHA |
| Поведенческая | Анализ движения мыши, скорости ввода и других сигналов | reCAPTCHA v3, hCaptcha |
| Скрытая | Проверка без видимого взаимодействия | Cloudflare Turnstile, reCAPTCHA v3 |
¶Обход и обнаружение
Развитие машинного обучения и компьютерного зрения привело к появлению методов автоматического обхода CAPTCHA. Наиболее известные подходы:
- Оптическое распознавание символов (OCR) — обучение нейросетей на искажённых изображениях. В 2014 году исследователи показали, что современные системы текстовых CAPTCHA могут быть обойдены с точностью до 99,8 %.
- Сервисы по распознаванию — коммерческие платформы, где задания решаются людьми за небольшую плату (кликфармы).
- Анализ поведения — модели, имитирующие паттерны движения мыши и клавиатуры человека.
В ответ на обходные методы разработчики CAPTCHA переходят к поведенческим и невидимым системам, которые не предъявляют пользователю явных заданий.
¶Критика
CAPTCHA подвергаются критике по нескольким направлениям:
- Доступность — искажённые изображения и аудиозадания могут быть непреодолимы для людей с нарушениями зрения или слуха.
- Приватность — системы, основанные на поведенческом анализе, собирают данные о пользователях.
- Эксплуатация — в ряде стран работники решают CAPTCHA вручную за минимальную оплату, что критики называют цифровым рабством.
- Надёжность — с ростом возможностей ИИ разница между человеком и машиной в решении подобных задач сокращается.
¶Применение в России
В российском сегменте интернета широкое распространение получили собственные системы CAPTCHA, в частности, «Робот» от Яндекса (Яндекс.Капча) и аналогичные механизмы в ВКонтакте, Mail.ru и других крупных сервисах. Яндекс.Капча поддерживает аудиальные и интерактивные задания, а также поведенческий анализ.