Красивая капча. Как это работает: CAPTCHA. Описание меню программы

(3)

Капча (CAPTCHA) – это защитный код, который пользователю требуется ввести в специальном поле на сайте для его защиты от действия автоматических сервисов (ботов, спама, флуда и пр.), вредящих ресурсу.

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

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

Обратите внимание, что слово «капча» пошло от английской аббревиатуры CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) – полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей. Эта эффективная программка-тест была придумана учеными из исследовательского центра Карнеги, расположенного в США, а именно в штате Пенсильвания.

Как вы уже поняли, основная функция данной программы – тестирование посетителя сайта, которое помогает перепроверить, действительно ли он является «живым человеком». Многие ресурсы обязывают нас вводить капчу, потому что сегодня существует огромное количество программ, которые могут автоматически рассылать в Интернете рекламу, оставлять фейковые комментарии, размещать ссылки на вирусные ресурсы и тому подобное.

Допустим, у вас есть веб-страница, где пользователи комментируют определенную тему, предварительно заполняя поля «имя», «адрес email» и «URL сайта». Подобные манипуляции может с легкостью произвести робот – заполнить поля и опубликовать нужный спамеру отзыв. А вот если поставить капчу, программа уже не сможет ее ввести, значит и не будет никакого спама.

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

Согласно данным системы Akismet, 90 процентов всех комментариев в Интернете являются спамом. Сам же спам нужен для:

  • рекламы;
  • массовой регистрации на сайтах;
  • размещения ссылок с целью улучшения рейтинга своего ресурса в поисковиках;
  • распространения вирусного кода для доступа к чужим личным данным;
  • проведения манипулятивной системы онлайн голосования.

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

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

Какие есть виды капчи?

Рассмотрим самые простые и удобные капчи, которые используются на большинстве сайтов.


Проверка от поисковой системы Google, самая простая и удобная. Для ее прохождения достаточно поставить галочку возле слов «Я не робот». Через мгновение отобразится зеленая галочка, а это значит, что проверка успешно пройдена.

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

Распознавание текста/цифр


В поле необходимо написать указанные на картинке искривленные цифры или буквы. Слова попадаются как латинские, так и кириллицей. Бывает так, что человек элементарно не может разобрать, что изображено, поэтому для удобства придумана кнопка "обновления картинки", кликнув на которую отобразится другая. Иногда еще есть кнопка для озвучивания содержания изображения.

Логические


В данной капче вам потребуется решить несложное арифметическое уравнение, например, написать в поле, сколько будет 21+42; или же разгадать простую загадку, указав правильный ответ.

Образные


Капча представляет собой картинки. Чтобы пройти проверку, вам просто необходимо выбрать требуемое изображение, например, кликнуть на все изображения, где есть рыбки.

Какую капчу выбрать для своего сайта?

Многие вебмастера не желают устанавливать подобную программку-тест для своего ресурса, так как боятся, что потеряют часть посетителей. И эти опасения не напрасны, ведь согласно официальной статистике, рядовому пользователю требуется приблизительно 10 секунд, чтобы пройти проверку с помощью защитного кода. Разумеется, данная процедура никому не понравится.

Ситуация усугубляется плохой распознаваемостью капчи, из-за чего сайты после ее внедрения теряют около 2-10 процентов посетителей. Стоит учитывать, что есть пользователи с плохим зрением – встретившись с тестовой проверкой, им проще покинуть сайт и перейти на другой.

Вот почему важно установить капчу, которая будет превосходно выполнять свои прямые функции (защиту сайта от спама), и не надоедать пользователям. Для этого она должна соответствовать 3 несложным требованиям:

  1. Тест должен решаться легко и быстро при любых обстоятельствах.
  2. Минимум ввода цифр/букв.
  3. Задание должно быть легкое даже для посетителей с проблемами функционирования сенсорных систем.

Многие сервисы используют капчу, где нужно указать, что изображено на картинке. Но, как показывает практика, ответы на логические вопросы куда надежнее и интереснее для людей.

Однако самой популярной в наши дни остается стандартная текстовая reCAPTCHA от Google – она наиболее защищена от спамеров, которые постоянно придумывают новые способы обхода проверки. Данная программа постоянно меняет свой алгоритм действия, и теперь, в большинстве случаев, для прохождения теста достаточно поставить галочку – на это у вас уйдет всего 2-3 секунды, при этом нет нужды распознавать и вводить какие-то буквы/цифры/картинки.

Помимо reCAPTCHA, владельцы сайтов также часто используют следующие капчи:

  • yaCAPTCHA;
  • Solve Media;
  • Anti Spam Image;
  • SI Captcha Anti-Spam.

Как заработать на вводе CAPTCHA?

Капча – это не только полезный защитный инструмент, но и прекрасная возможность подзаработать в Интернете безо всяких усилий. Помогут вам в этом несколько проверенных сервисов:

  • Рукапча. Автоматически распознает изображения. Сегодня многим владельцам веб-ресурсов требуется массовое введение капчи, поэтому вы можете предложить им свои услуги.
  • 2captcha. Англоязычный аналог вышеупомянутого сервиса.
  • Megatypers, Protypers. Американские ресурсы, позволяющие зарабатывать от 50 центов до 3 долларов США за 1000 вводов капч.

Заключение

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

reCAPTCHA - система для защиты сайтов от ботов, и одновременной помощи в оцифровке текстов книг. В сентябре 2009 года reCAPTCHA была приобретена компанией Google. На начало 2011 года, reCAPTCHA осуществляла оцифровку архивов газеты «The New York Times» и книг, доступных в Google Book Search.

В ходе обычной проверки веб-ресурсом факта, что пользователь не является автоматическим алгоритмом или программой, пользователю предъявляется одно случайно сгенерированное слово, изображение которого искажено, и одно слово из оцифрованного документа, которое не смогла распознать система оптического распознавания . Оба слова пользователь должен ввести в поле ввода в виде текста. Система reCAPTCHA предоставляет изображения для распознавания и собирает результаты, после чего передает их организаторам оцифровки материалов .

Принцип работы reCAPTCHA

В отличие от традиционных систем распознавания пользователя как человека, путём введения определённого набора символов и цифр, система reCAPTCHA предлагает пользователю ввести два слова. Одно из них уже распознано и известно системе, другое слово системе неизвестно и не может быть распознано программой распознавания текста. Проверка ввода осуществляется по тому слову, которое известно системе. Неизвестное системе слово, введённое пользователем, сохраняется и используется в качестве возможного варианта распознания. Конечное распознание слова определяется путём вычисления наиболее часто используемого слова для ввода. Эффективность подобного метода достаточно высока, поскольку системе предоставляется множество распознанных вариантов.

Частичный обход reCAPTCHA

Обычно пользователю предлагается два слова, одно из которых является словарным английским, а другое - нет. Для прохождения теста достаточно ввести только не словарное слово . Начиная с мая 2011 года, нужное слово выводится при помощи двойного наложения контура букв друг на друга. С недавних пор нужное слово выводится при помощи наложения на слово волнообразной линии.

Критика reCAPTCHA

reCAPTCHA используется для распознавания отсканированных текстов . Вводящие ответ пользователи вынуждены вводить примерно вдвое больше текста, чем в других системах CAPTCH’и, но не получают за этого никакого вознаграждения, а весь доход от использованного распознанного текста остаётся корпорации Google, что расценивается некоторыми как принудительная эксплуатация труда. Помимо этого reCAPTCHA подвергается критике пользователей из-за того, что картинки с трудом распознаются даже человеком.

Установки системы reCAPTCHA на сайт

Первым делом заходим на сайт: https://www.google.com/recaptcha

Нажимаем кнопку для получения Рекаптчи — GET reCAPTCHA

Нажимаем Sign up Now!, можно предварительно ознакомится с преимуществами данного метода:

Создаем ключ реКАПТЧА . Для этого вводим имя домена, например, сайт и нажимаем кнопку Create Key

Совет. Ключ для сайт работает, например, на test.сайт . Если вы хотите использовать ключ на большом количестве доменов (например, если вы хостинг-провайдер), выберите опцию глобального ключа (global key) .

Указываем имя домена

Рекапчти будет работать только на этом домене и поддомене. Если у вас более одного домена (или промежуточный сервер), вы можете создать новый комплект ключей.

Открытый ключ : 6Le5-c0SAAAAAHXM3sIrsXBlRh

Используйте в коде JavaScript, который подается для пользователей закрытый ключ :

6Le5-c0SAAAAANkXk7_zKgMpm

Подключения ReCaptcha к Joomla

Открываем общие настройки

Captcha по умолчанию — выбираем CAPTCHA — ReCAPTCHA

В менеджере плагинов открываем настройки CAPTCHA — ReCAPTCHA и вписываем Публичный ключ и Приватный ключ полученные ранее.

Сохраняем настройки и пользуемся.

Инструкция по правильному распознанию капч на сервисе сайт

ReCaptcha V2 New
Очень популярна в последнее время, представляет из себя 9 мини-картинок, из которых нужно выбрать 2-4 заданных картинки. Какие картинки нужно выбрать указывается либо образцом картинки, либо текстом. В ответ на такую капчу нужно ввести номера картинок, которые нужно выбрать. Номера вводятся без пробелов, без запятых. Если на самих картинках нет номеров, то они считаются слева-направо, сверху вниз. Вот так:
1 2 3
4 5 6
7 8 9

капча правильный
ответ
описание
13 справа изобраён образец, капуста. На картинках под номерами 1 и 3 мы видим капусту. В ответ на капчу пишем 13
58 Справа тарелка со спагетти. Этой картинке соответствуют картинки под номерами 5 и 8. На картинке под номер 3 то же макароны, но равиоли, а не спагетти.
239 Образца нет, только текст, на котором написано, какие картинки нужно выбрать. Сами картинки не пронумерованы, так что пользуемся инструкцией выше, что бы понять какой картинке соответсвует правильный номер
45 Можно сначала подумать, что правильный ответ 47. Но на 7 картинке не указатель, а просто вывеска. И остаётся только 4я картинка. Но должно быть минимум 2 подходящих изображения. Присматриваемся внимательнее и видим на 5м изоборажении указатель, сфотографированный с обратной стороны. правильный ответ 45
159
456 Инструкция только на английском языке, но слева дана картинка, поясняющая, что выбирать нужно дорожные знаки.
18 На приведённом образце - яйца. Они же на картинках 1 и 8, хоть они уже и очищены и разрезаны. Правильный ответ - 18
25 На приведённом образце - пирог. На картинках 2 и 5 видим пироги и отвечаем 25.
12 Вебмастер, который прислал капчу, по своему принципу пронумеровал изображения. В данном примере пользуемся его нумерацией и указываем что нужно выбрать 1 и 2 изображение
356 Этот вебмастер в правильном порядке нумерует картинки, но начал нумерацию не с единицы а с нуля.

ReCaptcha v2 с дорожными знаками и указателями улиц

Особое внимание уделим капчам, на которых изображены дорожные знаки или указатели улиц. Указатель улицы это не дорожный знак.

капча правильный
ответ
описание
1239 Street name = указатели улиц
Улицы всегда написаны белым на зелёном фоне в одну строчку. На изображении 7 дорожный указатель.
1348 Тут всё просто
78

Street signs = дорожные знаки

На этой капче всё просто

278 На изображении #7 укзатель находится не на столбе, как обычные указатели, а на отбойнике. Тем не менее, это дорожный указатель.
36 Знак автобусной остановки это тоже дорожный указатель
1248 Будьте внимательны, на этой капче нас просят указать указатели улиц.
2479 На изображении №1 указатель, а не имя улицы.
1236 На изображении №5 указатель, а не имя улицы. На изображении №2 не видно название улицы, но можно угадать, что оно там есть.

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

капча правильный
ответ
описание
video tape простая капча, вводится без проблем
what if? Обратите внимание - знаки препинания тоже нужно вводить
When, where? И запятую и знак вопроса нужно указывать в ответе

i like people В слове LIKE первую букву сложно разобрать, но если смотреть на всю фразу целиком - легко понять что там за буква.
I like people - я люблю людей

rooftop Можно подумать что первая буква в этой капче - P и к ней просто приклеились две палочки. Но слова POOFTOP не существует, а ROOFTOP это что-то, что установлено на крыше.. Ведь мало кто знает все эти слова, ошибиться очень легко.

first post! Первая буква скрыта, но смотря на слово целиком, можно догадаться что там написано FIRST
Но, иногда попадаются такие, которые совсем не разобрать. В таком случае нужно нажать "не могу разобрать"

Другие виды капч

капча правильный
ответ
описание

Этот материал мы посвящаем такому важному элементу какждого сата как капча. Как известно без капчи сайты бы легко наполнялись спамом, велась бы автоматическая непрекращающаяся регистрация и было бы бог знает что. К счастью была придумана капча, которая организовывает ещё один порог проверки на "человечность".

Что такое капча? Капча (captcha), это специальное изображение с символами, которые подвергнуты различного рода искажениям, но узнаваемы для человека и плохо понимаемые (или непонятные вовсе) роботу.

Чем труднее разгадывается капча, тем лучше, т.к. роботу будет практически невозможно её определить используя свои алгоритмы.

В этой статье мы рассмотрим варианты применения капчи и различные капчи для использования на своём сайте.

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

Какую капчу использовать для сайта?

Вариант № 1 Recaptcha

В архиве вы найдёте готовый работающий вариант капчи, с возможностью настроить её работу. Для настройки откройте файл capconf.php, а дальше вы уже разберётесь сами поскольку возле каждого параметра присутствует описание. Корневой файл index.php и есть пример использования капчи, запустите его и потестируйте сами.

Есть разные способы для обхода CAPTCHA, которыми защищены сайты. Во-первых, существуют специальные сервисы, которые используют дешевый ручной труд и буквально за $1 предлагают решить 1000 капч. В качестве альтернативы можно попробовать написать интеллектуальную систему, которая по определенным алгоритмам будет сама выполнять распознавание. Последнее теперь можно реализовать с помощью специальной утилиты.

Решить CAPTCHA

Распознавание CAPTCHA - задача чаще всего нетривиальная. На изображение необходимо накладывать массу различных фильтров, чтобы убрать искажения и помехи, которыми разработчики желают укрепить стойкость защиты. Зачастую приходится реализовывать обучаемую систему на основе нейронные сетей (это, к слову, не так сложно, как может показаться), чтобы добиться приемлемого результата по автоматизированному решению капч. Чтобы понять, о чем я говорю, лучше поднять архив и прочитать замечательные статьи «Взлом CAPTCHA: теория и практика. Разбираемся, как ломают капчи» и «Подсмотрим и распознаем. Взлом Captcha-фильтров» из #135 и #126 номеров соответственно. Сегодня же я хочу рассказать тебе о разработке TesserCap, которую автор называет универсальной решалкой CAPTCHA. Любопытная штука, как ни крути.

Первый взгляд на TesserCap

Что сделал автор программы? Он посмотрел, как обычно подходят к проблеме автоматизированного решения CAPTCHA и попробовал обобщить этот опыт в одном инструменте. Автор заметил, что для удаления шумов с изображения, то есть решения самой сложной задачи при распознавании капч, чаще всего применяются одни и те же фильтры. Получается, что если реализовать удобный инструмент, позволяющий без сложных математических преобразований накладывать фильтры на изображения, и совместить его с OCR-системой для распознавания текста, то можно получить вполне работоспособную программу. Это, собственно, и сделал Гурсев Сингх Калра из компании McAfee. Зачем это было нужно? Автор утилиты решил таким образом проверить, насколько безопасны капчи крупных ресурсов. Для тестирования были выбраны те интернет-сайты, которые являются самыми посещаемыми по версии известного сервиса статистики . Кандидатами на участие в тестировании стали такие монстры, как Wikipedia, eBay, а также провайдер капч reCaptcha.

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

  1. Имеет универсальную систему предварительной обработки изображений, которую можно настроить для каждой отдельной капчи.
  2. Включает в себя систему распознавания Tesseract , которая извлекает текст из предварительно проанализированного и подготовленного CAPTCHA-изображения.
  3. Поддерживает использование различных кодировок в системе распознавания.

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


Предварительная обработка изображений и извлечение
текста из капчи

About

Мы не могли не сказать хотя бы пары слов об авторе замечательной утилиты TesserCap. Его зовут Гурсев Сингх Калра. Он работает главным консультантом в подразделении профессиональных услуг Foundstone, которое входит в состав компании McAfee. Гурсев выступал на таких конференциях, как ToorCon, NullCon и ClubHack. Является автором инструментов TesserCap и SSLSmart. Помимо этого, разработал несколько инструментов для внутренних нужд компании. Любимые языки программирования - Ruby, Ruby on Rails и C#. Подразделение профессиональных услуг Foundstone®, в котором он трудится, предлагает организациям экспертные услуги и обучение, обеспечивает постоянную и действенную защиту их активов от самых серьезных угроз. Команда подразделения профессиональных услуг состоит из признанных экспертов в области безопасности и разработчиков, имеющих богатый опыт сотрудничества с международными корпорациями и государственными

Интерфейс. Вкладка Main

После запуска программы перед нами предстает окно с тремя вкладками: Main, Options, Image Preprocessing. Основная вкладка содержит элементы управления, которые используются для запуска и остановки теста CAPTCHA-изображения, формирования статистики теста (сколько отгадано, а сколько нет), навигации и выбора изображения для предварительной обработки. В поле для ввода URL-адреса (элемент управления № 1) должен быть указан точный URL-адрес, который веб-приложение использует для извлечения капч. URL-адрес можно получить следующим образом: кликнуть в правой части CAPTCHA-изображения, скопировать или просмотреть код страницы и извлечь URL-адрес из атрибута src тега изображения ..сайт/common/rateit/captcha.asp?. Рядом со строкой адреса находится элемент, задающий количество капч, которые нужно загрузить для тестирования. Так как приложение может одновременно показывать только 12 изображений, в нем предусмотрены элементы управления для постраничного пролистывания загруженных капч. Таким образом, при масштабном тестировании мы сможем пролистывать загруженные капчи и просматривать результаты их распознавания. Кнопки Start и Stop запускают и останавливают тестирование соответственно. После тестирования нужно оценить результаты распознавания изображений, отметив каждый из них как корректный или некорректный. Ну и последняя, наиболее значимая функция служит для передачи любого изображения в систему предварительной обработки, в которой задается фильтр, удаляющий с изображения шумы и искажения. Чтобы передать картинку в систему предварительной обработки, надо щелкнуть на требуемом изображении правой кнопкой мыши и в контекстном меню выбрать пункт Send To Image Preprocessor.

Интерфейс. Вкладка Options

Вкладка опций содержит различные элементы управления для конфигурирования TesserCap. Здесь можно выбрать OCR-систему, задать параметры веб-прокси, включить переадресацию и предварительную обработку изображений, добавить пользовательские HTTP-заголовки, а также указать диапазон символов для системы распознавания: цифры, буквы в нижнем регистре, буквы в верхнем регистре, специальные символы.

Теперь о каждой опции поподробней. Прежде всего, можно выбрать OCR-систему. По умолчанию доступна только одна - Tesseract-ORC, так что заморачиваться с выбором тут не придется. Еще одна очень интересная возможность программы - выбор диапазона символов. Возьмем, например, капчу с сайт - видно, что она не содержит ни одной буквы, а состоит только из цифр. Так зачем нам лишние символы, которые только увеличат вероятность некорректного распознавания?. Но что если выбрать Upper Case? Сможет ли программа распознать капчу, состоящую из заглавных букв любого языка? Нет, не сможет. Программа берет список символов, используемых для распознавания, из конфигурационных файлов, находящихся в \Program Files\Foundstone Free Tools\TesserCap 1.0\tessdata\configs. Поясню на примере: если мы выбрали опции Numerics и Lower Case, то программа обратится к файлу lowernumeric, начинающемуся с параметра tesseditchar whitelist. За ним следует список символов, которые будут использоваться для решения капчи. По умолчанию в файлах содержатся только буквы латинского алфавита, так что для распознавания кириллицы надо заменить или дополнить список символов.

Теперь немного о том, для чего нужно поле Http Request Headers. Например, на некоторых веб-сайтах нужно залогиниться, для того чтобы увидеть капчу. Чтобы TesserCap смогла получить доступ к капче, программе необходимо передать в запросе HTTP такие заголовки, как Accept, Cookie и Referrer и т. д. Используя веб-прокси (Fiddler, Burp, Charles, WebScarab, Paros и т. д.), можно перехватить посылаемые заголовки запроса и ввести их в поле ввода Http Request Headers. Еще одна опция, которая наверняка пригодится, - это Follow Redirects. Дело в том, что TesserCap по умолчанию не следует переадресации. Если тестовый URL-адрес должен следовать переадресации для получения изображения, нужно выбрать эту опцию.

Ну и осталась последняя опция, включающая/отключающая механизм предварительной обработки изображений, который мы рассмотрим далее. По умолчанию предварительная обработка изображений отключена. Пользователи сначала настраивают фильтры предварительной обработки изображений согласно тестируемым CAPTCHA-изображениям и затем активируют этот модуль. Все CAPTCHA-изображения, загружаемые после включения опции Enable Image Preprocessing, проходят предварительную обработку и уже затем передаются в OCR-систему Tesseract для извлечения текста.

Интерфейс. Вкладка Image Preprocessing

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

Этап 1. Инверсия цвета

На данном этапе инвертируются цвета пикселей для CAPTCHA-изображений. Код, представленный ниже, демонстрирует, как это происходит:

For(each pixel in CAPTCHA) { if (invertRed is true) new red = 255 – current red if (invertBlue is true) new blue = 255 – current blue if (invertGreen is true) new green = 255 – current green }

Инверсия одного или нескольких цветов часто открывает новые возможности для проверки тестируемого CAPTCHA-изображения.

Этап 2. Изменение цвета

На данном шаге можно изменить цветовые компоненты для всех пикселей изображения. Каждое числовое поле может содержать 257 (от  1 до 255) возможных значений. Для RGB-компонентов каждого пикселя в зависимости от значения в поле выполняются следующие действия:

  1. Если значение равно -1, соответствующий цветовой компонент не меняется.
  2. Если значение не равно -1, все найденные компоненты указанного цвета (красный, зеленый или синий) меняются в соответствии с введенным в поля значением. Значение 0 удаляет компонент, значение 255 устанавливает его максимальную интенсивность и т. д.

Этап 3. Градация серого (Шкала яркости)

На третьем этапе все изображения конвертируются в изображения в градациях серого. Это единственный обязательный этап преобразования изображений, который нельзя пропустить. В зависимости от выбранной кнопки выполняется одно из следующих действий, связанных с цветовой составляющей каждого пикселя:

  1. Average -> (Red + Green + Blue)/3.
  2. Human -> (0.21 * Red + 0.71 * Green + 0.07 * Blue).
  3. Average of minimum and maximum color components -> (Minimum (Red + Green + Blue) + Maximum (Red + Green + Blue))/2.
  4. Minimum -> Minimum (Red + Green + Blue).
  5. Maximum -> Maximum (Red + Green + Blue).

В зависимости от интенсивности и распределения цветовой составляющей CAPTCHA любой из этих фильтров может улучшить извлекаемое изображение для дальнейшей обработки.


Этап 4. Сглаживание и резкость

Чтобы усложнить извлечение текста из CAPTCHA-изображений, в них добавляют шум в форме однопиксельных или многопиксельных точек, посторонних линий и пространственных искажений. При сглаживании изображения возрастает случайный шум, для устранения которого потом используются фильтры Bucket или Cutoff. В числовом поле Passes следует указать, сколько раз нужно применить соответствующую маску изображения перед переходом на следующий этап. Давай рассмотрим компоненты фильтра для сглаживания и повышения резкости. Доступны два типа масок изображения:

  1. Фиксированные маски. По умолчанию TesserCap имеет шесть наиболее популярных масок изображения. Эти маски могут сглаживать изображение или повышать резкость (преобразование Лапласа). Изменения отображаются сразу же после выбора маски с помощью соответствующих кнопок.
  2. Пользовательские маски изображения. Пользователь также может настроить пользовательские маски обработки изображений, вводя значения в числовые поля и нажимая кнопку Save Mask. если сумма коэффициентов в этих окошках меньше нуля, выдается ошибка и маска не применяется. При выборе фиксированной маски кнопку Save Mask использовать не требуется.

Этап 5. Вводим оттенки серого

На этом этапе обработки изображения его пиксели могут быть окрашены в широкий диапазон оттенков серого. Этот фильтр отображает распределение градаций серого в 20 бакетах (bucket)/диапазонах. Процент пикселей, окрашенных в оттенки серого в диапазоне от 0 до 12, указан в бакете (bucket) 0, процент пикселей, окрашенных в оттенки серого в диапазоне от 13 до 25, - в бакете (bucket) 1 и т. д. Пользователь может выбрать одно из следующих действий для каждого диапазона значений, соответствующих оттенкам серого:

  1. Оставить без изменения (Leave As Is).
  2. Заменить белым (White).
  3. Заменить черным (Black).

Благодаря этим опциям можно контролировать различные диапазоны оттенков серого, а также сокращать/удалять шум путем, меняя оттенки серого в сторону белого или черного.

Этап 6. Настройка отсечения (cutoff)

Этот фильтр строит график зависимости значения уровня серого от частоты встречаемости и предлагает выбрать отсечение. Принцип работы отсекающего фильтра показан ниже в псевдокоде:

If (pixel’s grayscale value <= Cutoff) pixel grayscale value = (0 OR 255) -> в зависимости, от того какая опция выбрана (<= или => : Set Every Pixel with value <=/=> Threshold to 0. Remaining to 255)

График показывает подробное распределение пикселей CAPTCHA по цветам и помогает удалить помехи с помощью отсечения значений уровня серого.

Этап 7: Обтесывание (chopping)

После применения сглаживающего, отсекающего, bucket- и других фильтров CAPTCHA-изображения все еще могут быть зашумлены однопиксельными или многопиксельными точками, посторонними линиями и пространственными искажениями. Принцип работы фильтра обтесывания заключается в следующем: если количество смежных пикселей, окрашенных в данный оттенок серого, меньше величины в числовом поле, фильтр обтесывания присваивает им значение 0 (черный) или 255 (белый) по выбору пользователя. При этом CAPTCHA анализируется как в горизонтальном, так и в вертикальном направлении.

Этап 8: Изменение ширины границы

Как утверждает автор утилиты, в ходе первоначальных исследований и разработки TesserCap он неоднократно отмечал, что, когда CAPTCHA-изображения имеют толстую граничную линию и ее цвет отличается от основного фона CAPTCHA, некоторые системы OCR не могут распознать текст. Данный фильтр предназначен для обработки граничных линий и их изменения. Граничные линии с шириной, которая указана в числовом поле, окрашиваются в черный или белый по выбору пользователя.

Этап 9: Инверсия серого оттенка

Этот фильтр проходит каждый пиксель и заменяет его значение уровня серого новым, как показано ниже в псевдокоде. Инверсия серого проводится для подгонки изображения под цветовые настройки OCR-системы.

For(each pixel in CAPTCHA) new grayscale value = 255 – current grayscale value

Этап 10: Проверка распознавания капчи

Цель данного этапа - передать предварительно обработанное CAPTCHA-изображение OCR-системе для распознавания. Кнопка Solve берет изображение после фильтра инверсии серого, отправляет в OCR-систему для извлечения текста и отображает возвращенный текст в графическом интерфейсе. Если распознанный текст совпадает с текстом на капче, значит, мы правильно задали фильтр для предварительной обработки. Теперь можно перейти на вкладку опций и включить опцию предварительной обработки (Enable Image Preprocessing) для обработки всех последующих загруженных капч.

Распознаем капчи

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


Результат анализа капчи сайт с предварительной
обработкой изображений. Судя по результатам, фильтр
подобрать не удалось

Итак, запускаем утилиту и идем на сайт журнала. Видим список свежих новостей, заходим в первую попавшуюся и пролистываем до места, где можно оставить свой комментарий. Ага, коммент так просто не добавить (еще бы, а то бы давно уже всё заспамили) - нужно вводить капчу. Ну что ж, проверим, можно ли это автоматизировать. Копируем URL картинки и вставляем его в адресную строку TesserCap. Указываем, что нужно загрузить 12 капч, и нажимаем Start. Программа послушно загрузила 12 картинок и попыталась их распознать. К сожалению, все капчи оказались либо не распознаны, о чем свидетельствует надпись -Failed- под ними, либо распознаны неправильно. В общем, неудивительно, так как посторонние шумы и искажения не были удалены. Этим мы сейчас и займемся. Жмем правой кнопкой мыши на одну из 12 загруженных картинок и отправляем ее в систему предварительной обработки (Send To Image Preprocessor). Внимательно рассмотрев все 12 капч, видим, что они содержат только цифры, поэтому идем на вкладку опций и указываем, что распознавать нужно только цифры (Character Set = Numerics). Теперь можно переходить на вкладку Image Preprocessing для настройки фильтров. Сразу скажу, что поигравшись с первыми тремя фильтрами («Инверсия цвета», «Изменение цвета», «Градация серого») я не увидел никакого положительного эффекта, поэтому оставил там всё по дефолту. Я выбрал маску Smooth Mask 2 и установил количество проходов равным одному. Фильтр Grayscale buckets я пропустил и перешел сразу к настройке отсечения. Выбрал значение 154 и указал, что те пиксели, которых меньше, нужно установить в 0, а те, которых больше, в 255. Чтобы избавиться от оставшихся точек, включил chopping и изменил ширину границы до 10. Последний фильтр включать не было смысла, поэтому я сразу нажал на Solve.

На капче у меня было число 714945, но программа распознала его как 711435. Это, как видишь, совершенно неверно. В конечном итоге, как я ни бился, нормально распознать капчу у меня так и не получилось. Пришлось экспериментировать с pastebin.com, которые без проблем удалось распознать. Но если ты окажешься усидчивее и терпеливее и сумеешь получить корректное распознавание капч с сайт, то сразу заходи на вкладку опций и включай предварительную обработку изображений (Enable Image Preprocessing). Затем переходи на Main и, кликнув на Start, загружай свежую порцию капч, которые теперь будут предварительно обрабатываться твоим фильтром. После того, как программа отработает, отметь корректно/некорректно распознанные капчи (кнопки Mark as Correct/Mark as InCorrect). С этого момента можно посматривать сводную статистику по распознаванию с помощью Show Statistics. В общем-то, это своеобразный отчет о защищенности той или иной CAPTCHA. Если стоит вопрос о выборе того или другого решения, то с помощью TesserCap вполне можно провести свое собственное тестирование.

Результат проверки CAPTCHA на популярных сайтах

Веб-сайт и доля распознанных капч:

  • Wikipedia > 20–30 %
  • Ebay > 20–30 %
  • reddit.com > 20–30 %
  • CNBC > 50 %
  • foodnetwork.com > 80–90 %
  • dailymail.co.uk > 30 %
  • megaupload.com > 80 %
  • pastebin.com > 70–80 %
  • cavenue.com > 80 %

Заключение

CAPTCHA-изображения являются одним из самых эффективных механизмов по защите веб-приложений от автоматизированного заполнения форм. Однако слабые капчи смогут защитить от случайных роботов и не устоят перед целенаправленными попытками их решить. Как и криптографические алгоритмы, CAPTCHA-изображения, тщательно протестированные и обеспечивающие высокий уровень безопасности, являются самым лучшим способом защиты. На основе статистики, которую привел автор программы, я выбрал для своих проектов reCaptcha и буду рекомендовать ее всем своим друзьям - она оказалось самой стойкой из протестированных. В любом случае не стоит забывать, что в Сети есть немало сервисов, которые предлагают полуавтоматизированное решение CAPTCHA. Через специальный API ты передаешь сервису изображение, а тот через непродолжительное время возвращает решение. Решает капчу реальный человек (например, из Китая), получая за это свою копеечку. Тут уже никакой защиты нет. 🙂

Поделитесь с друзьями или сохраните для себя:

Загрузка...