- •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.6. Пример — sesame
Давайте теперь рассмотрим другую систему защиты, которая похожа на Kerberos, но в ней используется комбинация криптографии с открытым ключом и общих секретных ключей. Проект SESAME был начат по совместной инициативе нескольких крупных европейских компаний с целью разработки стандартов защиты открытых систем. SESAME — это акроним слов Secure European System for Application in a Multi-vendor Environment (Европейская система защиты приложений, работающих в разнородной среде). Первая реализация SESAME была создана в 1991 году, четвертая и наиболее известная существует с 1995 года и известна также под названием SESAME V4. Мы начнем с обзора основных компонентов, затем обсудим процесс авторизации, выполняемый при помощи сертификатов атрибутов. Вместо того чтобы рассматривать в деталях все алгоритмы, мы сосредоточим наше внимание на общих вопросах взаимодействия между компонентами, которые иллюстрируют архитектуру защищенных систем. Обзор системы SESAME можно найти в [342].
8.6.1. Компоненты системы sesame
SESAME может рассматриваться как система клиент-сервер, в которой клиенты имеют доступ к приложениям, выполняющимся на удаленных серверах. Подобная организация служит причиной разделения компонентов SESAME на три группы, как показано на рис. 8.39. Эти три группы, соответственно — общие компоненты защиты, компоненты защиты клиента и компоненты защиты сервера. Их мы и обсудим далее.
Общие компоненты защиты
Общие компоненты защиты отвечают за аутентификацию, авторизацию и распространение ключей. Эти компоненты обычно размещаются на отдельной машине, известной под названием сервера защиты домена (Domain Security Server, DSS).
Сервер аутентификации (Authentication Server, AS) отвечает за аутентификацию пользователей (людей) и приложений (программ). В случае приложений аутентификация происходит при помощи секретных ключей, хранимых в отдельной базе данных, называемой информационной базой управления защитой (Security Management Information Base, SMIB). База SMIB реализована в виде набора отдельных файлов и хранит также информацию, относящуюся к другим компонентам, входящим в сервер защиты домена. Пользователи аутентифицируются при помощи секретного ключа, порождаемого, как и в системе Kerberos, из пароля, введенного пользователем. Однако если пользователь имеет закрытый ключ, то для аутентификации используется этот ключ.
Если Алиса захочет войти в систему, используя свой закрытый ключ, она посылает AS запрос на вход вместе с сертификатом, подписанным сертифицирующей организацией, и ее открытым ключом. Если все в порядке, AS в ответном сообщении посылает сеансовый ключ, который Алиса может использовать для связи с сервером атрибутов привилегий (о котором мы скажем чуть ниже), шифруя его открытым ключом Алисы. Кроме того, ответ содержит талон для сервера атрибутов, так же как и в Kerberos. Вдобавок сервер AS возвращает сертификат, содержащий его собственный открытый ключ.
Основное назначение сервера атрибутов привилегий (Privilege Attribute Server, PAS) — выдавать сертификаты атрибутов со списками прав доступа клиента к приложениям. Возвращаясь к Алисе, это означает, что она должна передать серверу PAS полученный при аутентификации талон.
Алиса также посылает PAS запрос на определенные права доступа к одному или более приложениям, с которыми она собирается работать. Этот запрос сопровождается так называемой криптографической пломбой (cryptographic seal), которая представляет собой хэш, рассчитанный, исходя из запрашиваемого списка прав [168]. Пломба позволяет PAS проверить, не подправил ли кто-то этот список. Сам список не шифруется. После получения запроса PAS проверяет, можно ли предоставить Алисе запрашиваемые права, и если это так, собирает их в сертификате атрибутов привилегий (Privilege Attribute Certificate, РАС). Более детально мы поговорим о РАС чуть ниже. Кроме возвращения сертификата РАС (который также запечатан), сервер атрибутов также создает новый сеансовый ключ, который Алиса может использовать для связи с KDS. Эта информация сохраняется в еще одном талоне.
Отметим, что если никакого общего ключа для связи между клиентом и сервером в дальнейшем не требуется, Алиса может не связываться с сервером распространения ключей (Key Distribution Server, KDS). Однако при работе с приложениями, использующими симметричные ключи, Алиса может задействовать свой талон KDS для того, чтобы потребовать от KDS создать сеансовые ключи для организации защищенной связи с серверными приложениями. В SESAME сервер KDS может быть реализован с помощью сервера TGS системы Kerberos.
Компоненты клиента
В системе SESAME имеется три клиентских компонента защиты. Во-первых, для конечного пользователя SESAME предоставляет программу для входа в систему, которая называется спонсор пользователя (user sponsor). Эта программа позволяет пользователю входить в систему, выходить из нее и изменять роли. Она выполняется как отдельное приложение и предполагает, что пользователь уже работает в локальной операционной системе. При входе пользователь должен ввести пароль, по которому будет создан общий секретный ключ, используемый для связи с сервером защиты домена. Эта процедура входа соответствует аналогичной процедуре системы Kerberos. С другой стороны, пользователь может инициировать строгий вход, в этом случае будет взят и использован, как описано выше, локально хранящийся закрытый ключ пользователя.
В зависимости от той роли, с которой пользователь подсоединился к системе, он получает определенные стандартные привилегии, позднее, после аутентификации, передаваемые в форму РАС. Также соответствующие привилегии можно запросить во время соединения.
Клиент доступа к аутентификации и привилегиям (The Authentication and Privilege Access Client, АРА Client) — это не что иное, как библиотека, содержащая простые процедуры, которые предоставляют пользователю интерфейс, а клиентским приложениям — доступ к серверу защиты домена. Отметим, что эта библиотека при необходимости поддерживает также аутентификацию клиентских приложений.
Третий компонент — это система управления контекстом защиты (Secure Association Context Management, SACM). Этот компонент отвечает за инициализацию и поддержку информации, необходимой для клиента при связи с выполняющимся на сервере приложением. Так, например, SACM, как и РАС, может локально сохранять сеансовые ключи, полученные при входе пользователя в систему и пр. Таким образом, SACM позволяет клиентским приложениям совместно использовать любую информацию по защите, необходимую для связи с серверными приложениями.
Функциональность SACM традиционно поддерживается многими системами защиты, в том числе и SESAME, и может быть реализована в разных системах по-разному. Поэтому вместо того, чтобы поддерживать специальный интерфейс, SACM реализует стандартный обобщенный интерфейс программ службы защиты (Generic Security Service Application Program Interface, GSS-API), определенный в [267].
Компоненты сервера
В последнюю очередь среди групп компонентов мы рассмотрим компоненты, работающие на стороне сервера. Подобно компонентам клиента, серверные приложения также имеют свою систему SACM, с помощью которой они хранят информацию по защите, необходимую для связи с клиентами и другими приложениями.
SACM сервера отвечает за передачу в систему проверки РАС (РАС Validation Facility, PVF) входящей информации, связанной с защитой. PVF извлекает из входящих запросов всю необходимую информацию и проверяет ее. Так, например, она может расшифровать сообщение и извлечь из него сеансовый ключ или после проверки подписи сертификата РАС извлечь из него права доступа. Или, например, после того как система PVF идентифицирует пользователя, она может передать информацию обратно в систему SACM, которая, в свою очередь, передаст клиенту сообщение для аутентификации сервера.
Система PVF может быть размещена на одном сервере с другими приложениями или на отдельной доверенной машине, чтобы работать в интересах множества приложений. В последнем случае необходимо, чтобы связь между сервером PVF и приложениями была защищена с обязательной аутентификацией сторон и поддержанием конфиденциальности.
