Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
440-620.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.13 Mб
Скачать

8.5. Пример — Kerberos

Теперь уже должно быть понятно, что обеспечение защиты в распределенных системах — задача не из простых. Проблемы возникают из-за того, что защита должна быть всеобъемлющей, если в ней встретятся слабые места, то легко пре­одолимой становится защита всей системы. Чтобы помочь разработчику распре­деленных систем поддерживать мириады правил защиты, было создано несколь­ко систем поддержки защиты, которые можно использовать в качестве базы для дальнейших разработок. Одной из часто применяемых систем подобного рода яв­ляется Kerberos [239, 433].

Система Kerberos была разработан в M.I.T. и основывается на протоколе аутентификации Нидхема—Шредера (Needham—Schroeder), который мы ранее рассматривали. В настоящее время используются две версии Kerberos, версия 4 и версия 5. Обе версии концептуально одинаковы, но версия 4 проще для пони­мания. Версия 5 по сравнению с версией 4 содержит множество дополнительных возможностей и поэтому на практике обычно предпочтительнее. Мы сосредото­чимся исключительно на проблемах аутентификации.

Kerberos можно рассматривать как безопасную систему, которая помогает клиентам создавать защищенный канал связи с сервером. Защита реализуется при помощи общих секретных ключей. В системе имеются два компонента. Сер­вер аутентификации (Authentication Server, AS) отвечает за обработку запросов на организацию соединения, присылаемых пользователями. AS идентифицирует пользователей и предоставляет им ключи, которые можно использовать для ор­ганизации защищенных каналов связи с сервером. Создание защищенных кана­лов производится службой предоставления талонов (Ticket Granting Service, TGS). TGS рассылает специальные сообщения, известные под названием талонов (tickets),

которые используются, чтобы сообщить серверу, что клиент — действительно тот, за кого он себя выдает. Ниже мы приведем конкретные примеры талонов.

Давайте рассмотрим, как Алиса входит в распределенную систему, защищен­ную системой Kerberos, и устанавливает защищенный канал связи с сервером Боба. Для входа в систему Алиса может использовать любую свободную рабо­чую станцию. Рабочая станция отсылает ее имя серверу AS, который возвращает сеансовый ключ KAjGS и талон, который она должна будет передать службе TGS.

Талон, возвращенный AS, содержит идентификатор Алисы и созданный сек­ретный ключ, который Алиса и TGS могут использовать для связи между собой. Сам талон будет передан Алисой службе TGS, поэтому важно, чтобы никто, кро­ме TGS, не мог его прочитать. Для этого талон шифруется секретным ключом Kas,tgs, которым совместно пользуются AS и TGS.

Эта часть процедуры входа в систему соответствует сообщениям 1, 2 и 3 на рис. 8.37. Сообщение 1 на самом деле не является сообщением, оно соответству­ет вводу Алисой на рабочей станции своего входного имени (login). Сообщение 2 содержит это имя и посылается AS. Сообщение 3 содержит сеансовый ключ Kajgs и талон Kasjgs(A Kajgs)- Для обеспечения защиты сообщение 3 шифрует­ся секретным ключом Ka,as, совместно используемым Алисой и AS.

После того как рабочая станция получает ответ от AS, она предлагает Алисе ввести пароль (сообщение 4), который будет использован для последующей гене­рации секретного ключа Kaas (относительно несложно взять строку символов, применить к ней криптографическое хэширование и использовать первые 56 бит хэша в качестве секретного ключа). Отметим, что подобный подход имеет не толь­ко то преимущество, что пароль Алисы никогда не передается по сети в откры­том виде; он даже временно не сохраняется на рабочей станции. Более того, сразу после создания общего ключа Ka,as рабочая станция получает сеансовый ключ Kajgs и может забыть о пароле Алисы, пользуясь только секретным общим клю­чом Ka,as.

После этой части аутентификации Алиса может считать себя вошедшей в систему. Теперь она может связываться с другими пользователями и серверами. Если она хочет пообщаться с Бобом, она запрашивает у TSG сеансовый ключ для работы с Бобом (сообщение 6 на рис. 8.37). Тот факт, что Алиса обладает та­лоном Kas,tgs(A, KAtrcs)j подтверждает, что это Алиса. TGS возвращает ей сеансо­вый ключ Кл>в, вновь упакованный в талон, который Алиса позже перешлет Бобу.

Сообщение 6 также содержит отметку времени t, зашифрованную секретным ключом, который совместно используется Алисой и TGS. Эта отметка времени требуется для того, чтобы Чак не смог злонамеренно послать сообщение 6 еще раз и попытаться организовать защищенный канал с Бобом. TGS проверяет от­метку времени, прежде чем возвращать Алисе талон. Если указанное в отметке время отличается от текущего времени более чем на несколько минут, запрос на талон будет оставлен без ответа.

Как показано на рис. 8.38, организация защищенного канала связи с Бобом теперь проста и не вызывает никаких сложностей. Сначала Алиса вместе с за­шифрованной отметкой времени посылает Бобу сообщение, содержащее талон, который она получила от TGS. Расшифровав талон, Боб узнает, что с ним обща­ется Алиса, поскольку создать талон могла только служба TGS. Кроме того, он получает секретный ключ КЛ>В} который позволяет ему проверить отметку време­ни. После этого Боб понимает, что общается с именно Алисой. Ответив посыл­кой сообщения KAtB(t+ 1), Боб убеждает Алису, что это действительно он.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]