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

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

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

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

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

grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {

...

});

});

</script>

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

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

{

"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.5. Например, на главной странице рекомендуется блокировать только явные скраперы (скажем, только 0.0). На форме авторизации можно фильтровать всех, кто ниже 0.5, предлагая им двухфакторную авторизацию или верификацию почтового адреса, чтобы защититься от брутфорс-атак. Теперь проверку можно запускать несколько раз на одной странице, в нужные моменты времени и незаметно для пользователя.

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



Объявляем акцию «Больше киберзащиты спорту»!
image

GlobalSign присоединяется к празднованию самого грандиозного события всех спортсменов и футбольных болельщиков – ЧЕМПИОНАТУ МИРА ПО ФУТБОЛУ 2018 и ДАРИТ 1 ГОД SSL ЗАЩИТЫ!*


Условия акции:
* При покупке любого однолетнего SSL-сертификата DV, OV или EV уровня, второй год вы получаете в подарок.
• Акция распространяется на все сайты спортивной тематики.
• Акция действует только на новые заказы и не распространяется на партнеров.
• Чтобы воспользоваться предложением, отправьте запрос на сайте с указанием промо-кода: SL003HBFR.

Акция продлится до 15 июля 2018 г.

Получить дополнительную информацию по акции вы можете у менеджеров GlobalSign Russia по телефону: +7 (499) 678 2210.

БОЛЬШЕ ЗАЩИТЫ c GlobalSign!

Комментарии (33)


  1. Barafu_Albino_Cheetah
    25.06.2018 10:48

    Пользователей тачскринов и экзотических мышей, в который раз, за людей не считают?


    1. Neusser
      25.06.2018 11:22
      +1

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


    1. demimurych
      25.06.2018 12:39

      Пример с мышью, это демонстрации общего направления в том как работают алгоритмы. Наверняка все намного сложнее, например — очень много сайтов содержит счетчик гугл аналитики, которая легко может снимать поведенческие факторы Вас с планшетом. Чего может быть вполне достаточно для того чтобы решить что Вы человек.


    1. Carburn
      25.06.2018 14:45

      С чего ты взял, что тач-события не обрабатываются?


      1. Barafu_Albino_Cheetah
        25.06.2018 14:52

        Я такого не говорил. Все эти «невидимые капчи» (эта далеко не первая) построены на том, что боту дорого и сложно эмулировать разные тонкости, вроде реалистичного движения курсора мыши при подъезжании к кнопке, задержек печати и прочего. Но при использовании тачскрина — нет движения курсора мыши, а при использовании голосового ввода — нет случайных задержек между буквами. Исторически, все хитроумные капчи на такие системы реагировали «точно бот». Тачскрины сейчас ещё хоть стали распространённее, а голосовой ввод текста как был специальным случаем, так и остался.


        1. Carburn
          25.06.2018 15:01

          Зато есть события движения пальца.


          1. Barafu_Albino_Cheetah
            25.06.2018 17:22

            Есть, но люди обычно тапают ссылки напрямую, а не водят пальцем между ними.


            1. Carburn
              25.06.2018 17:23

              Страницу прокручивают


              1. Barafu_Albino_Cheetah
                25.06.2018 17:26

                Вот тут я не знаю, а передаст ли при прокрутке браузер странице конкретные положения пальцев, или только общее «прокрутка — 20 пикселей», от которого капче толку не будет. Не знаю.


                1. Carburn
                  26.06.2018 01:37

                  По умолчанию событие touchmove срабатывает каждые 10 px. На телефоне 20 пикселей это мало, высота экрана 1920 пикселей.
                  Пример считывания события patrickhlauke.github.io/touch/gesture-touch


                  1. Carburn
                    26.06.2018 01:56

                    Еще от времени прокрутки зависит. Здесь можешь количество событий перемещения касания посмотреть. jsfiddle.net/xs5BG/2/embedded/result


  1. dzerik
    25.06.2018 11:27
    +2

    Я правильно понял, что если буду резать рекламу, куки от гугла и прочие «наблюдающие» инструменты — я буду определен как бот, и меня перестанут пускать на сайты, так как ручной капчи не предусмотрено?


    1. LexS007
      25.06.2018 11:57

      Верно. 2 версия уже итак не слабо подпортила нервы любителям чистить куки и режима инкогнито, новая версия продолжит эту нелегкую миссию.


      1. mwizard
        25.06.2018 12:27

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


    1. Gurturok
      25.06.2018 12:19

      Это бета, потом добавят ручную при провале автоматической, иначе их быстренько лесом пошлют.


      1. Carburn
        25.06.2018 14:53

        С чего ты взял, что сейчас ручной нет?


    1. ninJo
      25.06.2018 16:50

      Если низкий «индекс человечности», то могут попросить ввести обычную капчу.

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


    1. Igrek_L
      25.06.2018 17:25

      Так и есть. Privacy Badger, Canvas Fingerprint Defender и CanvasFingerprintBlock вываливают на ручную капчу.


  1. igrig
    25.06.2018 12:11

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


    1. kirosvi
      25.06.2018 17:07

      так вот как они обучают свои робомобили…


  1. Gurturok
    25.06.2018 12:19

    Фигня это все, если пользоваться: общественными vpn, tor, бесплатными точками доступа или просто мобильным интернетом, невидимая проверка просто не пройдет(как сейчас с проверкой-галочкой) и появится: «найди Аввввтомобиль!».
    Ну и про блокировку скриптов, куков и прочей телеметрии гугла выше подмечено, если есть — на вас попутно собирают архив, если нет — решайте ребусы.


    1. demimurych
      25.06.2018 12:43

      Наверняка при невозможности дать точный ответ будет рол бэк к типичной капче. Капчу этой версии следует воспринимать скорее как существенное улучшение предыдущих версий капчи. Если эта версия капчи правильно отработает хотя бы для 3 человек из 10ти — это будет означать что у сайта появилось 3 человека которые не раздражены работой капчи, а это уже ОЧЕНЬ неплохо.


      1. Barafu_Albino_Cheetah
        25.06.2018 14:35

        Увы, это также означает, что ещё три админа повесили капчу там, где она не нужна, потому что «ну она же никому не мешает теперь?»


    1. Barafu_Albino_Cheetah
      25.06.2018 14:33

      В лучшем случае. Знаете такой мусоросборник рунета: pikabu? Ну так меня после переустановки ОС он просто не пускает, доступ заблокирован и всё тут. И хрен бы с ним, если бы люди с форумов так иллюстрации не публиковали к своим постам.


  1. robert_ayrapetyan
    25.06.2018 16:48

    И эта обходится, правда, теперь армия исполнителей делится на элитных и не очень: 2captcha.com/solving_recaptcha_v3


    1. Exchan-ge
      26.06.2018 10:06

      И эта обходится

      Из доступного широким массам: https://anti-captcha.com/mainpage


  1. Alex_ME
    25.06.2018 20:47
    +1

    Как говорится, шо то, шо это. Режим инкогнито, впн или просто выход в интернет из какого-то общественного места — давай выбирай витрины и дороги по 10 раз. А тут непонятно, что делать в случае ложно-отрицательного срабатывания.


  1. dron41k
    25.06.2018 22:16

    Расскажите, как они используют каптчи для уточнения оцифровки книг или обучения нейросетей? Как они понимают, что пользователь ввел каптчу правильно, если они сами не знают, что на картинке? А если знают, какая тогда помощь?


    1. funca
      25.06.2018 22:37

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


    1. maxzhurkin
      25.06.2018 22:41

      Статистика? Пользователь не один


    1. sabio
      26.06.2018 00:29

      В такой "капче" обычно было два слова. Первое — самая обычная "капча", а второе — из книги или позже — фотографии дома.
      Для непроверяемого второго слова в качестве начальных вариантов использовались версии разных OCR-алгоритмов. (Т.е. система всё же "немного знала, что на картинке") По мере накопления статистики, определялся лидирующий вариант. И затем он начинал участвовать в проверке.


    1. cornerot
      26.06.2018 10:13

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


  1. 907
    26.06.2018 01:10

    Скорей бы все ввели эту продвинутую капчу!
    А то, без обид, иногда убить охота создателей капчи!...)))))
    Прямо ненависть возникает иногда…
    Сидишь, мучаешься и думаешь какие это человеконенавистники придумали эту капчу..!