В 2000 году до Университета Карнеги-Меллона дошёл доклад главного научного сотрудника Yahoo: портал тонул в учётных записях, которые заводили программы, и хотел ворота, через которые программа не пройдёт. Луис фон Ан, Мануэль Блюм, Николас Хоппер и Джон Лэнгфорд такие ворота построили и дали им имя — CAPTCHA, полностью автоматический публичный тест Тьюринга для различения компьютеров и людей. В их статье замысел сформулирован прямо: задача, которую человек решает без усилия, а программа не решает вовсе. И там же оговорка, ради которой всё это интересно: программа, которая тест всё-таки пройдёт, тем самым решит открытую задачу искусственного интеллекта.
L. von Ahn, M. Blum, N. Hopper, J. Langford, «CAPTCHA: Using Hard AI Problems for Security», Eurocrypt 2003, Lecture Notes in Computer Science 2656, с. 294—311.То есть тест был построен на проигрыш, и авторы это проговорили сами. Любая капча — стоящая на виду награда тому, кто её снимет, и награду забирали по расписанию: сначала искажённый текст, потом картинки, потом галочка. Дальше — что стало с самой задачей за двадцать пять лет и что на деле меряет то, что стоит теперь на её месте.
| Когда | Что произошло | Что изменилось |
|---|---|---|
| 1996 | Мони Наор рассылает неопубликованную заметку: программы можно отсеивать обратным тестом Тьюринга.M. Naor, «Verification of a human in the loop, or Identification via the Turing Test», рукопись, Институт Вейцмана, 1996; не публиковалась, но считается первой постановкой задачи. | Идея названа раньше, чем понадобилась. |
| 1997 | AltaVista ставит искажённый текст на форму добавления адресов — против массовой автоматической подачи ссылок.M. Lillibridge, M. Abadi, K. Bharat, A. Broder, патент США 6,195,698, заявка 1998, выдан 2001. | Первое рабочее применение — до всякого названия. |
| 2000—2003 | Группа Университета Карнеги-Меллона формулирует задачу и даёт ей имя: CAPTCHA — полностью автоматический публичный тест Тьюринга для различения компьютеров и людей.L. von Ahn, M. Blum, N. Hopper, J. Langford, Eurocrypt 2003, Lecture Notes in Computer Science 2656, с. 294—311. Повод — доклад главного научного сотрудника Yahoo в CMU в 2000 году. | Появляется требование: программа, прошедшая тест, решает открытую задачу ИИ. |
| 2003 | Мори и Малик читают Gimpy и EZ-Gimpy — капчи, стоявшие тогда у Yahoo.G. Mori, J. Malik, IEEE CVPR 2003: 92% на EZ-Gimpy и 33% на полном Gimpy. | Первая схема живёт около двух лет. |
| 2007—2008 | reCAPTCHA: к проверке пристёгнута работа — заодно разбирается слово со скана, которое не осилил OCR.L. von Ahn, B. Maurer, C. McMillen, D. Abraham, M. Blum, Science 321, 12 сентября 2008, с. 1465—1468. | Тест впервые что-то производит, кроме допуска. |
| 2014 | Сеть Google, обученная на номерах домов из Street View, берёт самый трудный текстовый вариант. В декабре текст заменяют галочкой «Я не робот» и картинками.I. Goodfellow и др., arXiv:1312.6082, 2014 — 99,8% на самой трудной категории; Google Online Security Blog, апрель и декабрь 2014. | Схему ломает не спамер, а тот, кто её держит. |
| 2016 | Измерение показывает, на чём держится галочка: девятидневной куки Google достаточно, чтобы получить лёгкий вариант.S. Sivakorn, I. Polakis, A. Keromytis, IEEE European Symposium on Security and Privacy, 2016. | Решает не задача, а то, что известно о посетителе. |
| 2018 | reCAPTCHA v3: задачи нет вовсе. В фоне считается оценка от 0,0 до 1,0; что с ней делать, решает сайт.Google Online Security Blog, 29 октября 2018; документация reCAPTCHA v3 для разработчиков. | Проверка перестаёт быть видимой посетителю. |
| 2022—2024 | Private Access Tokens: сайт принимает токен о том, что запрос пришёл с настоящего неизменённого устройства. Privacy Pass становится стандартом IETF.Apple, WWDC22, сессия 10077 «Replace CAPTCHAs with Private Access Tokens»; выпуски эмитентов Cloudflare и Fastly, 2022; RFC 9576, 9577, 9578, IETF, июнь 2024. | Ручается производитель железа. |
Первые работающие капчи просили набрать слово, напечатанное кривым шрифтом поверх мусора: Gimpy и EZ-Gimpy стояли у Yahoo. Они продержались около двух лет. Грег Мори и Джитендра Малик подошли к задаче не как к чтению букв, а как к сопоставлению форм, и прочли EZ-Gimpy в 92% случаев, а полный Gimpy — в 33%. Для атаки этого более чем достаточно: программе не нужно проходить всегда, ей достаточно проходить дёшево. Челлапилла и Симар в Microsoft сформулировали общий вывод: трудное для машины — не узнавание символа, а разрезание строки на символы, и разрезанию можно научить. Ответом на десятилетие вперёд стало усиление искажений, за которое первым платил человек. К 2014 году сеть Google, обученная читать номера домов со снимков Street View, брала самый трудный вариант текстовой reCAPTCHA в 99,8% случаев — выше, чем на этом же материале показывают измеренные группы людей. Результат опубликовала сама Google, вместе с выводом собственного менеджера продукта: одного искажённого текста уже мало.
G. Mori, J. Malik, IEEE CVPR 2003; K. Chellapilla, P. Simard, Advances in Neural Information Processing Systems 17, 2005; I. Goodfellow и др., arXiv:1312.6082, 2014; Google Online Security Blog, апрель 2014. Человеческая точность на образцах reCAPTCHA — около 75%: E. Bursztein и др., IEEE Symposium on Security and Privacy, 2010.В 2007 году группа фон Ана заметила размер того, что уходило впустую. По их оценке люди набирали больше ста миллионов капч в день, по несколько секунд каждая, и в сумме это давало сотни тысяч человеко-часов ежедневно. reCAPTCHA пристегнула к этому дело. В каждой проверке показывали два слова. Одно бралось со сканированной страницы, где две программы OCR разошлись или сдались; второе было контрольным, с известным ответом. Наберёте контрольное верно — вы человек, а ваш вариант второго уходит голосом за то, как читается страница. Совпадение ответов у разных людей решает дело. За первый год система прошла больше 1,2 миллиарда капч и разобрала свыше 440 миллионов слов — сами авторы пересчитали это в 17 600 книг, при темпе около четырёх миллионов слов в день. Наймом такое потребовало бы больше полутора тысяч человек, набирающих сорок часов в неделю. Точность на уровне слова вышла 99,1% против 83,5% у обычного OCR на том же материале; среди целей был архив New York Times. В сентябре 2009 года Google купила reCAPTCHA и направила её на Books и новостной архив. Работа была настоящая, бесплатная и никем не оговорённая: каждый отдельный вклад — несколько секунд, и именно поэтому спросить казалось не о чем.
L. von Ahn, B. Maurer, C. McMillen, D. Abraham, M. Blum, «reCAPTCHA: Human-Based Character Recognition via Web Security Measures», Science 321, 12 сентября 2008, с. 1465—1468; сообщение Университета Карнеги-Меллона о покупке reCAPTCHA компанией Google, сентябрь 2009.В декабре 2014 года набор текста заменили галочкой «Я не робот», а тем, кого галочка не убедила, стали показывать сетку фотографий. Сетка перенесла задачу туда, где машина ещё была слаба: назвать, что изображено. Окно уже закрывалось. Свёрточные сети выиграли конкурс ImageNet в 2012 году и дальше только улучшались, а к 2016-му Сифанни Сивакорн, Иасонас Полакис и Ангелос Керомитис решали картиночную reCAPTCHA автоматически в 70,78% случаев, тратя 19 секунд на задание и пользуясь готовыми сервисами разметки изображений и обратным поиском картинок самой Google. Та же работа перечисляет, из чего состояли наборы: среди них номера домов и уличные сцены, ответы на которые делают Google Maps точнее. Приём с оцифровкой не отменили, его перенаправили — с книг на карты и на размеченные изображения, то есть на материал, которым кормят зрение машин. Проверка, которую вы проходите, чтобы доказать, что вы не машина, отчасти и есть то, чему машину учат.
Google Online Security Blog, декабрь 2014; A. Krizhevsky, I. Sutskever, G. Hinton, Advances in Neural Information Processing Systems 25, 2012; S. Sivakorn, I. Polakis, A. Keromytis, «I Am Robot: (Deep) Learning to Break Semantic Image CAPTCHAs», IEEE European Symposium on Security and Privacy, 2016.У reCAPTCHA v3, объявленной в октябре 2018 года, задачи нет. Она работает в фоне и возвращает число от 0,0 до 1,0; документация Google называет это адаптивным анализом риска и оставляет сайту решать, что с оценкой делать. У посетителя ничего не спрашивают, и посетитель ничего о себе не показывает. Число складывается из самого запроса: как двигался указатель, что браузер о себе сообщает, что видела следящая кука. Насколько это перевешивало задание, было измерено ещё на предыдущей версии. Куки Google возрастом в девять дней хватало, чтобы получить лёгкую галочку, причём без всякой истории просмотров, кроме запроса, который эту куку создал; авторы прямо пишут, что анализ риска нейтрализуется приложением такой куки к запросу. В обратную сторону: свежий аккаунт Google, включая подтверждённый телефоном, ждал того же обращения около шестидесяти дней, а браузер, сообщивший о себе устаревшую версию, получал запасное трудное задание ещё до нажатия на галочку. Практический вывод авторов для атакующего: выгоднее не иметь аккаунта вовсе.
Google Online Security Blog, 29 октября 2018, и документация reCAPTCHA v3 для разработчиков; S. Sivakorn, I. Polakis, A. Keromytis, IEEE European Symposium on Security and Privacy, 2016 — девятидневная кука, шестидесятидневный порог для нового аккаунта и реакция на устаревший User-Agent.Последний шаг снимает и видимость вопроса. Private Access Tokens, показанные Apple на WWDC в июне 2022 года, позволяют сайту принять токен, удостоверяющий, что запрос пришёл с настоящего неизменённого устройства — не говоря, с какого именно. Устройство просит производителя за себя поручиться, независимый эмитент — первыми были Cloudflare и Fastly — выпускает токен, сайт видит токен и не видит личности. Лежащий в основе протокол Privacy Pass стал стандартом IETF в июне 2024 года: RFC 9576, 9577 и 9578. Как инженерное решение это шаг вперёд: ни головоломки, ни следящей куки, меньше данных о вас уходит наружу. Как тест — это уже другое. О человеке не проверяется ничего. Проверяется, что кусок железа на хорошем счету у той компании, которая его сделала.
Apple, WWDC22, сессия 10077 «Replace CAPTCHAs with Private Access Tokens», июнь 2022; выпуски эмитентов Cloudflare и Fastly, 2022; RFC 9576 «The Privacy Pass Architecture», RFC 9577, RFC 9578, IETF, июнь 2024.Соблазнительно сказать, что капча перестала работать. Не перестала. Сайты по-прежнему защищены, и в целом лучше прежнего. Перестало работать то, ради чего всё затевалось. Тест на человечность просит вас сделать то, что умеет только человек. Тест на репутацию спрашивает, похожи ли ваше устройство, ваш браузер и ваш адрес на те, что вели себя прилично. Первый вид ушёл, потому что машины его догнали. Второй работает ровно потому, что не задаёт вопроса, на который машины уже ответили.
Плата за это распределена неровно, и это было измеримо ещё до того, как замена завершилась. В статье в Science 2008 года приведены доли успешного прохождения reCAPTCHA: 97,1—97,4% с адресов англоязычных стран против 92,6—96,9% с остальных, и авторы называют разрыв статистически значимым. С тех пор критерии переехали туда, где старание не помогает. Старый телефон, браузер, сообщивший о себе устаревшую версию, новый аккаунт, общий или необычный адрес, сеть, которую оценивающая модель почти не видела, — каждое покупает задание потруднее или оценку пониже, и ни одно не делает человека менее человеком. Рабочая группа W3C с 2005 года говорит то же самое про людей с инвалидностью: интерактивная проверка сама по себе исключает часть людей, и рекомендация — обходиться без неё везде, где можно.
von Ahn и др., Science 321, 2008 — доли прохождения по странам, приведены с P < 0,01. W3C, «Inaccessibility of CAPTCHA: Alternatives to Visual Turing Tests on the Web», нота рабочей группы Accessible Platform Architectures, впервые 2005, обновления 2019 и 2021. Пятьсот человеко-лет — собственная оценка Cloudflare, исходящая из средних 32 секунд на проверку: T. Meunier, блог Cloudflare, 13 мая 2021.Никакого заговора в этом нет, и это самое неудобное. Каждый шаг был разумным ответом на предыдущий, а счёт, которого хотели избежать, реален: Cloudflare, умножив средние 32 секунды на свой трафик, оценила мировые расходы на эти головоломки примерно в пятьсот человеко-лет в сутки. Проверка репутации дешевле, тише и хуже поддаётся автоматическому обходу. Она просто не тот тест, который объявляли. Машина у входа больше не спрашивает, человек ли вы; она спрашивает, похожи ли вы на обычный трафик.
Капча наоборот возвращает искажённый текст вам под нос — потому что это единственное место, где исходная сделка ещё примерно держится: набор, на котором OCR сдаётся, человек читает с ходу. Пары минут хватит, чтобы увидеть, против чего работали машины 2003 года, — и заодно выяснить, что человек тут тоже не безупречен.
Найдите машину ставит тот же опыт на тексте, и его стоит ожидать проигранным. Важна не величина, а направление: одна граница держалась десятилетиями, другую сдвинули за несколько лет.
Здесь есть рифма постарше, и её стоит проговорить. В 1770 году Вольфганг фон Кемпелен выкатил ко двору Марии Терезии шахматный автомат, и Европа десятилетиями спорила, каким механизмом он думает. Внутри сидел человек; Турок сгорел в Филадельфии в 1854 году, когда спор ещё не улёгся. Показывал он не механику, а публику: люди принимали человека за машину, потому что машина была впечатляющим ответом. Нынешнее устройство работает в обратную сторону. Машины сходят за людей достаточно хорошо, чтобы спрашивать перестали вовсе, и дверь открывается теперь по репутации железа. Вопрос за два с половиной века не изменился. Изменилось направление ошибки.
Турок: построен Вольфгангом фон Кемпеленом в 1770 году для двора Марии Терезии, сгорел в Филадельфии в июле 1854 года. T. Standage, «The Turk», 2002.