double arrow

СЕРВЕР АУТЕНТИФИКАЦИИ KERBEROS

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

Kerberos предназначен для решения следующей задачи. Имеется открытая (незащищенная) сеть, в узлах которой сосредоточены субъекты – пользователи, а также клиентские и серверные программные системы. Каждый субъект обладает секретным ключом. Чтобы субъект C мог доказать свою подлинность субъекту S (без этого S не станет обслуживать C), он должен не только назвать себя, но и продемонстрировать знание секретного ключа. C не может просто послать S свой секретный ключ, во-первых, потому, что сеть открыта (доступна для пассивного и активного прослушивания), а, во-вторых, потому, что S не знает (и не должен знать) секретный ключ C. Требуется менее прямолинейный способ демонстрации знания секретного ключа.

Система Kerberos представляет собой доверенную третью сторону (т.е. сторону, которой доверяют все), владеющую секретными ключами обслуживаемых субъектов и помогающую им в попарной проверке подлинности.

Чтобы с помощью Kerberos получить доступ к S (обычно это сервер), C (как правило – клиент) посылает Kerberos запрос, содержащий сведения о нем (клиенте) и о запрашиваемой услуге. В ответ Kerberos возвращает так называемый билет, зашифрованный секретным ключом сервера, и копию части информации из билета, зашифрованную секретным ключом клиента. Клиент должен расшифровать вторую порцию данных и переслать ее вместе с билетом серверу. Сервер, расшифровав билет, может сравнить его содержимое с дополнительной информацией, присланной клиентом. Совпадение свидетельствует о том, что клиент смог расшифровать предназначенные ему данные (ведь содержимое билета никому, кроме сервера и Kerberos, недоступно), т.е. продемонстрировал знание секретного ключа. Значит, клиент – именно тот, за кого себя выдает.

Рис. 3. Проверка сервером S подлинности клиента C.

Протокол аутентификации Kerberos определяет взаимодействие между клиентом и сетевым сервисом аутентификации, известным как KDC (Key Distribution Center). В Windows NT KDC используется как сервис аутентификации на всех контроллерах домена. Домен Windows NT эквивалентен области Kerberos, но к ней обращаются как к домену. Реализация протокола Kerberos в Windows NT основана на определении Kerberos в RFC1510, клиент Kerberos реализован в виде ПФБ (поставщика функций безопасности) Windows NT. Начальная аутентификация Kerberos интегрирована с процедурой WinLogon. Сервер Kerberos (KDC) интегрирован с существующими службами безопасности Windows NT, исполняемыми на контроллере домена. Для хранения информации о пользователях и группах он использует службу каталогов Active Directory.

В системе безопасности Windows NT протокол Kerberos берёт на себя следующие функции:

1) повышенние скорости аутентификации при установлении начального соединения (сервер приложений не обращается к контроллеру домена для аутентификации клиента);

2) делегирование аутентификации в многоярусных архитектурах клиент-сервер (при подключении клиента к серверу, последний представляет клиента в этой системе, но если серверу для завершения транзакции нужно выполнить сетевое подключение к другому серверу, протокол Kerberos позволяет делегировать аутентификацию первого сервера и подключиться ко второму от имени клиента);

3) транзитивные доверительные отношения для междудоменной аутентификации (т.е пользователь может быть аутентифицирован в любом месте дерева доменов) упрощают управление доменами в больших сетях с несколькими доменами.


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