Протокол автентифікації Kerberos версії 5 забезпечує механізм автентифікації — і взаємної автентифікації — між клієнтом і сервером або між одним сервером та іншим сервером.
Windows Server 2003 реалізує протокол Kerberos V5 як постачальник підтримки безпеки (SSP), до якого можна отримати доступ через інтерфейс постачальника підтримки безпеки (SSPI). Крім того, Windows Server 2003 реалізує розширення протоколу, які дозволяють початкову автентифікацію за допомогою сертифікатів відкритих ключів на смарт-картках.
Центр розповсюдження ключів Kerberos (KDC) використовує базу даних служби каталогів Active Directory домену як базу даних облікового запису безпеки. Служба Active Directory потрібна для реалізацій NTLM і Kerberos за замовчуванням.
Протокол Kerberos V5 передбачає, що початкові транзакції між клієнтами та серверами відбуваються у відкритій мережі, у якій пакети, що передаються по мережі, можна відстежувати та змінювати за бажанням. Іншими словами, припущене середовище дуже схоже на сучасний Інтернет, де зловмисник може легко представити себе або клієнтом, або сервером, і може легко підслуховувати або втручатися в комунікації між законними клієнтами та серверами.
Корпорація Майкрософт реалізує протокол Kerberos V5:
Стандартний пакет автентифікації для Windows Server 2003.
Протокол Kerberos V5 став пакетом автентифікації за замовчуванням у Windows 2000. Windows Server 2003 все ще підтримує NTLM для клієнтів, які не підтримують Kerberos, наприклад операційної системи Windows NT Server 4.0.
На основі RFC 1510 і чорнових версій.
Протокол Kerberos є зрілим, широко використовуваним відкритим стандартом. Реалізація протоколу Kerberos V5 від Microsoft відповідає визначеним стандартам RFC і, таким чином, забезпечує взаємодію з іншими реалізаціями.
Розширюваний.
Архітектура Kerberos дозволяє вказати додаткові або альтернативні методи безпеки. Крім того, стандартний процес загального секретного ключа можна доповнити парами приватних/відкритих ключів за допомогою смарт-карт.
Переваги автентифікації Kerberos
Протокол Kerberos V5 безпечніший, гнучкіший і ефективніший, ніж NTLM. Переваги використання автентифікації Kerberos:
Делегована автентифікація
Служби Windows видають себе за клієнта під час доступу до ресурсів від імені клієнта. У багатьох випадках служба може завершити свою роботу для клієнта, отримавши доступ до ресурсів на локальному комп’ютері. І NTLM, і протокол Kerberos V5 надають інформацію, необхідну службі, щоб імітувати свого клієнта локально. Однак деякі розподілені програми розроблені таким чином, що зовнішня служба повинна імітувати клієнтів під час підключення до серверної завершити служби на інших комп’ютерах. Протокол Kerberos V5 містить механізм проксі, який дозволяє службі імітувати свого клієнта під час підключення до інших служб. Для NTLM немає еквівалента.
Сумісність
Реалізація Microsoft протоколу Kerberos V5 базується на стандартах-специфікації треків, рекомендовані Інженерній робочій групі Інтернету (IETF). Як наслідок, реалізація протоколу Kerberos V5 у Windows Server 2003 закладає основу для взаємодії з іншими мережами, у яких протокол Kerberos V5 використовується для автентифікації.
Більш ефективна автентифікація на серверах
За допомогою автентифікації NTLM сервер додатків повинен підключитися до контролера домену, щоб автентифікувати кожного клієнта. З іншого боку, з протоколом автентифікації Kerberos V5 серверу не потрібно звертатися до контролера домену. Натомість сервер може автентифікувати клієнта, перевіряючи облікові дані, надані клієнтом. Клієнти можуть отримати облікові дані для певного сервера один раз, а потім повторно використовувати ці облікові дані протягом сеансу входу в мережу. Відновлювані сеансові квитки замінюють наскрізну автентифікацію.
Взаємна аутентифікація
Використовуючи протокол Kerberos, сторона на будь-якому кінці мережевого з’єднання може перевірити, чи сторона на іншому кінці є тим об’єктом, за якого себе видає. Хоча NTLM дозволяє серверам перевіряти ідентифікаційні дані своїх клієнтів, NTLM не дозволяє клієнтам перевіряти ідентифікаційні дані сервера, також NTLM не дозволяє одному серверу перевіряти ідентичність іншого. Аутентифікація NTLM була розроблена для мережевого середовища, у якому сервери вважалися справжніми. Протокол Kerberos V5 не робить такого припущення.
Стандарти протоколу Kerberos V5
Протокол автентифікації Kerberos виник у Массачусетському технологічному інституті більше десяти років тому, де його розробили інженери, які працювали над проектом Athena. Першим публічним випуском був протокол автентифікації Kerberos версії 4. Після ретельного аналізу цього протоколу галуззю, автори протоколу розробили та випустили протокол автентифікації Kerberos версії 5.
Протокол Kerberos V5 тепер стандартизований IETF. Реалізація протоколу в Windows Server 2003 точно відповідає специфікації, визначеній у Internet RFC 1510. Крім того, механізм і формат для передачі маркерів безпеки в повідомленнях Kerberos відповідає специфікації, визначеній у Internet RFC 1964.
Протокол Kerberos V5 визначає механізми для:
Автентифікація користувача. Коли користувач хоче отримати доступ до сервера, сервер повинен підтвердити особу користувача. Розглянемо ситуацію, коли користувач видає себе, наприклад, [email protected]. Оскільки доступ до ресурсів базується на ідентифікації та пов’язаних дозволах, сервер повинен бути впевнений, що користувач справді має ту особу, яку він заявляє.
Надійно запакуйте ім’я користувача. Ім’я користувача — наприклад, основне ім’я користувача (UPN): [email protected], — і облікові дані користувача упаковані в структуру даних, яка називається квиток.
Безпечна доставка облікових даних користувача. Після того, як квиток буде зашифровано, повідомлення використовуються для передачі облікових даних користувача по мережі.
Примітка
Хоча протокол Kerberos ідентифікує особу користувача, він не авторизує доступ. Це важлива відмінність. Квитки в інших контекстах, як-от водійські права, часто підтверджують особу та дозволяють дії чи доступ. Квиток Kerberos лише доводить, що користувач є тим, за кого себе видає. Після підтвердження особи користувача місцевий орган безпеки надасть або заборонить доступ до ресурсу.
Ключі: конфіденційність через шифрування
Повідомлення Kerberos шифруються різними ключами шифрування, щоб гарантувати, що ніхто не зможе підробити квиток клієнта чи інші дані в повідомленні Kerberos.
Можливі ключі Kerberos включають:
Довгостроковий ключ.
Ключ, відомий лише цільовому серверу та KDC, за допомогою якого шифрується квиток клієнта.
Ключ сеансу клієнт/сервер.
Короткочасний односеансовий ключ, який створюється KDC і використовується для шифрування повідомлень клієнт-сервер і сервер-клієнт після підтвердження особи та авторизації.
KDC/ключ сеансу користувача.
KDC і користувач також мають спільний секретний ключ шифрування, який використовується, наприклад,
для шифрування повідомлення клієнту, що містить ключ сеансу.
Протокол Kerberos V5 може використовувати як симетричне, так і асиметричне шифрування
Оскільки більшість методів шифрування Kerberos базуються на ключах, які можуть бути створені лише KDC і клієнтом або KDC і мережевою службою, протокол Kerberos V5 використовує симетричне шифрування. Тобто для шифрування та дешифрування повідомлень використовується один і той же ключ.
Реалізація Microsoft протоколу Kerberos також може обмежено використовувати асиметричне шифрування. Пару приватний/відкритий ключ можна використовувати для шифрування або розшифровки початкових повідомлень автентифікації від мережевого клієнта або мережевої служби.
Автентифікатор Kerberos запобігає повторному відтворенню пакетів
Механізм автентифікації Kerberos створює та безпечно доставляє автентифікатор — зазвичай на основі унікальних часових позначок — разом із квитком клієнта. Автентифікатор унікальний і дійсний лише для одного використання. Таке обмежене використання зводить до мінімуму можливість отримання кимось і повторного використання (відтворення) квитка клієнта, можливо, з метою викрадення та використання особи клієнта.
Підтримувані розширення протоколу Kerberos V5
Windows Server 2003 реалізує розширення протоколу Kerberos V5. Розширення забезпечують початкову автентифікацію за допомогою сертифікатів відкритих ключів замість звичайних спільних секретних ключів. Це вдосконалення дозволяє протоколу підтримувати інтерактивний вхід за допомогою смарт-картки. Розширення для автентифікації з відкритим ключем базуються на чернетці специфікації, над якою працює робоча група IETF.
У наведеній нижче таблиці наведено опис компонентів, які беруть участь у автентифікації Kerberos.
Компоненти підсистеми безпеки, що використовуються в дайджест-автентифікації
Windows Server 2003 реалізує протокол автентифікації Kerberos V5 як SSP, який є бібліотекою динамічного компонування (DLL), що постачається з операційною системою. Система використовує Kerberos SSP, Kerberos.dll, як перший вибір для автентифікації. Після того, як LSA встановить контекст безпеки для інтерактивного користувача, інший екземпляр Kerberos SSP може бути завантажений процесом, що виконується в контексті безпеки користувача, щоб підтримувати підписання та запечатування повідомлень.
Оскільки протокол Kerberos є кращим протоколом автентифікації для Windows Server 2003, усі служби домену підтримують Kerberos SSP, зокрема:
Запити Active Directory, які використовують полегшений протокол доступу до каталогу (LDAP).
Віддалене керування сервером або робочою станцією за допомогою викликів RPC.
Послуги друку.
Аутентифікація клієнт-сервер.
Віддалений доступ до файлів, який використовує загальну файлову систему Інтернету/блок повідомлень сервера (CIFS/SMB).
Управління розподіленою файловою системою та реферали.
Автентифікація внутрішньої мережі для інформаційних служб Інтернету (IIS).
Автентифікація центру безпеки для захисту Інтернет-протоколу (IPSec).
Запити на сертифікати до служб сертифікації для користувачів домену та комп’ютерів.
Залежності автентифікації Kerberos
У цьому розділі розглядаються залежності та підсумовується, як кожна залежність пов’язана з автентифікацією Kerberos.
Операційна система
Автентифікація Kerberos покладається на клієнтські функції, вбудовані в операційну систему Windows Server 2003, операційну систему Microsoft Windows XP, і операційна система Windows 2000. Якщо клієнт, контролер домену або цільовий сервер працює під керуванням попередньої операційної системи, він не може використовувати автентифікацію Kerberos.
Підключення до мережі TCP/IP
Для здійснення автентифікації Kerberos між клієнтом, контролером домену та цільовим сервером має існувати мережеве з’єднання TCP/IP. Щоб отримати додаткові відомості про TCP/IP, перегляньте «Технічну довідку щодо TCP/IP».
Система доменних імен
Клієнт використовує повне доменне ім’я (FQDN) для доступу до контролера домену. DNS має працювати, щоб клієнт міг отримати FQDN.
Щоб отримати найкращі результати, не використовуйте файли Hosts із DNS.
Домен Active Directory
Автентифікація Kerberos не підтримується в попередніх операційних системах, таких як операційна система Microsoft Windows NT 4.0. Щоб використовувати автентифікацію Kerberos, ви повинні використовувати облікові записи користувача та комп’ютера в службі каталогів Active Directory.
Локальні облікові записи та облікові записи домену Windows NT не можна використовувати для автентифікації Kerberos.
Служба часу
Щоб автентифікація Kerberos працювала належним чином, усі домени та ліси в мережі мають використовувати одне джерело часу, щоб час на всіх комп’ютерах мережі було синхронізовано.
Контролер домену Active Directory діє як авторитетне джерело часу для свого домену, що гарантує, що весь домен має однаковий час. Щоб отримати додаткові відомості, перегляньте «Технічну довідку служби часу Windows».
Імена принципалів служби
Імена учасників служб (SPN) — це унікальні ідентифікатори служб, що працюють на серверах.
Кожна служба, яка використовує автентифікацію Kerberos, повинна мати для неї встановлений SPN, щоб клієнти могли ідентифікувати службу в мережі. Якщо для служби не встановлено SPN, клієнти не зможуть знайти цю службу. Без правильно встановлених SPN автентифікація Kerberos неможлива. Щоб отримати додаткові відомості про автентифікацію між користувачами, перегляньте «Як працює протокол автентифікації Kerberos версії 5» і знайдіть «Процес автентифікації між користувачами».