Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Капча CAPTCHA как обратный тест тьюринга виды капч и способы ее защиты

Лекция



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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты
Искаженная строка smwm

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

Варианты реализации

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

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

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

Классифиувция капч

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

На Рис. 1 сведены в табличное представление примеры капч для различных подходов.

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 1. Способы защиты капчи

1.1.1. Полые символы

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 2. Полая капча

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

1.1.2. Перекрытие символов

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 3. Перекрытие и CCT

Исследователям из Китая и Пакистана удалось взломать CTT с вероятностью от 27.1% до 53.2% .

1.1.3. Фоновые шумы

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 4. Фоновые шумы

Google's reCAPTCHA, использующая изображения из Street View, ломается в 96% случаев .

1.1.4. Двухуровневая структура

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 5. Двухуровневая структура

Гао предложил подход к сегментации для разделения изображения капчи как по вертикали, так и по горизонтали, и добился успеха в 44.6% (9 с на изображение), используя сверточную нейронную сеть.

1.2. Капча-изображение

1.2.1. Капча на основе отбора

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 6. Различные примеры капчи на основе отбора

Голль предложила использовать метод опорных векторов (SVM) для различения изображений кошек и собак в капче Asirra с вероятностью успешного распознавания 82.7%.

Команда Гао использовала OpenCV для обнаружения лиц во FR-CAPTCHA. Удалось получить вероятность обнаружения от 8% до 42% с обработкой изображения менее, чем за 14 секунд. FaceDCAPTCH была распознана с вероятностью 48% в среднем за 6.2 секунды.

Сотрудники Колумбийского университета обошли reCAPTCHA и Facebook CAPTCHA с вероятностью 70.78% и 83.5% соответственно.

1.2.2. Капча на основе кликов

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 7. Капчи на основе кликов

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

1.2.3. Капча на основе перетаскивания

Капча на основе перетаскивания определяет, является ли пользователь человеком, через трек мыши, скорость перемещения указателя и время отклика.

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 8. Капча на основе перетаскивания

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

1.3. Об этом говорит сайт https://intellect.icu . Аудио/видеокапчи

1.3.1 Аудиокапча

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 9. Аудиокапча

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

Но и аудиокапча взламывается: ученые из Стэнфордского университета научились взламывать аудиокапчу с вероятностью 75%.

1.3.2 Видеокапча

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

Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

Рис. 10. Сводная таблица. Типы капч

Японские исследователи использовали решение на базе HMM (скрытой марковской модели) и получили точность 31.75%.

Способы прохождения капчи роботом

Использование уязвимостей

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

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

  Капча CAPTCHA  как обратный тест тьюринга виды капч и способы ее защиты

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

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

Угадывание

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

Использование баз данных

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

Автоматическое распознавание

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

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

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

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

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

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

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

Распознавание чужими руками

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

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

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

Полезность капчи против спама

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

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

Известные CAPTCHA-службы

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

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

Алгоритм CAPTCHA-проверки

Кратко рассмотрим алгоритм CAPTCHA-проверки посетителя, сделав упор на защиту от уязвимостей, не связанных с собственно распознаванием картинки:

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

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

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

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

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

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

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

Если вы обратите внимание на эти моменты, ваша CAPTCHA будет защищена от ботов, не использующих распознавание.

Альтернативные способы защиты

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

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

Аудио-CAPTCHA

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

Математические примеры

Некоторым может показаться, что вопрос "сколько будет 23+75" может быть хорошим решением, т. к. "боту надо будет еще догадаться, что числа следует не только распознать, но и сложить". При здравом же рассуждении видно, что какую-то защиту это решение может обеспечить только в силу своей новизны и малой распространенности. В самом деле, что-что, а складывать и вычитать числа компьютер умеет гораздо лучше человека. А вот для самого человека проведение в уме математических действий (особенно если цифр в числах не 1−2, а больше) будет утомительным и сложным. Сумму же одно-двузначных чисел можно угадать и перебором со сравнительно небольшим количеством попыток. Таким образом, в математических примерах как способе защиты от ботов смысла нет никакого, наличествует даже ухудшение защищенности.

Текстовые задачи

Человеку задается вопрос или загадка, на который он должен дать ответ. Ответ нужно либо выбрать из списка, либо ввести в поле. Посколько при выборе из списка вероятность дать правильный ответ наугад довольно велика (1/n, где n – количество вариантов), обычно пользователя заставляют ответить на ряд вопросов, ибо вероятность угадать правильные ответы на несколько вопросов будет произведением вероятностей ответить на каждый из них. Т. е., к примеру, 1/5 * 1/6 * 1/4 = 1/120.

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

Недостатки:

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

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

Распознавание предметов

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

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

Преимущества: пользователю может быть легче отличить кошку от собаки, чем различить, к примеру, сильно искаженные и зашумленные буквы "N" и "H". Боту же, напротив, буквы, как более простые образы, различить будет проще.

Недостатки:

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

Тест Тьюринга через ошибку

В 2017-м Amazon зарегистрировала патент на схему, в которой используются оптические иллюзии и логические задачки, с которыми тяжело справляться людям. Этот тест называется «тест Тьюринга через ошибку», и единственный способ пройти его – дать неверный ответ.

Методы обхода капчи

1. использование особенностей реализации CAPTCHA и их слабые места;

2. распознавание через системы распознования(OCR (Optical Character Recognition — оптическое распознавание символов)) и запуск с помощью виртуального драйвера

3. использование сторонних сервисов где реальные люди за доли цеентов вручную разгадвают капчи

Вау!! 😲 Ты еще не читал? Это зря!

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

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

создано: 2014-09-22
обновлено: 2021-04-19
133174



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


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

Модели и методы исследований

Термины: Модели и методы исследований