Хабрахабр

Третья версия reCAPTCHA срабатывает в фоне незаметно для пользователей

В мае этого года на конференции конференции Google I/O 2018 представили третью версия технологии reCAPTCHA — reCAPTCHA v3 (бета). Как известно, это самая популярная система типа CAPTCHA, которая создана для блокировки ботов, то есть автоматизированных действий на разных сервисах.

Ещё reCAPTCHA критикуют за излишнюю сложность: людям трудно или невозможно правильно ответить на вопрос: тест становится просто абсурдным. Систему критиковали за эксплуатацию бесплатного человеческого труда (в случае первой версии, которую Google использовала для оцифровки книг), за осложнение жизни людям с нарушениями зрения и другими болезнями вроде дислексии. Ситуация не слишком улучшилась с выпуском второй версии (где нужно выбрать картинки, содержащие указанный объект). На иллюстрации слева показы несколько примеров с первой версии reCAPTCHA.

Она точно никому не помешает, потому что работает незаметно для пользователей, используя методы поведенческого анализа.
Сначала немного истории. Но третья версия — совершенно другое дело. К 2011 году с её помощью уточнялись результаты OCR в оцифровке архивов газеты The New York Times (более 13 млн статей с 1851 года) и книг Google Books. Первая версия reCAPTCHA появилась в далёком 2007 году и служила благой цели: одновременно с блокировкой спама и ботов она ещё помогала в оцифровке книг.

Примерно с 2013 года Google начала применять поведенческий анализ действий пользователя в браузере (advanced risk analysis), а в 2014 году была реализована вторая версия системы, где нужно было выбрать несколько «правильных» картинок из набора девяти изображений, но при этом появилась возможность пройти тест в один клик. С 2012 года в систему добавили фрагменты фотографий домов из сервиса Google Street View. Если действия похожи на бота — ему давали усложнённый тест с распознаванием объектов на изображениях. Если действия были похожи на человека, то пользователь проходил тест без решения каких-либо задач вообще: просто достаточно нажать кнопку «Я не робот» (так называемая NoCAPTCHA).


NoCAPTCHA

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


Презентация третьей версии системы на конференции Google I/O 2018

В третьей версии reCAPTCHA усовершенствован поведенческий анализ (или слежка Google за пользователями, если кто-то представляет это в таком свете), то есть та самая вышеупомянутая система advanced risk analysis, продвинутого анализа риска.

Достаточно загрузить вместе со страницей библиотеку reCAPTCHA и запустить grecaptcha.execute в определённый момент или сразу в момент загрузки страницы. Теперь система работает «в фоне» и незаметно для пользователей. Пользователь ничего не замечает — а вы через через JavaScript API получите с сервера reCAPTCHA оценку этого пользователя на основании его взаимодействия с сайтом и других параметров. И это всё.

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script> <script> grecaptcha.ready(function() ).then(function(token) { ... }); }); </script>

Есть предположения, что кроме движения курсора мыши, система начала отслеживать и другие параметры, такие как нажатия мыши. Об этом можно только догадываться. Никакой информации о внутренней работе системы Google на даёт, чтобы не помогать спамерам и владельцам ботов.

0 (вероятный бот) до 1. С точки зрения веб-мастера, может быть, главное отличие третьей версии — что по запросу через API сервер reCAPTCHA выдаёт не бинарное значение, а оценку в диапазоне от 0. Ответ присылается в формате JSON: 0 (вероятный человек) для данного конкретного запроса.

{ "success": true|false, // whether this request was a valid reCAPTCHA token for your site "score": number // the score for this request (0.0 - 1.0) "action": string // the action name for this request (important to verify) "challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ) "hostname": string, // the hostname of the site where the reCAPTCHA was solved "error-codes": [...] // optional }

Как видно из ответа сервера, в reCAPTCHA v3 представлена новая концепция «действий» (actions). Если определить разные названия действий в разных местах сайта, то система как бы начнёт «подстраиваться» под разные нужды: станет адаптивной (adaptive risk analysis).

По умолчанию уровень установлен в 0. Другими словами, владелец сайта сам выбирает «уровень отсечения» и какие действия предпринимать для пользователей выше или ниже этого уровня на разных страницах. Например, на главной странице рекомендуется блокировать только явные скраперы (скажем, только 0. 5. На форме авторизации можно фильтровать всех, кто ниже 0. 0). Теперь проверку можно запускать несколько раз на одной странице, в нужные моменты времени и незаметно для пользователя. 5, предлагая им двухфакторную авторизацию или верификацию почтового адреса, чтобы защититься от брутфорс-атак.

Чтобы принять участие в бета-тестировании третьей версии системы, необходимо зарегистрировать на этой странице.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть