Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

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

ДипломнаДопомога в написанніДізнатися вартістьмоєї роботи

Теоретично, для виконання функцій довіреної посередника центру KDC достатньо направити сеансові ключі безпосередньо абонентам безпеки, як показано вище. Однак на практиці реалізувати таку схему надзвичайно складно. Перш за все, серверу довелося б зберігати свою копію сеансового ключа в пам’яті до тих пір, поки клієнт не зв’яжеться з ним. А адже сервер обслуговує не одного клієнта, тому йому… Читати ще >

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

Національна академія управління Кафедра інтелектуальних систем

Факультет економіки та інформаційних технологій

Напрям підготовки 0804 — Комп’ютерні науки

Спеціальність 7.80 404 — Інтелектуальні системи прийняття рішень

ДИПЛОМНА робота

Тема:

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

Київ — 2013

ЗАВДАННЯ

На дипломний проект (роботу) студенту Іванову Петру Васильовичу

1. Тема проекту (роботи): Система автентифікації в інформаційній системі на базі протоколу Kerberos

2. Термін здачі студентом закінченого проекту — 5 червня 2013 р.

3. Вихідні дані до проекту (роботи): Алгоритми криптографічних систем

4. Зміст розрахунково-пояснювальної записки (перелік питань, що мають бути висвітлені):

1. Криптографія

2. Автентифікація по протоколу Kerberos

3. Реалізація програмного продукту

4. Перелік графічного (презентативного, ілюстраційного) матеріалу В проекті представлено 13 слайдів

6. Консультант (із зазначенням відповідних частин проекту): Ніколайчук В.Й.

7. Дата видачі завдання 05 листопада 2012р.

КАЛЕНДАРНИЙ ПЛАН

№ п/п

Назва етапу дипломного проекту (роботи)

Термін виконання етапу

Примітка

Отримання завдання на дипломний проект

05.11.12

Огляд літератури за темою роботи

21.11.11

Вивчення протоколу Kerberos

29.11.11

Огляд існуючих алгоритмів

05.12.11

Вибір алгоритму

09.12.11

Детальне вивчення вибраного алгоритму

20.01.12

Розробка программного продукту

15.02.12

Оформлення дипломного проекту

01.04.12

Підготовка до захисту дипломного проекту

10.05.12

Захист дипломного проекту

20.06.13

РЕФЕРАТ В даній роботі розроблено систему автентифікації на базі протоколу Kerberos. Протягом багатьох років криптографія служила виключно військовим цілям. Сьогодні звичайні користувачі отримують можливість звертатися до засобів, що дозволяє їм убезпечити себе від несанкціонованого доступу до конфіденційної інформації, застосовуючи методи комп’ютерної криптографії.

ABSTRACT

In this paper we developed a system based on authentication protocol Kerberos. For many years, cryptography has served only military targets. Today, ordinary users can turn to tools that allow them to protect themselves against unauthorized access to confidential information using the methods of computer cryptography.

РЕФЕРАТ В данной работе разработана система аутентификации на базе протокола Kerberos. В течение многих лет криптография служила исключительно военным целям. Сегодня обычные пользователи получают возможность обращаться к средствам, позволяющим им обезопасить себя от несанкционированного доступа к конфиденциальной информации, применяя методы компьютерной криптографии.

  • ЗМІСТ
  • ПЕРЕЛІК ПРИЙНЯТИХ СКОРОЧЕНЬ
  • ВСТУП
  • ПОСТАНОВКА ЗАДАЧІ ТА ОГЛЯД ІСНУЮЧИХ МЕТОДІВ РОЗВ’ЯЗКУ ЦІЄЇ ЗАДАЧІ
  • РОЗДІЛ 1. КРИПТОГРАФІЯ
    • 1.1 Криптографічні системи
    • 1.2 Симетричні криптографічні системи
      • 1.2.1 Алгоритм AES
      • 1.2.2 Алгоритм ГОСТ 28 147–89
      • 1.2.3 Алгоритм 3DES
      • 1.2.4 Алгоритм RC6
      • 1.2.5 Алгоритм IDEA
      • 1.2.6 Алгоритм SEED
      • 1.2.7 Алгоритм Camellia
      • 1.2.8 Алгоритм XTEA
    • 1.3 Асиметричні криптографічні системи
      • 1.3.1 Алгоритм RSA
      • 1.3.2 Алгоритм DSA
      • 1.3.3 Алгоритм Elgamal
      • 1.3.4 Алгоритм Rabin
      • 1.3.5 Алгоритм McEliece
    • 1.4 Висновок до розділу 1
  • РОЗДІЛ 2. АВТЕНТИФІКАЦІЯ ПО ПРОТОКОЛУ KERBEROS
    • 2.1 Стандарти автентифікації по протоколу Kerberos
    • 2.2 Основна концепція
    • 2.3 Переваги автентифікації по протоколу Kerberos
    • 2.4 Робота протоколу
      • 2.4.1 Автентифікатори
      • 2.4.2 Управління ключами
      • 2.4.3 Сеансові білети
      • 2.4.4 Білети на видачу білетів
      • 2.4.5 Автентифікація за межами домену
    • 2.5 Підпротоколи
      • 2.5.1 Підпротокол AS Exchange
      • 2.5.2 Підпротокол TGS Exchange
      • 2.5.3 Підпротокол CS Exchange
    • 2.6 Білети
      • 2.6.1 Дані з білета відомі клієнту
      • 2.6.2 Що відбувається після закінчення терміну дії білета
      • 2.6.3 Оновлюванні білети TGT
      • 2.6.4 Делегування автентифікації
      • 2.6.5 Представницькі білети
      • 2.6.6 Передані білети
      • 2.6.7 Центр розподілу ключів KDC
      • 2.6.8 База даних облікових записів
    • 2.7 Політика Kerberos
    • 2.8 Процес реєстрації
      • 2.8.1 Вхід в систему за паролем
      • 2.8.2 Вхід в систему за допомогою смарт-карти
      • 2.8.3 Віддалена реєстрація
    • 2.9 Безпека
    • 2.10 Атаки на протоколи автентифікації
    • Висновок до розділу 2
  • РОЗДІЛ 3. РЕАЛІЗАЦІЯ ПРОГРАМНОГО ПРОДУКТУ
    • 3.1 Алгоритм DES і його модифікації
    • 3.2 Програмний продукт
    • 3.3 Висновок до розділу 3
  • ВИСНОВОК
  • СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
  • ДОДАТОК А. ІЛЮСТРАТИВНІ МАТЕРІАЛИ ДЛЯ ДОПОВІДІ
  • ДОДАТОК Б. КОД ПРОГРАМИ
  • ПЕРЕЛІК ПРИЙНЯТИХ СКОРОЧЕНЬ
  • AES — Advanced Encryption Standard;
  • AS — Authentication Server;
  • DES — Data Encryption Standard;
  • DSA — Digital Signature Algorithm;
  • IDEA — International Data Encryption Algorithm;
  • IETF — Internet Engineering Task Force;
  • KDC — Key Distribution Center;
  • NTLM — NT LAN Manager;
  • RSA — Rivest, Shamir и Adleman;
  • SSL — Secure Sockets Layer;
  • SSP — security support provider;
  • TEA — Tiny Encryption Algorithm;
  • TGS — Ticket Granting Server;
  • TGT — Ticket Granting Ticket;
  • TLS — Transport Layer Security;
  • XTEA — eXtended TEA;
  • ЕЦП — Електронний цифровий підпис;
  • 3DES — Triple DES.
  • ВСТУП
  • Криптологія — це наука, яка вивчає криптографічні перетворення і включає в себе два напрямки — криптографію і криптоаналіз.
  • Протягом багатьох років криптографія служила виключно військовим цілям. Сьогодні звичайні користувачі отримують можливість звертатися до засобів, що дозволяє їм убезпечити себе від несанкціонованого доступу до конфіденційної інформації, застосовуючи методи комп’ютерної криптографії.
  • Спочатку криптографія займалася виключно забезпеченням конфіденційності повідомлень (тобто шифруванням) — перетворенням повідомлень із зрозумілої форми в незрозумілу і зворотнє відновлення на стороні одержувача, роблячи його неможливим для прочитання для того, хто перехопив або підслухав без секретного знання (а саме ключа, необхідного для дешифровки повідомлення). В останні десятиліття сфера застосування криптографії розширилася і включає не лише таємну передачу повідомлень, але і методи перевірки цілісності повідомлень, ідентифікування відправника/одержувача (автентифікація), цифрові підписи, інтерактивні підтвердження, та технології безпечного спілкування, тощо.
  • Криптоаналіз — розділ криптології, що займається математичними методами порушення конфіденційності і цілісності інформації без знання ключа.

ПОСТАНОВКА ЗАДАЧІ ТА ОГЛЯД ІСНУЮЧИХ МЕТОДІВ РОЗВ’ЯЗКУ ЦІЄЇ ЗАДАЧІ

1. Виконати аналіз протоколу Kerberos

2. Зробити огляд існуючих алгоритмів криптографічних систем

3. Розробити програмний продукт на базі протоколу Kerberos

РОЗДІЛ 1. КРИПТОГРАФІЯ

1.1 Криптографічні системи З поширенням писемності в людському суспільстві з’явилась потреба в обміні листами та повідомленнями, що викликало необхідність приховування вмісту письмових повідомлень від сторонніх.

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

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

Методи приховування вмісту письмових повідомлень можна розділити на три групи. До першої групи належать методи маскування або Стеганографії, які здійснюють приховування факту наявності повідомлення, другу групу складають різні методи тайнопису або криптографії (від грецьких слів ktyptos — таємний і grapho — пишу); методи третьої групи орієнтовані на створення спеціальних технічних пристроїв, засекречування інформації. Історія криптографії - ровесниця історії людської мови. Більш того, спочатку писемність сама по собі була своєрідною криптографічною системою, так як у стародавніх суспільствах нею володіли тільки обрані.

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

Комп’ютерна криптографія (з 1970;х рр.) забов’язана своєю появою обчислювальним засобам з продуктивністю, достатньою для реалізації криптосистем, що забезпечують при великій швидкості шифрування на кілька порядків вищу крипостійкість, ніж «ручні» та «механічні» шифри. Першим класом криптосистем, практичне застосування яких стало можливо з появою потужних і компактних обчислювальних коштів, стали блокові шифри. У 70-і рр. був розроблений американський стандарт шифрування DES (прийнятий у 1978 р.). Фейстель (співробітник IBM), описав модель блокових шифрів, на основі якої були побудовані інші, більш стійкі симетричні криптосистеми, в тому числі вітчизняний стандарт шифрування ГОСТ 28 147–89.

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

У середині 70-х рр. ХХ століття стався справжній прорив у сучасній криптографії - поява асиметричних криптосистем, які не вимагали передачі особистого ключа між сторонами. Тут відправною точкою прийнято вважати роботу, опубліковану Уитфилда Діффі і Мартіном Хеллманом в 1976 р. під назвою «Нові напрямки в сучасній криптографії». У ній вперше сформульовані принципи обміну шифрованого інформацією без обміну секретним ключем. Незалежно до ідеї асиметричних криптосистем підійшов Ральф Меркле. Кількома роками пізніше Рон Ривест, Аді Шамір і Леонард Адлеман відкрили систему RSA, першу практичну асиметричну криптосистему, стійкість якої була заснована на проблемі факторизації великих простих чисел. Асиметрична криптографія відкрила відразу декілька нових прикладних напрямків, зокрема системи електронного цифрового підпису (ЕЦП) та електронних грошей.

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

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

Існує два види криптографічних систем:

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

1.2 Симетричні криптографічні системи

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

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

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

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

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

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

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

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

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

1.2.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.2.2 Алгоритм ГОСТ 28 147–89

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

1.2.3 Алгоритм 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.2.4 Алгоритм 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.2.5 Алгоритм IDEA

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

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

;

;

;

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

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

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

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

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

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

1.2.6 Алгоритм 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.2.7 Алгоритм 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.

1.2.8 Алгоритм XTEA

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

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

— кожен ключ в TEA еквівалентний трьом іншим, що означає, що ефективна довжина ключа становить 126 біт замість 128, як це було задумано розробниками;

— TEA сприйнятливий до атак на зв’язаних ключах. Така атака може зажадати всього лише вибраного відкритого тексту і мати часову складність рівну .

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

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

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

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

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

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

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

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

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

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

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

— абонент генерує пару ключів: секретний ключ і відкритий ключ ;

— відкритий ключ надсилається абоненту.

— Використання — обмін інформацією між абонентами і :

— абонент зашифровує повідомлення за допомогою відкритого ключа абонента і відправляє шифртекст абоненту ;

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

1.3.1 Алгоритм RSA

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

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

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

1.3.2 Алгоритм DSA

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

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

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

1.3.3 Алгоритм Elgamal

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

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

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

1.3.4 Алгоритм Rabin

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

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

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

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

1.3.5 Алгоритм McEliece

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

— Більш ефективна автентифікація на серверах. При автентифікації по протоколу NTLM сервера додатків доводиться підключатися до контролера домену при перевірці кожного клієнта. З Kerberos така необхідність відпадає - тут автентифікація проводиться за рахунок перевірки посвідчення, представленого клієнтом. Індивідуальне посвідчення клієнт отримує від контролера одного разу, після чого може неодноразово використовувати його протягом всього сеансу роботи в мережі.

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

— Делегована автентифікація. Коли клієнт мережі Windows звертається до ресурсів, служби операційної системи, перш за все, виробляють його ідентифікацію. У багатьох випадках для виконання цієї операції службі достатньо інформації на локальному комп’ютері. Як NTLM, так і Kerberos забезпечують всі дані, необхідні для ідентифікації користувача на місці, однак іноді їх буває недостатньо. Деякі розподілені додатки вимагають, щоб при підключенні до серверних служб на інших комп’ютерах ідентифікація клієнта проводилася локально службою самого цього клієнта. Вирішити проблему допомагає Kerberos, де передбачений спеціальний механізм представницьких білетів, який дозволяє на місці ідентифікувати клієнта при його підключенні до інших систем. У протоколі NTLM така можливість відсутня.

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

— Сумісність. В основу своєї реалізації протоколу Kerberos корпорація Microsoft поклала стандартні специфікації, рекомендовані групою IETF. Завдяки такому підходу вдалося забезпечити автентифікацію клієнтів Windows у всіх мережах, які підтримують Kerberos 5.

2.4 Робота протоколу

2.4.1 Автентифікатори Простий протокол автентифікації з секретним ключем вступає в дію, коли хто-небудь стукається в мережеві двері і просить впустити його. Щоб довести своє право на вхід, користувач пред’являє автентифікатор (authenticator) у вигляді блоку інформації, зашифрованого за допомогою секретного ключа. Зміст цього блоку має змінюватися при кожному наступному сеансі, в іншому випадку зловмисник цілком може проникнути в систему, скориставшись перехопленим повідомленням. Отримавши автентифікатор, воротар розшифровує його і перевіряє отриману інформацію, щоб переконатися в успішності розшифрування. Якщо все пройшло нормально, страж може бути впевнений, що людині, яка подала автентифікатор, відомий секретний ключ. Адже цей ключ знають лише двоє, причому один з них — сам воротар. Таким чином, він робить висновок, що це справді та людина, за яку себе видає.

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

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

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

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

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

Якщо ж час виявляється в межах допустимого відхилення, можна з великою часткою впевненості припустити, що автентифікатор присланий саме Оленою. Але Сергію цього мало, йому потрібна повна впевненість. Адже, він міркує, може бути й так: «Хтось перехопив попередню спробу Олени зв’язатися зі мною і тепер намагається скористатися її автентифікатором». Втім, якщо на комп’ютері збереглися записи про час автентифікаторів, що надійшли від Олени за останні п’ять хвилин, Сергій може знайти останній і відмовитися від усіх інших повідомлень, відправлених одночасно з ним або раніше. Але якщо друге поле свідчить, що повідомлення пішло в мережу вже після відправки останнього автентифікатора Олени, то і його автором цілком могла бути Олена.

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

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

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

Рисунок 2.1 — Взаємна автентифікація (Олена-Сергій)

2.4.2 Управління ключами При використанні простих протоколів, виникає одна дуже важлива проблема. Ми не знаємо де користувачі домовлялися про секретний ключі для свого листування. Звичайно, люди можуть просто зустрітися в парку і обговорити всі деталі, але ж в мережевих переговорах беруть участь машини. Якщо під Оленою розуміти клієнтську програму, встановлену на робочій станції, а під Сергієм — службу на мережному сервері, то зустрітися вони ніяк не можуть. Проблема ще більше ускладнюється у тих випадках, коли Олені - клієнтові - потрібно посилати повідомлення на кілька серверів, адже для кожного з них доведеться обзавестися окремим ключем. Та й службі на ім'я Сергій буде потрібно стільки секретних ключів, скільки у неї клієнтів. Але якщо кожному клієнту для підтримки зв’язку з кожною службою потрібен індивідуальний ключ, і такий же ключ потрібен кожній службі для кожного клієнта, то проблема обміну ключами дуже швидко набуває граничну гостроту. Необхідність збереження і захисту такої безлічі ключів на величезній кількості комп’ютерів створює неймовірний ризик для всієї системи безпеки.

Сама назва протоколу Kerberos говорить про те, як тут вирішена проблема управління ключами. Кербер (або Цербер) — персонаж класичної грецької міфології. Цей лютий пес з трьома головами, за повір'ями греків, охороняє ворота підземного царства мертвих. Трьом головам Кербера в протоколі Kerberos відповідають три учасники безпечного зв’язку: клієнт, сервер і довірений посередник між ними. Роль посередника тут грає так званий центр розподілу ключів KDC.

KDC представляє собою службу, що працює на фізично захищеному сервері. Вона веде базу даних з інформацією про облікові записи всіх головних абонентів безпеки (security principal) своєї області. Разом з інформацією про кожного абонента безпеки в базі даних KDC зберігається криптографічний ключ, відомий тільки цьому абоненту та службі KDC. Даний ключ, який називають довготривалим, використовується для зв’язку користувача системи безпеки з центром розподілу ключів. У більшості практичних реалізацій протоколу Kerberos довготривалі ключі створюються на основі пароля користувача.

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

Рисунок 2.2 — Управління ключами (в теорії)

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

2.4.3 Сеансові білети У відповідь на запит клієнта, який має намір підключитися до сервера, служба KDC направляє обидві копії сеансового ключа клієнта, як показано на рис. 3. Повідомлення, призначене клієнту, шифрується за допомогою довгострокового ключа клієнта, а сеансовий ключ для сервера разом з інформацією про клієнта вкладається в блок даних, що одержав назву сеансового білета (session ticket). Потім сеансовий білет цілком шифрується за допомогою довгострокового ключа сервера, який знають тільки служба KDC і цей сервер. Після цього вся відповідальність за обробку білета, який несе в собі зашифрований сеансовий ключ, покладається на клієнта, який повинен доставити його на сервер (рисунок 2.3).

Рисунок 2.3 — Управління ключами (на практиці)

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

Показати весь текст
Заповнити форму поточною роботою