Капча: зачем мы вписываем эти буквы и отмечаем мосты?
easy

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

Как мы доказываем роботам, что мы не роботы

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

Что такое капча

Капча — это русское произношение английского CAPTCHA, что расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart. В переводе на русский — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.

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

Как это выглядит

Идея капчи в том, чтобы дать задание, с которым человек справится легко, а компьютер нет (или ему потребуется гораздо больше времени и ресурсов).

Самый простой пример капчи — разобрать слова на картинке и ввести их в форму:

Капча: зачем мы вписываем эти буквы и отмечаем мосты?
Капча: зачем мы вписываем эти буквы и отмечаем мосты?

Ещё популярная тема — найти пешеходные переходы, светофоры или автобусы:

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

Зачем она нужна

Капчу придумали в нулевых для того, чтобы спамеры не заводили себе с помощью скриптов бесконечное число почтовых ящиков. Тогда можно было написать простой скрипт, который за минуту зарегистрировал бы тысячу адресов электронной почты, чтобы рассылать с них спам. Чтобы такого не было, придумали капчу как способ отличать действия скрипта от действий человека.

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

  • защитить сайт от подозрительного роста запросов или трафика;
  • отсеять настоящих участников мероприятий от ботов;
  • запретить бесконтрольную регистрацию аккаунтов.

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

Как технически это устроено

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

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

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

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

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

С развитием нейросетей капча поменялась: теперь алгоритмы используют человека как бесплатный инструмент распознавания сложного текста. Так появился проект reCaptcha компании Google — алгоритм знает, как распознаётся первое слово, а второе берёт из оцифрованных старых книг и газет. Человек его, получается, размечает и помогает «Гуглу» дообучиться:

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

Алгоритм показывал одну и ту же капчу разным пользователям, и если большинство из них указывали одни и те же данные, то это принималось за правильный ответ. Проект оказался настолько успешным, что за несколько дней работы такой капчи получалось оцифровывать годовой выпуск старых газет и неистово натренировать нейросети «Гугла». 

Сейчас нейросети шагнули дальше и предлагают просто поставить галочку «Я не робот»:

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

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

Самое интересное, что здесь она тоже будет оценивать не только правильность, но и скорость выбора нужных объектов и поведение на странице. А выбор нужных объектов, в свою очередь, помогает дообучать модели компьютерного зрения того же «Гугла».

Капча: зачем мы вписываем эти буквы и отмечаем мосты?

Минусы капчи

У современной капчи есть два больших минуса:

  1. Есть нейросети, которые легко обходят почти любую капчу. 
  2. Капча становится настолько сложной, что человек не всегда может её пройти. 

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

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

Что дальше

В следующий раз добавим капчу на свой учебный сайт и посмотрим, как она будет работать. Заодно выясним, какую капчу лучше выбрать и чем они различаются между собой на практике.

P. S. Капча-арт

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

Капча: зачем мы вписываем эти буквы и отмечаем мосты?
Источник: Math Fatality от prodlly

Корректор:

Ира Михеева

Художник:

Алексей Сухов

Вёрстка:

Кирилл Климентьев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy