Капча: зачем мы вписываем эти буквы и отмечаем мосты?
На многих сайтах во время регистрации нас просят в конце ввести слово с картинки или найти все пешеходные переходы. Это называется капча — специальная технология, которую придумали, чтобы отличать людей от роботов. Рассказываем, как это работает и что не так с современной капчей.
Что такое капча
Капча — это русское произношение английского CAPTCHA, что расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart. В переводе на русский — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.
Тест Тьюринга тут совсем ни при чём, просто его притянули за компанию. А суть верная: капча помогает компьютеру определить, что перед ним живой пользователь, а не бот, который регистрируется ради спама или какой-нибудь другой вредной деятельности.
Как это выглядит
Идея капчи в том, чтобы дать задание, с которым человек справится легко, а компьютер нет (или ему потребуется гораздо больше времени и ресурсов).
Самый простой пример капчи — разобрать слова на картинке и ввести их в форму:
Ещё популярная тема — найти пешеходные переходы, светофоры или автобусы:
Зачем она нужна
Капчу придумали в нулевых для того, чтобы спамеры не заводили себе с помощью скриптов бесконечное число почтовых ящиков. Тогда можно было написать простой скрипт, который за минуту зарегистрировал бы тысячу адресов электронной почты, чтобы рассылать с них спам. Чтобы такого не было, придумали капчу как способ отличать действия скрипта от действий человека.
Сейчас капча используется для того же — защитить сервисы от того, чтобы ими пользовались роботы, а не люди, например:
- защитить сайт от подозрительного роста запросов или трафика;
- отсеять настоящих участников мероприятий от ботов;
- запретить бесконтрольную регистрацию аккаунтов.
Получается, что основная задача капчи — отсеять как можно больше скриптов и пропустить как можно больше людей.
Как технически это устроено
Самая первая капча была устроена очень просто: алгоритм переводил текст в картинку, а человек должен был прочитать это и ввести ответ. Сервер сравнивал ответ пользователя с тем, что записано у него в базе, и если он совпадал — разрешал что-то дальше делать на сервере.
Текст был написан обычным шрифтом без искажений — тогда алгоритмы компьютерного зрения не были так распространены, чтобы пользоваться ими для распознавания капчи:
Потом с улучшением алгоритмов распознавания символов текст стал сложнее — искажённый, не такой контрастный и не такой понятный. С другой стороны, человеку прочитать такое тоже стало сложнее:
С развитием нейросетей капча поменялась: теперь алгоритмы используют человека как бесплатный инструмент распознавания сложного текста. Так появился проект reCaptcha компании Google — алгоритм знает, как распознаётся первое слово, а второе берёт из оцифрованных старых книг и газет. Человек его, получается, размечает и помогает «Гуглу» дообучиться:
Алгоритм показывал одну и ту же капчу разным пользователям, и если большинство из них указывали одни и те же данные, то это принималось за правильный ответ. Проект оказался настолько успешным, что за несколько дней работы такой капчи получалось оцифровывать годовой выпуск старых газет и неистово натренировать нейросети «Гугла».
Сейчас нейросети шагнули дальше и предлагают просто поставить галочку «Я не робот»:
За то время, пока пользователь ставит галочку, нейросеть анализирует действия человека на странице: как он двигает мышкой, как быстро находит галочку, как быстро нажимает, что делает потом и так далее. Если нейросеть посчитает, что перед ней человек, — пропустит его дальше, а если нет — покажет те самые картинки с гидрантами или автобусами.
Самое интересное, что здесь она тоже будет оценивать не только правильность, но и скорость выбора нужных объектов и поведение на странице. А выбор нужных объектов, в свою очередь, помогает дообучать модели компьютерного зрения того же «Гугла».
Минусы капчи
У современной капчи есть два больших минуса:
- Есть нейросети, которые легко обходят почти любую капчу.
- Капча становится настолько сложной, что человек не всегда может её пройти.
Получается, что сейчас от капчи в некоторых случаях больше вреда, чем пользы: эффекта немного, но пользоваться сервисом не получается из-за сложностей алгоритмов.
Есть мнение, что скоро капча исчезнет и превратится в фоновый сервис на сайте. Он будет следить за действиями пользователя и всё время пытаться понять — это человек сейчас на сайте или другая нейросеть. А пока этого не произошло — будем угадывать слова и выбирать львов на картинках.
Что дальше
В следующий раз добавим капчу на свой учебный сайт и посмотрим, как она будет работать. Заодно выясним, какую капчу лучше выбрать и чем они различаются между собой на практике.
P. S. Капча-арт
На Реддите добрые люди уже много лет как создают произведения искусства, навеянные словами из капчи:
Нейросети победили. Победите нейросети
Проходите подготовку на продвинутых курсах, чтобы не нейросети заменили вас, а вы создали нейросети. «Практикум» подобрал для вас фундаментальные и навыковые курсы, чтобы это сделать. Начните здесь, это бесплатно:
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Немного об истории CAPTCHA
Системы глубокого анализа трафика имеют дополнительную защитную функцию. Речь идет о защите от DDoS. Для этого используется один из самых популярных и эффективных способов — CAPTCHA, или полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей.
Сам по себе тест достаточно известен, однако в его истории и эволюции есть несколько любопытных фактов, о которых мы хотим сегодня рассказать.
/ Flickr / F▲IL / CC
Оригинальная система была разработана в начале XXI века инженерами из Университета Карнеги — Меллона, США. Команда под руководством Луиса фон Ана (Luis von Ahn) искала способ фильтрации регистраций на сайтах, выполняемых автоматическими программами и спам-ботами.
Команда разработала систему, показывающую пользователю сильно искаженный текст, который невозможно распознать программными алгоритмами. Работу с ресурсом можно было продолжать только после того, как отображаемое слово было корректно введено в намеченное поле. Решение получилось настолько удачным, что стало активно применяться по всему миру.
Однако это быстро привело к появлению нового вида заработка в интернете — решению задач CAPTCHA. Спамеры начали платить людям за ввод «контрольной фразы». Такой доход стал популярен в бедных странах, где возможность получить пусть и минимальные деньги за тысячи решений CAPTCHA достаточно привлекательна.
Несмотря на это, сервис не утратил популярности, наоборот, разработчиков начала беспокоить мысль, что они заставляют миллионы людей бессмысленно переводить изображения в текст, понапрасну растрачивая время и усилия, не принося никакой практической пользы. Поэтому Луис задался вопросом: «Можно ли сделать с этим временем что-то полезное?».
И нашел на него ответ, представив приложение reCAPTCHA спустя некоторое время. Оно по-прежнему было «завязано» на вводе изображений с картинки, но вместо случайного набора символов пользователь должен был «расшифровать» реальный текст из архивных документов. Программное обеспечение того времени уже было способно распознавать печатные тексты с достаточно высокой точностью, однако все равно в книгах со временем чернила расплываются, что мешало компьютерам определить некоторые слова. Человек же с этим справляется без особых проблем.
Первыми в очереди на распознавание оказались архивные номера газеты The New York Times. После этого, когда в 2009 году сервис купила компания Google, расшифровке подверглись старые книги. Получается, что каждый раз, вводя текст с reCAPTCHA, вы разбираете фрагменты из реальных архивных текстов. Луис фон Ан был очень доволен новой версией программы, уверяя, что сервис проживет очень долго, поскольку печатного материала в архивах предостаточно.
Подобные эксперименты были проведены и по распознаванию изображений из Google Maps и Google Street View. Однако в скором времени аналитикам компании Google пришлось искать ответ на успешные попытки автоматизации «взлома» даже самых сложных изображений с вероятностью, превышающей 90%.
Для решения возникшей проблемы Google начали совершенствовать технологию, и в 2015 году инженеры компании представили новое решение, которое не обязывало пользователя распознавать символы. Новая система анализировала поведение пользователя на сайте до момента нажатия проверочной кнопки «Я не робот», а затем делала вывод: человек это или бот.
Если анализ не давал однозначного результата, то пользователю предлагалось пройти дополнительную проверку, например, выбрать из нескольких картинок все, на которых изображены деревья.
Другие CAPTCHA и иные решения
Помимо самых распространенных систем от компании Google, сегодня имеются и другие решения, направленные на различение человека и машины. Так, разработчики сервиса TextCAPTCHA предлагают пользователям отвечать на простые логические вопросы. Например, о том, какая буква в слове «автомобиль» стоит на третьем месте.
Считается, что таких запутанных формулировок будет достаточно, чтобы обмануть «автомат», а конкретные вопросы гораздо проще в плане восприятия человеком. Также некоторые разработчики тестов Тьюринга придерживаются мнения, что лучше просить пользователей решать несложные математические уравнения.
Еще одно интересное решение было предложено Facebook в январе 2011 года. Компания экспериментировала с так называемой социальной аутентификацией. По словам представителей компании, идея заключалась в том, чтобы показать пользователю несколько фотографий его друга и попросить назвать его имя.
Специалисты Facebook были уверены в том, недоброжелатели могут быть едва ли знакомы с вашими друзьями и не станут собирать всю информацию о вам круге общения, что в целом достаточно спорное утверждение.
Также различными онлайн-сервисами используются и другие методы «фильтрации» пользователей, которые дают еще один уровень защиты. Они заменяют или дополняют CAPTCHA.
/ Flickr / Tarek / CC
Honeypot. В 2007 году Фил Хаак (Phil Haack) предложил любопытный метод определения ботов. Он получил название Honeypot. Его особенность заключается в добавлении дополнительного поля при заполнении онлайн-формы, которое было бы невидимо для пользователя-человека. Бот не способен понять, видимо это поле или нет, потому заполняет его «по инерции», что позволяет администратору заблокировать регистрацию как спам.
Временные ограничения. В среднем, сколько времени вам требуется на заполнение онлайн-формы с 10 полями? Большинство людей тратит на это несколько минут, в то время как боты делают это практически мгновенно. Идея решения состоит в том, чтобы отметить как подозрительные все регистрации, поля формы во время которой были заполнены быстрее определенного промежутка времени. Этот способ хорошо работает до тех пор, пока спамеры не поймут, что такой временной порог существует, после этого они учат свои системы заполнять поля ввода помедленнее.
Интересные и простые игры. Использование игр в борьбе против спама становится быстрорастущей тенденцией. Вместо того чтобы вводить «капчу», компании просят пользователей сыграть в небольшую игру, дабы доказать свою «человечность». Игры могут быть самыми разными: небольшие платформеры (по типу Марио) или же аркады, например, с ракетой в космосе, которую нужно провести через метеоритный пояс. Помимо стандартных функций защиты от ботов, такое решение добавляет в достаточно рутинную операцию немного веселья.
Аудиокапчи. Это альтернатива визуальной CAPTCHA. Сервис сам «говорит», какие слова нужно ввести. И хотя это решение в теории выглядит эффективным, на практике все упирается в качество колонок компьютера пользователя. А если в доступности у пользователя нет акустической системы или наушников, то он не сможет пользоваться сервисом.
«Гонка вооружений» между специалистами по безопасности и спамерами никогда не закончится. Поэтому постоянно будут разрабатываться все новые механизмы защиты и их обхода. Но несмотря на это технология reCAPTCHA остается одним из самых надёжных способов борьбы с ботнет-сетями и успешно применяется в системе DPI СКАТ для защиты от DDoS-атак. Постоянная разработка платформы и выпуск новых версий позволяет использовать актуальные механизмы защиты.
Если интересно
- «DPI-дайджест»: Анализ трафика, блокировки, платформы и производители систем DPI
- «Мир не Дикого Запада»: IEEE опубликовала стандарт по созданию благожелательных роботов
- «Эхо прошлых лет»: Как решается вопрос недостатка адресов IPv4
- Состав системы DPI
- Схемы подключения DPI
- Варианты использования DPI. Часть 1
- Варианты использования DPI. Часть 2
- Иностранные производители DPI и их платформы
При подготовке материала использовались источники:
https://thecode.media/captcha/
https://habr.com/ru/companies/vasexperts/articles/316276/