Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Windows 10
  • Вы слишком долго вводили капчу. Как доставшая всех CAPTCHA превращается в абсолютное зло

Вы слишком долго вводили капчу. Как доставшая всех CAPTCHA превращается в абсолютное зло

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

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

Капча – что это такое

Капча – это генерируемый программой тест-проверка, что используется для определения того, кем является пользователь: ботом, что используется для рассылок спамных сообщений или человеком (с английского Captcha). В большинстве случае представляет собой картинку с искажённым набором букв. Рядом с картинкой находится поле, куда он должен ввести символы с картинки. В последнее время, часто используются и другие виды капч. Ему необходимо выбрать одну подходящую картинку из нескольких предложенных или поставить галочку в определённом месте экрана.

Главное её предназначение – защита определённых разделов ресурса от роботов, что написаны для парсинга и рассылок спама. Дело в том, что теперь все системы рассылок рекламы уже автоматизированы, и людям занимающимся рассылками спама не надо самостоятельно регистрировать аккаунты.

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

Как использовать на своём сайте капчу от гугла

Компания Google предлагает бесплатный сервис Google reCAPTCHA, что предоставляет капча для защиты различных форм ввода данных.

Как установить капчу на своём ресурсе? Чтобы использовать этот сервис на своём форуме, необходимо выполнить ряд действий, о который пойдёт речь ниже:

  • Нужно войти в существующий или зарегистрировать новый аккаунт google;
  • Далее необходимо перейти на страницу сервиса reCAPTCHA, и в появившемся поле ввести адрес своего портала. Далее нажать на кнопку «Регистрация», после чего откроется страница с сгенерированными ключами;
  • Если вы имеете некоторые знания в программировании, интеграцию reCAPTCHA можно сделать самостоятельно. В ином случае нужно воспользоваться специальными плагинами, которые нужно установить и активировать;
  • Следующий этап – настройка Для этого в боковом меню админки нужно нажать на установленный плагин, после чего появляются формы, которые нужно заполнить ключами API;
  • Для тех, кто использует reCAPTCHA доступны следующие настройки: возможность включения и выключения набора капчи при авторизации и регистрации, смена цветового оформления, смена языка набора.

Приложу видео по настройке данного компонента на своем сайте:

Примеры расширений для установки капчи

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

Captcha

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

  • Полная совместимость с ContacForm;
  • Лёгкость в установке;
  • Возможность использования цифрового, словесного или смешанного отображения.

Captcha code

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

  • Скорость настройки;
  • Читабельность текста;
  • Плагин сложно обойти программам для распознавания текста.

WP-reCAPTCHA

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

  • Наилучшая защита лот ботов;
  • Поддержка нескольких языков;
  • Возможность прослушивания кода.

Really Simple CAPTCHA

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

  • Серьёзный барьер для ботов;
  • Лёгкость в распознавании текста;
  • Поддержка множества языков.

Secure CAPTCHA

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

Как зарабатывать на капче деньги

Заработок на капче – один из самых простых и лёгких способов заработка в интернете, ведь пользователю для не требуется никаких профессиональных навыков. Оплата за одну капчу – довольно невысокая. Если уделять этому по несколько часов в день, заработать на вводе капч можно вполне неплохую сумму. Среди большого разнообразия сайтов по заработку капч можно выделить 5 лучших. На них и оплата выше, и есть гарантия того, что ваша робота будет оплачена.

RuCaptcha

RuCaptcha – самый популярный сайт для заработка денег в Рунете. Сервис решает задачи, что касаются расшифровки различных изображений, которые используются различными ресурсами для защиты от программ, что освобождает веб-мастера от монотонной работы. Минимальная цена за капчу составляет 0,01 руб.

Одной из главных особенностей является то, что в ночное время цена за работу увеличивается в 2 раза. Также, если у исполнителя есть высокий рейтинг, ему попадаются капчи с большей стоимостью. Вводить символы необходимо с осторожностью, поскольку на сервисе негативно относятся к ошибкам. При первых ошибках, пользователя предупредят, при последующих возможна блокировка аккаунта на некоторое время, от нескольких минут до двух суток. В сравнении с другими сервисами для заработка денег, RuCaptcha имеет следующие преимущества:

  • Удобный внешний интерфейс;
  • Выплата заработанных денег возможна на такие платёжные системы – Яндекс.Деньги, Вебмани, OKPAY;
  • За ввод сложных капч пользователь может получить дополнительные деньги;
  • Возможность выбора капч только на русском или английском языке;
  • RuCaptcha постоянно совершенствуется.

2Captcha

2Captcha – это англоязычный портал по заработку на капче, что является одним из первых, что появились в данной сфере. Внешний вид оформлен в таком же стеле як и RuCaptcha. На сайте постоянно трудится несколько сотен тысяч пользователей. Алгоритм работы заключается в следующем: Пользователь входит в систему, после чего вебмастер посылает ему задание. Если исполнителей несколько, то задание посылается тому, кто дольше всех ожидает. Стоимость 1000 введённых капч начинается от 35 центов, и может достигать 80 центов за введение более сложных капч.

2Captcha – проверенный сайт, на котором никогда не возникает задержек в выплате денег. Минимальная стоимость вывода - 0,5 долларов. Вывод может осуществляться на Вебмани, PayPal, а также на банковские карты Виза и Мастеркард.

Megatypers

Этот портал был создан сравнительно недавно, но за короткий промежуток времени является одним из самых популярных. Портал – зарубежный, поэтому интерфейс полностью на английском. В отличие от других сайтов, на этом пользователи могут зарабатывать на распознавании звуковых капч. Также на сайте довольно хорошо реализована реферальная система, что позволяет исполнителю с большим количеством рефералов получать неплохие дивиденды. Для регистрации аккаунта на Megatypers необходимо ввести инвайт-код. Оплата за капчу может достигать 0,01 доллара. Минимальная сумма вывода составляет 3 доллара. Выплачиваются деньги каждый понедельник.

Kolotibablo

Данный сервис является первым среди сайтов, которые специализируются на вводе капчи. Со временем его модернизировали, и теперь он имеет очень приятный дизайн. Капчи бывают как на кириллице языке, так и на латинице. В среднем, стоимость 1000 капч составляет 0,7 доллара. За более сложные задания можно заработать вплоть до 1,5 у. е. Выплата производится на Yandex.Money, Qiwi Wallet, Paypal, Payza при минимальной сумме в 1 доллар.

Antigate

Antigate – популярный в Рунете портал, что функционально очень похож на Kolotibablo. За одну введённую капчу исполнитель получает от 0,02 руб и больше. На Antigate есть партнёрская программа, что предусматривает выплату в 10% за приглашённых в систему исполнителей. Вывод заработанных средств осуществляется через платёжную систему Вебмани. Вывод начинается от 2 долларов.

Используйте данные способы и не пропускайте спам на своем ресурсе, а если есть свободное время не забываем подзаработать. Всех благ -))).

Я решил сделать небольшую паузу в публикациях о данном PHP фреймворке и переключиться на что-то другое в качестве «активного отдыха».

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

Не догадываетесь, о чём пойдёт речь?

Всё вышесказанное — о CAPTCHA, которую видели и использовали, наверное 90% всех пользователей Интернета, но, к сожалению, не все знают досконально что такое капча и какие задачи она позволяет решать.

Что такое капча?

В поисковиках масса людей каждый день вводят запрос «перевод CAPTCHA». Однако, правильного ответа на данный вопрос вы не найдёте ни в этой, ни в других похожих статьях.

CAPTCHA — это не просто какой-то специально выдуманный термин, а аббревиатура слов Completely Automated Public Turing test to tell Computers and Humans Apart, что в дословном переводе означает «полностью автоматизированный публичный тест Тьюринга для распознавания компьютеров и людей». Потому данное слово правильно писать заглавными буквами.

В русскоязычном сегменте Интернета его часто называют «капча», т.к. примерно так CAPTCHA произносится по-русски. Заглавные буквы при этом опускаются, из-за чего для некоторых читателей изложенная история возникновения слова «капча» может оказаться в новинку, однако при этом помогает проследить логическую связь между ним и «автоматизированным тестом Тьюринга».

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

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

Жил был на свете (а именно, в начале XX века) один английский математик по имени Алан Тьюринг. Личность, кстати, достаточно известная в узких кругах, который придумал много хорошего, за что про него даже фильмы снимать стали (это именно тот мужик, которого играл Бенедикт Камбербетч в картине «Игра в имитацию»).

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

Тест был впервые описан в далёком 1950 году и получил название в честь своего создателя, под которым известен по сей день — тест Тьюринга.

Классическим тестом Тьюринга является ситуация, когда человек (судья) общается с компьютером и реальным человеком текстовыми сообщениями. Если судья не может определить «ху из ху», т.е. кто из собеседников является человеком, а кто компьютером, то считается, что машина тест прошла.

Но неверно думать, что обличить компьютер очень просто и легко 🙂

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

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

Но, несмотря на все эти уловки, уже в 1966 году (ничего себе «уже» — через 16 лет!) появилась компьютерная программа с поэтичным названием ELIZA, способная пройти данный тест. Многие заумные товарищи до сих пор сомневаются, считать ли эксперимент с Элизой тестом Тьюринга или нет, но факт остаётся фактом — железка смогла запутать людей.

Так вот CAPTCHA — это современный тест Тьюринга, который помогает отсеять роботов от людей в автоматическом режиме. Только в роли судьи выступает компьютерный алгоритм. Из-за этого капчу иногда называют обратным тестом Тьюринга.

И если вы этот тест не проходите, то своими действиями говорите о том, что вы ничем не отличаетесь от бездушного робота, а иногда — даже глупее, когда последний смог его пройти 🙂

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

Кстати, несмотря на то, что сам тест Тьюринга был изобретён в 1950 году, CAPTCHA — явление достаточно молодое. Похожие на современную капчу изобретения появились сравнительно недавно — в 1997 году, а сам термин был придуман в 2003.

Думаю, теперь вам стало понятно, что такое капча, как она появилась и когда. Спрашивается только «Зачем?». Вопрос хороший, поэтому с ответом тянуть долго не буду 🙂

Спрашивается, зачем вообще понадобилось определять с помощью CAPTCHA, кто зашёл на сайт: человек или робот?

Дело в том, что роботы в мире Интернета — это специальные автоматизированные программы, которые создаются не всегда для принесения пользы. Это может быть и распространение спама, и даже взлом ресурса.

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

Поэтому самое главное предназначение капчи — это обеспечение безопасности сайта путём блокирования атак и совершения автоматических действий с помощью различных вредоносных программ.

Ещё один ответ на вопрос о том, зачем нужна CAPTCHA, — это распознавание отсканированных книг и других печатных публикаций. Каким образом?

Если вы сами пытались когда-нибудь самостоятельно оцифровывать книги с помощью программы Adobe FineReader или подобной (не знаю как вы, а я в студенческие годы часто таким занимался при написании рефератов и курсовых 🙂), то знаете, что распознавание далеко не 100%.

И это несмотря на то, что большинство книг напечатано стандартным типографским шрифтом. Для рукописей распознавание программами практически нулевое.

Так вот, создатели CAPTCHA (в частности, первыми с такой целью стали использовать данный механизм творцы Google reCAPTCHA) решили воспользоваться данным обстоятельством. Они составили нераспознанных программно слов, которые затем отображались в виде картинок капчи с просьбой к реальным людям ввести увиденное.

Таким образом собиралась база вариантов расшифровки трудноузнаваемых слов и одновременно пользователи доказывали, что они реальные люди, т.к. были в состоянии распознать увиденное, что и отличает нас от роботов. Как по мне — гениально, как и всё в Google, собственно говоря 🙂

Единственный момент, который для меня лично во всей этой истории остался неясным — как люди проходили капчу с труднораспознаваемыми символами, если для таковых даже вариантов правильных ответов может быть несколько? Гугл своих секретов, естественно, не раскроет.

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

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

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

Благодаря всему вышесказанному создатели reCAPTCHA продвигают свой проект под лозунгом «Остановите спам — читайте книги!». И нужно сказать — это работает 🙂

По официальной информации создателя reCAPTCHA, Луиса фон Ана, ежедневно его капча используется до 100 миллионов раз, что приводит к прочтению примерно 2,5 миллионов книг в год.

Google приобрёл reCAPTCHA в 2009 году и начал использовать её для оцифровки архива газет New York Times с 1851 года до наших дней и книг из Google Books до 2011 года. В 2012 году, когда эти ресурсы были исчерпаны, Google приступил к распознаванию номеров зданий и изображений из Google Maps и Google Street Views, что является ещё одной задачей, которую можно решить с помощью капчи.

Почему я вдруг решил рассказать избирательно о Google reCAPTCHA? Да потому что это продукт Гугла, который считается генератором различных стандартов в области веб, кибербезопасности и прочих сферах. Следовательно, reCAPTCHA — это на сегодня неофициальный стандарт капчи — всё просто 🙂

Поэтому в тексте данной статьи она промелькнёт ещё не раз.

Виды капчи

В основе работы капчи лежит принцип, который описан выше: создать задачу, с которой может справиться человек, а программа — нет.

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

Хотя, не удивлюсь, что на каком-то математическом форуме можно найти капчу в виде дифференциального уравнения или какую-то задачу из теста Айзенка (и обязательно на время) с целью отсеивания людей с низким IQ 🙂

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

1. Графическая капча

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

Указанная текстовая строка реализована в виде картинки, где буквы наклонены, перечёркнуты, на картинку наложены различные цветовые и шумовые фильтры. Всё, что нужно сделать, чтобы решить капчу в данном случае — это ввести изображённые на картинки символы в специальное поле в текстовом виде.

До сих пор успешно используется такими ресурсами как Яндекс и Вконтакте.

Сам был удивлён такому красивому варианту Яндекс капчи, который мне попался как раз во время написания данной статьи 🙂

2. Логическая капча

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

Это могут быть:

  • арифметические примеры (например, 2+3=?);
  • задачи по выбору определённых объектов из предложенных (найти женщину из всех фотографий, человечка с поднятой рукой, животных, машин и т.д.);
  • указание определённой цифры из последовательности чисел (например, выбрать третью цифру из числа 2312145);
  • выбор слова, начинающегося с определённой буквы (например, нужно выбрать слово, начинающееся на «с» среди «Жевачка, доска, стул»);
  • написать буквами число с картинки и наоборот.

Самая интересная логическая капча, которую я видел — это Facebook CAPTCHA, для прохождения которой нужно выбрать имя своего друга, изображённого на фотографии. Выглядит она так:

3. Поведенческая капча

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

Это может быть всё, что угодно. Начиная с банального проставления галочки возле поля «я согласен с условиями договора», которую многие из вас видели и которая, по сути, также является капчей. И заканчивая чем-то более изощрённым 🙂

Среди самых распространённых примеров поведенческой капчи можно выделить следующие:

  • перемещение слайдера на определённую позицию;
  • поворот изображения в заданное положение (вертикальное, горизонтальное).

Раньше ещё очень популярна была поведенческая и логическая капча одновременно по составлению картинки из фрагментов (так называемая капча пазл, т.к. работала она по этому принципу).

Но самая интересная капча из разряда поведенческих, которую я встречал, — это специализированная радиотехническая капча, которую могут пройти только знатоки радиотехники. Зато есть стимул поступать на радиотехнический факультет и учиться 5 лет в университете 🙂

4. Звуковая капча

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

Но тут возникает вопрос: а как быть слабовидящим пользователям ПК или вообще слепым? Как раз для этой категории людей и была создана аудио капча.

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

Её, наверное, все видели на Google reCAPTCHA.

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

По этой причине я и разместил данный вид CAPTCHA в конце списка.

По поводу популярной нынче Google reCAPTCHA — если вы её изучали внимательно, то могли убедиться, что она не относится к какому-либо конкретному виду капчи, а является комбинированной.

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

Где можно встретить капчу на сайте

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

Среди них:

  1. Рассылка спама в виде комментариев со ссылками на другие ресурсы.
  2. Регистрация пользователей для совершения различных действий с целью взлома сайта и опять-таки рассылки спама.
  3. Подбор пароля для входа на сайт под учётной записью существующего пользователя.
  4. Накрутка лайков, друзей, просмотров, скачиваний и других действий, за которые можно получать деньги, чтобы зарабатывать деньги, не совершая при этом никаких действий.
  5. Роботы-парсеры, которые воруют контент сайтов. Сейчас за такие штуки можно получить бан от поисковиков, но некоторые Интернет-магазины, думаю, этим ещё промышляют.

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

  1. Форма регистрации на сайте.
  2. Форма авторизации на ресурсе.
  3. Форма добавления комментариев.
  4. Форма восстановления пароля.
  5. Форма скачивания файла.

Иногда CAPTCHA появляется при слишком частом выполнении какого-либо действия (лайка, добавления друзей, кликов на рекламе и т.д.).

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

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

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

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

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

Запасайтесь попкорном и приятного вам просмотра.

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

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

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

Что такое капча и виды этой защиты против автоматического спама

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

Итак, попробуем сразу же внести ясность. Русскоязычное слово «капча» происходит от сложной английской аббревиатуры CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart), что в полном переводе на русский означает «полностью автоматизированный публичный тест Тьюринга для распознания компьютеров и людей».

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

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

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

Вот таким образом и обрушивается лавина спамных сообщений на пользователей. Особенно такой метод досаждает тем, кто пользуется интернетом профессионально, скажем тем же вебмастерам.

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

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

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

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

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

Какие виды капчи бывают

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

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

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

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

Итак, зная, для чего используется данная защита от спама, мы можем сформулировать базовые условия, которые должны лечь в основу создания идеальной капчи (идеал, как известно, недостижим в реальной жизни, но к нему надо стремиться):

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

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

1. Ввод текста в форме букв, цифр, слов или словосочетаний:


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

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

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

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


Опять же, решение подобной задачи не является непреодолимой преградой для живого юзера, но все-равно отнимает драгоценное время, которое всегда было на вес золота.

3. Применение арифметических или математических действий для ввода CAPTCHA:


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

4. ReCAPTCHA . Этот вид теста Тьюринга более привлекателен для широкого круга юзеров, поскольку учитывает интересы людей с ограниченными возможностями (смотрите список условий для достижения "идеальной капчи", расположенный несколькими абзацами выше), предлагая наряду с визуальным вариантом аудио-воспроизведение расположенного на картинке текста:

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

Тогда приходится либо выбирать другую картинку, применяя кнопку обновления (круговая стрелка), либо пользоваться голосовым (аудио) воспроизведением (значок громкоговорителя).

В таком виде, конечно, капча более привлекательна и не вызывает явного отторжения.

Наряду с лидером мирового поиска стоит упомянуть и Яндекс, который является его главным конкурентом на просторах рунета () и тоже использует оригинальную защиту против спамеров (YaCAPTCHA), где кодовое слово или простой набор букв может быть предложен на кириллице:

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

Для тех, кто предпочитает видеоматериалы текстовой информации, можете посмотреть весьма популярный ролик о разнообразных видах капчи:

");">

Ввод капчи и оценка возможностей ее обхода

Итак, мы установили, что значит капча. Это не что иное как достаточно эффективное средство защиты от автоматического спама. И если вы видите перед собой предложение типа «введите капчу», то должны решить незамысловатый ребус, решением которого подтверждаете, что являетесь живым человеком, обеспечивая тем самым пропуск в систему.

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

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

«Captcha test failed» в переводе с английского на русский означает «тест капчи не удался». Также могут присутствовать следующие выражения (с правой стороны их перевод на русский):

  • «CAPTCHA error please try again» — ошибка ввода капчи, пожалуйста, попробуйте снова;
  • «please complete the CAPTCHA correctly» — пожалуйста, заполните правильно капчу.

В этом случае необходимо просто повторить попытку.

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

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

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

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

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

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

Оптимальное решение для сайтов — установка reCAPTCHA

Ну и в конце публикации я не могу не затронуть вопрос использования на своем сайте или блоге () наиболее эффективной капчи. Ведь все вебмастера не понаслышке знают всю "прелесть" общения со спамерами.

Пожалуй, именно на данном этапе появилось довольно продуктивное средство в лице последней версии reCAPTCHA (упоминание о ней чуть выше), которое уже используют крупные мировые сервисы, включая, естественно, Google. Отличие от старого варианта в том, что пользователю достаточно поставить галочку напротив надписи «Я не робот» :

Я также установил reCAPTCHA на некоторые из своих онлайн проектов. На сайт пока данное средство антиспама отсутствует по той простой причине, что меня в общем устраивает работа , который подходит для моей структуры комментариев.

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

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

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

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

Для создания интриги скажу, что их на данный момент существует целых три.

Обход капчи из-за ошибок реализации

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

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

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

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

Обход капчи с фиксированным набором задач

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

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

Т.е. заходим на такой сайт, подбираем ответы, составляем БД из заданий и правильных решений и пишем бота для брутфорс атак, который будет подбирать подходящие варианты.

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

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

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

Ещё одним способом защиты от подобного ввода капчи автоматом является изменения имени поля формы, в которое должен вводиться ответ. Если имя поля, например, всегда будет «captcha», то злоумышленнику будет проще такую капчу взломать. Его программа-робот будет всего лишь отправлять запрос к серверному скрипту, указанному в HTML атрибуте «action» формы, содержащем необходимое значение капчи.

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

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

В данном случае реализации капчи имеется один существенный нюанс: скрипту, обрабатывающему правильность её ввода, нужно будет как-то передавать имя поля капчи. Делается это чаще всего с помощью скрытого input формы, data-атрибутов или передаче их через cookies или сессию.

Ключевым моментом является то, что нельзя передавать имя напрямую, т.е поле капчи называется «captcha_mysite», а в hidden поле стоит значение «captcha_mysite» или «site». Оно обязательно должно быть зашифровано, причём расшифровка должна происходить с применением того же алгоритма, что и шифрование.

Поскольку алгоритм шифрования будет храниться на сервере, то злоумышленник не сможет просто так его узнать (только если он не получит доступ к содержимому серверного скрипта).

Кстати, достаточно вместо имени поля использовать случайную последовательность символов, которую в языке PHP очень просто получить с помощью функции uniqid().

Обход капчи с помощью сессий

Если реализация капчи подразумевает хранение правильного ответа в сессии, и сессия не создаётся заново после каждого ввода капчи, то злоумышленники могут узнать идентификатор сессии и узнать зашифрованное значение CAPTCHA.

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

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

За счёт этого упущения подобные капчи могут быть пройдены с помощью подсовывания несуществующих id сессий и пустых значений капчи.

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

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

Взлом капчи из-за секретной информации в клиентском коде

Иногда капчи делают таким образом, что при передаче пользовательских значений на сервер используют шифрование с использованием так называемой «соли», т.е. добавления к значению CAPTCHA ID сессии, значения IP или других уникальных данных. Нередко таковым может являться простая случайная последовательность символов.

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

Совпадение данных значений будет с большой вероятностью говорить о том, что пользователь — реальный человек, который ввёл капчу, сгенерированную во время сеанса связи, в конце которого он её решил и с того же самого компьютера, на котором он впервые увидел капчу.

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

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

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

Также нужно пересоздавать ID сессии и генерировать другие уникальные значения (включая и саму CAPTCHA, если это возможно) после каждой попытки ввода капчи, что убережёт вас или, по крайней мере, усложнит задачу хакерам по взлому сайта путём автоматического подбора правильного значения.

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

Как обойти капчу без изменения IP

Брутфорс атака является эффективным способом обхода капчи не только в случаях реализации её с фиксированным набором заданий и их решений.

Ещё одна ошибка при реализации CAPTCHA, которая делает её уязвимой для автоматизированных атак, это — отсутствие ограничений времени на решение капчи и количество попыток.

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

Защита: при реализации по-настоящему безопасной капчи нужно лимитировать время на ответ и количество попыток решения капчи с одного IP для блокирования брутфорс атак роботов.

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

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

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

И ещё одним эффективным способом борьбы с ботами является введение лимитов на определённые действия на сайте. К примеру, одна регистрация с одного IP. Здесь главное — не заигрываться и не доходить до лимитов на количество комментариев для одного уникального пользователя.

Но, по правде говоря, эти меры мало чем помогут благодаря существованию прокси серверов.

Обход капчи с помощью прокси

Даже в ситуациях, когда блокирование большого количества попыток решения капчи по IP всё-таки происходит, 100% защиту от роботов это мероприятие не обеспечивает.

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

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

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

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

А на некоторых сайтах, где капча появляется только лишь при выполнении большого количества одинаковых действий (например, в ВК при добавлении большого количества друзей) она вообще может не появиться, если каждое действие будет производиться с нового IP и с соблюдением таймаутов между попытками решения капчи, чтобы поведение бота было похоже на поведение реального человека.

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

Описанными принципами, к слову, пользуются все известные ныне программы для автоматического ввода капчи. Для изменения IP адреса подключения к сайту они используют бесплатные и коммерческие базы прокси серверов, которые при наличии Интернета достать не составит труда.

Защита: к сожалению, защититься от взлома капчи, отслеживая злоумышленников по IP, благодаря наличию анонимайзеров и открытых баз PROXY никак не удастся.

Единственная надежда, что сами PROXY сервера могут вводить ограничения на количество используемых IP одним пользователем и количеств подключений с каждого из них.

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

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

Ввод капчи автоматом с помощью эмуляторов действий

Если для прохождения CAPTCHA нужно произвести определённое действие (нажатие на кнопку, перемещение ползунка и т.д.), то обойти капчу в данной ситуации можно ещё и сэмулировав необходимое действие (клик на определённый элемент управления или иное действие).

Единственная проблема, которая может стоять в данной ситуации перед хакером — это как найти нужный элемент управления на сайте программно.

Проще всего это сделать по его координатам или положению относительно каких-то статических элементов ресурса.

Защита: чтобы уберечься от автоматического ввода капчи в данном случае необходимо постоянно менять положение элемента управления, позволяющего решить CAPTCHA. Т.е. если из трёх человечков нужно выбрать только того, у которого поднята рука, его ни в коем случае нельзя размещать постоянно на одном и том же месте.

Ну, а в случаях других реализаций капчи, когда это невозможно (например, для кнопки скачивания или поля «я не робот», у которых может быть только один правильный ответ), необходимо использовать иные методы защиты, способные остановить роботов от автоматического решения капчи.

Как обойти капчу при помощи высоких технологий

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

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

Итак, как избежать капчу при помощи современных технологий?

Обход капчи с помощью OCR

OCR (Optical Character Recognition — оптическое распознавание символов) — технология для распознавания печатного или машинописного текста для дальнейшего его использования в электронном формате. Наиболее известным ПО, реализующим эту технологию, является Adobe FineReader.

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

Хакеры, естественно не пользуются Adobe FineReader (хотя, может, и такие есть 🙂), а пишут специальные скрипты, которые с применением различных готовых библиотек для работы с изображениями либо с использованием возможностей языка для работы с графикой, распознают капчу и выдают символьную последовательность, изображённую на ней.

В Интернете я нашёл достаточное количество примеров таких скриптов. Принцип их работы заключался в следующем:

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

Графические образцы подготавливались с учётом различных шрифтов и возможных искажений (наклоны, повороты и т.д.).

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

Защита: собственно говоря, с целью запутывания OCR программ и применяются всех раздражающие шумы и искажения символов на картинках, из-за которых текст иногда сложно разобрать даже человеку. Но, в случае роботов это тоже хорошо работает, в результате чего OCR алгоритмы не могут выдать 100% точный результат, что положительно влияет на безопасность капчи и сайтов, её использующих.

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

  1. Символы на разных CAPTCHA должны иметь различные координаты.
  2. Если вы используете какие-то эффекты шума для создания фона, то его цвет должен совпадать с цветом символов, иначе фон можно легко убрать, выделив символы для распознавания.
  3. Расстояние между символами должно быть минимально. Можно даже накладывать их друг на друга, но только без фанатизма, чтобы реальные пользователи могли их распознать.
  4. Использовать различные шрифты, чтобы было сложно подобрать подходящий для распознавания.
  5. Всячески искажать символы, менять их начертание и толщину.
  6. Использовать специальные библиотеки, позволяющие изменять символы таким образом, что для их программного распознания будет невозможно подобрать шрифт. Примером такого решения является капча от создателя ресурса captcha.ru, при генерации которой используется авторский алгоритм волнообразного искажения символов.

Все эти меры позволяют усложнить распознаваемость графической капчи для OCR систем и сократить количество автоматических вводов капчи.

Как пройти капчу с помощью нейронных сетей

Если OCR — технология достаточно старая (первые запатентованные устройства известны в начале XX века), то искусственные нейронные сети (ИНС) появились лишь во второй половине предыдущего столетия (для технологий 50 лет — это существенный возраст 🙂).

Именно алгоритмы ИНС лежат в основе искусственного интеллекта (ИИ), целью которого является создание программ и устройств, наделённых творческими функциями, т.е. создание рукотворного человека.

На данный момент ИИ постоянно развивается, и с каждым днём появляются всё новые и изобретения, обладающими не виданными ранее свойствами.

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

С помощью их можно:

  • распознавать объекты на фотографиях (от пола изображённого человека и марки его джинсов до того, какой игре принадлежит анализируемая картинка, со всей её цветовой палитрой, названием локации и того, что на ней происходит);
  • управлять устройствами голосом и жестами;
  • писать аннотации к видео на основании того, что происходит в видеоролике и др.

Естественно, что при данных возможностях создание программы для автоматического ввода капчи с применением принципов ИНС не представляет сложности для знающих людей.

Один из таких продуктов был разработан компанией Vicarious в 2014 году. Разработанная ей нейронная сеть способна распознавать капчу в 90% случаях (напомню, что для решения классического теста Тьюринга, которым и является CAPTCHA, необходим всего лишь 1% правильных ответов).

Защита: К сожалению, защититься от данного вида атак невозможно. И к счастью, ИНС от Vicarious не будет использоваться для целенаправленных атак для обхода капчи на сайтах, т.к. она слишком дорогостоящая для таких мелких задач (сами производители говорят, что она представляет из себя кластер из множества серверов). Основная её область применения — это решение различных задач медицины и робототехники.

А взлом капчи с её помощью — это лишь демонстрация возможностей.

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

Обход капчи с помощью общедоступных сервисов

По мере развития систем OCR и ИИ меры усложнения графических капчей становились всё сложнее и сложнее, что позволяло их разработчикам прилагать колоссальные усилия при реализации. Но всё равно они оказывались тщетными, т.к. они не обеспечивали 100% защиту сайтов от автоматизированных атак.

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

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

Но, несмотря на то, что данный стандарт появился достаточно недавно, в 2015 году, уже найден способ её автоматического решения. И он заключается далеко не в применении искусственного интеллекта.

Всё намного банальней — для прохождения Google reCAPTCHA достаточно использовать сервисы самого Google по распознаванию картинок и речи.

Распознавание картинок в случае с reCAPTCHA v2 (та самая noCAPTCHA) вряд ли поможет, т.к. при графических задачах нужно выбирать изображения, на которых присутствуют необходимые объекты, а не вводить изображённые символы, как это было в предыдущей версии.

А вот услуги сервиса Google Speech Recognition, являющийся одним из достижений Гугл в области искусственного интеллекта, о которых упоминалось в предыдущем способе обхода капчи, будет очень кстати. Поскольку сервис предоставляет API, то создать приложение на его базе не составляет труда.

Защита: к сожалению, в данной ситуации, как и в предыдущей, где для обхода капчи использовались ИНС, защититься от обхода капчи не удастся. Единственным положительным моментом снова является относительная доступность подходящих сервисов, т.к. Google даёт для их использования только тестовые $300.

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

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

Как пройти капчу, используя человеческий труд

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

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

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

Речь идёт об одном из современных способов добычи денег — , который появился, кстати, примерно тогда, когда CAPTCHA стала сложно распознаваемой программно.

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

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

В основном, это хакеры, которые используют ответы реальных пользователей в своих корыстных целях:

  • автоматизации заработка;
  • рассылка спама;
  • скупка билетов и товаров в Интернет магазинах для более дорогой перепродажи;
  • взлом сайтов и т.д.

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

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

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

Естественно, мы долго не думаем, т.к. получить возможность скачать долгожданный фильм в HD качестве абсолютно бесплатно за проставление какой-то галочки в поле «Я не робот» — это просто мелочь. А в это время ваше действие по API используется для обхода капчи на другом стороннем сайте.

Отсюда мораль: всегда помните, что бесплатный сыр только в мышеловке и ничего бесплатного не бывает.

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

Обход капчи — выводы

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

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

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

Также к «непобедимым» способам обхода капчи относятся технологии искусственного интеллекта, активно развивающиеся в последние годы.

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

Вспомнить ту же Google reCAPTCHA: поставь галочку, если Гуглу что-то не понравилось, выбери ещё и нужные картинки (с дорожными знаками, кстати, у меня до сих пор наблюдаются проблемы, т.к. я могу пройти такое задание где-то с 5 попытки). Не много ли возни для того, чтобы оставить комментарий или зарегистрироваться на сайте? Проще уже найти другой ресурс…

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

В то же время тот факт, что CAPTCHA продолжает использоваться в качестве технологии киберзащиты и постоянно развивается, в том числе компанией Google, которая не станет инвестировать деньги в сомнительные проекты, говорит о том, что данная технология будет существовать ещё долго.

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

Лучшие статьи по теме