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

Система CAPTCHA

Міністерство науки та освіти України

Національний технічний університет

“Харківський політехнічний інститут”


Кафедра “Обчислювальна техніка та програмування”







Реферат на тему:

«Система CAPTCHA»


 

 

 

 

 

Виконав:

студент групи КІТ-11а

___________/Шкарупа М. М./

«_____» __________ 2006 р.





 

Харків 2006

Зміст

Введення. 3

Для чого потрібний тест CAPTCHA.. 5

Варіанти реалізації CAPTCHA.. 7

Приклади реальних систем CAPTCHA.. 11

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

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

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

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

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

Розпізнавання. 18

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

Програмний приклад реалізації CAPTCHA.. 21

Аналіз наведеного прикладу. 24

Висновки. 26

Використані джерела. 27


Введення

CAPTCHA - це абревіатура від англійських слів "Completely Automated Public Turing Test to Tell Computers and Humans Apart", що в перекладі означає: повністю автоматичний тест Тьюрингу для розрізнення комп'ютерів та людей.

Що ж таке Тест Тьюрингу? Це тест, запропонований Аланом Тьюрингом в 1950 р. у статті «Обчислювальні машини й розум» (Computing machinery and intelligence) для перевірки, чи є комп'ютер розумним у людському розумінні цього слова.

Суддя (людина) переписується природною мовою із двома співрозмовниками, один із яких - людина, інший - комп'ютер. Якщо суддя не може надійно визначити, хто є хто, комп'ютер пройшов тест. Передбачається, що кожний зі співрозмовників прагне, щоб людиною визнали його. З метою зробити тест простим й універсальним, переписка зводиться до обміну текстовими повідомленнями.

Повідомлення відправляються через однакові проміжки часу, щоб суддя не міг робити висновку виходячи зі швидкості відповідей (у часи Тьюрингу комп'ютери реагували повільніше людини. Зараз це правило необхідно, тому що вони реагують набагато швидше, ніж людина).

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

Тьюринг запропонував тест, щоб замінити безглузде, на його думку, питання «чиможе машина мислити?» на більш конкретне.

Тьюринг пророчив, що комп'ютери в остаточному підсумку пройдуть його тест. Він вважав, що до 2000 року, комп'ютер з пам'яттю 1 мільярд біт (близько 119 Мб) у ході 5-хвилинного тесту зможе обдурити суддів в 30% випадків. Це, нажаль, не збулося.

Поки що жодна програма й близько не підійшла до проходження тесту. Такі програми, як Еліза (ELIZA), іноді змушувала людей вірити, що вони говорять із людиною, як, наприклад, у неформальному експерименті, названому AOLiza. Але такі «успіхи» не є проходженням тесту Тьюринга.

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

По-друге, документовані випадки ставляться у таких чатах, як IRC, де багато бесід короткі та доволі безглузді.

По-третє, багато користувачів IRC використають англійський як другу або третю мову, і безглузда відповідь програми, імовірно, спишеться ними на язиковий бар'єр.

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

Тест CAPTCHA мало схожий на той тест, що проводився в 50-ті роки. Але ідея тесту залишилася незмінною: відрізнити людини від машини. CAPTCHA - це завдання, що легко вирішує людина, але яку неможливо (або важко) навчити вирішувати комп'ютер.

Для чого потрібний тест CAPTCHA

У сучасному світі людині все частіше доводиться зіштовхуватися з роботами. Роботи управляють трубопроводами, підтримують технологічний процес, виконують складні обчислення. Існує безліч роботів і в мережі Internet - тут їх, як правило, скорочено називають ботами. Internet боти стежать за порядком у чатах, займаються розсиланням листів, індексую WEB сторінки для прискорення пошуку. Однак не всі боти займаються корисною діяльністю. Існує безліч ботів написаних для деструктивних цілей. На просторах мережі часто зустрічаються:


- боти для захватів чат - кімнат в IRC;

- боти для збору адресів e-mail і розсилання за ними спаму (небажаної кореспонденції, як правило рекламного характеру);

- флуд-боти, що займаються “засміченням” форумів і гостьових книг;

- боти, що проводять масову регистрацію облікових записів на поштових й інших сервисах;

- боти, що займаються автоматичним підбором паролів;

- боти, що роблять накручення лічильників відвідуваності сайтів;

- боти для розсилання SMS через WEB інтерфейси;

- боти для участі в голосуваннях;

- й інші.


Причому проблема ботів - це далеко не надумана проблема. Про її реальності говорить хоча б колосальний обсяг спаму в Internet сьогодні.

Рішенням проблеми ботів може стати тест CAPTCHA. Цей тест найчастіше застосовується для захисту WEB форм від автоматичного заповнення. Іноді дуже важливо чи знати заповнена форма людиною або ж її заповнив бот.

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

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

Варіанти реалізації CAPTCHA

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


Перелічимо деякі з них:

1. Найпоширеніша реалізація CAPTCHA - це буквено-цифровий тест. Суть його полягає у наступному: при заповненні форми людині показується картинка з деяким випадковим набором букв та цифр, а поруч із картинкою текстове поле в яке необхідно ввести символи зображені на картинці. Якщо введені в текстовому полі символи й символи на картинці збігаються тоді заповнена форма приймається до обробки, а якщо ні, то генерується нова картинка й людини просять увести ще раз символи з картинки. Це просте завдання для людини, але для бота воно вже досить важке. Як правило зображення на картинці зашумлюють для ускладнення спроб автоматичного розпізнавання. Приклад цієї реалізації можна побачити на рисунку 1.


Рис. 1. Варіант реалізації CAPTCHA №1

2. Іноді застосовують спрощену для користувача реалізацію описаного в першому пункті тесту, коли користувачеві показують усе той же випадковий набір символів і пропонують кілька варіантів відповіді. У цьому варіанті реалізації тесту вже неможливо зробити помилку при наборі тексту й тому після першої або другої неправильної відповіді IP адреса блокується на кілька годин. Приклад цієї реалізації можна побачити на рисунку 2.

Рис. 2. Варіант реалізації CAPTCHA №2


3. Існує також комбінація першого й другого варіанта тесту. Людині виводиться у вигляді картинки текст, що спонукує його до деякої дії (наприклад “натисніть на хвіст кішці”). А поруч із текстом розташовується картинка з декількома об'єктами (у нашому прикладі ними можуть бути кішка, собака, равлик). Координати натискання по картинці відслідковуються й перевіряються. Причому питання й супутня йому картинка із предметами щоразу різні. Приклад цієї реалізації можна побачити на рисунку 3.

Рис. 3. Варіант реалізації CAPTCHA №3

 

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

Рис. 4. Варіант реалізації CAPTCHA №4

5. Людині показують кілька картинок (частіше всього 3 або 4), на яких зображено декілька предметів, і просять ввести назву того предмета, що є на всіх картинках. Приклад цієї реалізації можна побачити на рисунку 5.


Рис. 5. Варіант реалізації CAPTCHA №5


6. Для людей з поганим зором є звукові тесті CAPTCHA.


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

Приклади реальних систем CAPTCHA

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

Наведемо декілька прикладів:

1. На сайті мобільного оператору UMC (#"1.files/image006.gif">


Як можна побачити на фоні зачумленому випадковим чином відображаються повернуті на різний кут символи. Слід зазначити, що символи можуть “наповзати” один на одного, що може значно ускладнити спроби розпізнавання.

2. На сайті іншого мобільного оператору Київстар (#"1.files/image011.gif">

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



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