Как стать автором
Обновить
110.03

Эволюция CAPTCHA: доказательство PoW, продвинутые боты

Время на прочтение3 мин
Количество просмотров4.5K


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

Например, mCaptcha — опенсорсная CAPTCHA, работающая по принципу proof-of-work. Её уже можно встретить на некоторых сайтах.

mCaptcha не требует распознавать картинки велосипедов или тротуаров, она работает гораздо проще, обычно посетителю достаточно нажать одну кнопку. Здесь не нужно решать головоломки, просто mCaptcha нагружает компьютер пользователя вычислительными задачами — и проверяет результат. Предполагается, что злоумышленнику невыгодно брать на себя такую нагрузку для DDoS-атаки.

Как работает mCaptcha


Алгоритм работы простой.

Для ограничения скорости работы пользователей в mCaptcha используется система proof-of-work (PoW) на основе SHA256.

Когда пользователь хочет что-то сделать на сайте, защищённом mCaptcha,

  1. Он должен сгенерировать доказательство работы (много математических вычислений, которые займут некоторое время) и отправить его mCaptcha.
  2. Доказательство проверяется:
    • В случае неуспешной проверки доступ к сайту блокируется.
    • Если проверка прошла успешно, читайте дальше, будет выдан токен, который необходимо отправить вместе с запросом/формой на целевой сайт.
  3. Перед обработкой запроса целевой сайт проверяет отправленный токен с помощью mCaptcha.

Как видим, система работает просто. С точки зрения пользователя всё автоматизировано. От него требуется только нажать на кнопку, чтобы инициировать процесс.

Алгоритм mCaptcha динамически изменяет сложность PoW, так что обычный пользователь даже не заметит задержки при доступе к сайту. С другой стороны, серверы потенциальных злоумышленников будут серьёзно нагружать вычислительными задачами (задержка до 2–3 секунд перед доступом к сайту), что сделает их работу нерентабельной. Вот примерное время выполнения теста (WASM-библиотека) на процессоре Core i7-9750H в разных Firefox и Chromium (в миллисекундах):

Сложность Firefox (мс) Chromium (мс)
500000 401 399
1000000 413 355
1500000 398 351
2000000 394 354
2500000 1495 1338
3000000 1556 1311
3500000 3971 3418
4000000 4235 3488
4500000 4116 3458

Основная идея mCaptcha состоит в том, чтобы сервер злоумышленника проделывали больше работы для отправки запроса, чем ваш сервер для выдачи ответа. Сугубо экономический расчёт.

Для регистрации в системе нужно создать новый аккаунт и добавить туда свой сайт:



Среди прочего, указать три параметра:

  • среднее количество посетителей;
  • максимальное количество посетителей, которое выдерживает сайт;
  • граничное количество, которое сайт точно не выдержит (опционально).

От этих параметров зависит значение Cooldown Duratoin, которое устанавливается в секундах.

Затем добавляем сгенерированный сниппет на страницы сайта и логику проверки на сервер. Разработчик заявляет, что виджет mCaptcha и админская панель полностью совместимы c LibreJS и другими блокировщиками, то есть не должны блокироваться:



Другие виды CAPTCHA


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

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


Разновидности CAPTCHA

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


Время и точность решения различных типов CAPTCHA людьми и ботами, источник

На сегодняшний день точность ботов в решении задач составляет 85–100%, причём в большинстве задач она превышает 96%. Это существенно превышает диапазон точности человека (50–85%). Кроме того, время решения задач ботами значительно ниже во всех случаях, за исключением reCAPTCHA, где время решения человеком (18 с) практически совпадает со временем решения ботами 17,5 с).

Таким образом, со всеми типами CAPTCHA боты сейчас справляются лучше человека.

Хабы: Информационная безопасность, Обработка изображений, Open Source, Разработка веб-сайтов
Метки:
Обложка для соцсетей:
Теги:
Хабы:
Всего голосов 11: ↑9 и ↓2+12
Комментарии25

Публикации

Информация

Сайт
www.globalsign.com
Дата регистрации
Дата основания
1996
Численность
501–1 000 человек
Местоположение
Япония