Вы используете компьютер для покупки билетов на местный концерт. Прежде чем вы сможете купить билеты, вам сначала нужно пройти тест. Это не сложный тест - на самом деле, в этом суть. Для вас тест должен быть простым и понятным. Но для компьютера этот тест практически невозможно решить.
Этот вид теста являетсяCAPTCHA, аббревиатурой, которая расшифровывается какПолностью автоматизированный публичный тест Тьюринга, позволяющий различать компьютеры и людейОни также известен как типДоказательство человеческого взаимодействия(HIP). Вы, наверное, видели тесты CAPTCHA на многих веб-сайтах. Самая распространенная форма CAPTCHA - это изображение нескольких искаженных букв. Ваша задача - ввести в форму правильную серию букв. Если ваши буквы совпадают с буквами на искаженном изображении, вы проходите тест.
Зачем кому-то создавать тест, который может отличить людей от компьютеров? Это из-за того, что люди пытаютсяобмануть систему - они хотят использовать слабые места в компьютерах, на которых запущен сайт. Хотя эти люди, вероятно, составляют меньшинство всех людей в Интернете, их действия могут повлиять на миллионы пользователей и веб-сайтов. Например, бесплатная служба электронной почты может оказаться заваленной запросами на учетные записи от автоматизированной программы. Эта автоматизированная программа может быть частью более масштабной попытки рассылки спама миллионам людей. Тест CAPTCHA помогает определить, какие пользователи являются реальными людьми, а какие - компьютерными программами.
Одна интересная особенность тестов CAPTCHA заключается в том, что люди, разрабатывающие тесты, не всегда расстраиваются, когда их тесты терпят неудачу. Это потому, что для того, чтобы тест CAPTCHA провалился, кто-то должен найти способ научить компьютер решать тест. Другими словами, каждая ошибка CAPTCHA на самом деле является прогрессом в области искусственного интеллекта.
Давайте подробно рассмотрим, что такое CAPTCHA, в следующем разделе.
Привет, Программа!
Одним из парадоксов программы CAPTCHA является то, что приложение CAPTCHA может сгенерировать тест, который даже оно не может решить, не зная ответа.
CAPTCHA и тест Тьюринга
Технология CAPTCHA основана на эксперименте под названиемТест Тьюринга Алан Тьюринг, которого иногда называют отцом современных вычислений, предложил этот тест как способ проверить, являются ли машины могут думать - или казаться мыслящими - как люди. Классический тест - это игра в имитацию. В этой игре следователь задает двум участникам ряд вопросов. Один из участников - машина, а другой - человек. Следователь не может видеть или слышать участников и не может знать, кто есть кто. Если следователь не может определить, какой из участников является машиной на основе ответов, машина проходит тест Тьюринга.
Конечно, с CAPTCHA цель состоит в том, чтобы создать тест, который люди могут легко пройти, но машины не могут. Также важно, чтобы приложение CAPTCHA могло представлять разные CAPTCHA разным пользователям. Если бы визуальная CAPTCHA представляла собой статическое изображение, одинаковое для всех пользователей, спамеру не потребовалось бы много времени, чтобы обнаружить форму, расшифровать буквы и запрограммировать приложение для автоматического ввода правильного ответа.
Большинство, но не все, CAPTCHA основаны на визуальном тесте. Компьютерам не хватает изощренности, которой обладают люди, когда дело доходит до обработки визуальных данных. Мы можем смотреть на изображение и выделять закономерности легче, чем компьютер. Человеческий разум иногда воспринимает закономерности, даже если их не существует, причуда, которую мы называемпарейдолия Когда-нибудь видели фигуру в облаках или лицо на луне? Это ваш мозг пытается связать случайную информацию в шаблоны и формы.
Но не все CAPTCHA полагаются на визуальные шаблоны. На самом деле важно иметь альтернативу визуальной CAPTCHA. В противном случае администратор веб-сайта рискует лишить избирательных прав любого веб-пользователя с нарушениями зрения. Одной из альтернатив визуальному тесту является звуковой. Аудио CAPTCHA обычно представляет пользователю серию произнесенных букв или цифр. Программа нередко искажает голос говорящего, а также часто программа включает фоновый шум в запись. Это помогает блокировать программы распознавания голоса.
Другой вариант - создать CAPTCHA, которая просит читателя интерпретировать короткий отрывок текста. Контекстная CAPTCHA проверяет читателя и навыки понимания. Хотя компьютерные программы могут выбирать ключевые слова в отрывках текста, они не очень хорошо понимают, что эти слова на самом деле означают.
В следующем разделе мы более подробно рассмотрим, какие сайты используют CAPTCHA для проверки наличия у вас пульса.
Извините, я прочитаю это снова
Время от времени CAPTCHA представляет изображение или звук, которые настолько искажены, что даже люди не могут их расшифровать. Вот почему многие приложения CAPTCHA предоставляют пользователям возможность создать новую CAPTCHA и повторить попытку. Надеюсь, второй раз не будет таким запутанным, как первый.
Кто использует CAPTCHA
Одним из распространенных приложений CAPTCHA является проверка онлайн-опросов. Фактически, предыдущий опрос Slashdot служит примером того, что может пойти не так, если социологи не используют фильтры в своих опросах. В 1999 году Slashdot опубликовал опрос, в котором посетителям предлагалось выбрать аспирантуру с лучшей программой по информатике. Студенты двух университетов - Карнеги-Меллона и Массачусетского технологического института - создали автоматические программы под названиемботы, чтобы неоднократно голосовать за свои учебные заведения. В то время как эти две школы получили тысячи голосов, каждая из других школ набрала всего несколько сотен. Если возможно создать программу, которая может голосовать в опросе, как мы вообще можем доверять результатам онлайн-опроса? Форма CAPTCHA может помочь программистам не воспользоваться преимуществами системы опроса.
Регистрационные формы на веб-сайтах часто используют CAPTCHA. Например, бесплатные веб-службы электронной почты, такие как Hotmail, Yahoo! Mail или Gmail позволяют людям бесплатно создать учетную запись электронной почты. Обычно пользователи должны предоставить некоторую личную информацию при создании учетной записи, но службы обычно не проверяют эту информацию. Они используют CAPTCHA, чтобы попытаться помешать спамерам использовать ботов для создания сотен спам-аккаунтов.
Билетные брокеры, такие как TicketMaster, также используют приложения CAPTCHA. Эти приложения помогают помешать перекупщикам билетов бомбардировать сервис массовыми покупками билетов на крупные мероприятия. Без какого-либо фильтра скальпер может использовать бота для размещения сотен или тысяч заказов на билеты за считанные секунды. Законные клиенты становятся жертвами, поскольку билеты на мероприятия распродаются через несколько минут после того, как билеты становятся доступными. Затем спекулянты пытаются продать билеты дороже номинальной стоимости. Хотя приложения CAPTCHA не предотвращают скальпирование, они усложняют скальпирование билетов в больших масштабах.
На некоторых веб-страницах есть доски объявлений или контактные формы, которые позволяют посетителям размещать сообщения на сайте или отправлять их непосредственно веб-администраторам. Чтобы предотвратить лавину спама, многие из этих сайтов имеют программу CAPTCHA для фильтрации шума. CAPTCHA не остановит того, кто решил опубликовать грубое сообщение или оскорбить администратора, но поможет предотвратить автоматическую публикацию сообщений ботами.
Наиболее распространенная форма CAPTCHA требует, чтобы посетители вводили слово или серию букв и цифр, которые приложение каким-то образом исказило. Некоторые создатели CAPTCHA придумали способ повысить ценность такого приложения: оцифровку книг. Приложение под названием reCAPTCHA использует ответы пользователей в полях CAPTCHA для проверки содержимого отсканированного листа бумаги. Поскольку компьютеры не всегда могут идентифицировать слова из цифрового сканирования, людям приходится проверять, что написано на печатной странице. Тогда поисковые системы смогут искать и индексировать содержимое отсканированного документа.
Вот как это работает: Сначала администратор программы reCAPTCHA сканирует книгу в цифровом виде. Затем программа reCAPTCHA выбирает два слова из оцифрованного изображения. Приложение уже распознает одно из слов. Если посетитель правильно вводит это слово в поле, приложение предполагает, что второе слово, введенное пользователем, также является правильным. Это второе слово входит в набор слов, которые приложение будет представлять другим пользователям. Когда каждый пользователь вводит слово, приложение сравнивает это слово с исходным ответом. В конце концов, приложение получает достаточно ответов, чтобы проверить слово с высокой степенью уверенности. Затем это слово может попасть в проверенный пул.
Звучит долго, но помните, что в этом случае CAPTCHA выполняет двойную функцию. Он не только проверяет содержимое оцифрованной книги, но и проверяет, действительно ли люди, заполняющие форму, являются людьми. В свою очередь, эти люди получают доступ к сервису, которым хотят пользоваться.
Далее мы рассмотрим процесс создания CAPTCHA.
Создание CAPTCHA
Первым шагом к созданию CAPTCHA является изучение различных способов обработки информации людьми и машинами. Машины следуют набору инструкций. Если что-то выходит за рамки этих инструкций, машина не сможет это компенсировать. Разработчик CAPTCHA должен учитывать это при создании теста. Например, легко создать программу, которая просматриваетметаданные - информацию в Сети, которая невидима для людей, но может быть прочитана машинами. Если вы создаете визуальную CAPTCHA и метаданные изображения содержат решение, ваша CAPTCHA будет взломана в кратчайшие сроки.
Точно так же неразумно создавать CAPTCHA, которая каким-либо образом не искажает буквы и цифры. Неискаженный ряд символов не очень безопасен. Многие компьютерные программы могут сканировать изображение и распознавать простые формы, такие как буквы и цифры.
Один из способов создания CAPTCHA - заранее определить изображения и решения, которые она будет использовать. Для этого подхода требуется база данных, включающая все решения CAPTCHA, что может поставить под угрозу надежность теста. По словам экспертов Microsoft Research Кумара Челлапиллы и Патриса Симарда, люди должны иметь 80-процентную вероятность успеха при решении любой конкретной CAPTCHA, а машины должны иметь только 0,01 процента успеха. Если бы спамеру удалось найти список всех решений CAPTCHA, он или она могли бы создать приложение, которое бомбардирует CAPTCHA всеми возможными ответами в атакеbrute force. Базе данных потребуется более 10 000 возможных CAPTCHA, чтобы соответствовать требованиям хорошей CAPTCHA.
Другие приложения CAPTCHA создают случайные цепочки букв и цифр. Вы вряд ли когда-нибудь получите одну и ту же серию дважды. Использование рандомизации исключает возможность атаки методом грубой силы - вероятность того, что бот введет правильную серию случайных букв, очень мала. Чем длиннее строка символов, тем меньше шансов, что боту повезет.
CAPTCHA используют разные подходы к искажению слов. Некоторые буквы растягиваются и изгибаются странным образом, как будто вы смотрите на слово сквозь расплавленное стекло. Другие помещают слово за заштрихованными полосами, чтобы разбить форму букв. Некоторые используют разные цвета или поле точек для достижения того же эффекта. В конце концов, цель та же: сделать так, чтобы компьютеру было действительно сложно понять, что находится в CAPTCHA.
Дизайнеры также могут создавать головоломки или задачи, которые легко решить людям. Некоторые CAPTCHA основаны нараспознавании образовиэкстраполяции Например, CAPTCHA может включать в себя серию фигур и спрашивать пользователя, какая форма из нескольких вариантов будет логически давай дальше. Проблема с этим подходом заключается в том, что не все люди хорошо справляются с такими проблемами, и вероятность успеха для пользователя-человека может упасть ниже 80 процентов.
Далее мы рассмотрим, как компьютеры могут взламывать CAPTCHA.
Теперь ты меня слышишь?
Во многом звуковые CAPTCHA похожи на визуальные. При использовании базы данных создатель CAPTCHA должен предварительно записать человека или компьютер, произносящий каждую серию символов, а затем сопоставить их с правильным решением. При рандомизированном подходе создатель предварительно записывает каждый символ по отдельности, а приложение случайным образом объединяет символы для создания CAPTCHA.
Взлом CAPTCHA
Сложность при взломе CAPTCHA не в том, чтобы выяснить, о чем говорится в сообщении - в конце концов, люди должны иметь как минимум 80-процентную вероятность успеха. По-настоящему сложная задача - научить компьютер обрабатывать информацию так же, как думают люди. Во многих случаях люди, взламывающие CAPTCHA, сосредотачиваются не на том, чтобы сделать компьютеры умнее, а на уменьшении сложности проблемы, которую ставит CAPTCHA.
Предположим, вы защитили онлайн-форму с помощью CAPTCHA, которая отображает английские слова. Приложение слегка искажает шрифт, растягивая и изгибая буквы непредсказуемым образом. Кроме того, CAPTCHA включает случайно сгенерированный фон за словом.
Программист, желающий взломать эту CAPTCHA, может подойти к проблеме поэтапно. Ему или ей нужно будет написатьалгоритм - набор инструкций, который предписывает машине следовать определенной последовательности шагов. В этом сценарии одним из шагов может быть преобразование изображения в оттенки серого. Это означает, что приложение удаляет все цвета с изображения, убирая один из уровней запутывания, который использует CAPTCHA.
Далее алгоритм может сообщить компьютеру, что нужно обнаружить закономерности в черно-белом изображении. Программа сравнивает каждый шаблон с обычной буквой и ищет совпадения. Если программа может сопоставить только несколько букв, она может сопоставить эти буквы с базой данных английских слов. Затем он вставлял вероятных кандидатов в поле отправки. Такой подход может быть удивительно эффективным. Это может не сработать в 100% случаев, но достаточно часто, чтобы быть полезным для спамеров.
А как насчет более сложных CAPTCHA?Gimpy CAPTCHA отображает 10 английских слов с искаженным шрифтом на неровном фоне. CAPTCHA упорядочивает слова парами, и слова каждой пары накладываются друг на друга. Пользователи должны ввести три правильных слова, чтобы двигаться вперед. Насколько надежен этот подход?
Как оказалось, с правильным алгоритмом взлома CAPTCHA это не очень надежно. Грег Мори и Джитендра Малик опубликовали статью, в которой подробно описали свой подход к взлому Gimpy-версии CAPTCHA. Им помогло то, что подход Gimpy использует настоящие слова, а не случайные цепочки букв и цифр. Имея это в виду, Мори и Малик разработали алгоритм, который пытался идентифицировать слова, исследуя начало и конец цепочки букв. Они также использовали словарь Гимпи на 500 слов.
Мори и Малик провели серию тестов, используя свой алгоритм. Они обнаружили, что их алгоритм может правильно идентифицировать слова в Gimpy CAPTCHA в 33 процентах случаев. Хотя это далеко не идеально, это также важно. Спамеры могут позволить себе добиться успеха только в трети своих попыток, если заставят ботов взламывать CAPTCHA несколько сотен раз в минуту.
Вы можете подумать, что изобретатели CAPTCHA будут расстроены тем, что их тяжелая работа будет разобрана хакерами, но вы ошибаетесь. Узнайте почему в следующем разделе.
Электронные уши
Аудио CAPTCHA также не является надежным. Весной 2008 года появились сообщения о том, что хакеры нашли способ обойти аудиосистему Google CAPTCHA. Чтобы взломать аудио CAPTCHA, вы должны создать библиотеку звуков, представляющих каждый символ в базе данных CAPTCHA. Имейте в виду, что в зависимости от искажения может быть несколько звуков для одного и того же персонажа. После категоризации каждого звука спамер использует вариацию программного обеспечения для распознавания голоса для интерпретации аудио CAPTCHA.
CAPTCHA и искусственный интеллект
Луис фон Ан из Университета Карнеги-Меллона - один из изобретателей CAPTCHA. В лекции 2006 года фон Ан говорил о взаимосвязи между такими вещами, как CAPTCHA, и областью искусственного интеллекта (ИИ). Поскольку CAPTCHA является барьером между спамерами или хакерами и их целью, эти люди посвятили время и энергию взлому CAPTCHA. Их успехи означают, что машины становятся все более изощренными. Каждый раз, когда кто-то придумывает, как научить машину преодолевать CAPTCHA, мы на шаг приближаемся к искусственному интеллекту.
По мере того, как люди находят новые способы обхода CAPTCHA, ученые-компьютерщики, такие как фон Ан, разрабатывают CAPTCHA, которые решают другие проблемы в области ИИ. Шаг назад для CAPTCHA - это все равно шаг вперед для ИИ - каждое поражение - это тоже победа.
А как насчет веб-администраторов? Философия фон Ана может показаться им не столь привлекательной. С их точки зрения, им все еще приходится иметь дело с серьезной проблемой - спамерами и хакерами. Люди, которые поддерживают веб-сайты или создают онлайн-опросы, должны знать, что некоторые системы CAPTCHA больше не эффективны. Важно провести небольшое исследование того, какие приложения CAPTCHA все еще надежны. И не менее важно быть в курсе этого вопроса. Если одна из систем CAPTCHA дает сбой, администратору может потребоваться удалить код со своего сайта и заменить его другой версией.
Что касается разработчиков CAPTCHA, им приходится ходить по тонкой грани. По мере того, как компьютеры становятся все более совершенными, методы тестирования также должны развиваться. Но если тест развивается до такой степени, что люди больше не могут решать CAPTCHA с приличной вероятностью успеха, система в целом дает сбой. Ответ может не включать деформацию или искажение текста - от пользователей может потребоваться решить математическое уравнение или ответить на вопросы о коротком рассказе. И по мере того, как эти тесты усложняются, есть риск потерять интерес пользователей. Сколько людей все еще захотят опубликовать ответ на доске объявлений, если они должны сначала решить квадратное уравнение?
В 2014 году компания Google (которая приобрела reCAPTCHA в 2009 году) начала отказываться от классического сервиса. Вместо этого он попросил вас поставить галочку со словами «Я не робот». Это называлось No CAPTCHA. В 2017 году Google объявил, что избавится от No CAPTCHA. Вместо этого служба будет полагаться на такие методы, как определение того, как вы перемещаете указатель на экране, или анализ ваших привычек просмотра, чтобы определить, являетесь ли вы человеком или роботом. Это называется Invisible reCAPTCHA. Если вам покажется подозрительным (возможно, вы на самом деле робот), вы увидите одну из старых задач reCAPTCHA, которую нужно решить в качестве дополнительной проверки[источник: Titcomb].
Часто задаваемые вопросы
Используется ли CAPTCHA от Google?
Нет, CAPTCHA не от Google. CAPTCHA - это технология, используемая для проверки того, что с веб-сайтом или приложением взаимодействуют люди, а не автоматизированные боты вредоносного программного обеспечения.
Что означает CAPTCHA?
A CAPTCHA - это тип теста «запрос-ответ», используемый в вычислительной технике для определения того, является ли пользователь человеком. CAPTCHA расшифровывается как «Полностью автоматизированный публичный тест Тьюринга, позволяющий различать компьютеры и людей».
Зачем нужна CAPTCHA?
CAPTCHA необходима для предотвращения отправки автоматическими программами ложной или спам-информации, а также для предотвращения рекламного спама, продвигающего мошенничество на веб-страницах.