Що таке капча?
Капча – це тест, який допомагає сайтам відрізнити людину від автоматизованої програми.
Розповідаємо, навіщо сайти змушують користувачів шукати велосипеди та автобуси на картинках і чому без цього нам було б гірше.
Капча захищає веб-ресурси
Саме слово «капча» утворено від англійської абревіатури CAPTCHA – completely automated public Turing test to tell computers and humans apart, що означає «повністю автоматизований публічний тест Тюрінга для розрізнення комп’ютерів і людей».
Вважається, що людина легко впорається з цим тестом, а для комп’ютера він нездійсненний. Донедавна так і було, але ситуація змінилася. Про це ми розповімо нижче.
Як спрацьовує капча
По суті, це невелике завдання, яке іноді з’являється на сайтах: вам потрібно розпізнати картинку або текст, виконати математичну дію, скласти пазл або просто підтвердити, що ви не верблюд робот.
Капча зчитує вашу відповідь, аналізує її та вирішує, чи дозволити вам подальші дії на сайті, чи поставити наступне контрольне запитання. Більшість завдань генерується автоматично: алгоритм капчі створює завдання на основі попередніх, малює зображення, спотворює їх, додає перешкоди та надсилає користувачеві.
Подібні тести для розпізнавання, людина перед тобою чи машина, почав розробляти ще Алан Тьюринг 1956 року, коли впритул зайнявся вивченням штучного інтелекту.
Він придумав таке завдання: людині дають двох невидимих співрозмовників: один із них людина, інший – машина. Людина ставить співрозмовникам кілька запитань. Якщо вона не може визначити, хто з них робот, а хто – людина, значить, машина мислить.
До недавнього часу жодна машина не могла пройти тест Тюрінга. Сьогодні, з розвитком нейромереж, цей етап пройдено. Але це не означає, що машина може мислити, – просто вона навчилася імітувати людське мислення.
Навіщо тепер потрібна капча
За часів Тюрінга його роботи мали радше філософське, ніж практичне значення. Тепер ситуація кардинально змінилася.
Інтернет став не просто засобом обміну інформацією – дехто розгледів у ньому засіб легкого і не завжди законного заробітку. Наприклад, за допомогою нескладних програм можна зареєструватися на тисячах сайтів і розсилати рекламу, посилання на віруси, реквізити для переказу грошових коштів для фейкових хворих і багато іншого.
Шкідливі програми навчилися самостійно залишати коментарі та заповнювати форми зворотного зв’язку. Більшість веб-ресурсів, навіть нещодавно створених, забиті спамом, шкідливими посиланнями та іншим.
Їхні власники гостро потребували застосунку для відсіювання ботів. Перший такий додаток розробили фахівці Університету Карнегі-Меллона, які написали скрипт на основі тесту Тюрінга. Перед реєстрацією на сайті користувачеві пропонували ввести символи із «зашумленої» картинки – людина могла їх розпізнати, а більшість хакерських програм ні. Тоді ж університет зареєстрував товарний знак CAPTCHA, прийнявши поєднання літер, близьке до англійського catch («зловити»).
Першими капчу стали використовувати в Yahoo – таким чином компанія намагалася попередити автоматичну реєстрацію поштових скриньок для розсилки спаму. У той час впоратися з капчею було непросто – щоб розібратися в завданні, доводилося напружувати зір і часто оновлювати сторінку. Особливо важко було людям з обмеженими можливостями здоров’я.
Поступово сервіси капчі вдосконалювалися, з’явився аудіосупровід, автоматичне оновлення. Зараз розпізнавання проходить швидко і часто непомітно.
Від чого захищає капча
Хоча настирливі капчі дратують користувачів, власникам сайтів вони необхідні. Розглянемо докладніше, від чого вони захищають:
Спам. Боти розсилають «сміттєву» рекламу, залишають негативні коментарі та відгуки. Їх складно вичищати вручну, особливо на великих сайтах. Капча позбавляє від цієї напасті.
DDoS-атаки. Зловмисники направляють на сайт велику кількість запитів, більше, ніж він може витримати. Веб-ресурс переповнюють фейкові відвідувачі, він перестає нормально працювати і може завалитися. Капча стримує натиск ботів.
Атаки на інтернет-магазини. Під час розпродажів і акцій боти отримують доступ до кошиків покупок і поміщають туди товари, не збираючись їх оплачувати. Реальні покупці не бачать потрібного товару в наявності і не можуть його купити. Капча допомагає захистити ресурс від перехоплення товарів.
Підбір логінів і паролів. Людині важко підібрати вручну логін або пароль на сайті. А бот може генерувати їх до нескінченності, поки не знайде відповідні. Капча цьому запобігає.
Коли показують капчу
Деякі ресурси показують капчу, коли користувач здійснює якісь дії. Інші – коли активність користувача вища за середню, що здається їм підозріло схожим на дії бота.
Наприклад:
- Капча з’являється, коли користувач реєструється на сайті або залишає коментарі та відгуки, – система захисту перевіряє, людина це чи бот.
- Те саме відбувається під час купівлі товару в інтернет-магазині – капча перевіряє, чи не зламали покупця.
- Користувач надто швидко відповідає на повідомлення, багато лайкає, часто клацає гіперпосиланнями, запитує веб-сторінки. На думку захисту, він поводиться як бот, і вона запускає капчу.
- Комп’ютер вирішив, що ви намагаєтеся підібрати логін і пароль. Він думає, що це бот, і не хоче пускати вас на сайт. Це дійсно складний випадок – капча з’являтиметься постійно.
Види капчі
Назвемо найпоширеніші види капчі – вони найчастіше трапляються користувачам.
Текстова. Найстаріший вид капчі. Вона легко створювалася на сервері й відображалася в різних браузерах. Алгоритм роботи такий: на сервері генерувався випадковий набір цифр і символів, нерідко в різних регістрах.
На його основі формувалося зображення, яке потім деформувалося: літери були нахилені, перекреслені, використовувалися колірні та шумові фільтри. Користувачеві потрібно було розпізнати символи на зображенні та ввести їх у спеціальне поле. Кілька років такі капчі успішно захищали інтернет від ботів, а на деяких сайтах вони використовуються досі.
Логічна. Користувач повинен виконати невелике завдання: скласти пазли, розв’язати нескладне математичне рівняння, вибрати цифру або фотографію із заданої послідовності, назвати слово, що починається з потрібної літери.
А таку логічну капчу можна зустріти на «Фейсбуці »*. Тут потрібно вибрати ім’я свого друга.
Звукова. Зазвичай дається на додаток до текстової капчі. Це серія букв або цифр, які вимовляє комп’ютер, щоб допомогти людям зі слабким зором. Також це може бути альтернативний варіант капчі.
ReCAPTCHA і штучний інтелект
Хакери досить швидко допрацювали своїх ботів, і ті навчилися розгадувати капчі перших поколінь.
У 2009 році фахівці Університету Карнегі-Меллона представили вдосконалену версію, яку назвали ReCAPTCHA. Вона мала складніший механізм і володіла більшою надійністю, ніж капчі, які існували раніше.
Щоб пройти ReCAPTCHA, користувачеві потрібно було розгадати два слова, одне з яких відоме системі, а друге являє собою фотографію з газети або книги, яку важко розпізнати.
Перевірка користувача здійснюється тільки за тим словом, яке відоме системі, а друге слово вводити необов’язково. Якщо користувач все ж таки ввів друге слово, то воно зберігається системою як один із варіантів для розпізнавання. Таким чином ReCAPTCHA першої версії використовувалася не тільки для захисту сайтів, а й для оцифровування архівів.
На перспективну технологію звернули увагу в Google і викупили її. Однак розумніші боти незабаром навчилися справлятися і з цією версією капчі. У 2015 році Google припинила використовувати ReCAPTCHA v1.
Потім було розроблено ReCaptcha v2, з якою ми часто стикаємося. У ній можна пройти тест в один клік. Робота капчі починається з появи таблички з написом «Я не робот» – від користувача вимагається поставити галочку в потрібному полі.
Можливо, ви замислювалися, навіщо в такий спосіб доводити, що ти людина. Але комп’ютер цікавить не сам факт встановлення прапорця, а дії, які здійснює користувач. Цей тест аналізує рухи миші. У людини вони мають певний ступінь випадковості – боти не зможуть це імітувати. Алгоритм також перевіряє надійність IP-з’єднання користувача, його приблизне місцезнаходження, часовий пояс, час на його комп’ютері, збережені cookie-файли та багато іншого.
Якщо результати тесту не задовольняють капчу, з’являється добре знайома нам табличка з фотографіями, де пропонується вибрати гідранти, автомобілі, світлофори.
Тут теж використовується складний алгоритм, що аналізує не тільки відповіді користувачів, а й багато інших чинників.
Google і тут знайшов застосування діям користувачів: обираючи пішохідні доріжки, світлофори і дорожні знаки, ми навчаємо систему штучного інтелекту, яка використовується в безпілотних автомобілях.
У 2018 році з’явилася третя версія ReCAPTCHA. Її називають невидимою, або капчею, якої немає. Користувачеві вже не потрібно здійснювати жодних дій – капча використовує вдосконалений механізм аналізу його поведінки. Система аналізує затримки під час друку, рух миші, прокрутку сторінок, взаємодії з інтерактивними елементами та багато іншого. Утім, Google не дає точної інформації про роботу ReCAPTCHA, щоб не допомагати розробникам ботів.
За результатами аналізу система виставляє користувачеві оцінки від 0.0 до 1.0, де 0.0 означає, що це, ймовірно, бот, а 1.0 – ймовірно, людина.
Висновки
Капча може дратувати, але це найкращий спосіб боротьби зі шкідливими програмами, що заважають нормальній роботі сайтів, особливо великих.
Розробники систем захисту намагаються спростити тести, зробити їх менш нав’язливими і навіть непомітними. Але не варто забувати, що зловмисники теж удосконалюють своїх ботів і завдання захисту сайтів з часом стає дедалі складнішим.








