Розподіл ключів 1

Розподіл ключів - найвідповідальніший процес в управлінні ключами. До нього ставляться такі вимоги:

· Оперативність і точність розподілу;

· Скритність розподіляються ключів.

Розподіл ключів між користувачами комп'ютерної мережі реалізується двома способами:

1) використанням одного або декількох центрів розподілу ключів;

2) прямим обміном сеансовими ключами між користувачами мережі.

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

Механізм запиту-відповіді полягає в наступному. Користувач А включає в посилається повідомлення (запит) для користувача В непередбачуваний елемент (наприклад, випадкове число). При відповіді користувач В повинен виконати деяку операцію з цим елементом (наприклад, додати одиницю), що неможливо здійснити заздалегідь, оскільки невідомо, яке випадкове число прийде в запиті. Після отримання результату дій користувача В (відповідь) користувач А може бути впевнений, що сеанс є справжнім.

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

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

Завдання розподілу ключів зводиться до побудови протоколу розподілу ключів, що забезпечує:

· Взаємне підтвердження автентичності учасників сеансу;

· Підтвердження достовірності сеансу механізмом запиту-відповіді або позначки часу;

· Використання мінімального числа повідомлень при обміні ключами;

· Можливість виключення зловживань з боку центру розподілу ключів (аж до відмови від нього).

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

При включенні в процес розподілу ключів центру розподілу ключів (ЦРК) здійснюється його взаємодія з одним або обома учасниками сеансу з метою розподілу секретних або відкритих ключів, призначених для використання в наступних сеансах зв'язку.

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

Розглянемо протоколи для симетричних криптосистем з секретними ключами і для асиметричних криптосистем з відкритими ключами. Зухвалий (вихідний об'єкт) позначається через А, а викликається (об'єкт призначення) - через В. Учасники сеансу А і В мають унікальні ідентифікатори IdA і IdB відповідно.

5.6.4. Протокол аутентифікації і розподілу
ключів для симетричних криптосистем

Розглянемо як приклад протокол аутентифікації і розподілу ключів Kerberos (по-російськи - Цербер). Протокол Kerberos спроектований для роботи в мережах TCP / IP і передбачає участь в аутентифікації і розподілі ключів третьої довіреної сторони. Kerberos забезпечує надійну аутентифікацію в мережі, дозволяючи законному користувачеві доступ до різних машин в мережі. Протокол Kerberos грунтується на симетричних шифрах (реалізований алгоритм DES, хоча можливе застосування і інших симетричних криптоалгоритмів). Kerberos виробляє окремий секретний ключ для кожного суб'єкта мережі, і знання такого секретного ключа рівносильно доказу автентичності суб'єкта мережі.

Основний протокол Kerberos є варіантом протоколу аутентифікації і розподілу ключів Нідхема-Шредера. У версії 5 основного протоколу Kerberos беруть участь дві взаємодіючі сторони А і В і довірений сервер KS (Kerberos Server). Сторони А і В, кожна окремо, поділяють свій секретний ключ з сервером KS. Довірений сервер KS виконує роль центру розподілу ключів ЦРК.

Нехай сторона А хоче отримати сеансовий ключ для інформаційного обміну зі стороною В.

Сторона А ініціює фазу розподілу ключів, посилаючи по мережі сервера KS ідентифікатори IdA і IdB:

Сервер KS генерує повідомлення з тимчасовою оцінкою Т, терміном дії L, випадковим сеансовим ключем К і ідентифікатором IdA. Він шифрує це повідомлення секретним ключем, який розділяє зі стороною В.

Потім сервер KS бере тимчасову позначку Т, термін дії L, сеансовий ключ К, ідентифікатор IdB боку В і шифрує все це секретним ключем, який розділяє зі стороною А. Обидва ці зашифровані повідомлення він відправляє стороні А:

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

Потім сторона А генерує повідомлення зі своїм ідентифікатором IdA і відміткою часу Т, шифрує його сеансовим ключем К і відправляє стороні В. Крім того, А відправляє для В повідомлення від KS, зашифроване ключем боку В:

Тільки сторона В може розшифрувати повідомлення (3). Сторона В отримує позначку часу Т, термін дії L, сеансовий ключ К і ідентифікатор IdA. Потім сторона В розшифровує сеансовий ключем К другу частину повідомлення (3). Збіг значень Т і IdA в двох частинах повідомлення підтверджують справжність А по відношенню до В.

Для взаємного підтвердження автентичності сторона В створює повідомлення, що складається з позначки часу Т плюс 1, шифрує його ключем К і відправляє стороні A:

Якщо після розшифрування повідомлення (4) сторона А отримує очікуваний результат, вона знає, що на іншому кінці лінії зв'язку знаходиться дійсно В.

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

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

Система Kerberos має структуру типу клієнт-сервер і складається з клієнтських частин С, встановлених на всі машини мережі (робочі станції користувачів і сервери), і Kerberos-сервера KS, розташованого на будь-якому (не обов'язково виділеному) комп'ютері.

Kerberos-сервер, в свою чергу, можна розділити на дві частини: сервер ідентифікації AS (Authentication Server) і сервер видачі дозволів TGS (Ticket Granting Server). Інформаційними ресурсами, необхідними клієнтам С, управляє сервер інформаційних ресурсів RS (див. Наступний рис.).

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