CAPTCHA ( / ˈ k æ p . tʃ ə / KAP -chə ) — это тип теста «вызов-ответ» , используемый в вычислительной технике для определения того, является ли пользователь человеком, с целью предотвращения атак ботов и спама. [1]
Термин был придуман в 2003 году Луисом фон Аном , Мануэлем Блюмом , Николасом Дж. Хоппером и Джоном Лэнгфордом . [2] Это придуманная аббревиатура для «Completely Automated Public Turing test to tell Computers and Humans Apart». [3] Исторически распространенный тип CAPTCHA (отображаемый как reCAPTCHA v1 ) был впервые изобретен в 1997 году двумя группами, работавшими параллельно. Эта форма CAPTCHA требует ввода последовательности букв или цифр в искаженном изображении. Поскольку тест проводится компьютером, в отличие от стандартного теста Тьюринга, который проводится человеком, CAPTCHA иногда описывают как обратные тесты Тьюринга . [4]
Два широко используемых сервиса CAPTCHA — это reCAPTCHA от Google [5] [6] и независимый hCaptcha. [7] [8] Для решения типичной CAPTCHA среднестатистическому человеку требуется около 10 секунд. [9]
Целью CAPTCHA является предотвращение спама на веб-сайтах, такого как спам-реклама, спам-регистрация и сбор данных. Многие веб-сайты эффективно используют CAPTCHA для предотвращения рейдов ботов. CAPTCHA разработаны таким образом, чтобы люди могли их заполнять, в то время как большинство роботов не могут. [10] Новые CAPTCHA отслеживают поведение пользователя в Интернете, чтобы доказать, что он человек. [11] Обычный тест CAPTCHA появляется только в том случае, если пользователь действует как бот, например, когда он запрашивает веб-страницы или слишком быстро нажимает на ссылки.
Начиная с 1980-х–1990-х годов пользователи хотели сделать текст нечитаемым для компьютеров. [12] Первыми такими людьми были хакеры , которые публиковали сообщения на деликатные темы на интернет-форумах, которые, как они думали, автоматически отслеживались по ключевым словам. Чтобы обойти такие фильтры, они заменяли слово похожими символами. HELLO могло стать |-|3|_|_()
или )-(3££0
, и другими, так что фильтр не мог обнаружить их все . Позже это стало известно как leetspeak . [13]
Одним из первых коммерческих применений CAPTCHA был тест Гаузебека–Левчина. В 2000 году idrive.com начал защищать свою страницу регистрации [14] с помощью CAPTCHA и подготовился к подаче патента. [12] В 2001 году PayPal использовал такие тесты как часть стратегии предотвращения мошенничества, в которой они просили людей «перепечатать искаженный текст, который программам было трудно распознать». [15] Соучредитель и технический директор PayPal Макс Левчин помог коммерциализировать это использование.
Популярная разработка технологии CAPTCHA, reCAPTCHA , была приобретена Google в 2009 году. [16] Помимо предотвращения мошенничества со стороны ботов для своих пользователей, Google использовала технологию reCAPTCHA и CAPTCHA для оцифровки архивов The New York Times и книг из Google Books в 2011 году. [17]
CAPTCHA автоматизированы и требуют минимального человеческого обслуживания или вмешательства для администрирования, что обеспечивает преимущества в плане стоимости и надежности. [18]
Современные текстовые CAPTCHA разработаны таким образом, что для выполнения задачи им требуется одновременное использование трех отдельных возможностей — инвариантного распознавания, сегментации и синтаксического анализа. [19]
Каждая из этих проблем представляет собой значительную проблему для компьютера, даже в отдельности. Поэтому эти три метода в тандеме делают CAPTCHA сложными для решения компьютерами. [22]
Хотя CAPTCHA в первую очередь используется в целях безопасности, она также может служить эталонной задачей для технологий искусственного интеллекта. Согласно статье Ан, Блума и Лэнгфорда, [23] «любая программа, которая проходит тесты, сгенерированные CAPTCHA, может быть использована для решения сложной нерешенной проблемы ИИ». [24] Они утверждают, что преимущества использования сложных проблем ИИ в качестве средства обеспечения безопасности двояки. Либо проблема остается нерешенной и остается надежный метод отличить людей от компьютеров, либо проблема решается, и вместе с ней решается сложная проблема ИИ. [23]
CAPTCHA, основанные на чтении текста или других задачах визуального восприятия, не позволяют слепым или слабовидящим пользователям получить доступ к защищенному ресурсу. [25] [26] Поскольку CAPTCHA разработаны так, чтобы их не могли прочитать машины, распространенные вспомогательные технологические инструменты, такие как программы чтения с экрана, не могут их интерпретировать. Таким образом, использование CAPTCHA исключает небольшой процент пользователей из использования значительных подмножеств таких распространенных веб-сервисов, как PayPal, Gmail, Orkut, Yahoo!, многих систем форумов и веблогов и т. д. [27] В некоторых юрисдикциях владельцы сайтов могут стать объектами судебных разбирательств, если они используют CAPTCHA, которые дискриминируют определенных людей с ограниченными возможностями. Например, CAPTCHA может сделать сайт несовместимым с разделом 508 в Соединенных Штатах.
CAPTCHA не обязательно должны быть визуальными. Любая сложная задача искусственного интеллекта , например, распознавание речи , может быть использована в качестве CAPTCHA. Некоторые реализации CAPTCHA позволяют пользователям выбирать аудио CAPTCHA, например, reCAPTCHA, хотя в статье 2011 года была продемонстрирована методика обхода популярных в то время схем. [28]
Метод улучшения CAPTCHA для облегчения работы с ней был предложен ProtectWebForm и назван «Smart CAPTCHA». [29] Разработчикам рекомендуется сочетать CAPTCHA с JavaScript. Поскольку большинству ботов сложно анализировать и выполнять JavaScript, был предложен комбинаторный метод, который заполняет поля CAPTCHA и скрывает как изображение, так и поле от человеческих глаз. [30]
Один из альтернативных методов заключается в отображении пользователю простого математического уравнения и необходимости ввода решения в качестве проверки. Хотя их гораздо легче обойти с помощью программного обеспечения, они подходят для сценариев, где графические изображения не подходят, и они обеспечивают гораздо более высокий уровень доступности для слепых пользователей, чем CAPTCHA на основе изображений. Иногда их называют MAPTCHA (M = «математический»). Однако они могут быть трудны для пользователей с когнитивными расстройствами, такими как дискалькулия . [31]
Такие задачи, как логическая головоломка или вопрос-тривиа, также могут использоваться в качестве CAPTCHA. Существуют исследования их устойчивости к контрмерам. [32]
Два основных способа обойти CAPTCHA включают использование дешевого человеческого труда для их распознавания и использование машинного обучения для создания автоматизированного решателя. [33] По словам бывшего « царя кликфродов » Google Шумана Гошемаджумдера , существует множество сервисов, которые решают CAPTCHA автоматически. [34]
Не было систематической методологии для проектирования или оценки ранних CAPTCHA. [22] В результате было много случаев, когда CAPTCHA имели фиксированную длину, и поэтому автоматизированные задачи могли быть построены для успешного составления обоснованных предположений о том, где должна происходить сегментация. Другие ранние CAPTCHA содержали ограниченные наборы слов, что значительно упрощало прохождение теста. Другие [ нужен пример ] совершили ошибку, слишком сильно полагаясь на фоновую путаницу на изображении. В каждом случае были созданы алгоритмы, которые успешно смогли выполнить задачу, используя эти недостатки дизайна. Однако небольшие изменения в CAPTCHA могли помешать им. Современные CAPTCHA, такие как reCAPTCHA, полагаются на существующие вариации символов, которые свернуты вместе, что затрудняет их сегментацию, и они отпугнули автоматизированные задачи. [35]
В октябре 2013 года компания Vicarious, занимающаяся искусственным интеллектом, заявила, что разработала универсальный алгоритм решения CAPTCHA, который способен решать современные CAPTCHA с уровнем распознавания символов до 90%. [36] Однако Луис фон Ан , пионер ранних CAPTCHA и основатель reCAPTCHA, сказал: «Меня трудно впечатлить, поскольку я вижу это каждые несколько месяцев». С 2003 года было сделано 50 подобных заявлений, подобных заявлению Vicarious. [37]
В августе 2014 года на конференции Usenix WoOT Бурштейн и др. представили первый универсальный алгоритм решения CAPTCHA, основанный на обучении с подкреплением, и продемонстрировали его эффективность по сравнению со многими популярными схемами CAPTCHA. [35]
В октябре 2018 года на конференции ACM CCS'18 Йе и др. представили атаку на основе глубокого обучения, которая могла последовательно решать все 11 схем текстовой капчи, используемых 50 самыми популярными веб-сайтами в 2018 году. Эффективный решатель капчи может быть обучен с использованием всего лишь 500 реальных капч. [38]
Можно подорвать CAPTCHA, передав их в потогонное предприятие операторов-людей, которые наняты для расшифровки CAPTCHA. В статье рабочей группы W3C за 2005 год говорилось, что они могут проверять сотни в час. [25] В 2010 году Калифорнийский университет в Сан-Диего провел масштабное исследование ферм CAPTCHA. Розничная цена решения одного миллиона CAPTCHA составляла всего 1000 долларов. [39]
Другой метод заключается в использовании скрипта для повторной публикации CAPTCHA целевого сайта в качестве CAPTCHA на сайте злоумышленника, который ничего не подозревающие люди посещают и решают в течение короткого времени, чтобы скрипт мог его использовать. [40] [41]
В 2023 году ChatGPT обманом заставил работника TaskRabbit решить CAPTCHA, сказав ему, что он не робот и у него проблемы со зрением. [42]
Существует множество интернет-компаний, таких как 2Captcha и DeathByCaptcha , которые предлагают услуги по решению CAPTCHA с поддержкой человека и машины по цене всего 0,50 долл. США за 1000 решенных CAPTCHA. [43] Эти сервисы предлагают API и библиотеки, которые позволяют пользователям интегрировать обход CAPTCHA в инструменты, которые CAPTCHA изначально были разработаны для блокировки. [44]
Говард Йенд выявил две проблемы реализации плохо спроектированных систем CAPTCHA: [45] повторное использование идентификатора сеанса известного изображения CAPTCHA и размещение CAPTCHA на общих серверах.
Иногда, если часть программного обеспечения, генерирующего CAPTCHA, находится на стороне клиента (проверка выполняется на сервере, но текст, который пользователь должен идентифицировать, отображается на стороне клиента), то пользователи могут изменить клиент для отображения неотрисованного текста. Некоторые системы CAPTCHA используют хэши MD5 , хранящиеся на стороне клиента, что может сделать CAPTCHA уязвимой для атаки методом подбора . [46]
Некоторые исследователи предложили альтернативы, включая CAPTCHA распознавания изображений, которые требуют от пользователей идентифицировать простые объекты на представленных изображениях. Аргумент в пользу этих схем заключается в том, что такие задачи, как распознавание объектов, сложнее для выполнения, чем распознавание текста, и поэтому должны быть более устойчивыми к атакам на основе машинного обучения.
Chew et al. опубликовали свою работу на 7-й Международной конференции по информационной безопасности ISC'04, предложив три различные версии CAPTCHA для распознавания изображений и подтвердив предложение с помощью пользовательских исследований. Предполагается, что одна из версий, аномальная CAPTCHA, является лучшей, поскольку 100% пользователей-людей способны пройти аномальную CAPTCHA с вероятностью не менее 90% за 42 секунды. [47] Datta et al. опубликовали свою статью на конференции ACM Multimedia '05 под названием IMAGINATION (IMAge Generation for INternet AuthenticaTION), предложив систематический способ распознавания изображений CAPTCHA. Изображения искажены, поэтому подходы к распознаванию изображений не могут их распознать. [48]
Microsoft (Джереми Элсон, Джон Р. Дусер, Джон Хауэлл и Джаред Сол) утверждают, что разработали распознавание изображений видов животных для ограничения доступа (ASIRRA), которое просит пользователей отличать кошек от собак. У Microsoft была бета-версия этого для использования на веб-сайтах. [49] Они утверждают, что «Asirra проста для пользователей; люди могут решить ее в 99,6% случаев менее чем за 30 секунд. По некоторым данным, пользователи, похоже, находят опыт использования Asirra гораздо более приятным, чем текстовую CAPTCHA». Это решение было описано в статье 2007 года в Proceedings of 14th ACM Conference on Computer and Communications Security (CCS). [50] Оно было закрыто в октябре 2014 года. [51]
CAPTCHA (полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — это [...]