Капча

Материал из Википедии — свободной энциклопедии
(перенаправлено с «CAPTCHA»)
Перейти к: навигация, поиск
Логотип Викисловаря
В Викисловаре есть статья «капча»
Искаженная строка smwm

CAPTCHA (от англ. Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Термин появился в 2000 году, в Рунете устоялось название капча. Основная идея теста: предложить пользователю такую задачу, которую с лёгкостью может решить человек, но которую несоизмеримо сложнее решить компьютеру. CAPTCHA — это товарный знак университета Карнеги — Меллона, разработавшего тест. По состоянию на 2013 г., примерно 320 миллионов капч вводится каждый день пользователями во всём мире[1].

Варианты реализации[править | править исходный текст]

В наиболее распространённом варианте капчи пользователь вводит символы, изображённые на рисунке (зачастую с добавлением помех или полупрозрачности). По общепринятым нормам доступности интернета для людей со слабым зрением, такая капча должна дополняться вариантом, основанным на распознавании речи (аудио-капча).

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

HTML5 позволяет усложнить задачу роботам за счет использования элементa Canvas. В этом случае с сервера загружается не картинка, а набор точек (или алгоритм прорисовки), по которым браузер прорисовывает картинку.[2]

Способы прохождения капчи роботом[править | править исходный текст]

Использование уязвимостей[править | править исходный текст]

Уязвимость в CAPTCHA

Предположим, картинка с цифрами 1234 вызывается кодом.

<img src="/captcha.php?code=1234" />

Вместо того, чтобы проходить капчу, компьютер считывает URL и вводит ответ 1234.

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

Угадывание[править | править исходный текст]

Применяется в первую очередь для «нетрадиционных» капчей с небольшим количеством вариантов ответа (1000 и меньше). Робот посылает случайные ответы; некоторые из них оказываются верными.

Использование баз данных[править | править исходный текст]

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

Автоматическое распознавание[править | править исходный текст]

Очень слабая капча (на примере phpBB)
Слабая CAPTCHA PhpBB.png
К верхнему изображению применяется отсечка по яркости (всё, что темнее некоторого порога, становится чёрным, остальное — белое). Определяются границы символов, и каждый из них сравнивается с базой символов. Для разбора такой CAPTCHA не нужен даже OCR, поскольку в ней есть сразу несколько уязвимостей:
  • Лёгкое отделение символов от фона с помощью цветового ключа.
  • Лёгкое отделение символов друг от друга.
  • Фиксированный и неискажённый шрифт.

После отсечки на буквах образуется случайный узор, поэтому нет стопроцентной гарантии, что все символы будут опознаны (в PWNtcha рейтинг этой CAPTCH’и — 99 %). Но оставшийся один процент совершенно не важен.

В новой линейке форума phpBB (3.x.x) по умолчанию используется усовершенствованная капча с использованием библиотеки GD.

Существуют программы (к примеру, PWNtcha), распознающие конкретные реализации капчи. Кроме того, существует возможность подключать модули из программ распознавания текста общего назначения (например, FineReader, OmniPage) в программы сторонних разработчиков для распознавания картинок капчи.

По отношению к автоматизированному распознаванию существуют понятия «слабая капча» и «сильная капча». В числе «слабостей» — фиксированный шрифт, фиксированное положение символов, отсутствие искажений, отделение символов от фона с использованием цветового ключа или размытия по Гауссу, лёгкое отделение символов друг от друга и т. д. Впрочем, иногда бывает, что сильная капча оказывается труднораспознаваемой и для человека. Изредка встречается капча, легко прочитываемая компьютером и с большими трудностями — человеком (например, с неконтрастной картинкой).

Если сгенерированная картинка оказалась нечитаемой, пользователь, как правило, имеет возможность получить новую. Прочная капча должна выдавать картинку с другим ответом[3].

Многие нетрадиционные варианты капчи также на поверку оказались слабыми.[4][5]

Распознавание чужими руками[править | править исходный текст]

Есть способ «распознавания», в соответствии с поговоркой «чужими руками жар загребать», использующий человеческий ресурс с высокопосещаемых сайтов, например, сайтов порно-тематики. Робот скачивает капчу с нужного интернет-сервиса и предъявляет его посетителю порносайта. Взамен посетитель порносайта получает доступ к порно-ресурсу, а робот узнаёт код, изображённый на картинке, и вводит его на «штурмуемом» сайте. Посетитель порносайта может и не подозревать, что каждый просмотренный порноролик оборачивается регистрацией нового почтового ящика для рассылки спама.

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

Есть также специализированные сайты для обмена или продажи капч.

Полезность капчи против спама[править | править исходный текст]

Капча сама по себе не может остановить спамеров (1000 распознаваний людьми стоят около 1 $). С другой стороны, этот метод защиты может создавать большие неудобства людям.

К тому же капчей злоупотребляют, например, файловые хостинги, что несёт в массы сервисы по распознаванию капчи и делает её ещё более неэффективной.[6]

Известные CAPTCHA-службы[править | править исходный текст]

reCAPTCHA — проект, использующий в роли рабочего элемента для ответов пользователей на капча-запрос неразборчивое для OCR слово, являющееся одним из множества искажённых фрагментов сканированных книг в дополнение к слову, сгенерированному компьютером. Этот сервис учитывает приёмы использования и возможности программ оцифровки текста книг. Для надёжности одно и то же слово предлагается нескольким пользователям различных сайтов. Когда разные пользователи одинаково ответили на CAPTCHA-запрос, предполагается, что они ввели правильное слово.

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

Ссылки[править | править исходный текст]