Система автентифікації в інформаційній системі на базі протоколу 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 Мб (Скачать документ)


Рисунок 1.1 - Схема симетричної  криптосистеми шифрування

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

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

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

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

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

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

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

 

      1. Алгоритм AES

Стандарт AES (Advanced Encryption Standard) є стандартом шифрування США, прийнятим  у 2000-му році. Він специфікує алгоритм Rijndael. Цей алгоритм є симетричний блоковий шифр, який працює з блоками даних довжиною 128 біт і використовує ключі довжиною 128, 192 і 256 біт (версії AES-28; AES-192 і AES-256). Сам алгоритм може працювати і з іншими довжинами блоків даних і ключів, але ця можливість в стандарт не увійшла. При використанні 128-бітного ключа для злому шифрування за заявою уряду США буде потрібно 149 трильйонів років.

Біти даних нумеруються  з нуля, починаючи зі старших. У AES основним є поліноміальне подання  кодів. Так байт слід представляти як: .

Алгоритм AES здійснює операції над двовимірними масивами байт, званими  структурами (state). Структура складається  з 4 рядів по байт. дорівнює довжині блоку, поділеній на 32 (у даному стандарті ). Це дозволяє позначати структуру як , або , де і .

Вхідний код (in), який є послідовністю 16 байт можна представити як:

При реалізації алгоритму AES використовуються операції додавання байт (за модулем  ) і множення. В алгоритмі AES при множенні байтів використовується непроводимий многочлен:

Обчислення виразу М. байтів на виконується згідно з наступним алгоритмом:

У цьому випадку зворотна величина байта дорівнює:

для множення полу байта (коди довжиною 4 біта) використовується непріводімий поліном:

Обчислення виразу М. полу байта  на виконується таким чином:

 являє собою полу байта  . Операцію множення полу байта на можна записати в матричному вигляді:

Довжини ключів (довжина, виміряна в 32 бітових словах) можуть приймати значення 4, 6 або 8 (для AES-128, -192 і -256, відповідно). Число ітерацій (round), що реалізуються в алгоритмі AES, складає відповідно 10, 12 і 14.

 

      1. Алгоритм ГОСТ 28147-89

ГОСТ 28147-89 - радянський і російський стандарт симетричного шифрування, введений в 1990 році, також є стандартом СНД. Повна назва - «ГОСТ 28147-89 Системи обробки інформації. Захист криптографічний. Алгоритм криптографічного перетворення ». Блоковий шифроалгоритм. При використанні методу шифрування з гаммированием, може виконувати функції потокового шифроалгоритму.

 

      1. Алгоритм 3DES

3DES (Triple DES, TDES) - потрійний  DES. Вдосконалений блочний алгоритм DES. Симетричний блоковий криптографічний  алгоритм, створений на основі  алгоритму DES з метою усунення головного недоліку - малої довжини ключа (56 біт), який може бути зламаний методом перебору ключа. Принцип роботи 3DES не відрізняється від застосовуваного в DES; нарощування криптостійкості було досягнуто завдяки трикратному (triple) шифруванню одного блоку алгоритмом DES. Три 56-розрядних ключа, що використовуються в даному процесі, об'єднуються алгоритмом в один 168-розрядний ключ. Хоча час атаки перебором при звичайних ресурсах комп'ютера становить кілька мільярдів машиноліт, що говорить про хорошу стійкості алгоритму. Таким чином, довжина ключа алгоритму 3DES дорівнює 156 бітам (3-x ключів DES). Сьогодні також існують варіанти Triple DES з «подвійним» DES ключем розміром 112 біт, «потрійним» DES-ключем, які стали застосовуватися частіше (3DES, TDES, TDEA, 2TDEA, 3TDEA і т.д.).

 

      1. Алгоритм RC6

Алгоритм RC6 був розроблений  в 1998 р. поруч фахівців наукового  підрозділу відомої фірми RSA Data Security - RSA Laboratories: Рональдом Рівестом (Ronald Rivest, засновник RSA Data Security), Меттом Робшоу , Реєм Сідні і Іква Лайзою Ін  спеціально для участі в конкурсі AES. Алгоритм багато в чому успадкував риси попереднього алгоритму Рональда Ривеста - 64-бітного блокового шифру RC5, розробленого в 1997 р. Фактично, алгоритм зазнав дві принципові зміни:

    • на відміну від RC5, в алгоритмі використовується множення за модулем ;
    • для збереження 32-бітових обчислень замість розбиття шифруємого блоку даних (128 біт згідно принциповому вимогу конкурсу AES) на два 64-бітових суб блока виконується його розбиття на 4 32-бітових суб блока та їх обробка по трохи зміненій схемі.

 

Структура алгоритму.

Як і алгоритм RC5, RC6 має гнучку структуру: крім секретного ключа, параметрами алгоритму є  наступне:

    • розмір слова ; RC6 шифрує блоками по 4 слова;
    • кількість раундів алгоритму R;
    • розмір секретного ключа в байтах b.

Аналогічно RC5, для уточнення  параметрів алгоритму, що використовуються в його конкретної реалізації, застосовується позначення . Оскільки в конкурсі AES 128-бітний блок є обов'язковим, значення w фіксоване і дорівнює 32. У специфікації алгоритму фіксується також кількість раундів: R = 20.

 

      1. Алгоритм IDEA

IDEA є блоковим алгоритмом  шифрування даних, запатентованим  швейцарською фірмою Ascom. Фірма, дозволила безкоштовне некомерційне використання свого алгоритму (застосовується в загальнодоступному пакеті конфіденційної версії електронної пошти PGP). Тут на відміну від алгоритму DES не використовуються S-блоки або таблиці перегляду. У IDEA застосовуються 52 суб ключ, кожен довжиною 16 біт. Оригінальний текст в IDEA ділиться на чотири групи по 16 біт. Для того щоб комбінувати 16 бітні коди, використовується три операції: додавання, множення і виключає АБО. Додавання являє собою звичайну операцію по модулю 65536 з переносом. При складанні таблиці множення приймаються спеціальні заходи для того, щоб операція була оборотною. З цієї причини замість нуля використовується код 65536.

Нехай чотири чверті вихідного  тексту мають імена A, B, C і D, а 52 суб ключа - . Перед реалізацією алгоритму виконуються операція:

; ; ; .

 

Перший цикл обчислень:

Міняємо місцями В  і С.

Повторюємо це все 8 разів, використовуючи - для другого разу і, відповідно, - - для восьмого. Після восьмого разу В і С місцями не змінюються. Після цього виконуються операції:

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

Схема реалізації алгоритму  шифрування IDEA показано на рисунку 1.2

Рисунок 1.2 - Схема реалізації алгоритму шифрування IDEA

 

      1. Алгоритм SEED

SEED - в криптографії  симетричний блоковий криптоалгоритм  на основі Мережі Фейстеля, розроблений  Корейським агентством інформаційної  безпеки в 1998 році. В алгоритмі  використовується 128-бітний блок і ключ довжиною 128 біт. Алгоритм широко використовується фінансовими і банківськими структурами, виробничими підприємствами і бюджетними установами Південної Кореї, отримавши широке поширення, оскільки 40-бітний SSL не забезпечує на даний момент мінімально необхідного рівня безпеки. Агентством із захисту інформації специфікована використання шифру SEED в протоколах TLS і S / MIME. У той же час, алгоритм SEED не реалізований в більшості сучасних браузерів і Інтернет - додатків, що ускладнює його використання в даній сфері поза межами Південної Кореї.

SEED являє собою Мережа  Фейстеля з 16 раундами, 128-бітовими  блоками і 128-бітовим ключем. Алгоритм  використовує два 8 × 8 таблиці  підстановки, які, як такі з  Safer, виведені з дискретного піднесення  до степеня( та ). Це є деяким подібністю c MISTY1 в рекурсивность його структури: 128-бітовий повний шифр - мережа Фейстеля з F-функцією, що впливає на 64-бітові половини, в той час як сама F-функція - Мережа Фейстеля, складена з G-Функції, що впливає на 32-розрядні половини. Однак рекурсія не простягається далі, тому що G-Функція - не Мережа Фейстеля. До G-Функції 32-розрядне слово розглядають як чотири 8-бітових байтів, кожен з яких проходить через одну або іншу таблицю підстановки, потім об'єднується в помірно комплексному наборі булевих функцій таким чином, що кожен біт виведення залежить від 3 з 4 вхідних байтів.

SEED має складну ключове  розклад, генеруючи тридцять два  32-розрядних додаткових символу  використовуючи G-Функції на серіях  обертань вихідного необробленого  ключа, комбінованого зі спеціальними  раундовим константами (як у  TEA) від «Золотого співвідношення» (англ. Golden ratio).

 

      1. Алгоритм Camellia

Camellia - алгоритм симетричного  блокового шифрування (розмір блока  128 біт, ключ 128, 192, 256 біт), один з  фіналістів європейського конкурсу NESSIE (поряд з AES і Shacal-2), розробка  японських компаній Nippon Telegraph and Telephone Corporation і Mitsubishi Electric Corporation (представлений 10 березня 2000 р.). Сертифікований японською організацією CRYPTREC як рекомендований для промислового та державного використання алгоритм.

Camellia є подальшим розвитком  алгоритму шифрування E2, одного з алгоритмів, представлених на конкурсі AES і з використанням елементів алгоритму MISTY1.

Структура алгоритму  заснована на класичній ланцюга  Фейстеля з попереднім і фінальним  забеліваніем. Циклова функція використовує нелінійне перетворення (S-блоки), блок лінійного розсіювання кожні 16 циклів (побайтова операція XOR) і байтове перестановку.

У залежності від довжини  ключа має 18 циклів (128 розрядний  ключ), або 24 циклу (192 і 256 розрядний  ключ).

Підтримка алгоритму Camellia введена в 2008 році в браузері Mozilla Firefox 3. Алгоритм патентований, проте поширюється під вільними ліцензіями, зокрема, є частиною проекту OpenSSL.

 

      • Алгоритм XTEA

У криптографії, XTEA (eXtended TEA) - блочний шіфроалгоритм, покликаний усунути критичні помилки алгоритму TEA. Розробниками шифру є Девід Уілер і Роджер Нідхем (факультет комп'ютерних наук Кембриджського університету). Алгоритм був представлений в невиданому технічному звіті в 1997 році. Шифр не патентований, широко використовується в ряді криптографічних додатків і широкому спектрі апаратного забезпечення завдяки вкрай низьким вимогам до пам'яті і простоті реалізації.

Як і TEA, шифр заснований на операціях з 64-бітним блоком, має 32 повних цикли, в кожному повному  циклі за два раунди Мережі Фейстеля, що означає 64 раунди мережі Фейстеля. Проте, число раундів для досягнення кращої дифузії може бути збільшено на шкоду продуктивності. Крім того в XTEA, як і в TEA, використовується 128-бітний ключ, що складається з чотирьох 32-бітових слів , , , . У XTEA немає алгоритму планування ключів у звичному розумінні. Для того, щоб визначити який з чотирьох слів ключа використовувати в кожному раунді, в алгоритмі використовується константа . У TEA ж такого розподілу немає. Ще однією відмінністю від TEA є перестановка бітових операцій, що використовуються в шифрі. Завдяки цим поліпшень XTEA не зазнав сильних ускладнень в порівнянні з TEA, але в той же час ліквідував два основних недоліки алгоритму TEA:

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