Рефераты. Система CAPTCHA


Система CAPTCHA на сайті Київстар дещо слабша ніж на сайті UMC. У Київ стар і символів на один менше і самі символи написані без будь яких викривлень, що зробило би важчим розпізнавання. Але, слід зазначити, що CAPTCHA на сайті Київстар більш дружня до користувача чим на сайті UMC. На останньому іноді трапляються картинки, які навіть людині важко розпізнати.

3. Система управління контентом Bitrix, на якій працює відомий сайт SecurityLab (#"1.files/image017.jpg">


На думку автора цих рядків ця реалізація одна з найбільш вдалих реалізацій CAPTCHA у сучасному Internet. Символи перехрещуються, виходять за межі поля, а іноді майже зливаються з фоном, проте гарно читаються користувачем завжди. А для машини розпізнавання таких символів майже неможлива задача.

4. Система захисту e-mail адресу від автоматичних ботів-збирачів адресів з WEB сторінок. Приклад можна побачити на рисунку 6.

Рис. 6. Система захисту від спаму на основі CAPTCHA

 

З кожного e-mail адресу (наприклад Joe2006@domain.com) береться лише логін – це та частина, що стоїть перед символом @ (тобто “Joe2006”). Потім з логіну виділяють префіксну частину (у нашому випадку це “Joe”) та записують її простим текстом. А ту частину що залишилася (“2006”) виводять скористувавшись механізмом CAPTCHA.

Тепер бот, що продивився сторінку, проігнорував усі картинки на ній, прочитає поштову адресу як Joe@domain.com та буде слати на неї листи, які будуть потрапляти на поштову скриньку, яка знаходиться під наглядом програми, що аналізує та блокує спам.

А коли цю e-mail адресу побачила на сторінці людина – то вона звісно прочитала не тільки префікс а й ту частину, що була на картинці і буде слати листи за вірною адресою Joe2006@domain.com

Таким чином бот буде гадати, що він працює зі справжніми адресами, в той час реально він буде взаємодіяти з програмою спам аналізу та блокування. Таким чином антиспамовий фільтр може бути достатньо гарно натренований і застосований для захисту усіх інших поштових скриньок на domain.com, а адміністратор може бути спокійним за те, що під дію антиспамового фільтру раптово потрапить важлива кореспонденція.


 


Уразливі місця CAPTCHA

На перший погляд можне здатися, що CAPTCHA це панацея проти ботів, але насправді це далеко не так. У CAPTCHA є цілий ряд уразливих місць, які дозволяють у деяких випадках зламати захист, а у деяких випадках просто обійти його.

Обійти захист CAPTCHA можна скориставшись особливостями програмної реалізації системи. Найбільш часто зустрічаються помилки при реалізації роботи з сесіями на PHP та ASP .NET, помилки при формування URL, що викликає генерацію зображення для CAPTCHA та деякі інші помилки.

Зламати захист CAPTCHA можна розпізнавши образ на рисунку. Розпізнати образ у найпростішому варіанті можна завдяки тесту на ідентичність, а у більш складних варіантах скориставшись нейтронною мережею.

Передбачення результатів і перебір варіантів

Передбачення результатів можливо лише тоді, коли відомо яка інформація прямо впливає на генерацію CAPTCHA. Одержати її можна у двох випадках: уразлива програма надається у відкритому вихідному коді або необхідні дані отримують за допомогою евристичного аналізу (певна кількість проведених тестів). Такою інформацією може бути IP адреса, знання про використовуваний генератор випадкових чисел. Завдання, зрештою, зводиться до пошуків формули, по якій створюється тест. Тут хакеру знадобляться знання з математичного аналізу.

Перебір усіх можливих варіантів відповіді - теж працездатний прийом. Повним перебором можна скористатися, якщо ПО на сервері, некоректно працює із сесією. Прикладом може служити форум vBulletin.

Використання неіснуючих сесій і повторне використання сесій

Як правило, значення, записане на картинці, скрипт зберігає в сесії в текстовому вигляді, щоб потім порівняти з тим значенням, що ввів користувач, тому дуже важливо, щоб робота із сесією відбувалася коректно. Прочитати з поточної сесії текстове значення ні бот ні користувачів не зможуть, однак цілком можливий варіант підміни сесії на неіснуючу (як приклад - зламаний CAPTCHA на сайті UMC). Іноді буває досить один раз пройти тест і запам'ятати ідентифікатор сесії, щоб потім можна було безперешкодно багаторазово обманювати тест CAPTCHA (так було з реалізацією тесту в популярному форумі vBulletin).

Тест на ідентичність

Даний спосіб може застосовуватися, для розпізнавання зображень із низьким рівнем шумів або з їхньою повною відсутністю. Його суть полягає в тому, що для ідентифікації символів досить порівнянь окремих фрагментів зображення.

Щоб не бути голослівним наведемо приклад. Нехай нам необхідно розпізнати картинку на рисунку 7а.

Рис. 7. Розпізнавання зображень за

допомогою тесту на ідентичність


Спочатку необхідно позбутися від клітинки. Алгоритм у цьому випадку дуже простий - світло зелені кольори клітинки “заливаємо” кольорами фону й одержуємо те, що зображено на рисунку 7б.

Потім необхідно виділити окремо кожний символ (дивися рисунок 7в). І вже потім порівняти із заздалегідь підготовленим еталоном за допомогою порівняння піксел за пікселом. Метод досить простий і досить ефективний.


Розпізнавання образів

Однак далеко не будь-яку CAPTCHA можна зламати за допомогою тесту на ідентичність. Часто зустрічаються CAPTCHA з безліччю нелінійних випадкових деформацій, які не піддаються або погано піддаються порівнянню із заздалегідь заготовленими еталонами.

Як же працює розпізнавання образів? Багато користувачів ПК напевно зустрічалися з програмою FineReader, що “на лету” розпізнає величезні масиви тексту. Оброблюваний ним текст має відносно малі розміри й великий обсяг. А до всього й швидкість розпізнавання на високому рівні.

Інша справа CAPTCHA: з однієї сторони нормальний розмір і короткий текст, але з іншого боку - високий рівень шумів і деформацій.

На сьогоднішній момент уже існує багато проектів, що займаються тільки розпізнаванням CAPTCHA. Найбільш відомими з них є два: “UC Berkeley Computer Vision Group” і “PWNtcha”.

Члени “UC Berkeley Computer Vision Group” опублікували в Internet документ, що завіряє в тому, що їм вдається розпізнавати тести, що було сгенеровано за допомогою Gimpy. Причому відсоток успіху становить 92%.

На рисунку 8 наведені приклади досить непростих CAPTCHA, які були розпізнані названою вище групою дослідників.

Рис. 8. Приклади CAPTCHA які були розпізнані

співробітниками інституту Берклі


У питанні розпізнавання образів CAPTCHA великого успіху досягли члени групи PWNtcha. На відміну від “UC Berkeley Computer Vision Group”, які більше займалися розпізнаванням зображень, що було спеціально сгенеровано для проведення експериментів, програмісти з PWNtcha займаються винятково розпізнаванням існуючих популярних CAPTCHA. Результати опубліковані ними приголомшують (дивися таблицю 4).

Крім того працює цілий ряд online проектів по розпізнаванню CAPTCHA. Із програмами для розпізнавання можна ознайомиться на сайті #"_Toc136616297">Розпізнавання

LiveJournal

99%

Paypal

88%

phpBB

97%

vBulletin

100%

linuxfr.org

100%

Authimage

100%

Clubic

100%

lmt.lv

98%

Slashdot

89%



У самому загальному вигляді алгоритм розпізнавання складних CAPTCHA має наступний вигляд:

1.     Позбутися від шумів, що заважають розпізнаванню, на стільки, на скільки це можливо.

2.     Виділити кожний символ окремо.

3.     Привести його до нормального виду: повернути, відмаштабувати й перемістити в початок координат.

4.     Представити його для розпізнавання нейронній мережі.


Звичайно ж перед цим нейронна мережа повинна бути відповідним чином навчена, тобто настроєна саме для розпізнання конкретної CAPTCHA. У загальному випадку нейронна мережа повинна навчаться для кожної CAPTHCA окремо. Навчити розпізнавати всі CAPTHCA одну універсальну нейронну мережу неможливо.

Методи, що роблять важким розпізнавання

Згідно з неофіційним рейтингом систем CAPTCHA на сайті #"_Toc136616299">Програмний приклад реалізації CAPTCHA

Про CAPTCHA було сказано вже багато слів, тепер прийшов час навести приклад практичної реалізації тесту. Через те, що CAPTCHA найчастіше використовується у Internet для написання програми було обрано одну з найпопулярніших мов програмування для всесвітньої мережі PHP.

Файл class_captcha.inc.php

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.