Система автентифікації в інформаційній системі на базі протоколу Kerberos

Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 23:25, дипломная работа

Краткое описание

ПОСТАНОВКА ЗАДАЧІ ТА ОГЛЯД ІСНУЮЧИХ МЕТОДІВ РОЗВ’ЯЗКУ ЦІЄЇ ЗАДАЧІ
1.Виконати аналіз протоколу Kerberos.
2.Зробити огляд існуючих алгоритмів криптографічних систем.
3.Розробити програмний продукт на базі протоколу Kerberos.

Содержание

ПЕРЕЛІК ПРИЙНЯТИХ СКОРОЧЕНЬ 8
ВСТУП 9
ПОСТАНОВКА ЗАДАЧІ ТА ОГЛЯД ІСНУЮЧИХ МЕТОДІВ РОЗВ’ЯЗКУ ЦІЄЇ ЗАДАЧІ 10
РОЗДІЛ 1. КРИПТОГРАФІЯ 11
1.1Криптографічні системи 11
1.2Симетричні криптографічні системи 13
1.2.1Алгоитм AES 15
1.2.2Алгоритм ГОСТ 28147-89 16
1.2.3Алгоритм 3DES 17
1.2.4Алгоритм RC6 17
1.2.5Алгоритм IDEA 18
1.2.6Алгоритм SEED 20
1.2.7Алгоритм Camellia 21
1.2.8Алгоритм XTEA 22
1.3Асимеричні криптографічні системи 23
1.3.1Алгоритм RSA 25
1.3.2Алгоритм DSA 25
1.3.3Алгоритм Elgamal 26
1.3.4Алгоритм Rabin 27
1.3.5Алгоритм McEliece 27
1.4Висновок до розділу 1 27
РОЗДІЛ 2. АВТЕНТИФІКАЦІЯ ПО ПРОТОКОЛУ KERBEROS 29
2.1Стандарти автентифікації по протоколу Kerberos 29
2.2Основна концепція 30
2.3Переваги автентифікації по протоколу Kerberos 31
2.4Робота протоколу 32
2.4.1Автентифікатори 32
2.4.2Управління ключами 35
2.4.3Сеансові білети 38
2.4.4Білети на видачу білетів 40
2.4.5Автентифікація за межами домену 42
2.5Підпротоколи 44
2.5.1Підпротокол AS Exchange 45
2.5.2Підпротокол TGS Exchange 46
2.5.3Підпротокол CS Exchange 47
2.6Білети 49
2.6.1Дані з білета відомі клієнту 51
2.6.2Що відбувається після закінчення терміну дії білета 52
2.6.3Оновлюванні білети TGT 52
2.6.4Делегування автентифікації 54
2.6.5Представницькі білети 54
2.6.6Передані білети 55
2.6.7Центр розподілу ключів KDC 55
2.6.8База даних облікових записів 57
2.7Політика Kerberos 59
2.8Процес реєстрації 70
2.8.1Вхід в систему за паролем 71
2.8.2Вхід в систему за допомогою смарт-карти 75
2.8.3Віддалена реєстрація 77
2.9Безпека 77
2.10Атаки на протоколи автентифікації 83
2.10Висновок до розділу 2 84
РОЗДІЛ 3 РЕАЛІЗАЦІЯ ПРОГРАМНОГО ПРОДУКТУ 85
3.1Алгоритм DES і його модифікації 85
3.2Програмний продукт 92
3.3Висновок до розділу 3 97
ВИСНОВОК 97
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 98
ДОДАТОК А. ІЛЮСТРАТИВНІ МАТЕРІАЛИ ДЛЯ ДОПОВІДІ 100
ДОДАТОК Б. КОД ПРОГРАМИ 107

Прикрепленные файлы: 1 файл

ИвановДИПЛОМ правильно оформлено.doc

— 2.83 Мб (Скачать документ)
    • кожен ключ в TEA еквівалентний трьом іншим, що означає, що ефективна довжина ключа становить 126 біт замість 128, як це було задумано розробниками;
    • TEA сприйнятливий до атак на зв'язаних ключах. Така атака може зажадати всього лише вибраного відкритого тексту і мати часову складність рівну .

 

  • Асиметричні криптографічні системи

Асиметричні криптографічні системи були розроблені в 1970-х рр.. Принципова відмінність асиметричної криптосистеми від криптосистеми симетричного шифрування полягає в тому, що для шифрування інформації та її подальшого розшифрування використовуються різні ключі:

відкритий ключ використовується для шифрування інформації, обчислюється з секретного ключа ;

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

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

Асиметричні системи називають  також двох ключові криптографічні системи, або криптосистемами з  відкритим ключем.

Узагальнена схема асиметричної криптосистеми шифрування з відкритим ключем показана на рисунку 1.3


Рисунок 1.3 - Схема асиметричної криптосистеми шифрування з відкритим ключем

Для криптографічного закриття і подальшого розшифрування переданої інформації використовуються відкритий і секретний ключі одержувача У повідомленні.

В якості ключа зашифровування повинен  використовуватися відкритий ключ одержувача, а в якості ключа розшифрування - його секретний ключ.

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

Процес передачі зашифрованої інформації в асиметричній криптосистемі здійснюється наступним чином.

Підготовчий етап:

  • абонент генерує пару ключів: секретний ключ і відкритий ключ ;
  • відкритий ключ надсилається абоненту.
  • Використання - обмін інформацією між абонентами і :
  • абонент зашифровує повідомлення за допомогою відкритого ключа абонента і відправляє шифртекст абоненту ;
  • абонент розшифровує повідомлення за допомогою свого таємного ключа . Ніхто інший (у тому числі абонент ) не може розшифрувати дане повідомлення, так як не має таємного ключа абонента . Захист інформації в асиметричній криптосистеме заснована на секретності ключа одержувача повідомлення.

 

      • Алгоритм RSA

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

Крипостійкість алгоритму RSA ґрунтується  на припущенні, що винятково важко  визначити секретний ключ за відомим, оскільки для цього необхідно  вирішити завдання про існування дільників цілого числа. Дане завдання є - повною і, як наслідок цього факту, не допускає в даний час ефективного (поліноміального) рішення. Більше того, саме питання існування ефективних алгоритмів рішення - повних задач є до теперішнього часу відкритим. У зв'язку з цим для чисел, що складаються з 200 цифр, традиційні методи вимагають виконання величезного числа операцій (близько 1023 ). Час виконання найкращих з відомих алгоритмів розкладання при на сьогоднішній день виходить за межі сучасних технологічних можливостей.

Існує варіант криптосистеми RSA, в якій замість функції Ейлера використовується функція Кармайкла  , де - найменше ціле , таке що для будь-якого цілого , взаємно простого з , виконується . Якщо вибирається так, як описано вище, то .

 

      • Алгоритм DSA

DSA (Digital Signature Algorithm) - алгоритм  з використанням відкритого ключа  для створення електронного підпису,  але не для шифрування (на відміну  від RSA і схеми Ель-Гамаля). Підпис  створюється таємно, але може  бути публічно перевірено. Це означає, що тільки один суб'єкт може створити підпис повідомлення, але будь-хто може перевірити його коректність. Алгоритм заснований на обчислювальній складності взяття логарифмів в кінцевих полях.

Алгоритм був запропонований Національним інститутом стандартів і технологій (США) у серпні 1991 і є запатентованим US Patent 5231668, але НІСТ зробив цей патент доступним для використання без ліцензійних відрахувань. Алгоритм разом з криптографічного хеш-функцією SHA-1 є частиною DSS (Digital Signature Standard), вперше опублікованого в 1994р. Пізніше були опубліковані 2 оновлені версії стандарту: FIPS 186-2 (27 січня 2000 року) і FIPS 186-3 (червень 2009).

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

 

      • Алгоритм Elgamal

Схема Ель-Гамаля (Elgamal) - криптосистема з відкритим ключем, заснована на труднощі обчислення дискретних логарифмів в кінцевому полі. Криптосистема  включає в себе алгоритм шифрування і алгоритм цифрового підпису. Схема Ель-Гамаля лежить в основі стандартів електронного цифрового підпису в США і Росії.

Схема була запропонована  Тахер Ель-Гамалем в 1984 році. Ель-Гамаль удосконалив систему Діффі-Хеллмана і отримав два алгоритми, які  використовувалися для шифрування і для забезпечення автентифікації. На відміну від RSA алгоритм Ель-Гамаля не був запатентований і, тому, став більш дешевою альтернативою, тому що не була потрібна оплата внесків за ліцензію.

Шифр система Ель-Гамаля є фактично одним із способів вироблення відкритих ключів Діффі - Хеллмана. Шифрування за схемою Ель-Гамаля не слід плутати з алгоритмом цифрового підпису за схемою Ель-Гамаля.

 

      • Алгоритм Rabin

Криптосистема Rabin - криптографічний  алгоритм з відкритим ключем. Її безпеку, як і у RSA, пов'язана з труднощами розкладання на множники.

Безпека схеми Rabin спирається на складність пошуку квадратних коренів  по модулю складеного числа.

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

Як будь-яка асиметрична  криптосистема, система Rabin використовує і відкритий і закритий ключі.

 

      • Алгоритм McEliece

McEliece - криптосистема з відкритими ключами на основі теорії алгебраїчного кодування, розроблена в 1978 році Робертом Мак-Елісом. Цей алгоритм використовує існування певного класу виправляють помилки кодів, які називаються кодами Гоппе (Goppa). Він пропонував створити код Гоппе і замаскувати його як звичайний лінійний код.

 

      • Висновок до розділу 1

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

 

РОЗДІЛ 2. АВТЕНТИФІКАЦІЯ ПО ПРОТОКОЛУ KERBEROS

      1. Стандарти автентифікації по протоколу Kerberos

Протокол Kerberos був створений  в Массачусетському технологічному інституті в рамках проекту Athena. Однак загальнодоступним цей протокол став лише після появи версії 4. Після того, як фахівці галузі вивчили новий протокол, його автори розробили і запропонували користувачам чергову версію - Kerberos 5, яка і була прийнята в якості стандарту IETF.

Протокол автентифікації Kerberos пропонує механізм взаємної ідентифікації клієнту та сервера (або двох серверів) перед встановлення зв’язку між ними.

Kerberos представляє собою  набір методів ідентифікації  і перевірки істинності партнерів  по обміну інформацією (робочих станцій, користувачів або серверів) у відкритій (незахищеної) мережі. Процес ідентифікації не залежить від автентифікації, виконуваної мережевою операційною системою, не ґрунтується у прийнятті рішень на адреси хостів і не передбачає обов'язкову організацію фізичної безпеки всіх хостів мережі. Крім того, допускається, що пакети інформації, що передаються по мережі, можуть бути змінені, прочитані й передані в будь-який момент часу[16,17]. Слід, однак, відзначити, що більшість додатків використовує функції протоколу Kerberos тільки при створенні сеансів передачі потоків інформації. При цьому передбачається, що подальше несанкціоноване руйнування потоку даних неможливо. Тому використовується пряма довіра, заснована на адресі хоста. Kerberos виконує автентифікацію як довірена служба третьої сторони, використовуючи шифрування за допомогою загального секретного ключа (shared secret key).

Протокол призначений  для автентифікації суб'єкта об'єктом (і навпаки), наприклад сервера клієнтом, у разі коли середовище передачі даних відкрита, а об'єкт спочатку нічого не знає про суб'єкта і не має з ним спільної таємниці, але обидва (і суб'єкт, і об'єкт) попередньо ідентифіковані третьою стороною - довіреною сервером і мають з ним спільні секрети (ніколи не передаються по мережі). Вимога наявності такого секрету і визначає схему захисту протоколу - симетричними криптографічними алгоритмами (DES). Відповідно до прийнятої термінології суб'єкт і об'єкт називаються принципалами (англ. principals), а довірений сервер називають центром розподілу ключів - ЦРК (англ. Key Distribution Center - KDС).

 

      1. Основна концепція

Протокол Kerberos активно  використовує технології автентифікації, що спираються на «секрети для двох». Основна концепція досить проста: якщо є секрет, відомий тільки двом, будь-який з його зберігачів може легко пересвідчитися, що має справу саме зі своїм напарником. Для цього йому достатньо будь-яким способом перевірити, чи знає співрозмовник їх загальний секрет.

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

Тепер Сергію і Олені залишається тільки вирішити, яким чином показати своє знання пароля. Можна, скажімо, просто включити його в текст повідомлення, наприклад, після підпису: «Olena, Our $ ecret». Це було б дуже просто, зручно і надійно, якщо б Олена і Сергій були впевнені, що ніхто інший не читає їх повідомлень. Однак пошта передається по мережі, де працюють і інші користувачі, а серед них є Керол, яка дуже любить підключати до мережі свій аналізатор пакетів в надії вивідати чиї не будь секрети. І стає абсолютно ясно, що Олена не може просто назвати пароль в тексті листа. Щоб секрет залишався секретом, про нього не можна говорити відкрито, потрібно знайти спосіб тільки дати знати співрозмовнику, що він тобі відомий.

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

 

      1. Переваги автентифікації по протоколу Kerberos

Протокол Kerberos вигідно відрізняється від NTLM більшою гнучкістю та ефективністю використання. Забезпечує він і підвищений рівень безпеки. Ряд переваг, які дає перехід на Kerberos, наводиться нижче.

  • Більш ефективна автентифікація на серверах. При автентифікації по протоколу NTLM сервера додатків доводиться підключатися до контролера домену при перевірці кожного клієнта. З Kerberos така необхідність відпадає - тут автентифікація проводиться за рахунок перевірки посвідчення, представленого клієнтом. Індивідуальне посвідчення клієнт отримує від контролера одного разу, після чого може неодноразово використовувати його протягом всього сеансу роботи в мережі.
  • Взаємна автентифікація. Протокол NTLM дозволяє серверу ідентифікувати своїх клієнтів, однак не передбачає верифікації сервера ні клієнтами, ні іншими серверами. Цей протокол розроблявся для мереж, в яких всі сервери вважаються легітимними. На відміну від нього, Kerberos такого припущення не робить, тому перевіряє обох учасників мережевого підключення, кожен з яких в результаті може точно дізнатися, з ким підтримує зв'язок.
  • Делегована автентифікація. Коли клієнт мережі Windows звертається до ресурсів, служби операційної системи, перш за все, виробляють його ідентифікацію. У багатьох випадках для виконання цієї операції службі достатньо інформації на локальному комп'ютері. Як NTLM, так і Kerberos забезпечують всі дані, необхідні для ідентифікації користувача на місці, однак іноді їх буває недостатньо. Деякі розподілені додатки вимагають, щоб при підключенні до серверних служб на інших комп'ютерах ідентифікація клієнта проводилася локально службою самого цього клієнта. Вирішити проблему допомагає Kerberos, де передбачений спеціальний механізм представницьких білетів, який дозволяє на місці ідентифікувати клієнта при його підключенні до інших систем. У протоколі NTLM така можливість відсутня.
  • Спрощене керування довірчими відносинами. Одне з важливих переваг взаємної автентифікації по протоколу Kerberos полягає в тому, що довірчі відносини між доменами Windows за замовчуванням є двосторонніми і транзитивними. Завдяки цьому в мережах з безліччю доменів не доведеться встановлювати багато явних довірчих відносин. Замість цього всі домени великої мережі можна звести в дерево транзитивних відносин взаємної довіри. Посвідчення, видане системою безпеки для будь-якого домену, може прийматися у всіх гілках дерева. Якщо ж мережа містить кілька дерев, то посвідчення будь-якого з них буде прийматися по всьому «лісі».
  • Сумісність. В основу своєї реалізації протоколу Kerberos корпорація Microsoft поклала стандартні специфікації, рекомендовані групою IETF. Завдяки такому підходу вдалося забезпечити автентифікацію клієнтів Windows  у всіх мережах, які підтримують Kerberos 5.

Информация о работе Система автентифікації в інформаційній системі на базі протоколу Kerberos