Ви готові купити квитки на місцеве шоу. Кошик заповнений. Дані для оплати запроваджено. І тут з’являється перешкода.
Це CAPTCHA.
Абревіатура розшифровується як Completely Automated Public Turing Test для Tell Computers and Humans Apart (повністю автоматичний публічний тест Тьюринга для розрізнення комп’ютерів та людей). Звучить як щось із науково-фантастичного трилера, але насправді це просто цифровий охоронець. Цей тест не складний людям. Якщо ви справжня людина, ви легко пройдете її. Для комп’ютера? Це має бути майже неможливим.
Ціль проста: виявити шкідливих ботів до того, як вони зможуть зіпсувати ваші дані або зірвати покупку.
Ці тести також відомі як Human Interaction Proof (HIP) (доказ людської взаємодії). Ви бачили їх усюди. Класична версія показує рядок перекручених, розмитих літер. Ви вводите їх. Якщо збіг із зображенням вірний, тест пройдено.
Все так просто. Або було раніше.
Еволюція завдань на основі зображень
Текстові CAPTCHA старіють. Боти стають розумнішими. Тепер стандартом стали завдання з урахуванням розпізнавання зображень.
Замість введення літер вам пропонується сітка фотографій. Шосе. Міські вулиці. Парки. Вас просять вибрати зображення, які містять певні об’єкти.
- Вуличні ліхтарі
- Пожежні гідранти
- Велосипеди
- Пішохідні переходи
Виберіть правильні фотографії. Пройдіть тест.
CAPTCHA на основі зображень значно складніше для роботів, ніж текстові. Спотворені зображення або розмиті сцени ускладнюють роботу алгоритмів розпізнавання ботів. Створення тесту, який може вирішити лише людина, потребує ретельної розробки.
Навіщо взагалі боротися з ботами?
Навіщо створювати тест для поділу людей та машин?
Тому що люди намагаються обдурити систему. Вони експлуатують уразливості у комп’ютерах, які управляють сайтом.
Ці люди становлять меншість серед користувачів Інтернету. Але їхні дії торкаються мільйонів.
Візьмемо як приклад безкоштовний поштовий сервіс. Без CAPTCHA він може бути завалений автоматичними запитами створення облікових записів. Автоматизована програма створює тисячі облікових записів за лічені секунди. Навіщо? Щоб пізніше розсилати спам мільйонам людей.
CAPTCHA зупиняє це. Вона визначає, які користувачі є реальними людьми, а які просто комп’ютерними програмами.
Кожен провал — це прорив у штучному інтелекті
Ось цікавий поворот подій.
Люди, які розробляють ці тести, не завжди засмучуються, коли вони зазнають невдачі.
Щоб тест CAPTCHA зазнав невдачі, хтось повинен знайти спосіб навчити комп’ютер вирішувати його.
Щоразу, коли бот обходить CAPTCHA, це означає прогрес у сфері штучного інтелекту.
Іронія очевидна. CAPTCHA генерує тест, який навіть він не може вирішити, не знаючи заздалегідь відповіді. Воно покладається на людське пізнання як параметр безпеки.
Ми перебуваємо в гонці озброєнь.
Боти стають розумнішими. Тести стають складнішими. Користувачі дратуються.
Але поки технології не наздоженуть людей, ми продовжуватимемо кликати на світлофори.

Вся система походить від тесту Тьюринга. Алан Т’юрінг, людина, яка фактично винайшла сучасні обчислення, хотіла спосіб перевірити, чи можуть машини імітувати людське мислення. Схема була простою. Допитувач спілкується із двома прихованими учасниками. Один із них — людина. Інший – комп’ютер. Якщо той, хто допитує, не може визначити, хто є хто, машина перемагає.
CAPTCHA перевертає цю логіку. Мета полягає в тому, щоб створити тест, який люди проходять легко, а боти зазнають невдачі. Він також має бути динамічним. Якби кожен користувач бачив те саме статичне зображення з однаковими літерами, спамери зламали б його за лічені хвилини. Вони б просто написали скрипт для автоматичного введення відповіді.
Більшість таких тестів є візуальними. Комп’ютери ще погано справляються з обробкою зображень у порівнянні з людьми. Люди миттєво розпізнають закономірності. Ми навіть іноді їх бачимо там, де їх немає. Це називається парейдолією. Ви бачите обличчя у хмарах чи фігуру на Марсі. Ваш мозок перетворює випадковий шум на впізнавану форму. У машин немає такого інтуїтивного стрибка. Їм складно впоратися з неоднозначністю.
Але покладатись виключно на зір ризиковано. Це відштовхує користувачів із порушеннями зору. Тому є альтернативи. Аудіо-CAPTCHA досить поширені. Ви слухаєте набір цифр чи літер. Голос може бути спотворений. Часто є фоновий шум. Це блокує програми розпізнавання мови.
Потім є контекстний CAPTCHA. Вона пропонує короткий текстовий фрагмент. Користувач повинен інтерпретувати його зміст. Алгоритми можуть використовувати ключові слова. Вони зазнають невдачі при реальному розумінні. Вони не вловлюють нюанси.
Іноді тест просто зламано. Зображення настільки спотворене, що навіть люди не можуть його прочитати. Саме тому з’являється кнопка “оновити”. Ви пробуєте знову. Сподіваюся, що друга спроба не буде набором безглуздих символів.
Хто використовує CAPTCHA
У наступному розділі ми розглянемо, які сайти дійсно використовують ці перевірки, щоб переконатися, що ви не бот.

Цілісність опитувань та зловживання з боку ботів
Опитування Slashdot 1999 року про кращу програму підготовки фахівців у галузі комп’ютерних наук є застереженням. Він показав, що відбувається, коли опитування залишаються відкритими для автоматизованих скриптів. Студенти Карнегі-Меллонського університету та Массачусетського технологічного інституту створили ботів, які затопили їхні respective університети тисячами голосів. Тим часом кожен інший університет набирав кілька сотень голосів.
Якщо код може віддати голос, результати виявляються безглуздими.
Саме тому важлива перевірка. Без фільтра онлайн-опитування перетворюються на конкурси популярності для того, хто має найшвидший скрипт. CAPTCHA не дозволяє програмістам маніпулювати системою.
Блокування спамерських ботів під час реєстрації
Згадайте останній раз, коли ви реєструвалися у Hotmail, Yahoo! Mail або Gmail. Ви вводили деякі особисті дані. Сервіс не перевіряв, чи вони справжні. Він не дзвонив вам і не підтверджував вашу особу.
Просто він хотів переконатися, що бот не намагається створити сотні спам-акаунтів за лічені секунди.
Безкоштовні поштові провайдери використовують CAPTCHA для запобігання спаму. Без нього ваша поштова коробка була б забита сміттям від фейкових облікових записів ще до того, як ви закінчили налаштування свого.
Боротьба з перекупниками квитків
Брокери квитків, такі як TicketMaster, також покладаються на ці фільтри. Чому? Щоб запобігти діяльності перекупників.
Перекупники використовують ботів для купівлі тисяч квитків на великі заходи за секунди. Легітимні шанувальники виявляються заблокованими. Заходи розпродаються миттєво. Потім перекупники перепродують ці квитки за завищеними цінами.
CAPTCHA не повністю запобігає купівлі квитків. Вона лише значно ускладнює масову автоматизовану покупку. Вона уповільнює роботу роботів. Вона дає реальним людям шанс успіху.
Підтримка чистоти форумів
Веб-сторінки з контактними формами або форумами стикаються з такою ж загрозою. Лавина спаму може приглушити реальні дискусії.
Програми CAPTCHA фільтрують шум. Вони запобігають автоматичній публікації ботами образливих повідомлень або переслідування адміністраторів. Це не ідеальний щит від завзятого людського троля. Але вона зупиняє автоматизовану хвилю спаму.
Подвійне завдання reCAPTCHA
Стандартна CAPTCHA просить вас ввести спотворені літери та цифри. Але творці знайшли спосіб додати цінність цього завдання. Вони використовували його для оцифрування книг.
Це reCAPTCHA. Вона використовує відповіді для перевірки відсканованих документів. Комп’ютерам важко читати слова із цифрових сканів. Люди справляються з цим добре.
Ось процес:
– Адміністратор сканує книгу.
– Програма вибирає два слова із зображення.
– Одне слово вже розпізнане.
– Якщо ви вводите його правильно, система передбачає, що ваше друге слово також правильне.
– Це друге слово потрапляє до пулу для інших користувачів.
– У міру того, як більше людей вводять його, система з високим ступенем впевненості підтверджує правильність слова.
Це може здатися стомлюючим. Але ви виконуєте дві задачі одночасно. Ви доводите, що ви людина. Ви також допомагаєте пошуковим системам індексувати відскановані документи.
Створення перевірки
Далі ми розглянемо процес створення CAPTCHA.
Проектування розриву між людиною та машиною
Вся концепція CAPTCHA базується на фундаментальному розриві. Люди сприймають контекст. Машини обробляють вказівки. Якщо дані виходять за межі жорсткого алгоритмічного шляху, бот спотикається. Він не імпровізує. Він зазнає невдачі.
Дизайнер повинен експлуатувати цю слабість. Розглянемо метадані. Вони невидимі для вас. Вони доступні для читання скриптом. Якщо ви створюєте візуальне випробування, де відповідь прихована в метаданих файлу зображення, ви вже програли. Простий скрипт може видалити ці дані та миттєво розкрити рішення.
Спотворення – це незаперечна вимога. Звичайний текст є відкритим запрошенням для програмного забезпечення оптичного розпізнавання символів (OCR). Ці програми сканують форми. Вони розпізнають прямі лінії та криві. Якщо ваші символи не спотворені, нахилені або закриті, бот прочитає їх швидше, ніж людина встигне моргнути.
Люди повинні мати 80-відсотковий показник успішності. Машини повинні бути на рівні 0,01 відсотка.
Цей стандарт було встановлено експертами Microsoft Research Кумаром Челлапіллою та Патрісом Сімардом. Вони не просто ворожили. Вони розрахували поріг між зручністю використання та безпекою.
Існує два основні способи створення таких випробувань. Перший – статичний. Ви заздалегідь визначаєте зображення та їх рішення. Для цього вам потрібна величезна база даних. Чому? Тому що спамер, який вкрав цю базу даних, може запустити атаку методом грубої сили. Він просто перебирає всі можливі відповіді, доки одна не спрацює. Щоб залишатися в безпеці, вам знадобиться база даних із більш ніж 10 000 унікальних CAPTCHA. Це тяжко. Це ризиковано.
Другий спосіб – динамічний. Рандомізація. Система генерує унікальний рядок з літер та цифр щоразу. Ви ніколи не побачите ту саму послідовність двічі. Це зводить нанівець підхід із грубою силою. Імовірність того, що робот вгадає довгий випадковий рядок, астрономічно мала. Чим довше рядок, тим безпечніше ви захищені.
Візуальний квест
Як перекручувати текст? У наборі інструментів є кілька прийомів.
Деякі системи розтягують і згинають букви так, що вони виглядають так, ніби переглянуті через розплавлене скло. Це спричиняє нудоту. Це також ефективно. Інші накладають сітку з смуг, що перетинаються, щоб розбити форми літер. Ви можете побачити поля випадкових точок або конфліктуючі колірні схеми, призначені для того, щоб спантеличити очі і алгоритм. Ціль завжди одна: створити шум, який люди можуть відфільтрувати, але машини не можуть обробити.
Розпізнавання патернів – ще один напрямок. Замість простого читання тексту, вам може бути запропоновано завершити послідовність. З’являється низка фігур. Яка з них така? Це перевіряє логіку, а не лише зір. Але ось загвоздка. Не всі добре впораються з абстрактним мисленням. Якщо ваша головоломка надто складна, показник успішності людей падає нижче за критичні 80 відсотків. Ви починаєте блокувати реальних користувачів. Ви жертвуєте доступністю заради безпеки. Це ходіння канатом.
Альтернатива у вигляді аудіо
Чуєте мене тепер?
Аудіо CAPTCHA слідують аналогічною логікою, що й візуальні, але з іншим середовищем. Ви дослухаєтеся до символів, сказаних синтезованим голосом або записом реальної людини.
Статичний підхід вимагає попереднього запису кожної можливої комбінації. Це величезна аудіобібліотека. Динамічний підхід розумніший. Він записує окремі фонеми чи символи та з’єднує їх у реальному часі. Це швидше генерується. Це складніше індексувати.
Але аудіо не є ідеальним. Фоновий шум. Акценти. Артефакти синтезу. Це додає новий рівень тертя. Чи вирішує це проблему? Іноді. Для деяких користувачів це порятунок. Для інших це головоломка вони не можуть вирішити.
Гонка озброєнь триває
Ми побачили, як вони створюються. Наступний крок – спостерігати, як вони падають. Комп’ютери стають кращими у цьому. Вони вчаться бачити крізь спотворення.

Головна проблема полягає не в розшифровці тексту. Люди мають легко досягати точності на рівні 80 відсотків. Справжній кошмар – навчити машину обробляти інформацію так само, як це робить людський мозок. Більшість зловмисників не морочаться тим, щоб зробити комп’ютери розумнішими. Вони просто усувають складність завдання.
Візьмемо стандартну веб-форму захищену CAPTCHA з англійськими словами. Шрифт спотворений. Букви розтягнуті та вигнуті у хаотичних візерунках. За текстом знаходиться випадковий шум фону. Це виглядає як нісенітниця. Саме так і задумано.
Програміст, який зламує таку систему, не починає зі штучного інтелекту. Він починає з алгоритму. Це просто набір вказівок. Перший крок може полягати у перетворенні зображення на градації сірого. Колір – це шар маскування. Заберіть його. Тепер у вас є чорно-білий шум.
Потім код шукає закономірності. Він порівнює форми із відомими літерами. Якщо збіг слабкий, алгоритм зіставляє ці часткові літери зі словником англійських слів. Він вгадує інше. Ця логіка грубої сили працює. Іноді вона дає збій. Але якщо вона спрацьовує досить часто, спамери перемагають.
Обхід Gimpy Challenge
Що відбувається, коли CAPTCHA стає складнішим? Візьмемо версію Gimpy. Вона відображає десять слів. Спотворені шрифти. Нерегулярні фони. Слова перекриваються. Потрібно ввести три правильні слова, щоб продовжити.
Це звучить надійно. Поки що ви не подивіться на дослідження. Грег Морі та Джітендра Малік опублікували статтю про те, як зламати цю систему. Їхній трюк? Система використовує реальні слова. А не випадкові рядки. Це велика слабкість.
Морі та Малік створили алгоритм, орієнтований на початок та кінець рядка слів. Вони використовували відомий словник із 500 слів системи Gimpy. Вони провели випробування. Алгоритм правильно визначав слова у 33 відсотках випадків.
Це число здається низьким. Але це негаразд. Спамерам не потрібна ідеальна точність. Їм потрібний обсяг. Якщо їх роботи працюють сотні разів на хвилину, успіх в одному випадку з трьох приносить прибуток. Математика сходиться.
Електронні вуха
Аудіо-CAPTCHA також не в безпеці. Навесні 2008 року з’явилися повідомлення про те, що хакери оминають аудіосистему Google. Метод був напрочуд простим.
Хакери створили бібліотеку звуків. Для кожного символу базі даних потрібно знайти звукове відповідність. Спотворення могло означати наявність декількох звуків для однієї літери. Після категоризації вони використовували варіанти програмного забезпечення для розпізнавання голосу. Бот слухав. Він інтерпретував. Він вводив текст.
CAPTCHA та штучний інтелект

Парадокс ІІ: чому злом безпеки допомагає машинам вчитися
Луїс фон Ан, професор Університету Карнегі-Меллон, співавтор ідеї CAPTCHA, дивиться на речі інакше, ніж середній системний адміністратор. У своїй лекції 2006 року він описав протистояння людей та ботів не як війну, а як навчальний майданчик для штучного інтелекту. Логіка тут холодна, але бездоганна. Спамери та хакери одержимі спробами зламати CAPTCHA, тому що ці тести стоять у них на шляху до цілей. Вони вкладають час та енергію в їхнє подолання.
Коли їм це вдається, машини стають розумнішими.
Щоразу, коли досліднику вдається навчити комп’ютер вирішувати спотворені текстові головоломки, ми робимо крок до створення цього ІІ. Для фон Ан поразка системи безпеки означає перемогу машинного навчання.
Веб-адміністраторам, однак, ця філософія подобається менше. Їм однаково доводиться розгрібати наслідки. Спам-боти та шкідливі скрипти не дбають про філософські наслідки своєї поразки. Їм просто потрібний доступ. Реальність така, що кілька систем CAPTCHA вже вийшли із вжитку. Адміністратори онлайн-опитування або простих сайтів повинні знати, які інструменти ще надійні. Вони мають бути в курсі оновлень. Якщо одна система дає збій, код потрібно міняти. Його потрібно замінити.
Дизайнери ходять тонким льодом. У міру ускладнення комп’ютерів тести мають еволюціонувати. Але є межа. Якщо тест стає настільки складним, що люди більше не можуть вирішувати його із прийнятною ймовірністю успіху, система зазнає невдачі. Мова вже не лише про спотворення тексту. Відповіддю може бути математичне рівняння. Або відповідь на запитання щодо короткої розповіді.
Скільки людей захочуть залишити відповідь на форумі, якщо їм спершу доведеться вирішувати квадратне рівняння?
Інтерес користувачів знижується, коли бар’єр стає занадто високим. Баланс тендітний.
Еволюція невидимої верифікації
Google змінила правила гри у 2014 році. Компанія, що придбала reCAPTCHA у 2009 році, почала поступово відмовлятися від класичних завдань із зображеннями чи текстом. Вони представили “No CAPTCHA”. Все було просто: одне поле з написом “Я не робот”.
Користувачі натискали кнопку. Світ продовжував жити своїм життям.
Але до 2017 року навіть це стало надто очевидним. Google оголосила про відмову від No CAPTCHA. Новий підхід спирався на аналіз поведінки. Він відстежував, як ви рухаєте курсор миші. Він аналізував ваші звички перегляду. Це стало відомо як Invisible reCAPTCHA.
Якщо система позначала вас як підозрілого — можливо, ви дійсно були роботом — вам доводилося вирішувати одне зі старих, стандартних завдань. То був запасний варіант. Крок верифікації. Ціль полягала в тому, щоб тримати хороших користувачів у русі, одночасно виявляючи зловмисників, навіть не помічаючи цього.
Уточнення термінології та необхідності
Часто виникає плутанина щодо того, кому що належить та навіщо потрібні ці перевірки.
Чи є CAPTCHA продуктом Google?
Ні. CAPTCHA – це загальна технологія, яка використовується у всьому інтернеті для забезпечення того, щоб із сайтом взаємодіяли люди, а не автоматизовані роботи. reCAPTCHA від Google – це лише одна з реалізацій цієї більш широкої концепції.
Що означає абревіатура CAPTCHA?
Вона розшифровується як “Completely Automated Public Turing Test to Tell Computers and Humans Apart” (Повністю автоматичний публічний тест Тьюринга для розрізнення комп’ютерів та людей). Це тест на основі виклику та відповіді, вбудований у обчислювальні системи для перевірки особистості користувача.
Навіщо потрібна CAPTCHA?
Вона запобігає надсиланню хибної інформації автоматизованими програмами. Вона зупиняє спамерів від просування шахрайських схем на веб-сторінках. Вона не дає інтернету бути затопленим інформаційним шумом.
Куди рухатися далі
Ландшафт постійно змінюється. Те, що працювало вчора, може бути зламано сьогодні.
Для тих, хто глибше копає, суміжними темами є те, як працюють зломщики коду, механіка спаму і функції шпигунського ПЗ. Розуміння шифрування та комп’ютерних вірусів дає контекст для розуміння того, чому важлива безпека. Базова логіка того, як логічна машина генерує випадкові числа, також пов’язана із випадковістю, необхідною для безпечних перевірок.
Додаткові ресурси на цю тему включають Gwap та офіційний сайт reCAPTCHA. Академічне коріння цієї області добре задокументовано. Дослідження Челапілли та Сімарда в Microsoft Research показують, як машинне навчання може оминати візуальні докази. Каптчі з колективною фільтрацією досліджувалися на ранніх воркшопах. Вразливість аудіо-CAPTCHA від Google було задокументовано у 2008 році. Того ж року спамери зламали CAPTCHA Gmail.
Тест Т’юрінга, як обговорюється в Стенфордській енциклопедії філософії, залишається теоретичною базовою лінією. Людська кора, як і раніше, перевершує процесор у багатьох завданнях, як зазначає Wired. Але розрив скорочується. Початкове бачення фону Ан розгортається в реальному часі. Кожен зламаний код – це урок для наступного покоління ІІ.
Питання вже не в тому, чи машини пройдуть ці тести. Питання, що станеться, коли вони це зроблять. І що станеться з людьми, яким досі доведеться натискати на ці поля.




























