- CAPTCHA
-
CAPTCHA ([ˈkæptʃə]; от англ. Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различия компьютеров и людей) — товарный знак Университета Карнеги — Меллона, в котором разработали компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. В Рунете часто транскрибируется как «капча». Термин появился в 2000 году. Основная идея теста: предложить пользователю такую задачу, которую с лёгкостью может решить человек, но которую несоизмеримо сложнее решить компьютеру. По состоянию на 2011 г. примерно 200 миллионов CAPTCHA вводилось каждый день людьми в мире[1].
Содержание
Варианты реализации
В наиболее распространённом варианте CAPTCHA пользователь вводит символы, изображённые на рисунке (зачастую с добавлением помех или полупрозрачности). По общепринятым нормам доступности интернета для людей со слабым зрением, такая CAPTCHA должна дополняться вариантом, основанным на распознавании речи (аудио-CAPTCHA).
Могут также применяться другие плохо алгоритмизуемые задачи: например, узнать, что находится на картинке, отметить все картинки с кошками или ответить на вопрос, связанный со знаниями или менталитетом людей (например, «висит груша, нельзя скушать»). Тем не менее, стандартом стало именно распознавание символов: оно не привязано ни к какой культуре (основная помеха — слабое зрение), работает даже на мобильных браузерах, и пользователь со стажем быстро опознаёт картинку как CAPTCHA.
Способы прохождения CAPTCHA роботом
Использование уязвимостей
Уязвимость в CAPTCHAПредположим, картинка с цифрами 1234 вызывается кодом.
<img src="/captcha.php?code=1234" />
Вместо того, чтобы проходить CAPTCHA, компьютер считывает URL и вводит ответ 1234.
При недостаточной квалификации веб-программиста робот может выдать ответ, не проходя тест. Например, по какой-либо информации, содержащейся на странице, компьютер сам, без вмешательства человека, способен правильно ответить на вопрос, на который предположительно мог ответить только человек. Либо человек проходит тест один раз, а компьютер фабрикует множество запросов с тем же ответом.
Угадывание
Применяется в первую очередь для «нетрадиционных» CAPTCHA с небольшим количеством вариантов ответа (1000 и меньше). Робот посылает случайные ответы; некоторые из них оказываются верными.
Использование баз данных
Эффективно, когда вопросы подготавливаются администратором, а не генерируются автоматикой. Этим способом проходятся многие нетрадиционные варианты CAPTCHA: например, отметить все картинки с кошками.
Автоматизированное распознавание
Очень слабая CAPTCHA (на примере phpBB)К верхнему изображению применяется отсечка по яркости (всё, что темнее некоторого порога, становится чёрным, остальное — белое). Определяются границы символов, и каждый из них сравнивается с базой символов. Для разбора такой CAPTCHA не нужен даже OCR, поскольку в ней есть сразу несколько уязвимостей:- Лёгкое отделение символов от фона с помощью цветового ключа.
- Лёгкое отделение символов друг от друга.
- Фиксированный и неискажённый шрифт.
После отсечки на буквах образуется случайный узор, поэтому нет стопроцентной гарантии, что все символы будут опознаны (в PWNtcha рейтинг этой CAPTCH’и — 99 %). Но оставшийся один процент совершенно не важен.
В новой линейке форума phpBB (3.x.x) по умолчанию используется усовершенствованная CAPTCHA с использованием библиотеки GD.
Существуют программы (к примеру, PWNtcha), распознающие конкретные реализации CAPTCHA. Кроме того, существует возможность подключать модули из программ распознавания текста общего назначения (например, FineReader, OmniPage) в программы сторонних разработчиков для распознавания картинок CAPTCHA.
По отношению к автоматизированному распознаванию существуют понятия «слабая CAPTCHA» и «сильная CAPTCHA». В числе «слабостей» — фиксированный шрифт, фиксированное положение символов, отсутствие искажений, отделение символов от фона с использованием цветового ключа или размытия по Гауссу, лёгкое отделение символов друг от друга и т. д. Впрочем, иногда бывает, что сильная CAPTCHA оказывается труднораспознаваемой и для человека. Изредка встречается CAPTCHA, легко прочитываемая компьютером и с большими трудностями — человеком (например, с неконтрастной картинкой).
Если сгенерированная картинка оказалась нечитаемой, пользователь, как правило, имеет возможность получить новую. Прочная CAPTCHA должна выдавать картинку с другим ответом[2].
Распознавание чужими руками
Есть способ «распознавания», в соответствии с поговоркой «чужими руками жар загребать», использующий человеческий ресурс с высокопосещаемых сайтов, например, сайтов порно-тематики. Робот скачивает CAPTCHA с нужного интернет-сервиса и предъявляет его посетителю порносайта. Взамен посетитель порносайта получает доступ к порно-ресурсу, а робот узнаёт код, изображённый на картинке, и вводит его на «штурмуемом» сайте. Посетитель порносайта может и не подозревать, что каждый просмотренный порноролик оборачивается регистрацией нового почтового ящика для рассылки спама.
Для защиты (не полной) от такого способа обхождения CAPTCHA, сайт автоматически меняет CAPTCHA-картинку, если ответ на неё не ввели сразу (в течение небольшого промежутка времени), — регулярно каждый раз через определённый период времени, или при попытке начать запоздалый ввод ответа.
Есть также специализированные сайты для обмена или продажи капч.
Оценка капчи
Капчи сами по себе не могут остановить спамеров (1000 капч, распознанных людьми, стоят около $1). С другой стороны, этот метод защиты может создавать большие неудобства людям.
К тому же, капчей злоупотребляют, например, файловые хостинги, что несёт в массы сервисы по распознаванию капч и делает их ещё более неэффективными.
Известные CAPTCHA-службы
reCAPTCHA — проект, использующий в роли рабочего элемента для ответов пользователей на CAPTCHA-запрос неразборчивое для OCR слово, являющееся одним из множества искажённых фрагментов сканированных книг в дополнение к слову, сгенерированному компьютером. Этот сервис учитывает приёмы использования и возможности программ оцифровки текста книг. Для надёжности одно и то же слово предлагается нескольким пользователям различных сайтов. Когда разные пользователи одинаково ответили на CAPTCHA-запрос, предполагается, что они ввели правильное слово.
KeyCaptcha — проект, предоставляющий вариант капчи, отличный от классической. В его основе лежит взаимодействие с пользователем, которому предлагается выполнить какое-либо задание. К примеру, пользователю предлагается собрать пазл из разрезанной картинки или соотнести несколько различных картинок по изображенному на них признаку. Это упрощает прохождение капчи пользователем, так как классическая капча на некоторых ресурсах часто сложна для восприятия. Минусами же являются то, что она ненадежна, так как может быть программно «распознана»[3], а также является сторонним сервисом, который напрямую заряжает исполняемые скрипты в браузер посетителей из своих бэксерверов, что вебмастер защищаемого ресурса не может контролировать. Последнее делает из неё удобное средство несанкционированных слежки, сбора информации, распространения рекламы, а также взлома компьютеров, как правоохранительными органами, так и частными структурами[4]
Примечания
- ↑ Луис фон Ан: Массовое онлайн-сотрудничество // конференция TED, 2011
- ↑ Алгоритм проверки . CAPTCHA.ru. Архивировано из первоисточника 3 июня 2012.
- ↑ Алгоритм распознавания KeyCaptcha. Архивировано из первоисточника 18 октября 2012.
- ↑ KeyCAPTCHA-ОБЭП. Архивировано из первоисточника 5 декабря 2012.
Ссылки
- CAPTCHA в каталоге ссылок Open Directory Project (dmoz).
- Inaccessibility of CAPTCHA / W3C (англ.). Архивировано из первоисточника 15 мая 2012.
Для улучшения этой статьи желательно?: - Найти и оформить в виде сносок ссылки на авторитетные источники, подтверждающие написанное.
Категории:- Коммерческие проекты ИИ
- Спам
Wikimedia Foundation. 2010.