среда, января 18, 2006

CAPTCHA

CAPTCHA расшифровывается как Completely Automated Public Turing test to Tell Computers and Humans Apart. В переводе на русский: "Полностью автоматический публичный тест Тьюринга, который может отличить человека от компьютера". Тест Тьюринга - это предложенная Аланом Тьюрингом в его работе 1950-го года Computing Machinery and Intelligence игра, которую позже стали называть "Тест Тьюринга". Цель этого теста - методом последовательных вопросов выяснить кто перед тобой - человек или компьютер. Проблема эта очень актуальна для защиты ресурсов от различных роботов, особенно от спам-роботов.

Один из классических вариантов CAPTCHA - картинка со слегка деформированными буквами, которые человеку предлагается распознать. Есть и более экзотичные варианты, вот такой пробегал в ЖЖ:



CAPTCHA с буквами используется на форумах, в платежных системах, на блогах. На Блоггере его тоже можно включить, но я не стала. Спама мне идет не очень много, пока я его легко прибиваю вручную.

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

Вот рассказ одного такого исследователя. Он решил распознать CAPTCHA на блоге друга.

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

Еще один проект, посвященный распознованию CAPTCHA, также без исходников. PWNtcha (Pretend We’re Not a Turing Computer but a Human Antagonist). Там есть веб-интерфейс, через который ей можно скормить картинку, а она попытается распознать буквы. Я ей скормила CAPTCHA с блоггера, не распозналось.
Не все CAPTCHA так уж легко распознаются. Есть отдельные плохие реализации.

Вот из проекта PWNtcha

Один и тот же шрифт, без поворота, без деформации, символы выровнены, один и тот же фон, мало возможных цветов. Как результат - распознается PWNtcha на 100%.
Один и тот же шрифт, постоянная позиция символов. Распознается PWNtcha на 99%.


Но если сильно увлечься деформациями и тому подобным, можно сделать CAPTCHA, которую и человек-то с трудом поймет, если поймет.


Работы по распознаванию CAPTCHA ведет UC Berkeley Computer Vision Group. Они работают с CAPTCHA под названием Gimpy и EZ-Gimpy (последнюю использует Yahoo!).
EZ-GimpyРаспознается 92%
GimpyРаспознается 33%


Критики таких CAPTCHA очень много. Что они формируют ложное чувствуо защищенности, сбивают с толку пользователя. Если у человека отключены картинки в браузере, то он вообще CAPTCHA не увидит. В качестве альтернативы предлагаются, например, логические задачки. Но тем не менее графические CAPTCHA с буквами очень распространены. У меня к ним сложное отношение. Раздражать они, конечно, раздражают, особенно когда с первого раза понять не получается что же там написано. Но с другой стороны, я слышала, что они действительно отсекают бОльшую часть спама. Статистики никакой по этому поводу я не видела, просто встречала мнения людей, что "да, помогает".

Ссылки по теме:
Второй раз повторяю: я человек! Статья про CAPTCHA на SecurityLab.
The CAPTCHA project
Accessibility Problems with Visual Verification Systems. Слайды, подробно разбирающие недостатки CAPTCHA, предлагаются решения.
Inaccessibility of CAPTCHA. Документ на w3.org.
WP-Gatekeeper

8 коммент.:

Анонимный комментирует...

Ага, помогает. Спамерские боты которые просто заваливают своим бредом гостевые успешно удалось отсечь вот таким http://www.shatoon.ru/captcha_image.php

Анонимный комментирует...

Хорошая ссылка по теме:

http://www.ocr-research.org.ua/teabag.html

Marduk комментирует...

И ещё неплохая ссылка по теме: http://www.infobez.ru/article.asp?ob_no=2133. Впрочем, ничего принципиального...

Анонимный комментирует...

Хмм.. А где там web-интерфейс? Что-то не могу найти. Хочу попытаться достичь чтобы распознавание было не более 10%..

Alena комментирует...

Хмм.. А где там web-интерфейс? Что-то не могу найти.

Это который PWNtcha CGI, но ссылка там стала битой, увы.

Lego Fan комментирует...

да ну бред это все) переворачиваем верх ногами капчу и все

Анонимный комментирует...

А вот интересный сервис captchaprotected.com, позволяет скрыть за captcha контактную информацию, оставляемую в интернет, делая ее недоступной для веб-сканеров

Unknown комментирует...

вот и пришло время, когда машина способна разгадать 100% текстовых капч, а человек — нет.