- •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. Именование
- •Синхронизация
- •Кэширование и репликация
- •Отказоустойчивость
9.1.8. Защита
Защита в CORBA имеет долгую историю. Исходные версии спецификаций CORBA вряд ли стоит принимать во внимание, по той простой причине, что отдельные попытки описать службу защиты провалились. В CORBA версии 2.4 описание службы защиты занимает более 400 страниц и четко объясняет, каким образом в системы CORBA вносится защита. Рассмотрим защиту системы CORBA поближе. Обзор по этой теме, написанный одним из авторов исходной спецификации защиты CORBA, можно найти в [66].
Важный момент спецификации защиты CORBA состоит в том, что службы должны предоставлять соответствующий набор механизмов, которые могут использоваться для реализации разного рода правил защиты. Положение осложняется тем, что эти службы могут потребоваться в разных точках и в разное время. Так, например, если клиент желает произвести защищенное обращение к объекту, следует решить, когда использовать механизмы защиты (во время привязки, во время обращения или в обоих этих случаях) и где должны быть использованы эти механизмы (на уровне приложения, внутри ORB или в ходе передачи сообщения).
Ядро защиты в CORBA формируется путем поддержания защищенных обращений к объекту. Базовая идея состоит в том, что объекты прикладного уровня ничего не должны знать об использовании различных служб защиты. Однако если клиент имеет особые требования к защите, у него должен быть способ заявить эти требования, чтобы при обращении к объектам они принимались во внимание. Аналогичная ситуация возникает и с объектом, к которому происходит обращение. Подобный подход ведет к ситуации, представленной на рис. 9.15
.
Когда клиент выполняет привязку к объекту, чтобы потом иметь возможность к нему обращаться, ORB клиента определяет, какие службы защиты со стороны клиента понадобятся для защищенного обращения. Выбор служб определяется правилами защиты, ассоциированными с административным доменом, в котором выполняется клиент, и особо — правилами данного клиента.
Правила защиты задаются объектами правил (policy objects), ассоциированными с клиентом. На практике домен, в котором исполняется клиент, открывает свои правила защиты для ORB этого клиента посредством указанного набора объектов правил. С клиентом автоматически ассоциируются правила по умолчанию. Примерами объектов правил могут быть те объекты, которые определяют тип применяемой защиты сообщений или хранят списки доверенных сторон. Другие примеры и детали можно найти в [66].
Схожая структура поддерживается и на стороне сервера. Точно так же административный домен, в котором выполняется вызванный объект, задает объекту определенный набор служб защиты. Точно так же вызванный объект имеет дополнительно собственный набор объектов правил, в которых хранится специфическая для данного объекта информация.
Для поддержания защиты в CORBA могут применяться различные подходы. В частности, чтобы сделать брокер ORB по возможности более общим, желательно определить различные службы защиты через стандартные интерфейсы, которые скроют реализацию этих служб. Службы, которые можно определить подобным образом, в CORBA именуются взаимозаменяемыми (replaceable).
Взаимозаменяемые службы защиты предполагается реализовывать вместе с двумя разными перехватчиками, как показано на рис. 9.16. Перехватчик контроля доступа (access control interceptor) — это перехватчик уровня запросов, который проверяет права доступа, связанные с обращением. Кроме него имеется перехватчик защищенных обращений (secure invocation interceptor) уровня сообщений, отвечающий за реализацию защиты сообщений. Другими словами, этот перехватчик занимается шифрованием запросов и ответов, поддерживая их целостность и конфиденциальность.
Перехватчик защищенных обращений играет здесь основную роль, поскольку он отвечает за организацию контекста защиты (security context) клиента, который собирается осуществлять защищенные обращения к нужному ему объекту. Этот контекст защиты, представленный в виде объекта контекста защиты, содержит всю необходимую информацию и методы, необходимые для защищенного обращения к целевому объекту. Так, например, он определяет, какой при этом обращении используется механизм, предоставляет методы шифрования и расшифровки сообщений, хранит ссылки на сертификаты и т. д.
Сервер объекта также создает свои объекты контекста защиты. Перехватчик клиента сначала обычно посылает серверу объекта сообщение, содержащее всю необходимую для аутентификации клиента информацию, таким образом, заставляя сервер создать контекст защиты для последующих обращений. Отметим, что перехватчик защищенных обращений сервера объекта проверяет правила объекта, чтобы проверить, все ли требования соблюдены. Ответ, возвращаемый клиенту, может содержать дополнительную информацию, которая позволит клиенту аутентифицировать сервер.
После этого исходного обмена сообщениями клиент выполняет привязку к нужному объекту, и вместе они создают то, что обычно называется ассоциацией защиты (security association). После этого можно выполнять защищенные обращения, и перехватчики защищенных обращений будут оберегать запросы и ответы в соответствии с правилами, о которых договорились между собой клиент и сервер объекта.
Критически важную роль в организации ассоциации защиты играет отдельный объект со стандартизованным интерфейсом, именуемый сейфовым объектом (vault object). Сейфовый объект вызывается перехватчиком защищенных сообщений для создания объекта контекста защиты. Перехватчик читает информацию о правилах из ассоциированных с клиентом объектов правил и передает эту информацию в сейфовый объект. Понятно, что сейфовый объект должен быть реализован в виде части ORB, чтобы его невозможно было подделать, и относится к доверенной вычислительной базе каждой системы CORBA.
