- •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.8. Итоги
Защита играет в распределенных системах чрезвычайно важную роль. Распределенные системы должны предоставлять пользователям и разработчикам механизмы, обеспечивающие реализацию разнообразных правил защиты. Разработка и правильное применение подобных механизмов обычно делают обеспечение защиты в распределенных системах сложной инженерной задачей.
Следует выделить три важных момента. Первый из них состоит в том, что распределенные системы должны иметь средства для организации защищенных каналов связи между процессами. Защищенный канал в принципе предоставляет средства взаимной аутентификации сторон и защищает сообщения во время пересылки от фальсификации. Защищенный канал обычно предоставляет также и средства поддержания конфиденциальности. Это означает, что никто, кроме связавшихся друг с другом сторон, не в состоянии читать передаваемые по каналу сообщения.
Одним из серьезных вопросов, который следует решить при проектировании, является выбор между исключительно симметричной криптосистемой (основанной на совместном использовании секретных ключей) или сочетанием ее с системой с открытым ключом. В текущей практике криптография с открытым ключом используется для рассылки общих секретных ключей. Последние известны также как сеансовые ключи.
Второй вопрос защиты распределенных систем — это контроль доступа, или авторизация. Авторизация касается защиты ресурсов, чтобы только процессы, имеющие соответствующие права доступа, могли получать доступ к соответствующим ресурсам и использовать их. После аутентификации процесса всегда производится контроль доступа.
Существует два способа реализации контроля доступа. Во-первых, каждый из ресурсов может поддерживать собственный список доступа, в котором перечисляются права доступа всех пользователей или процессов. Кроме того, процесс может иметь сертификат, точно устанавливающий его права на определенный набор ресурсов. Основное достоинство сертификатов состоит в том, что процесс может с легкостью передать свой талон другому процессу, делегировав свои права доступа. Однако сертификаты имеют и недостаток — их обычно не просто отзывать.
Особое внимание следует уделить вопросам управления доступом в случае мобильного кода. Помимо необходимости защиты мобильного кода от вредоносных хостов, обычно важнее защитить хосты от вредоносного мобильного кода. Для этого существуют различные способы, из которых наиболее часто применяется так называемое сито. Однако сито чрезмерно ограничивает возможности программ, поэтому для решения проблемы были разработаны более гибкие методы на основе реально защищенных доменов.
Третий ключевой вопрос защиты распределенных систем — это управление защитой. Здесь есть два важных аспекта — управление ключами и управление авторизацией. Управление ключами включает распространение криптографических ключей, в котором значительную роль играют сертификаты, выдаваемые доверенным третьим лицом. В деле управления авторизацией важны сертификаты атрибутов и делегирование.
Kerberos — это широко распространенная система защиты, основанная на шифровании общих секретных ключей. Ее основное назначение — аутентификация, хотя она также поддерживает протоколы управления доступом и делегирование прав доступа.
SESAME — это типичный пример системы защиты, которая встраивается в распределенные системы. Она основана на комбинированном использовании шифрования открытых ключей и общих секретных ключей. Она многое взяла от системы Kerberos и совместима с Kerberos.
И, наконец, важной областью использования распределенных систем являются электронные платежные системы. Интерес они представляют с точки зрения тех сторон, которые могут связываться через глобальные сети. Особое внимание часто уделяется обеспечению определенного уровня анонимности покупателя, который возможен в традиционных расчетных системах на базе наличных денег и в их электронных двойниках.
Вопросы и задания
Какие механизмы могут предоставляться в распределенных системах в качестве служб защиты разработчикам приложений, которые, как говорилось в главе 5, в проектировании систем доверяют только сквозным аргументам?
Можно ли в случае подхода RISSC сосредоточить все службы защиты на защищенных серверах?
Предположим, что вас попросили разработать распределенное приложение, которое должно помочь преподавателям принимать экзамены. Укажите как минимум три условия, которые должны стать частью правил защиты такого приложения.
Будет ли безопасно объединить сообщения 3 и 4 протокола аутентификации, приведенного на рис. 8.11, в KAB(RB, RA)7
Почему (см. рис. 8.14) для центра KDC очевидно, что он общался с Алисой, при получении запроса на передачу секретного ключа, который Алисд может использовать совместно с Бобом?
Почему вместо случайного числа попсе нельзя использовать отметку времени?
В сообщении 2 протокола аутентификации Нидхема—Шредера талон шифруется секретным ключом, который совместно используют Алиса и KDC. Является ли это шифрование необходимым?
Можем ли мы безопасно изменить протокол, приведенный на рис. 8.19, так, чтобы сообщение 3 содержало только запрос RB?
Придумайте простой алгоритм аутентификации с использованием подписей для криптосистемы с открытым ключом.
Пусть Алиса хочет передать Бобу сообщение. Вместо того чтобы шифровать т открытым ключом Боба К+в, она создает сеансовый ключ КАВ и посылает [Клв(т), КВ(КЛВ)]. Почему эта схема обычно оказывается лучше? (Подсказка: примите во внимание вопросы производительности.)
Как может быть реализована смена ролей в матрице контроля доступа?
Как реализованы списки контроля доступа в файловой системе UNIX?
Как организация может заставить использовать для доступа в Web прокси-шлюз и предотвратить прямой доступ своих пользователей к внешним web-серверам?
В какой степени (см. рис. 8.28) использование в качестве мандатов ссылок на объекты Java действительно зависит от языка Java?
Назовите три проблемы, с которыми сталкиваются разработчики интерфейсов, когда для защиты от неавторизованного доступа к локальным ресурсам со стороны мобильных программ они вынуждены, как описано в соответствующем разделе, вставлять инструкции включения и отключения привилегий.
Назовите несколько достоинств и недостатков использования централизованного сервера управления ключами.
Протокол обмена ключами Диффи—Хеллмана можно использовать также и при создания общего секретного ключа для трех сторон. Объясните, как.
В протоколе обмена ключами Диффи—Хеллмана отсутствует аутентификация. Из-за этого третья сторона, Чак, может легко вмешаться в обмен ключами между Алисой и Бобом, после чего проникнуть через механизмы защиты. Объясните, как.
Приведите простой способ отзыва мандатов в системе Amoeba.
Имеет ли смысл ограничение срока жизни сеансового ключа? Если да, приведите пример.
Какова роль отметки времени в сообщении 6 на рис. 8.37? Почему она должна быть зашифрована?
Придайте законченный вид рис. 8.37, добавив связь для аутентификации Алисой и Бобом друг друга.
Рассмотрим связь между Алисой и Бобом и службу аутентификации AS, такую как в системе SESAME. Какая разница (если она есть) между сообщениями т{ = K+AS(KAAS(data)) ит2 = KAAS(K+AS(data))?
Определите как минимум два различных уровня атомарности транзакций в электронных платежных системах.
Покупатель в системе e-cash до использования денег, полученных в банке, обычно делает паузу случайной длительности. Почему?
Анонимность продавца в платежных системах нередко запрещена. Почему?
Рассмотрим электронную платежную систему, в которой покупатель посылает деньги продавцу (удаленному). Постройте таблицу (см. рис. 8.42 и 8.43), описывающую сокрытие информации.
