Сервер аутентифікації Kerberos

Kerberos - це програмний продукт, розроблений в середині 1980-х років в Массачусетському технологічному інституті і витерпить з тих пір ряд принципових змін. Клієнтські компоненти Kerberos присутні в більшості сучасних операційних систем.

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

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

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

Проілюструємо описану процедуру.

Рис. 10.1. Перевірка сервером S дійсності клієнта C.

Тут c і s - відомості (наприклад, ім'я), відповідно, про клієнта і сервер, d1 і d2 - додаткова (по відношенню до квитка) інформація, Tc.s - квиток для клієнта C на обслуговування у сервера S, Kc і Ks - секретні ключі клієнта і сервера, {info} K - інформація info, зашифрована ключем K.

Наведена схема - вкрай спрощена версія реальної процедури перевірки автентичності. Більш докладний розгляд системи Kerberos можна знайти, наприклад, у статті В. Галатенко "Сервер аутентифікації Kerberos (Jet Info, 1996, 12-13). Нам же важливо відзначити, що Kerberos не тільки стійкий до мережевих погроз, але і підтримує концепцію єдиного входу в мережу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: