A CAPTCHA (, надуманный акроним для «полностью автоматизированного общедоступного теста Тьюринга сказать Компьютеры и Люди обособленно ") - это тип теста вызов – ответ, используемый в вычислениях для определения того, является ли пользователь человеком.
Термин был придуман в 2003 году Луисом фон Ан, Мануэлем Блюмом, Николасом Дж. Хоппером и Джоном Лэнгфордом. Наиболее распространенный тип CAPTCHA (отображается как версия 1.0) был впервые изобретен в 1997 году двумя группами, работающими параллельно. Эта форма CAPTCHA требует, чтобы кто-то правильно оценил и ввел последовательность букв или цифр, воспринимаемых на искаженном изображении, отображаемом на их экране. Поскольку тест проводится с помощью компьютера, в отличие от стандартного теста Тьюринга, который выполняет человек, CAPTCHA иногда описывается как обратный тест Тьюринга.
Эта процедура идентификации пользователя вызвала много критики, особенно со стороны людей с ограниченными возможностями, а также других людей, которые чувствуют, что их повседневная работа замедляется из-за искаженных слов, которые трудно читать. Обычному человеку требуется примерно 10 секунд, чтобы решить типичную CAPTCHA.
С первых дней существования Интернета пользователи хотели сделать текст неразборчивым к компьютерам. Первыми такими людьми были хакеры, которые писали о деликатных темах на интернет-форумах, которые, по их мнению, автоматически отслеживались по ключевым словам. Чтобы обойти такие фильтры, они заменяли слово похожими символами. HELLO может стать | - | 3 | _ | _ ()
или ) - (3 £$ 0
, а также множество других вариантов, так что фильтр не может обнаружить все Позднее это стало известно как leetspeak.
Одно из первых коммерческих применений CAPTCHA было в тесте Гаузебека – Левчина . В 2000 году idrive.com начал защищать свою страницу регистрации с помощью CAPTCHA и готовится подать патент на эту, казалось бы, новую технику. В 2001 году PayPal использовала такие тесты как часть стратегии предотвращения мошенничества, в которой они просили людей «перепечатать искаженный текст, который программы трудно распознать. Соучредитель и технический директор PayPal Макс Левчин помог коммерциализировать это раннее использование.
Популярное развертывание технологии CAPTCHA, reCAPTCHA, было приобретено Google в 2009 году. предотвращая мошенничество с ботами для своих пользователей, Google использовал технологии reCAPTCHA и CAPTCHA для оцифровки архивов The New York Times и книг из Google Книг в 2011 году.
Две команды заявили, что первыми изобрели CAPTCHA, широко используемые сегодня в сети. Первая команда с Марком Д. Лиллибриджем, Мартин Абади, Кришна Бхарат и Андрей Бродер использовали CAPTCHA в 1997 году на AltaVista для запретить ботам добавлять унифицированный указатель ресурсов (URL) в свою поисковую систему. В поисках способа сделать свои изображения устойчивыми к атакам оптического распознавания символов (OCR), команда изучила руководство своего брата сканера, в котором были рекомендации для улучшения результатов распознавания текста (похожие шрифты, простой фон и т. д.). Команда создала головоломки, пытаясь смоделировать то, что, по утверждению руководства, могло вызвать плохое распознавание текста.
Вторая команда, которая утверждала, что она первая изобрела CAPTCHA с Луисом фон Ан, Мануэлем Блюмом, Николасом Дж. Хоппер и Джон Лэнгфорд впервые описали CAPTCHA в публикации 2003 года и впоследствии получили широкое освещение в популярной прессе. Их понятие CAPTCHA охватывает любую программу, которая может отличить человека от компьютера.
Споры об изобретательстве были разрешены существованием заявки на патент с датой приоритета 1997 года, поданной Эраном Решефом, Гили Раананом и Эйлон Солан (вторая группа), который работал в Sanctum над Application Security Firewall. В их заявке на патент подробно говорится, что «Изобретение основано на применении человеческого преимущества в применении сенсорных и когнитивных навыков для решения простых задач, которые оказываются чрезвычайно сложными для компьютерного программного обеспечения. Такие навыки включают, но не ограничиваются обработкой сенсорной информации, такой как идентификация объектов и букв в шумной графической среде ". Лиллибридж, Абади, Бхарат и Бродер (первая группа) опубликовали свой патент в 1998 году. Оба патента предшествуют другим публикациям на несколько лет, хотя в них не используется термин CAPTCHA, они подробно описывают идеи и точно отображают графические CAPTCHA, используемые в Интернет сегодня.
CAPTCHA, по определению, полностью автоматизированы, требуют минимального обслуживания или вмешательства человека для администрирования, что дает преимущества в стоимости и надежности.
Алгоритм Используемая для создания CAPTCHA должна быть обнародована, хотя может быть защищена патентом. Это сделано, чтобы продемонстрировать, что его нарушение требует решения сложной проблемы в области искусственного интеллекта (ИИ), а не просто открытия (секретного) алгоритма, который может быть получен с помощью обратного проектирования или другие средства.
Современные текстовые CAPTCHA разработаны таким образом, что они требуют одновременного использования трех отдельных возможностей - инвариантного распознавания, сегментации и синтаксического анализа - для правильного выполнения задачи с любой согласованностью.
Каждая из этих проблем представляет собой серьезную проблему для компьютера, даже если она изолирована. Наличие всех трех одновременно - это то, что затрудняет решение CAPTCHA.
В отличие от компьютеров, люди преуспевают в этом типе задач. Хотя сегментация и распознавание - это два отдельных процесса, необходимых для понимания изображения для компьютера, они являются частью одного и того же процесса для человека. Например, когда человек понимает, что первая буква CAPTCHA - это а, этот человек также понимает, где находятся контуры этой буквы, а также где она сливается с контурами следующей буквы. Кроме того, человеческий мозг способен к динамическому мышлению, основанному на контексте. Он может поддерживать несколько объяснений, а затем выбирать то, которое является лучшим объяснением для всего ввода, основываясь на контекстных подсказках. Это также означает, что его не обманут вариации букв.
Хотя CAPTCHA используются в основном по соображениям безопасности, они также служат эталоном для технологий искусственного интеллекта. Согласно статье Ана, Блюма и Лэнгфорда, «любую программу, которая проходит тесты, сгенерированные с помощью CAPTCHA, можно использовать для решения сложной нерешенной проблемы ИИ».
Они утверждают, что преимущества использования сложных задач ИИ как средство безопасности двоякое. Либо проблема остается нерешенной, и остается надежный метод отличия людей от компьютеров, либо проблема решается, и вместе с ней решается сложная проблема ИИ. В случае CAPTCHA на основе изображений и текста, если бы ИИ был способен точно выполнить задачу, не используя недостатки в конкретном дизайне CAPTCHA, тогда он бы решил проблему разработки ИИ, способного распознавать сложные объекты. в сценах.
CAPTCHA, основанные на чтении текста - или других задачах визуального восприятия - предотвращают слепоту или слабовидящие пользователи не могут получить доступ к защищенному ресурсу. Однако CAPTCHA не обязательно должны быть визуальными. Любая сложная проблема искусственного интеллекта, такая как распознавание речи, может быть использована в качестве основы CAPTCHA. Некоторые реализации CAPTCHA позволяют пользователям выбирать звуковые CAPTCHA, хотя в статье 2011 года был продемонстрирован метод борьбы с популярными в то время схемами.
Для незрячих пользователей (например, слепых пользователей или дальтоники человек на тесте на использование цвета), визуальные CAPTCHA представляют серьезные проблемы. Поскольку CAPTCHA не могут быть прочитаны машинами, стандартные инструменты вспомогательных технологий, такие как программы чтения с экрана, не могут их интерпретировать. Поскольку сайты могут использовать CAPTCHA как часть процесса начальной регистрации или даже при каждом входе в систему, эта проблема может полностью заблокировать доступ. В некоторых юрисдикциях владельцы сайтов могут стать объектами судебных разбирательств, если они используют CAPTCHA, которые дискриминируют определенных людей с ограниченными возможностями. Например, CAPTCHA может сделать сайт несовместимым с разделом 508 в США. В других случаях люди с нарушениями зрения могут выбрать слово, которое им читают.
Несмотря на то, что звуковая CAPTCHA позволяет слепым пользователям читать текст, она по-прежнему мешает слепым и глухим. По данным sense.org.uk, около 4% людей старше 60 лет в Великобритании имеют нарушения зрения и слуха. В Великобритании около 23 000 человек с серьезными нарушениями зрения и слуха. По данным Национального консорциума технической помощи для слепоглухих детей и подростков (NTAC), количество слепоглухих детей в США увеличилось с 9 516 до 10 471 в период с 2004 по 2012 год. Цитаты из Университета Галлодета По оценкам с 1980 по 2007 год, в США насчитывается более 35 000 полностью слепоглухих взрослых. Оценки слепоглухих в значительной степени зависят от степени нарушения, использованной в определении.
Таким образом, использование CAPTCHA исключает возможность использования значительных подмножеств таких распространенных веб-сервисов, как PayPal, Gmail, Orkut, небольшому числу людей. Yahoo !, многие системы форумов и веб-журналов и т. Д.
Даже для хорошо зрячих людей новые поколения графических CAPTCHA, разработанные для преодоления сложного программного обеспечения распознавания, могут быть очень трудными или невозможными для чтения.
Метод улучшения CAPTCHA для облегчения работы с ним был предложен ProtectWebForm и получил название «Smart CAPTCHA». Разработчики советуют совмещать CAPTCHA с поддержкой JavaScript. Поскольку большинству спам-роботов слишком сложно анализировать и выполнять JavaScript, был предложен простой сценарий, который заполняет поля CAPTCHA и скрывает изображение и поле от глаз человека.
Один из альтернативных методов включает отображение на пользователю простое математическое уравнение, требующее от пользователя ввода решения в качестве проверки. Хотя их намного легче победить с помощью программного обеспечения, они подходят для сценариев, в которых графические изображения не подходят, и они обеспечивают гораздо более высокий уровень доступности для слепых пользователей, чем CAPTCHA на основе изображений. Иногда их называют MAPTCHA (M = «математический»). Однако это может быть затруднительно для пользователей с когнитивным расстройством.
Другие виды проблем, например, требующие понимания значения некоторого текста (например, логическая головоломка, простой вопрос или инструкции о том, как создать пароль) также можно использовать в качестве CAPTCHA. Опять же, их устойчивость к контрмерам мало исследована.
Есть несколько подходов к победе над CAPTCHA: использование дешевого человеческого труда для их распознавания, использование ошибок в реализации, которые позволяют злоумышленнику полностью обойти CAPTCHA и, наконец, использовать машинное обучение для создания автоматического решателя. По словам бывшего Google "мошенничества с кликами царя" Шумана Гхосемаджумдера, существует множество сервисов, которые автоматически решают CAPTCHA.
В самых ранних версиях не было систематической методологии для разработки или оценки CAPTCHA. В результате было много случаев, когда CAPTCHA имели фиксированную длину, и поэтому можно было создавать автоматизированные задачи, чтобы успешно делать обоснованные предположения о том, где должна происходить сегментация. Другие ранние CAPTCHA содержали ограниченные наборы слов, что значительно облегчало игру. Третьи совершили ошибку, слишком сильно полагаясь на путаницу на фоне изображения. В каждом случае были созданы алгоритмы, которые могли успешно выполнить задачу, используя эти недостатки конструкции. Однако эти методы оказались хрупкими, и небольшие изменения в CAPTCHA легко помешали им. Современные CAPTCHA, такие как reCAPTCHA, больше не полагаются только на фиксированные шаблоны, а вместо этого представляют вариации символов, которые часто сворачиваются вместе, что делает сегментацию практически невозможной. Эти новейшие итерации оказались гораздо более успешными в отражении автоматизированных задач.
В октябре 2013 года компания искусственного интеллекта Vicarious заявила, что она разработала общий алгоритм решения CAPTCHA, который позволяет решать современные CAPTCHA с коэффициентами распознавания символов. до 90%. Однако Луис фон Ан, пионер ранней CAPTCHA и основатель reCAPTCHA, выразил скептицизм, заявив: «Мне сложно произвести впечатление, так как я вижу их каждые несколько месяцев». Он указал, что с 2003 года было сделано 50 заявлений, аналогичных заявлению Vicarious.
В августе 2014 года на конференции Usenix WoOT Bursztein et al. представил первый общий алгоритм решения CAPTCHA, основанный на обучении с подкреплением, и продемонстрировал его эффективность по сравнению со многими популярными схемами CAPTCHA. Они пришли к выводу, что схемы CAPTCHA, основанные на искажении текста, следует считать небезопасными при продвижении вперед.
В октябре 2018 года на конференции ACM CCS'18 Ye et al. представили атаку на основе глубокого обучения, которая может успешно решить все 11 схем текстовых кодов, используемых на топ-50 популярных веб-сайтах в 2018 году, с высоким показателем успеха. Их работа показывает, что эффективный решатель CAPTCHA можно обучить, используя всего 500 реальных CAPTCHA, показывая, что можно быстро запустить атаку с помощью новой текстовой схемы CAPTCHA.
Можно взломать CAPTCHA, передавая их специалистам людей-операторов, которые используются для декодирования CAPTCHA. В документе 2005 года рабочей группы W3C говорится, что такой оператор может проверять сотни данных в час. В 2010 году Калифорнийский университет в Сан-Диего провел крупномасштабное исследование ферм этих CAPTCHA и обнаружил, что розничная цена на решение одного миллиона CAPTCHA составляет всего 1000 долларов.
Другой Описанный метод состоит в использовании сценария для повторной публикации CAPTCHA целевого сайта в качестве CAPTCHA на сайте, принадлежащем злоумышленнику, который ничего не подозревающие люди посещают и правильно решают в течение короткого времени для использования сценарием. Этот метод, вероятно, будет экономически невыгоден для большинства злоумышленников из-за затрат на привлечение достаточного количества пользователей и запуск популярного сайта.
Существует несколько интернет-компаний, таких как 2Captcha и DeathByCaptcha которые предлагают услуги по решению CAPTCHA, поддерживаемые человеком и машиной, по цене от 0,50 доллара США за 1000 решенных CAPTCHA. Эти службы предлагают API-интерфейсы и библиотеки, которые позволяют пользователям интегрировать обход CAPTCHA в инструменты, которые CAPTCHA были разработаны для блокировки в первую очередь.
Говард Йенд выявил две проблемы реализации с плохо разработанные системы CAPTCHA:
Иногда, если часть программного обеспечения, генерирующего CAPTCHA, является клиентской стороной (проверка выполняется на сервере, но текст, который пользователь должен идентифицировать, отображается на стороне клиента), затем пользователи могут изменить клиент для отображения необработанного текста. Некоторые системы CAPTCHA используют хэши MD5, хранящиеся на стороне клиента, что может сделать CAPTCHA уязвимым для атаки полным перебором.
Некоторые известные атаки на различные схемы CAPTCHA включают:
После демонстрации того, что CAPTCHA на основе искажения текста уязвимы для атак на основе машинного обучения, некоторые исследователи предложили альтернативы, включая CAPTCHA распознавания изображений, которые требуют от пользователей идентификации простых объектов на представленных изображениях. Аргументом в пользу этих схем является то, что такие задачи, как распознавание объектов, обычно более сложны для выполнения, чем распознавание текста, и поэтому они должны быть более устойчивыми к атакам на основе машинного обучения. Вот некоторые из известных альтернативных схем CAPTCHA: