Открыть сервисСервис

CAPTCHA — технология проверки пользователя

CAPTCHA (англ. Completely Automated Public Turing test to tell Computers and Humans apart — «полностью автоматизированная публичная тьюрингова проверка, отличия компьютеров от людей») — технология защиты интернет-ресурсов, основанная на постановке перед пользователем задания, которое легко выполняется человеком, но затруднено для автоматизированной программы. Формулировка «подтвердите, что вы не робот» является типичным текстом интерфейса, сопровождающим такую проверку.

Принцип работы

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

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

История

Идея автоматической проверки восходит к 1950 году, когда Алан Тьюринг предложил тест на интеллект. Практическую реализацию предложили в 1997 году Марк Лиллибридж и его коллеги из компании AltaVista, стремившиеся защитить поисковый индекс от автоматических роботов, перегружавших сайты. Их система просила пользователя ввести искажённые слова, отсканированные из книг, — это был один из первых примеров задачи, которую человек решал легко, а машина с трудом.

Термин CAPTCHA ввёл в 2000 году Луис фон Ан из Карнеги-Меллон университета, предложивший также более сложную разновидность reCAPTCHA. В её основе лежала идея двойного назначения: пользователь распознавал два искажённых слова, одно из которых было известно системе (для проверки), а второе — нет. Таким образом проверка пользователя попутно помогала оцифровывать старые книги и газеты. Проект перерос в сервис Google в 2011 году.

Основные виды

ВидПринципУязвимости
Текстовая CAPTCHAВвод искажённых букв и цифрРаспознаётся OCR и нейросетями
Логическая / математическаяРешение примера или задачиИногда решается программно
ИзображенияВыбор картинок по критерию («выберите все светофоры»)Обходится с помощью нейросетей и кликфарм
3D-текстРаспознавание объёмных буквСложна для старых версий OCR
Невидимая CAPTCHAАнализ поведения пользователя (движения мыши, скорость ввода, история браузера)Может давать ложные срабатывания
Слуховая CAPTCHAРаспознавание озвученных цифр и буквПомогает обойти блокировку слабовидящим

Проблемы и обход

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

Параллельно возникла индустрия решения CAPTCHA за вознаграждение: специальные сервисы и «фермы» людей расшифровывают изображения за небольшие деньги. Это привело к тому, что часть проверок стала барьером не для роботов, а для людей — в частности, для слабовидящих, пожилых пользователей и людей с когнитивными особенностями. Многие сервисы добавили аудиоверсии, но они, в свою очередь, уязвимы для распознавания речи.

CAPTCHA в России

В российском интернете широкое распространение получил сервис «Роботcaptcha» и аналогичные решения от Яндекса (SmartCaptcha). Яндекс в 2017 году запустил собственную систему, которая при низком уровне подозрений пропускает пользователя без какого-либо задания, а при высоком — предъявляет классические или интерактивные проверки. Популярность таких систем объясняется необходимостью защитить сервисы от накрутки, регистрации фейковых аккаунтов и автоматических атак.

Значение

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

Источники

  • Ruane J., Birge R. R., Shutler T. «CAPTCHA: Using Hard AI Problems for Security» // Advances in Cryptology — EUROCRYPT 2003
  • Von Ahn L., Blum M., Hopper N. J., Langford J. «CAPTCHA: Using Hard AI Problems for Security» // Carnegie Mellon University, 2003
  • Goodfellow I. J., Shlens J., Szegedy C. «Explaining and Harnessing Adversarial Examples» // ICLR, 2015
  • Публикации Яндекса о технологии SmartCaptcha
  • Статьи о развитии reCAPTCHA, Google
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru