Kerberos (протокол)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

Історія і розвиток

Протокол Kerberos розроблявся інститутом МІТ для забезпечення безпеки сервісів проекту Афіна, метою якого було забезпечення доступності навчальних матеріалів із будь-якої станції. Назва протоколу походить від грецької міфічної триголової потвори Цербера, захисника підземного царства. Існує декілька версій протоколу Включно із третьою були доступні лише для внутрішнього користування у МІТ.

Стів Міллер (англ. Steve Miller) та Кліффорд Ньюман (англ. Clifford Neuman), основні архітектори четвертої версії Kerberos, опублікували її у кінці 1980-х, хоча вона також розроблялась в основному для проекту Афіна. П'ята версія протоколу, розроблена Джоном Колем (англ. John Kohl) та Кліффордом Ньюманом, з'явилась у 1993 році як рекомендація на стандарт RFC 1510, оновлена 2005 року у RFC 4120.

Цілі

У своїй основі протокол Kerberos ставить перед собою реалізацію таких принципів:

  • Пароль користувача ніколи не повинен передаватись по мережі;
  • Пароль користувача ні в якій формі не повинен зберігатись на клієнтській машині: він має бути ліквідований одразу після використання;
  • Пароль користувача не повинен зберігатись у незашифрованому вигляді навіть у базі даних аутентифікації (authentication server database);
  • Користувач вводить пароль лише раз за сесію. Таким чином, користувачі мають доступ до всіх сервісів, на які вони авторизовані, без потреби заново вводити пароль під час сесії. Ця властивість також відома як Single Sign-On;
  • Управління аутентифікацією здійснюється централізовано сервером аутентифікації. Прикладні сервери, що надають послуги, не повинні містити аутентифікаційних відомостей користувачів. Це важливо для централізованого адміністрування облікових записів користувачів; не зберігається надлишкова інформація аутентифікації на різних серверах; при зміні користувачем паролю, він одночасно міняється для всіх наданих послуг.
  • Не лише користувачі зобов'язані підтвердити, що вони є тими, ким заявляють, але й прикладні сервери повинні підтвердити свою ідентичність користувачам. Цей процес називається Взаємна аутентифікація;
  • Після завершення етапів аутентифікації та авторизації, клієнт та сервер повинні мати можливість встановити зашифрований зв'язок. З цією метою Kerberos підтримує генерацію і обмін ключів шифрування.

Опис протоколу

В основу Kerberos покладений протокол Нідхема-Шредера. У ролі довіреної третьої сторони виступає Центр Розподілу Ключів (ЦРК, англ. Key Distribution Center), що складається із двох логічно розділених частин: Сервера Аутентифікації (ЦА, англ. Authentication Server) і Сервера Видачі Квитків (СВК, англ. Ticket Granting Server). Kerberos працює на основі "квитків", які використовуються для підтвердження ідентичності користувачів.

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

Спрощений опис протоколу виглядає таким чином

  • СА - Сервер Аутентифікації
  • СВК - Сервер Видачі Квитків
  • ПС - прикладний сервер, надає послуги
  • КВК - Квиток Видачі Квитків (англ. Ticket Granting Ticket)

Клієнт проходить аутентифікацію у СА з допомогою довготривалого спільного секрету і отримує квиток від СА. Пізніше клієнт використовує квиток для отримання додаткових квитків для ПС без потреби використання спільного секрету. Ці квитки підтверджують аутентифікацію для ПС.


Посилання