BC/NW 2007, №2, (11) :13.6

МАНДАТНОЕ УПРАВЛЕНИЕ ДОСТУПОМ К КОМПЬЮТЕРНЫМ РЕСУРСАМ НА ОСНОВЕ ИНФРАСТРУКТУРЫ ОТКРЫТЫХ КЛЮЧЕЙ

Хорев П.Б.

(Москва, ГОУ ВПО МЭИ (ТУ), Россия)

Постоянное развитие информационных технологий приводит к необходимости совершенствования методов и средств защиты информации в компьютерных системах. Современные методы обеспечения информационной безопасности основываются на идентификации и достоверной аутентификации пользователей компьютерных систем (подтверждении  подлинности предъявляемых ими имен), их авторизации (назначении ограниченного набора прав и полномочий в системе) и аудите (регистрации и учете совершаемых ими действий при работе с системой).

Разграничение доступа к объектам компьютерных систем базируется на различных моделях управления доступом и на криптографических методах защиты.

Дискреционная модель разграничения доступа предполагает назначение каждому объекту списка контроля доступа, элементы которого определяют права доступа к объекту конкретного пользователя или группы. Правом редактирования дискреционного списка контроля доступа обычно обладает владелец объекта. Эта модель отличается простотой реализации, но возможна утечка конфиденциальной информации даже в результате санкционированных действий пользователей.

Мандатная модель разграничения доступа предполагает назначение объекту метки секретности, а субъекту – уровня допуска. Доступ субъектов к объектам в этой модели определяется на основании правил «не читать выше» и «не записывать ниже», что предотвращает утечку конфиденциальной информации, но снижает производительность компьютерной системы, т.к. проверка прав доступа должна производиться при любой операции с объектом, а не только при его открытии, как в дискреционной модели. Необходимо также обеспечить достоверное подтверждение назначенного пользователю уровня допуска даже при отсутствии защищенного канала связи с сервером аутентификации.

В настоящем докладе предлагается метод использования инфраструктуры открытых ключей при реализации мандатного управления доступом к выделенному подмножеству объектов компьютерной системы, содержащих информацию высших уровней конфиденциальности.

Как известно, механизм сертификатов используется для подтверждения связи между пользователем компьютерной системы и его открытым ключом асимметричного шифрования. Сертификат открытого ключа представляет собой электронный документ, содержащий сам открытый ключ, информацию об его владельце, серийном номере, сроке действия и другие сведения. Подлинность сертификата подтверждается электронной цифровой подписью, полученной с помощью секретного ключа издателя сертификата,  имя которого также включается в сертификат перед его подписанием.

В роли издателя сертификата (удостоверяющего центра, центра сертификации) может выступать организация-владелец компьютерной системы, специализированная организация или любое лицо, которому доверяют другие субъекты компьютерной системы. После безопасного распространения открытого ключа удостоверяющего центра (в форме самоподписанного сертификата или сертификата, подписанного другим доверенным центром сертификации) любой субъект компьютерной системы может проверить подлинность любого предъявленного ему сертификата открытого ключа другого субъекта.

Формат сертификата открытого ключа, определенный в рекомендациях X.509 Международного союза по телекоммуникациям (ITU), позволяет включать в состав сертификата дополнения (расширения, extensions), с помощью которых может быть реализована определенная политика безопасности в компьютерной системе конкретной организации. Каждое дополнение состоит из идентификатора объекта (object identifier) для типа дополнения, признака его критичности и закодированного значения дополнения.

В рекомендациях X.509 введены следующие типы дополнений: область применения (назначение) криптографического ключа, расширенная область применения ключа, ограничения на длину цепочки сертификации при проверке сертификата, ограничения на политику применения сертификатов и другие. Возможен ввод и любых других дополнений, необходимых для реализации политики безопасности в системе.

Признак критичности дополнения сертификата используется для указания приложению, использующему данный сертификат, на возможность игнорирования информации, содержащейся в дополнении. Значение дополнение задается в виде блоба (BLOB, bit large object) – структуры, состоящей из полей с длиной значения дополнения и самим закодированным значением.

В предлагаемом решении дополнение сертификата пользователя должно будет содержать значение назначенного ему уровня допуска в системе. Для дополнения этого типа должен быть установлен признак критичности. Значение этого дополнения, извлеченное из сертификата пользователя при попытке совершения им чтения или записи объекта, будет использоваться для проверки прав на совершение запрашиваемой операции.

Рассмотрим преимущества подобного способа хранения информации об уровне допуска пользователя к ресурсам компьютерной системы перед ее хранением в локальной или доменной учетной записи пользователя. При работе в сети сертификат пользователя (при его отсутствии в локальном хранилище сертификатов) может быть всегда запрошен в корпоративном удостоверяющем центре. При попытке получения доступа к ресурсам автономного (не подключенного к сети) компьютера сертификат может быть импортирован из файла на предоставленном пользователем носителе (флэш-диске, дискете, компакт-диске) или непосредственно с устройства аутентификации пользователя (смарт-карты, USB-ключа).

При импорте сертификата из файла пользователю потребуется ввести пароль для генерации сеансового ключа расшифрования секретного (закрытого) криптографического ключа, а при импорте с устройства аутентификации – PIN-код. Это обеспечит защиту от попытки использования похищенного носителя.

Остановимся теперь на возможностях использования предложенного подхода в приложениях для операционных систем семейства Microsoft Windows 2000 (XP, 2003, Vista). Для выдачи сертификатов на сервере с котроллером домена локальной вычислительной сети организации должна быть установлена служба сертификатов (Certificate Services), которая и будет выполнять функции корпоративного удостоверяющего центра (УЦ). Для запроса сертификатов пользователи на своих рабочих станциях смогут применять оснастку «Сертификаты». В этом случае изготовление и выдача нового сертификата по умолчанию выполняются автоматически.

При установке на контроллере домена службы Internet Information Services (IIS) возможен также запрос сертификата через Web-интерфейс с помощью обозревателя Интернета, но при этом выдача сертификата будет произведена после рассмотрения заявки администратором УЦ и ее подтверждения зарегистрированным в системе пользователем.

Для включения в изготавливаемый по запросу пользователя сертификат дополнения, содержащего значение назначенного пользователю уровня допуска в системе, может применяться технология, связанная с разработкой модулей политики (policy modules). Модули политики получают запросы от службы сертификатов, вырабатывают ответы и определяют возможные свойства сертификатов, создаваемых при выполнении этих запросов. Эти модули представляют собой динамически компонуемые библиотеки (DLL), которые могут использовать методы объекта ServerPolicy (интерфейса ICertServerPolicy) для взаимодействия со службой сертификатов. Служба сертификатов для взаимодействия с модулем политики может использовать методы интерфейсов ICertPolicy и ICertPolicy2.

В частности, метод SetCertificateExtension интерфейса ICertServerPolicy добавляет в сертификат новое дополнение, сообщая службе сертификатов объектный идентификатор дополнения, тип его значения (целое число, дата, последовательность байт, строка), признак критичности дополнения и значение дополнения. Вызов этого метода должен происходить при выполнении метода VerifyRequest интерфейса ICertPolicy2, вызов которого позволяет службе сертификатов информировать модуль политики о поступлении нового запроса сертификата.

Один из параметров метода VerifyRequest содержит контекст запроса сертификата, который должен использоваться модулем политики при вызове метода SetContext интерфейса ICertServerPolicy, предшествующего вызову метода SetCertificateExtension.

Недостатком включения уровня допуска пользователя в его сертификат открытого ключа может стать то обстоятельство, что срок действия открытого ключа может быть большим, чем срок действия уровня допуска пользователя. При изменении уровня допуска пользователя в системе потребуется отзывать его сертификат открытого ключа и доводить информацию об этом до всех приложений, использующих инфраструктуру открытых ключей для авторизации пользователей. В этом случае приложение, выполняемое на автономном компьютере, может не иметь данных о текущем статусе отзыва предъявленного пользователем сертификата.

Выходом может быть использование так называемых атрибутных сертификатов, не содержащих открытого ключа пользователя, а только дополнение с его атрибутами (в том числе уровнем допуска в системе). Атрибутный сертификат может иметь короткий срок действия и использоваться совместно с сертификатом открытого ключа пользователя, что позволит выполнять как операции, связанные с проверкой прав доступа пользователя к компьютерным ресурсам, так и криптографические операции.

В представленном докладе предлагается метод хранения и достоверного подтверждения уровня допуска пользователя к компьютерным ресурсам при реализации мандатного управления доступом, обеспечивающего максимальную защиту информации от несанкционированного доступа. Метод основан на возможностях инфраструктуры открытых ключей, развернутой с помощью службы сертификатов операционной системы Microsoft Windows Server 2000/2003. При реализации метода могут использоваться языки программирования C, C++ или Visual Basic, системы программирования Microsoft Visual C++ 5.0 и старше или Microsoft Visual Basic 5.0 и старше.