- •7.5.2. Трехфазное подтверждение
- •7.6. Восстановление
- •7.6.1. Основные понятия
- •7.6.2. Создание контрольных точек
- •7.6.3. Протоколирование сообщений
- •7.7. Итоги
- •Глава 8
- •8.1. Общие вопросы защиты
- •8.1.1. Угрозы, правила и механизмы
- •8.1.2. Вопросы разработки
- •8.1.3. Криптография
- •8.2. Защищенные каналы
- •8.2.1. Аутентификация
- •8.2.2. Целостность и конфиденциальность сообщений
- •8.2.3. Защищенное групповое взаимодействие
- •8.3. Контроль доступа
- •8.3.1. Общие вопросы контроля доступа
- •8.3.2. Брандмауэры
- •8.3.3. Защита мобильного кода
- •8.4. Управление защитой
- •8.4.1. Управление ключами
- •8.4.2. Управление защищенными группами
- •8.4.3. Управление авторизацией
- •8.5. Пример — Kerberos
- •8.6. Пример — sesame
- •8.6.1. Компоненты системы sesame
- •8.6.2. Сертификаты атрибутов привилегий
- •8.7. Пример — электронные платежные системы
- •8.7.1. Электронные платежные системы
- •8.7.2. Защита в электронных платежных системах
- •8.7.3. Примеры протоколов
- •8.8. Итоги
- •Глава 9
- •9.1. Corba
- •9.1.1. Обзор
- •9.1.2. Связь
- •9.1.3. Процессы
- •9.1.4. Именование
- •9.1.5. Синхронизация
- •9.1.6. Кэширование и репликация
- •9.1.7. Отказоустойчивость
- •9.1.8. Защита
- •9.2. Dcom
- •9.2.1. Обзор
- •9.2.2. Связь
- •9.2.3. Процессы
- •9.2.4. Именование
- •Синхронизация
- •Репликация
- •Отказоустойчивость
- •9.2.8. Защита
- •9.3. Globe
- •9.3.1. Обзор
- •9.3.2. Связь
- •9.3.3. Процессы
- •9.3.4. Именование
- •9.3.5. Синхронизация
- •9.3.6. Репликация
- •Отказоустойчивость
- •9.4. Сравнение систем corba, dcom и Globe
- •9.4.1. Философия
- •Процессы
- •9.4.4. Именование
- •Синхронизация
- •Кэширование и репликация
- •Отказоустойчивость
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), Боб убеждает Алису, что это действительно он.
