Установление доверия для сертификатов на стороне пользователя в PKI
В инфраструктуре открытых ключей Public Key Infrastructure (PKI) понятие доверия является одним из ключевых пунктов: администраторы и пользователи данной инфраструктуры должны иметь возможность проверить, каким открытым ключам (public key) они могут доверять. В статье «Принципы доверия PKI» (опубликованной в № 7 нашего журнала за 2006 г.) обсуждались две основные модели доверия, используемые в Windows 2003 PKI, — иерархическая и сетевая, а также рассматривалась концепция регулируемых доверительных отношений (constrained trust) в Windows 2003 PKI. При этом в основном затрагивались вопросы функционирования центров сертификации CA (Certification Authority) и серверов при наличии доверительных отношений в инфраструктуре PKI.
Однако для построения надежной инфраструктуры PKI важно также понимать, какими возможностями располагают администраторы PKI для управления доверительными отношениями на стороне пользователя PKI. В данном контексте концепция «известных доверенных сертификатов», trust anchor (т. е. центра CA, сертификатам которого пользователь PKI может доверять при любых обстоятельствах), приобретает первостепенное значение.
В Windows 2003 и Windows XP реализован ряд механизмов управления известными сертификатами пользователей PKI. Некоторые механизмы могут управляться пользователем, но есть и механизмы, управление которыми осуществляется локальным администратором компьютера, администратором домена, а в некоторых случаях и администратором с правами Enterprise Administrator. Механизмы с административным управлением доступны только при условии, что клиент PKI является членом домена Windows 2003 и, соответственно, инфраструктуры леса. В таблице приведен перечень существующих механизмов с описаниями их характеристик. Более подробно данные механизмы будут рассмотрены ниже.
Возможности пользователя
В системах Windows 2003 и Windows XP реализована технология, позволяющая пользователям самим принимать решения об установлении доверительных отношений. В данной технологии фундаментальными понятиями являются пользовательское хранилище сертификатов, и в первую очередь контейнер сертификатов центров CA (также называемый хранилищем корневых сертификатов), которые являются корневыми в системе доверительных отношений. Доступ к персональному хранилищу сертификатов может осуществляться через оснастку Certificates консоли Microsoft Management Console (MMC) либо через программу просмотра сертификатов браузера Microsoft Internet Explorer (IE). Чтобы воспользоваться данной программой, запустите IE, выберите в меню Internet Options, перейдите на вкладку Content и щелкните кнопку Certificates.
Все сертификаты CA, находящиеся в контейнере хранилища корневых сертификатов, по умолчанию считаются известными сертификатами, и пользователь сам управляет процессами добавления и удаления сертификатов CA из этого контейнера. При попытке добавить сертификат центра CA в хранилище корневых сертификатов открывается диалоговое окно, в котором требуется подтвердить выполняемую операцию. Данное окно показано на экране 1.
Экран 1. Добавление сертификата в корневое хранилище сертификатов |
По умолчанию при установке систем Windows 2003 или Windows XP в хранилище корневых сертификатов помещается набор сертификатов соответствующих центров CA, поэтому пользователю не требуется добавлять в свое персональное хранилище сертификаты всех центров CA. Тем не менее с точки зрения безопасности использование этих сертификатов нельзя назвать хорошей практикой, поскольку в этом случае пользователь полагается на мнение производителей, каким именно сертификатам следует доверять. В информационной инфраструктуре предприятия должны использоваться только те сертификаты, которым можно доверять с позиции ИT-службы данной компании, а все предустановленные сертификаты из этого хранилища следует удалить. Отметим, что для потребителей использование предустановленного хранилища корневых сертификатов — удачное решение с точки зрения простоты использования, поскольку при этом снижается степень сложности работы с инфраструктурой PKI и PKI-приложениями.
В Windows 2003 включено новое важное расширение объекта групповой политики (GPO), предназначенное для управления доверительными отношениями. Используя данное расширение, администратор может разрешать (или запрещать) пользователям вносить изменения в содержимое хранилища корневых сертификатов, а также указывать, какие контейнеры должны считаться хранилищами известных сертификатов. Доступ к этим новым функциям осуществляется через оснастку Group Policy Object консоли MMC. Необходимо запустить эту оснастку, затем открыть Computer Configuration, Windows Settings, Security Settings, Public Key Policies, перейти к контейнеру Trusted Root Certification Authorities GPO и выбрать Properties. Для того чтобы дать пользователям возможность самим принимать решения о том, какие сертификаты следует считать известными сертификатами, установите флаг Allow users to select new root certification authorities (CAs) to trust, как показано на экране 2. Если в разделе Client computers can trust the following certificate stores выбран пункт Enterprise Root Certification Authorities, тогда доверие будет распространяться только на сертификаты, хранящиеся в следующем контейнере Active Directory: CN=Certification Authorities, CN=Public Key Services,CN=Services,CN=Configuration,DC=<домен>,DC=<домен>. Если был выбран пункт Third-Party Root Certification Authorities and Enterprise Root Certification Authorities, то доверие будет распространяться как на сертификаты указанного выше контейнера AD, так и на сертификаты, хранящиеся в контейнере Third Party Root Certification Authorities.
Экран 2. Настройка режима самостоятельного выбора известных сертификатов |
Вне зависимости от описанных выше настроек, пользователи всегда могут самостоятельно формировать наборы приложений, для которых они хотят установить отношения доверия, с помощью сертификатов, размещенных в их хранилищах. Для этого следует открыть окно Certificate properties оснастки Certificates, перейти к вкладке Details, нажать кнопку Edit Properties, выбрать пункт Enable only the following purposes и выбрать те приложения, с которыми требуется установить отношения доверия с помощью сертификатов (соответствующее окно показано на экране 3). Установка данного свойства сертификата при работе с выбранными приложениями дает тот же эффект, что и использование таких расширений сертификата, как extended key usage (EKU) или Application Policy.
Большая часть известных сертификатов, находящихся в хранилище корневых сертификатов, наследуется из локального хранилища сертификатов компьютера. Прямые изменения в известных сертификатах, имеющихся на компьютере, может вносить только пользователь, имеющий права локального администратора данной системы. Для просмотра содержимого локального хранилища сертификатов нужно запустить оснастку Certificates и выбрать локальный компьютер. Для того чтобы пользователь мог видеть в персональном хранилище те сертификаты, которые наследуются из хранилища локального компьютера, следует выбрать пункт Show physical certificate stores из меню View соответствующего персонального хранилища сертификатов. Каждый контейнер Logical Certificate содержит контейнер Local Computer, в котором хранятся сертификаты, унаследованные из локального хранилища сертификатов компьютера.
Централизованное управление
В инфраструктуре PKI среды Windows 2003 существует три способа централизованного управления известными пользовательскими сертификатами. Для этих целей можно задействовать параметры объекта групповой политики GPO, хранилище AD NTAuth или службу Windows Update.
Экран 3. Настройка доверия для конкретных сертификатов |
Для управления известными сертификатами применяются два объекта групповой политики: Trusted Root Certi-fication Authorities GPO и Enterprise Trust GPO. Доступ к этим объектам осуществляется через контейнер Public Key Policies GPO (Computer Configuration, Windows Settings, Security Settings, Public Key Policies GPO). Установленные параметры GPO автоматически загружаются клиентами PKI, поскольку это является составной частью процесса распространения групповой политики на системы Windows.
Для распространения заслуживающих доверия сертификатов центров Enterprise CA среди пользователей PKI служит контейнер Trusted Root Certification Authorities. Центры СА, сертификаты которых содержатся в данном контейнере, пользуются неограниченным доверием (при этом их сертификаты имеют неограниченный срок действия).
В контейнере Enterprise Trust хранится набор списков сертификатов, заслуживающих доверия (Certificate Trust List, CTL). Список CTL представляет собой заверенный перечень сертификатов центров CA. Данные сертификаты можно считать известными сертификатами только в том случае, если список CTL подписывается с использованием секретного (private) ключа, открытый ключ которого был выпущен другим центром CA — доверенным. Администратор может накладывать ограничения на срок действия записей CTL, а также определять перечень приложений, для работы с которыми данный список будет действителен. Для этого следует запустить оснастку Group Policy Object, перейти к контейнеру Enterprise Trust (User Configuration Security Settings Public Key Policies Enterprise Trust), щелкнуть на нем правой кнопкой, после чего выбрать New, Certificate Trust List. В результате запустится программа Certificate Trust List Wizard, окно которой показано на экране 4.
Экран 4. Указание времени CTL и ограничений для приложений |
Имеющееся в AD хранилище NTAuth специально предназначено для хранения известных сертификатов. В нем содержатся сертификаты всех корпоративных центров Windows 2003 Enterprise CA, а также тех центров CA, которые уполномочены выдавать сертификаты для регистрации с помощью смарт-карт или сертификаты, использующие аутентификацию клиента посредством EKU либо политики приложений (что может применяться, например, при аутентификации клиента SSL и при аутентификации через RAS или VPN). Известные сертификаты, хранящиеся в NTAuth, загружаются каждым клиентом PKI в тот момент, когда в Windows происходит событие автоматической регистрации. Это событие имеет место при регистрации пользователя в системе, при ручном обновлении администратором локальных групповых политик (с помощью утилиты Gpupdate), а также при автоматическом обновлении групповых политик (по умолчанию это происходит через каждые 90 минут). Сертификаты NTAuth хранятся в атрибуте cACertificate объекта NTAuth Certificates, который находится в CN=Public Key Services, CN=Services, CN =Configuration, DC=<домен>.
Третьим методом централизованного управления доверительными отношениями является использование службы Root Certificate Update Service, которая представляет собой расширение службы Windows Update. Служба Root Certificate Update Service предоставляет механизм динамического распространения сертификатов CA, позволяющий заменять ранее загруженные сертификаты центров. Установка соответствующего клиента на системы Windows 2003 и Windows XP выполняется с помощью компонента Update Root Certificate пункта Add/Remove Windows Components, который содержится в разделе Add/Remove Programs программы Control Panel.
При автоматической загрузке сертификатов центров CA служба Root Certificate Update Service руководствуется специальным списком CTL, называемым Windows Update CTL. Это происходит в тот момент, когда программы контроля подлинности сертификатов клиентов Windows 2003 и Windows XP выполняют проверку местоположения узла загрузки Windows Update. При этом в контейнер Third-Party Certification Authorities компьютера и в пользовательские хранилища сертификатов загружаются новые сертификаты корневых центров CA. Если какая-либо организация желает воспользоваться этой функцией для распространения сертификатов своих центров CA, ей необходимо подписаться на программу Microsoft Root Certificate Program. Более подробную информацию об этой программе можно получить на сайте Microsoft TechNet по адресу: http://www.microsoft.com/technet/security/news/rootcert.mspx.
Гибкость управления
Доверие является фундаментальным понятием инфраструктуры PKI. Реализованные в среде Windows 2003 PKI расширенные возможности работы с доверительными отношениями упрощают процедуры управления этими отношениями со стороны пользователя PKI и позволяют пользователям самим принимать те или иные решения по вопросам доверия.
Жан де Клерк - член Security Office компании HP. Специализируется на управлении идентификационными параметрами и безопасности в продуктах Microsoft. Автор книги Windows Server 2003 Security Infrastructures (издательство Digital Press). jan.declercq@hp.com
Таблица.