Тест, который придумывают для машин
CAPTCHA расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart, «полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей». Смысл в том, что задачу генерирует программа и она же проверяет ответ, а человеку должно быть просто, машине трудно.
Нужна проверка для защиты форм от массовой автоматизации: регистрации тысяч фальшивых аккаунтов, рассылки спама в комментарии, перебора паролей, скрапинга. Она не стремится остановить настойчивого человека, а стремится сделать автоматизацию дороже.
Как менялись задачи
Первые версии показывали искажённый текст, который нужно было прочитать. Потом машины научились распознавать символы лучше многих людей, и задачи усложнились. Пошли выбор картинок с определёнными предметами, перетаскивание пазла, простые вопросы. Каждая новая версия рано или поздно сталкивалась с прогрессом распознавания изображений.
Поэтому современная тенденция ушла от явных задач к невидимой проверке. Система оценивает, как вы ведёте себя на странице: движения курсора и касания, скорость заполнения, свойства браузера, историю взаимодействия. Если оценка достаточно высока, форма пропускает вас вовсе без заданий, а сомнительным клиентам показывает задачу.
Почему боты всё равно проходят
Есть два основных пути. Технический: программы с моделями компьютерного зрения решают картинки, а эмуляторы браузера имитируют поведение. Организационный: существуют услуги, где решать задачи за плату поручают людям, и для сервиса такой человек неотличим от обычного пользователя. Поэтому CAPTCHA не барьер, а фильтр, повышающий трудоёмкость атаки.
Из-за этой гонки защиту дополняют другими мерами: ограничением частоты запросов, репутацией адресов, анализом аномалий, двухфакторной защитой. Она хорошо работает в наборе, а не в одиночку.
Побочные эффекты для пользователей
У проверки есть побочные эффекты. Доступность: визуальные задачи трудны для людей с нарушениями зрения, аудио-варианты бывают неудобны. Время: постоянные задания раздражают и снижают конверсию сервисов. Приватность: невидимые системы собирают сведения о поведении и окружении браузера и часто связаны с крупным провайдером, для которого это ещё один источник данных.
Кроме того, если вы часто видите повышенное число проверок, причина может быть в вашем соединении. Общий адрес у большого числа пользователей, например при CGNAT или в общей сети, ухудшает репутацию адреса, и системы становятся подозрительнее.
Что можно сделать самому
Если проверки кажутся чрезмерными, проверьте, не мешает ли что-то оценке: нестандартные настройки браузера, запрет сценариев, автоматизация или расширения. Полное отключение приватных функций не обязательно, но некоторые виджеты не работают без определённых сценариев.
Владельцам сайтов стоит выбирать проверку с адекватным альтернативным способом для людей с ограничениями и объяснять, какие данные она собирает. Часто проще и дружелюбнее скрытые приёмы: поле-ловушка, невидимое человеку, проверка времени заполнения формы, ограничения частоты.
Альтернативы и новые подходы
Помимо классических проверок, развиваются подходы, не требующие от человека задач. Одни опираются на криптографические подтверждения от устройства, что оно настоящее, и не раскрывают, кто вы. Другие используют небольшую вычислительную работу в браузере, делая массовую автоматизацию дороже. Третьи применяют «медовые ловушки»: поля формы, невидимые человеку, которые бот заполняет автоматически.
Каждый вариант имеет плюсы и минусы, и универсального решения нет. Для владельца сайта разумно сочетать несколько мягких мер, прежде чем требовать от людей решать задачи, а для пользователя полезно знать, что кнопка «я не робот» скрывает под собой целый набор проверок, о которых не расскажет интерфейс.
Стоит помнить и о том, что задача, которая решается за несколько секунд, для человека с нарушением зрения или моторики может оказаться непреодолимой. Поэтому ответственные сайты предлагают альтернативу, например звуковой вариант или проверку через другой канал. Если проверка не проходится с первого раза, не спешите повторять быстро: серия ошибок только ухудшает оценку вашего соединения.