Kerberos

Рассел Кей, Тижневик «Computerworld Росія»

Визначення

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

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

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

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

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

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

Наскільки стандартний стандарт?

У Windows 2000 за умовчанням як протоколу мережевої аутентифікації встановлений Version 5. Щоб забезпечити можливість аутентифікації по відкритому ключу, а не тільки по стандартному секретному ключу , Microsoft вирішила додати до протоколу розширення власної розробки. Реалізація вийшла кілька нестандартної, хоча і допускає аутентифікацію комп'ютерів, що знаходяться в мережах, керованих не Windows 2000.

У Windows 2000 процес аутентифікації реалізований більш раціонально, ніж в NT, оскільки застосування усунуло необхідність додатково звірятися з контролером домену.

Принцип дії

КРОК ПЕРШИЙ

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

КРОК ДРУГИЙ

Обмін зі службою видачі мандатів: клієнт дешифрує повідомлення і відновлює сеансовий ключ; потім використовує його для створення аутентифікатором, що містить ім'я користувача, IP-адресу та позначку часу. Клієнт відправляє цей аутентифікатор разом з TGT на TGS, запитуючи дозвіл на доступ до сервера призначення. TGS дешифрує TGT, потім використовує міститься в ньому SK1 для розшифровки аутентифікатором. TGS перевіряє достовірність інформації, міститься в аутентифікатором, мандат, мережеву адресу клієнта і відмітку часу. Якщо все збігається, запит допускається на обробку. Потім TGS створює новий сеансовий ключ (SK2) для використання клієнтом і сервером призначення, шифрує його з допомогою SK1 і відправляє клієнту. TGS також відправляє новий мандат, який містить ім'я сервера, і зашифровані за допомогою секретного ключа сервера призначення ім'я клієнта, мережеву адресу, тимчасової ярлик і час закінчення терміну дії мандата.

КРОК ТРЕТІЙ

Обмін між клієнтом і сервером: клієнт дешифрує повідомлення і отримує SK2. Він, нарешті, готовий до встановлення зв'язку з сервером призначення та створює новий аутентифікатор, зашифрований з використанням SK2. Клієнт відправляє сеансовий мандат (вже зашифрований по секретному ключу сервера призначення) і зашифрований аутентифікатор. Те, що аутентифікатор містить звичайний текст, зашифрований за SK2, підтверджує, що клієнт знає ключ. Зашифрована позначка часу не дає потенційному перехоплювачі записати одночасно і мандат, і аутентифікатор для наступного їх відтворення. Сервер призначення розшифровує і перевіряє мандат, аутентифікатор, адреса клієнта і відмітку часу. Для додатків, що вимагають двосторонньої аутентифікації, сервер призначення повертає повідомлення, що складається з зашифрованою за SK2 позначки часу, збільшеною на 1. Для клієнта це служить підтвердженням, що сервер дійсно знає власний секретний ключ і, отже, може розшифрувати мандат і аутентифікатор.

КРОК ЧЕТВЕРТИЙ

Захищений обмін даними: сервер призначення «знає», що клієнт – саме той, за кого себе видає, і тепер ця пара використовує загальний ключ шифрування для захищеного обміну даними. Оскільки даний ключ відомий лише клієнту і сервера, вони мають право припускати, що останнє повідомлення, зашифроване цим ключем, відправлено одним з учасників сеансу.

Примітка. Даний опис в адаптованому і істотно спрощеному вигляді запозичене з книги Брюса Шнайера Applied Cryptography: Protocols, Algorithms, and Source Code in C.

Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*