Что такое CAPTCHA: 4 вида и применение

Дата публикации: 07.10.2017

chto-takoe-kapchaПриветствую вас, друзья!

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

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

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

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

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

СОДЕРЖАНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://cccp-blog.com/wp-includes/images/banners/templatemonster/banner_content.jpg

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

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

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

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

Зачем нужна капча?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://cccp-blog.com/wp-includes/images/banners/partner_web_studio/banner_728x90.gif

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

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

Виды капчи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

chto-takoe-captcha-facebook-kapcha

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

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

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

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

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

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

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

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

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

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

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

chto-takoe-captcha-zvukovaya-kapchaЕё, наверное, все видели на 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.

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

Всем удачи и до скорых встреч! 🙂

Понравилась статья? Поделись с друзьями:
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
3 голоса, в среднем: 5 из 5

Похожие темы

2 комментария к статье "Что такое CAPTCHA: 4 вида и применение"

  1. linda

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *