CAPTCHA – автоматически сгенерированный текст (второе общепринятое наименование «тест Тьюринга»). Разработан в Университете Карнеги-Меллона. Автором идеи является профессор Алан Тьюринг, который изначально ставил задачу выяснить, кем сделан запрос – реальным человеком или компьютерной программой, так называемым «ботом».
Чаще в Сети можно встретить выражение «капча». Этот термин применяется с 2000 года. Тест универсален, с его помощью можно исключить деятельность ботов во время заполнения пользователем стандартной формы для входа. Предлагается выполнить элементарное для человека, но непосильное для компьютера (в данном случае «бота») задание. Программисты применяют CAPTCHA при раскрутке сайта для защиты от спамеров в комментариях, авторегистрации, высокой нагрузки при DоS-атаке т.п.
Для этих целей разработаны нескольких видов капчи:
- Самая распостраненная – графическая. Пользователю предлагается ввести текст с картинки, числа или символы другого рода. Задача усложняется тем, что изображение искажено или содержит полупрозрачность и шум;
- При необходимости или для слабовидящих пользователей применяется звуковая капча, основанная на распознавании речи;
- Вариант, когда из нескольких терминов «рояль», «шкаф», «скрипка» и «ноты» нужно выбрать слово, которое не имеет отношения к музыке.
- Математическая, когда для решения предлагаются простые или усложненные примеры;
- Образная, когда пользователю необходимо идентифицировать образ объекта;
- Гифки и видео – в движении пребывают и символы изображения и фон;
Как защитить капчу от автораспознавания
Программисты, которые занимаются оптимизацией и раскруткой сайтов, в большинстве случаев стараются предотвратить вероятность идентификации капчи «ботами».
Автораспознавание. В настоящее время разработчиками создано множество программ, которые в состоянии распознавать определенные исполнения капчи. Подобные программы с большой долей вероятности смогут найти «уязвимое» место и обойти CAPTCHA, если элементы в предлагаемой картинке статичны, использовано классическое размытие по Гауссу, искажения отсутствуют, символы отделяются от фона или друг от друга простым способом (метод цветового ключа) и т.п.
Отгадывание. Когда количество возможных ответов не очень велико, бот сделает попытку определить его наугад. Например, поставленная задача выглядит как «отметить животных» из 10 изображений – ответов всего 210 равно 1024. Что значит прохождение капчи одним автозапросом из 1024.
Распознавание методом испольгования человеческого ресурса. Пользователю предоставляется капча, скачанная ботом с нужного ресурса. В результате человек получает необходимый доступ, не подозревая, что в этот момент был создан новый почтовый ящик для рассылки спама.
Если вопросы не сгенерированы автоматически, а созданы «вручную», с помощью накопленной информации можно обойти многие варианты капчи. Для примера, отметить все картинки, на которых изображены собаки.
Также стоит перечислить несколько иных вариантов прохождения капчи без распознавания изображения:
- Многократное использование роботом идентификаторов cookie (сессии);
- Восстановление предложенных для идентификации символов по сведениям, содержащимся на странице;
- Создание базы данных под разнообразные символы капчи, которые выдает PRNG (генератор псевдослучайных чисел).
Самым распространенным вариантом иллюзии безопасности является капча в стиле «поставить галочку». Принято считать, что этой меры вполне достаточно, но обучение бота подобному действию – минутное дело. При этом ввод капчи не происходит, просто изменяются параметры CheckBox’a.