Капча

Капча (от англ. CAPTCHA, аббревиатура от англ. Completely Automated Public Turing test to tell Computers and Humans Apart — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — способ аутентификации по принципу «вызов—ответ» (challenge-response), применяемый в вычислительной технике для определения, является ли пользователь человеком, чтобы предотвратить атаки ботов и спам[1]. Термин был введён в 2003 году Луисом фон Аном, Мануэлем Блумом, Николасом Дж. Хоппером и Джоном Лэнгфордом. Классическая разновидность капчи в виде искажённых символов впервые была реализована двумя независимыми группами в 1997 году. В отличие от стандартного теста Тьюринга, проводимого человеком, капча предлагается компьютером и иногда называется обратным тестом Тьюринга[2].

Наиболее широко распространены сервисы капчи: reCAPTCHA от компании Google[3][4] и независимая hCaptcha[5]. В среднем для прохождения стандартной капчи человеку требуется около 10 секунд[6]. С развитием искусственного интеллекта возможность обхода таких тестов возрастает, а появление мошеннических подделок капчи снижает её эффективность.

undefined

Назначение

Целью капчи является предотвращение спама на сайтах — например, рекламного, регистрационного и извлечения данных (data scraping). Механизм позволяет эффективно блокировать автоматические «набеги» ботов[7]. Более новые реализации оценивают поведение пользователя в сети, чтобы проверить, является ли он человеком[8]. Обычно капча появляется только при подозрительной активности (например, при слишком частом открытии страниц или кликах по ссылкам).

История

С 1980—1990-х годов в интернет-среде существовало желание сделать текст нечитаемым для автоматизированных систем[9]. Первыми такие хаки применяли хакеры, изменяя написание слов при обсуждении чувствительных тем на форумах, чтобы обходить фильтры по ключевым словам. Для этого использовались похожие символы, например, HELLO заменялось на |-|3|_|_() или )-(3££0, так что фильтр не мог учесть все варианты. Позднее это стало известно как leetspeak[10].

Одно из первых коммерческих применений капчи — тест Гаусебека-Левчина, применявшийся на сайте idrive.com в 2000 году для защиты страницы регистрации[11][9]. В 2001 году PayPal внедрил такие тесты для борьбы с мошенничеством, предлагая пользователям «ввести искажённый текст, который сложно распознать программам»[12]; сооснователь и технический директор PayPal Макс Левчин сыграл ключевую роль в коммерциализации технологии.

Популярная система reCAPTCHA была приобретена Google в 2009 году[13]. Помимо предотвращения автоматических атак, Google использует reCAPTCHA для оцифровки архивов The New York Times и книг из Google Books (2011 год)[14].

Технические особенности

Капчи автоматизированы и требуют минимального администрирования, что выгодно для стоимости и надёжности[15]. Современные текстовые капчи требуют от пользователя одновременного применения трёх навыков: инвариантного распознавания (распознавание букв вне зависимости от искажений), сегментации (отделение символов друг от друга в усложнённом изображении) и синтаксического анализа (общее понимание последовательности символов)[16].

Каждая из этих задач по отдельности сложна для компьютера. Совмещение всех трёх делает капчу особенно устойчивой[17]. Помимо безопасности, капча используется как эталонная задача для проверки методов искусственного интеллекта. В работе фон Ана, Блума и Лэнгфорда говорится, что любая программа, успешно проходящая капчу, способна решать сложные задачи ИИ[18]. Сложность капчи обеспечивает либо стабильную защиту, либо стимул для ИИ: если программа её решает — значит преодолена труднейшая задача искусственного интеллекта.

Доступность

Графические капчи затрудняют доступ к ресурсам для слепых и слабовидящих пользователей[19]. Большинство вспомогательных технологий (например, экранные дикторы) не способны их интерпретировать, что делает сервисы с капчей недоступными для части пользователей. Использование капчи может противоречить законодательству о доступности веб-сайтов, например стандарту Section 508 в США.

undefined

Вместо визуальных заданий возможны альтернативы — например, распознавание речи, аудиокапча, математические задачи, логические головоломки или вопросы по тривиальным знаниям[20]. Некоторые реализации позволяют выбрать аудиоальтернативу, хотя и такие схемы были взломаны[21]. Также реализуются математические капчи (MAPTCHA), но такие задания затруднены для людей с дискалькулией[22]. Для повышения удобства разрабатываются методы, сочетающие капчу и JavaScript: боты не могут корректно исполнять сценарии и не видят нужного поля[23]. Более сложные задачи — логические, визуальные или на знание — также способны выступать в роли капчи[24].

Обход капчи

Существует два основных способа обхода капчи: дешёвая человеческая рабочая сила и автоматизация с помощью машинного обучения[25]. По словам бывшего специалиста Google по клик-фроду Шумана Гхосемаджумдера, действуют множество сервисов для автоматического решения капчи[26].

Атаки на основе машинного обучения

Ранние типы капчи нередко имели стандартную длину и ограниченные наборы слов, что делало возможным автоматические атаки методом угадывания и анализа; чрезмерная ставка на сложный фон в изображении также облегчала взлом. Лёгкие модификации задания часто нейтрализовали такие эксплойты. Современные системы, включая reCAPTCHA, используют наложение и слияние символов, мешая сегментации и усложняя автоматизацию.

undefined

В 2013 году компания Vicarious заявила о разработке универсального алгоритма распознавания капчи с точностью до 90 %[27]. Основатель reCAPTCHA Луис фон Ан отметил, что подобные заявления делаются регулярно, — с 2003 года их было не менее 50[28].

В 2014 году на конференции Usenix WoOT Эли Бурштейн и соавторы продемонстрировали универсальный алгоритм на основе обучения с подкреплением, преодолевающий сложные схемы капчи. В 2018 в ходе ACM CCS’18 Йе и соавторы представили атаку на основе глубинных сетей, способную взламывать все 11 актуальных схем текстовых капч у наиболее популярных сайтов, обучаясь на 500 примерах[29].

Человеческая рабочая сила

Иногда капча обходится с помощью дешёвой рабочей силы: задания передаются людям — зачастую на «фабрику кликов». По данным W3C (2005), такие работники способны разгадывать сотни капч в час[19]. В 2010 году учёные из Калифорнийского университета в Сан-Диего оценили стоимость решения миллиона капч в $1000.

Другой способ — размещение капчи на стороннем сайте, где ничего не подозревающие посетители решают капчу, а результаты используются злоумышленниками[30].

В 2023 году нейросеть ChatGPT обманула работника сервиса TaskRabbit, заявив, что не является роботом и имеет нарушения зрения[31].

Платные сервисы

Существует множество интернет-компаний (например, 2Captcha, DeathByCaptcha), предлагающих услуги по разгадыванию капчи (автоматизированные или с использованием людей) по ценам порядка $0,5 за 1000 заданий[32]. Они предлагают программные интерфейсы (API) для интеграции решения капчи в те инструменты, против которых капча и предназначалась[33].

Уязвимости внедрения

Ховард Иенд выделяет две ошибки в архитектуре капчи: повторное использование идентификатора сессии известного изображения и размещение капчи на общих серверах[34]. Если часть программного кода работает на стороне клиента (например, текст отображается локально), возможно восстановление правильного ответа. Нередко для проверки на стороне клиента используются хеши типа MD5 — это также даёт возможность атак методом перебора[35].

Альтернативные формы капчи

Предлагаются варианты, основанные на распознавании изображений — пользователям предлагается определить объекты на картинке. Такие задания считаются сложнее для ИИ, чем текстовые, и более устойчивы к автоматизации. В работе Чью и др. были опробованы три типа «картинной» капчи, лучшей из которых оказалась anomaly CAPTCHA: 100 % участников успешно проходили её за 42 секунды при вероятности не менее 90 %[36]. Datta и др. (IMAGINATION, 2005) предложили искажение изображений как системную основу защиты[37].

Microsoft (Джереми Элсон и др.) разработала систему ASIRRA — пользователь различал кошек и собак на фотографии. Эта система показывала 99,6 % успешного прохождения за 30 секунд среди людей; опыт её использования был оценён как более приятный, чем обычные текстовые задания[38]. Проект был закрыт в октябре 2014 года[39].

Мошеннические псевдо-капчи

Иногда ложные капчи применяются для распространения вредоносного ПО. Злоумышленники убеждают пользователя скопировать и выполнить вредоносный скрипт (обычно якобы для прохождения проверки), который устанавливает шпионские программы для кражи паролей и персональных данных. Такие мошеннические схемы оказываются более эффективными, чем другие, за счёт «усталости от проверок» — пользователи кликают капчу автоматически, не вчитываясь в предупреждения[40].

Примечания

  1. The reCAPTCHA Project – Carnegie Mellon University CyLab. www.cylab.cmu.edu. Дата обращения: 7 апреля 2026. Архивировано 27 октября 2017 года.
  2. Mayumi Takaya; Yusuke Tsuruta; Akihiro Yamamura (30 сентября 2013). “Reverse Turing Test using Touchscreens and CAPTCHA” (PDF). Journal of Wireless Mobile Networks, Ubiquitous Computing, and Dependable Applications. 4 (3): 41—57. DOI:10.22667/JOWUA.2013.09.31.041. Архивировано из оригинала (PDF) 22 августа 2017. Используется устаревший параметр |url-status= (справка)
  3. Что такое reCAPTCHA? support.google.com. Дата обращения: 20 июля 2023. Архивировано 20 июля 2023 года.
  4. Sulgrove, Jonathan reCAPTCHA: What It Is and Why You Should Use It on Your Website – TSTS (англ.). Twin State Technical Services (7 июля 2022). Дата обращения: 10 ноября 2022. Архивировано 10 ноября 2022 года.
  5. Websites using hCaptcha. trends.builtwith.com. Дата обращения: 10 ноября 2022. Архивировано 10 ноября 2022 года.
  6. Bursztein, Elie. How Good Are Humans at Solving CAPTCHAs? A Large Scale Evaluation // 2010 IEEE Symposium on Security and Privacy / Elie Bursztein, Steven Bethard, Celine Fabry … [и др.]. — 2010. — P. 399–413. — ISBN 978-1-4244-6894-2. — doi:10.1109/SP.2010.31.
  7. Stec, Albert What is CAPTCHA and How Does It Work? (англ.). Baeldung on Computer Science (12 июня 2022). Дата обращения: 1 ноября 2022. Архивировано 1 ноября 2022 года.
  8. Что такое CAPTCHA? Cloudflare (1 ноября 2022). Дата обращения: 1 ноября 2022. Архивировано 27 октября 2022 года.
  9. 1 2 idrive turing patent application. Дата обращения: 19 мая 2017. Архивировано 15 марта 2023 года.
  10. h2g2 – An Explanation of l33t Speak – Edited Entry. h2g2 (16 августа 2002). Дата обращения: 7 апреля 2026. Архивировано 6 сентября 2011 года.
  11. idrive turing signup page. Google Drive. Дата обращения: 19 мая 2017. Архивировано 15 марта 2023 года.
  12. Stringham, Edward P. Private Governance: creating order in economic and social life. — Oxford University Press, 2015. — P. 105. — ISBN 978-0-19-936516-6.
  13. Teaching computers to read: Google acquires reCAPTCHA. Google Official Blog. Дата обращения: 29 октября 2018. Архивировано 31 августа 2019 года.
  14. Deciphering Old Texts, One Woozy, Curvy Word at a Time, The New York Times (28 марта 2011). Архивировано 17 ноября 2017. Дата обращения: 29 октября 2018.
  15. How CAPTCHAs work. Cloudflare. Дата обращения: 27 октября 2022. Архивировано 27 октября 2022 года.
  16. Chellapilla, Kumar; Larson, Kevin; Simard, Patrice; Czerwinski, Mary. “Designing Human Friendly Human Interaction Proofs (HIPs)” (PDF). Microsoft Research. Архивировано из оригинала (PDF) 10 апреля 2015.
  17. Bursztein, Elie. Text-based CAPTCHA Strengths and Weaknesses // ACM Computer and Communication Security 2011 (CSS'2011) / Elie Bursztein, Matthieu Martin, John C. Mitchell. — 2011.
  18. von Ahn, Luis. CAPTCHA: Using Hard AI Problems for Security // Advances in Cryptology—EUROCRYPT 2003 / Luis von Ahn, Manuel Blum, Nicholas J. Hopper … [и др.]. — 2003. — Vol. 2656. — P. 294–311. — ISBN 978-3-540-14039-9. — doi:10.1007/3-540-39200-9_18.
  19. 1 2 May, Matt. Inaccessibility of CAPTCHA. W3C (23 ноября 2005). Дата обращения: 27 апреля 2015. Архивировано 21 мая 2012 года.
  20. Bursztein, Elie. The Failure of Noise-Based Non-continuous Audio Captchas // 2011 IEEE Symposium on Security and Privacy / Elie Bursztein, Romain Beauxis, Hristo Perito … [и др.]. — 2011. — P. 19–31. — ISBN 978-1-4577-0147-4. — doi:10.1109/SP.2011.14.
  21. Smart Captcha. Protect Web Form .COM (8 октября 2006). Дата обращения: 7 апреля 2026. Архивировано 4 ноября 2016 года.
  22. Inaccessibility of CAPTCHA. www.w3.org. Дата обращения: 27 октября 2022. Архивировано 27 октября 2022 года.
  23. Invisible reCAPTCHA (англ.). Google Developers. Дата обращения: 28 октября 2022. Архивировано 16 января 2020 года.
  24. Gao, Song; Mohamed, Manar; Saxena, Nitesh; Zhang, Chengcui (23 июня 2017). “Emerging-Image Motion CAPTCHAs: Vulnerabilities of Existing Designs, and Countermeasures”. IEEE Transactions on Dependable and Secure Computing [англ.]. 16 (6): 1040—1053. DOI:10.1109/TDSC.2017.2719031. ISSN 1941-0018. S2CID 41097185.
  25. Jakobsson, Markus. The death of the Internet. — август 2012.
  26. Ghosemajumder, Shuman. The Imitation Game: The New Frontline of Security (8 декабря 2015). Архивировано 23 марта 2019. Дата обращения: 8 декабря 2015.
  27. Summers, Nick Vicarious claims its AI software can crack up to 90% of CAPTCHAs offered by Google, Yahoo and PayPal. TNW. Дата обращения: 19 июня 2018. Архивировано 15 сентября 2018 года.
  28. Hof, Robert AI Startup Vicarious Claims Milestone In Quest To Build A Brain: Cracking CAPTCHA. Forbes. Дата обращения: 25 августа 2017. Архивировано 15 сентября 2018 года.
  29. “Yet Another Text Captcha Solver: A Generative Adversarial Network Based Approach” (PDF). 25th ACM Conference on Computer and Communications Security (CCS), 2018. DOI:10.1145/3243734.3243754. S2CID 53106794. Архивировано из оригинала (PDF) 29 октября 2020. Дата обращения 16 марта 2020. Используется устаревший параметр |url-status= (справка)
  30. Doctorow, Cory Solving and creating captchas with free porn. Boing Boing (27 января 2004). Дата обращения: 7 апреля 2026. Архивировано 9 февраля 2006 года.
  31. Hurler, Kevin Chat-GPT Pretended to Be Blind and Tricked a Human Into Solving a CAPTCHA. Gizmodo. Дата обращения: 11 апреля 2023. Архивировано 11 апреля 2023 года.
  32. Top 10 Captcha Solving Services Compared. Дата обращения: 10 декабря 2018. Архивировано 15 декабря 2018 года.
  33. How Cybercriminals Bypass CAPTCHA (англ.). www.f5.com. Дата обращения: 27 октября 2022. Архивировано 27 октября 2022 года.
  34. Breaking CAPTCHAs Without Using OCR. pureMango.co.uk (2005). Дата обращения: 22 августа 2006. Архивировано 25 июня 2017 года.
  35. CTFtime.org / #kksctf open 2019 / Kackers blockchained notes / Writeup. ctftime.org. Дата обращения: 27 октября 2022. Архивировано 27 октября 2022 года.
  36. Image Recognition CAPTCHAs. Cs.berkeley.edu. Дата обращения: 7 апреля 2026. Архивировано 10 мая 2013 года.
  37. Imagination Paper. Infolab.stanford.edu. Дата обращения: 28 сентября 2013. Архивировано 2 октября 2013 года.
  38. Elson, Jeremy; Douceur, John; Howell, Jon; Saul, Jared (октябрь 2007). Asirra: A CAPTCHA that Exploits Interest-Aligned Manual Image Categorization. Proceedings of 14th ACM Conference on Computer and Communications Security. Microsoft. Архивировано из оригинала 15 декабря 2008. Дата обращения 15 сентября 2017. Используется устаревший параметр |url-status= (справка); Проверьте дату в |date= (справка на английском)
  39. After 8 years of operation, Asirra is shutting down effective October 1, 2014. Thank you to all of our users! Microsoft. Архивировано 7 февраля 2015 года.
  40. Pippig, Laura Осторожно! Ложные капчи для распространения вредоносного кода. PCWorld. PCWorld Communications (2 апреля 2025). Дата обращения: 15 августа 2025.

Литература

Ссылки