На многих сайтах во время регистрации нас просят в конце ввести слово с картинки или найти все пешеходные переходы. Это называется капча — специальная технология, которую придумали, чтобы отличать людей от роботов. Рассказываем, как это работает и что не так с современной капчей.
Что такое капча
Капча — это русское произношение английского CAPTCHA, что расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart. В переводе на русский — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.
Тест Тьюринга тут совсем ни при чём, просто его притянули за компанию. А суть верная: капча помогает компьютеру определить, что перед ним живой пользователь, а не бот, который регистрируется ради спама или какой-нибудь другой вредной деятельности.
Как это выглядит
Идея капчи в том, чтобы дать задание, с которым человек справится легко, а компьютер нет (или ему потребуется гораздо больше времени и ресурсов).
Самый простой пример капчи — разобрать слова на картинке и ввести их в форму:


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

Зачем она нужна
Капчу придумали в нулевых для того, чтобы спамеры не заводили себе с помощью скриптов бесконечное число почтовых ящиков. Тогда можно было написать простой скрипт, который за минуту зарегистрировал бы тысячу адресов электронной почты, чтобы рассылать с них спам. Чтобы такого не было, придумали капчу как способ отличать действия скрипта от действий человека.
Сейчас капча используется для того же — защитить сервисы от того, чтобы ими пользовались роботы, а не люди, например:
- защитить сайт от подозрительного роста запросов или трафика;
- отсеять настоящих участников мероприятий от ботов;
- запретить бесконтрольную регистрацию аккаунтов.
Получается, что основная задача капчи — отсеять как можно больше скриптов и пропустить как можно больше людей.
Как технически это устроено
Самая первая капча была устроена очень просто: алгоритм переводил текст в картинку, а человек должен был прочитать это и ввести ответ. Сервер сравнивал ответ пользователя с тем, что записано у него в базе, и если он совпадал — разрешал что-то дальше делать на сервере.
Текст был написан обычным шрифтом без искажений — тогда алгоритмы компьютерного зрения не были так распространены, чтобы пользоваться ими для распознавания капчи:

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

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

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

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

Минусы капчи
У современной капчи есть два больших минуса:
- Есть нейросети, которые легко обходят почти любую капчу.
- Капча становится настолько сложной, что человек не всегда может её пройти.
Получается, что сейчас от капчи в некоторых случаях больше вреда, чем пользы: эффекта немного, но пользоваться сервисом не получается из-за сложностей алгоритмов.
Есть мнение, что скоро капча исчезнет и превратится в фоновый сервис на сайте. Он будет следить за действиями пользователя и всё время пытаться понять — это человек сейчас на сайте или другая нейросеть. А пока этого не произошло — будем угадывать слова и выбирать львов на картинках.
Что дальше
В следующий раз добавим капчу на свой учебный сайт и посмотрим, как она будет работать. Заодно выясним, какую капчу лучше выбрать и чем они различаются между собой на практике.
P. S. Капча-арт
На Реддите добрые люди уже много лет как создают произведения искусства, навеянные словами из капчи:
