Автоматический контроль процесса аннулирования сертификатов
При разработке инфраструктуры открытых ключей PKI (Public Key Infrastructure) одним из наиболее важных аспектов является процесс аннулирования (revocation) сертификатов, а точнее — автоматический контроль их аннулирования. В процессе аннулирования сертификатов проверяется, внесен ли системой PKI серийный номер соответствующего сертификата (если секретный ключ пользователя был скомпрометирован) в черный список, называемый списком сертификатов, подлежащих аннулированию (Certificate Revocation List, CRL). Аннулирование сертификата также гарантирует, что информация об этом будет доведена до всех клиентов инфраструктуры PKI и приложений, использующих PKI. Если в системе PKI необходимо обрабатывать конфиденциальную информацию или сведения о транзакциях повышенной важности, пользователь подобной системы должен разбираться в таких вопросах, как процесс аннулирования сертификатов и поддержка проверки аннулирования в приложениях, использующих Windows PKI, а также иметь представление о решениях, обеспечивающих автоматический контроль процесса аннулирования. Начнем со структуры списков CRL.
Списки аннулированных сертификатов CRL
Структура CRL определена в документах стандарта X.509 (ITU-IT), а также в выпущенном IETF документе RFC 2459. В них содержится описание перечня аннулированных сертификатов с датами их создания, выпускаемого центром авторизации Certification Authority и доступного пользователям PKI через публичное хранилище. Каждый сертификат в этом перечне идентифицируется по серийному номеру. В стандарте X.509 определены два основных типа списков CRL: абсолютный CRL (Complete CRL) и список изменений (Delta CRL).
Complete CRL. Списки данного типа представляют собой основную форму CRL (их также называют базовыми или полными CRL). Списки этого типа могут разрастаться до огромных размеров, поскольку с течением времени в них накапливается существенный объем информации. Хотя в Windows CRL поддерживается механизм контроля версий, тем не менее список CRL последней версии автоматически наследует всю информацию об аннулированных сертификатах из списков предыдущих версий. Поэтому по мере истечения срока действия сертификатов растет соответствующий список CRL. Следует также отметить, что при обновлении версии CRL клиент должен загрузить данный список в полном объеме, что не способствует эффективному использованию полосы пропускания сети. В результате для того, чтобы уменьшить количество обновлений списков CRL, многие администраторы увеличивают время жизни списков, однако при этом снижается актуальность информации о просроченных сертификатах, поскольку в данном случае изменения в списках не становятся доступны сразу.
Для того чтобы преодолеть описанные выше недостатки, присущие Complete CRL, в Windows Server 2003 применяются списки типа Delta CRL. В свою очередь, в инфраструктуре Windows 2000 PKI для ограничения размера списка Complete CRL можно использовать один из трех приведенных ниже подходов.
- Развертывание нескольких центров CA. При этом каждый центр имеет собственный список CRL размером существенно меньше списка, который имел бы в этом случае один центр CA.
- Выдача сертификатов с непродолжительным временем жизни. Используемые в среде Windows 2000 списки CRL являются самоочищающимися, что подразумевает автоматическое удаление просроченных сертификатов из списков CRL.
- Генерирование новых пар ключей CA. Каждый раз, когда центр CA обновляет пару ключей, формируется новый список CRL.
Как в Windows 2003, так и в Windows 2000 списки CRL публикуются с постоянными интервалами, при этом в обеих системах администратор центра CA может принудительно выпустить новый CRL. Настройка частоты обновления CRL выполняется через оснастку Certification Authority консоли MMC. Нужно щелкнуть правой кнопкой на контейнере Revoked Certificate и выбрать пункт Properties из контекстного меню. При этом запустится диалоговое окно свойств аннулированных сертификатов, показанное на экране. 1. Если нужно форсировать выпуск списка CRL, следует щелкнуть правой кнопкой на контейнере Revoked Certificates оснастки Certification Authority и в появившемся меню выбрать пункт All Tasks/Publish. После этого откроется диалоговое окно Publish CRL, в котором требуется указать, список какого типа выпускается: новый (complete) CRL или delta CRL.
Экран 1. Окно Revoked Certificates Properties |
Чтобы просмотреть формат и содержимое CRL, необходимо открыть диалоговое окно свойств контейнера Revoked Certificates и перейти к закладке View CRL. После того как на этой закладке будет выбрано View CRL или View Delta CRL, запустится встроенная утилита просмотра списков CRL, как показано на экране 2. На закладке General отображается структура полного списка CRL, выпускаемого центром CA в Windows 2003 или Windows 2000. Обратите внимание на наличие в списке ряда характерных для CRL расширений, таких как Effective Date, Next update, CA Version, CRL Number, Next CRL Publish, Freshest CRL, и Published CRL Locations. Чтобы просмотреть перечень имеющихся в CRL аннулированных сертификатов, нужно выбрать закладку Revocation List в том же диалоговом окне.
Экран 2. Просмотр CRL |
Delta CRL. В среде Windows 2003 для решения проблем эффективного использования полосы пропускания и своевременного обновления информации по аннулированным сертификатам предлагается использовать списки изменений. Списки delta CRL регламентируются документами RFC3280 и RFC2459 и являются сравнительно небольшими по объему, содержащими только те изменения в перечнях аннулированных сертификатов, которые имели место с момента формирования центром CA последней версии абсолютного списка (complete CRL). Поскольку списки delta CRL невелики, клиенты PKI могут загружать их чаще, чем списки complete CRL, соответственно, при этом центр CA обеспечивает своих клиентов более точной информацией об аннулированных сертификатах. Отметим, что использовать списки типа delta CRL для проверки правомочности сертификатов могут только клиенты с операционной системой Windows XP Professional и последующими версиями Windows.
Как и в случае с абсолютными списками, клиенты Windows выполняют кэширование списков изменений. По истечении срока действия абсолютного списка клиент загружает обновленную версию списка изменений с того узла распространения CRL (CRL Distribution Point, CDP), который задан в сертификате (далее мы рассмотрим узлы CDP более подробно). В тех случаях когда абсолютный список актуален, но срок действия кэшированного delta CRL уже истек, Windows-клиент обновляет только список изменений с того узла CDP, ссылка на который имеется в сертификате.
При настройке параметров, просмотре содержимого и форматировании списков типа delta CRL выполняются те же действия, что и при управлении списками типа complete CRL. Это делается через диалоговое окно Properties контейнера Revoked Certificates центра CA, показанное на экране 1. Для принудительного выпуска списка изменений в ручном режиме тоже выполняется процедура, аналогичная той, которая используется при принудительном выпуске абсолютного списка.
Экран 3. Содержание списка изменений |
На экране 3 показано размещение списка изменений, выпущенного центром Windows 2003 CA в том виде, в котором оно отображается в окне встроенной программы просмотра CRL. Обратите внимание на наличие расширения Delta CRL Indicator, которое указывает на то, что данный список представляет собой delta CRL, а не complete CRL. Цифра, стоящая в строке Delta CRL Indicator, соответствует количеству абсолютных списков, с которыми должен быть ассоциирован этот список изменений. Как и для complete CRL, в данном случае доступ к списку просроченных сертификатов осуществляется через закладку Revocation List.
Аннулирование сертификата
Аннулирование сертификата может выполняться администратором центра Windows CA либо с помощью оснастки Certification Authority, либо через командную строку. Запустив оснастку Certification Authority, следует открыть в ней контейнер Issued Certificates, щелкнуть правой кнопкой на том сертификате, который надлежит аннулировать, после чего выбрать в меню пункт All TasksRevoke Certificate. Для того чтобы аннулировать сертификат с помощью командной строки, необходимо ввести в командной строке консоли CA следующую команду:
certutil revoke
При аннулировании сертификата администратор центра CA может указать код причины (reason code), как показано на экране 4. Допускаются следующие коды причин: Unspecified, Key Compromise, CA Compromise, Change of Affiliation, Superseded, Cease of Operation, и Certificate Hold.
Экран 4. Указание кода причины аннулирования сертификата |
Аннулирование сертификатов в приложениях
Не все ориентированные на использование PKI приложения для Windows выполняют автоматическую проверку аннулирования сертификатов. Кроме того, возможность выполнения данной проверки зависит в ряде случаев от настройки соответствующего приложения. Перечень наиболее распространенных приложений, использующих Windows PKI и поддерживающих механизмы проверки аннулирования сертификатов, приводится в табл. 1.
Для того чтобы включить поддержку проверки аннулирования сертификатов в Secure MIME (S/MIME) приложения Microsoft Outlook 2000 Service Release 1 (SR1), необходимо открыть на клиентском компьютере реестр, найти в нем подраздел HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptography{7801ebd0-cf4b-11d0-851f-0060979387ea}, создать новый параметр с именем PolicyFlags (типа REG_DWORD) и присвоить ему значение 00010000. Чтобы активизировать поддержку проверки аннулирования сертификатов для IP Security (IPSec) в Windows 2000 Service Pack 2 (SP2), требуется открыть реестр, перейти в подраздел HKEY_LOCAL_MACHINE SYSTEMCurrentControlSetServicesPolicyAgentOakley, создать новый параметр с именем StrongCrlCheck (типа REG_DWORD) и присвоить ему значение 1 или 2. Ниже приводится описание возможных значений данного параметра.
0 — отключает проверку CRL для протокола IPSec, базирующегося на сертификатах.
1 — включает проверку CRL и прерывает процесс проверки подлинности сертификатов в тех случаях, когда в CRL явно указывается, что данный сертификат аннулирован. Клиентская система будет игнорировать все другие сбои, в том числе и те случаи, когда URL CDP ссылается на недоступный узел.
2 — включает проверку CRL и прерывает процесс проверки подлинности сертификатов только при наличии каких-либо ошибок проверки CRL.
Автоматическая проверка аннулирования
В среде PKI для автоматической проверки аннулирования могут применяться различные методики. Большинство из них, за исключением деревьев аннулирования сертификатов и протокола OCSP (Online Certificate Status Protocol), построено на основе использования абсолютных списков CRL, списков лишения полномочий (authority revocation lists), узлов CDP, расширенных (enhanced) списков CRL, списков изменений и косвенных (indirect) списков CRL. Обсуждение всех этих технологий выходит за рамки данной статьи.
Как отмечалось выше, инфраструктура PKI среды Windows 2000 поддерживает абсолютные списки и CDP. В Windows 2003 PKI добавлена поддержка списков изменений. Кроме того, в Windows 2003 и Windows 2000 имеется поддержка расширений для Netscape, предназначенных для обработки данных по аннулированным сертификатам.
В индустрии ИT требования к процессу аннулирования зачастую связаны с необходимостью поддержки протокола OCSP. Данный протокол, как определено в документе RFC2560, предоставляет в реальном времени информацию об аннулированных сертификатах всем пользователям инфраструктуры PKI. Следует отметить, что ни в Windows 2003, ни в Windows 2000 не включена поддержка OCSP; для ее реализации требуются программные решения независимых фирм, таких как Alacris или Valicert (одно из подразделений компании Tumbleweed Communications). «Родной» для среды Windows альтернативой протокола OCSP является использование узлов CDP и списков изменений.
Узлы распространения CRL
Концепция CDP предлагает удобный путь автоматизации процесса проверки аннулирования сертификатов. Каждый сертификат, выданный центрами CA Windows 2003 или Windows 2000, может содержать информацию об одном или более CDP. Информация о CDP хранится в CA в виде расширений X.509 для сгенерированных сертификатов. CDP может представлять собой HTTP URL, Light Weight Directory Access Protocol URL или общедоступный ресурс совместного пользования. После выпуска сертификата центром CA настройки путей к узлам CDP можно изменять. Принципы функционирования CDP показаны на рисунке. Сервер сертификатов выпускает сертификат (показано на рисунке пунктирной линией) и выдает его клиенту PKI, а также формирует список CRL и передает его CDP (показано на рисунке штриховой линией). В определении CDP, имеющемся в сертификате, содержатся ссылки на различные узлы CDP, с которых клиент может загружать списки CRL.
Рисунок. Как работает CDP |
Если приложение Windows, использующее PKI, не обнаруживает локальную копию абсолютного списка или списка изменений, то в этом случае оно обращается за обновленными версиями абсолютного списка или списка изменений к соответствующим узлам CDP. Если на узле CDP эти списки доступны, приложение загружает списки CRL локально и кэширует их на период времени, соответствующий времени жизни CRL. Если в сертификате отсутствуют ссылки на узлы CDP, тогда приложение запрашивает центр CA, выпустивший данный сертификат, для получения абсолютного списка или списка изменений.
Для корректного функционирования узлов CDP работа с ними должна поддерживаться не только со стороны сертификатов и PKI-приложений, но и со стороны центров CA. В CA должен быть реализован соответствующий выходной модуль, обеспечивающий размещение абсолютных списков и списков изменений в используемой файловой системе, в Web или в Active Directory. В центры CA на базе Windows 2003 и Windows 2000 по умолчанию входит модуль, занимающийся обработкой и размещением списков CRL. Отметим, что хотя в Windows 2003 и Windows 2000 отсутствуют механизмы автоматического размещения абсолютного списка и списка изменений на узлах HTTP CDP, тем не менее эти типы списков CRL могут быть опубликованы вручную.
При использовании узлов CDP мы не только получаем возможность автоматически проверять аннулирование сертификатов — повышается и степень доступности абсолютного списка и списка изменений. Так как в сертификате может быть задано несколько узлов CDP, в случае недоступности какого-либо из них логика PKI может перенаправить запрос к другому узлу.
Для того чтобы настроить содержимое полей CDP сертификата, нужно запустить оснастку Certification Authority, щелкнуть правой кнопкой на объекте Windows CA, выбрать из контекстного меню пункт Properties и перейти к закладке Extensions, которая показана на экране 5. Для добавления нового CDP к сертификату, выпущенному данным центром CA, следует щелкнуть Add. В нижней части окна Extensions располагаются флажки CDP, описание которых приведено в табл. 2. Настройку CDP-полей сертификата, выпущенного данным центром CA, можно выполнять с помощью файла capolicy.inf.
Экран 5. Настройка CDP |
Экран 6. Функция URL Retrieval Tool |
Проверку узлов CDP, описанных в расширениях X.509 сертификатов Windows, удобно выполнять с помощью функции URL Retrieval Tool, окно которой показано на экране 6. Эта функция входит в состав утилиты командной строки certutil, поставляемой вместе с Windows 2003. Чтобы запустить URL Retrieval Tool, наберите в командной строке:
certutil -URL <имя_файла_сертификата>
Для того чтобы обновить абсолютный список или список изменений, нужно выбрать в разделе Retrieve пункт CRLs (from CDP), после чего нажать кнопку Retrieve. При двойном щелчке на одной из строк списка, расположенного в верхней части окна утилиты URL Retrieval Tool, запускается программа просмотра выбранного CRL. Утилита URL Retrieval Tool может использоваться и для обновления сертификатов CA, указанных в поле Authority Information Access (AIA) данного сертификата.
Ключевая служба инфраструктуры PKI
Процедура проверки аннулирования является ключевой службой инфраструктуры PKI, поскольку надежный механизм проверки аннулирования сертификатов — это важная часть любой заслуживающей доверия службы PKI. При проектировании среды PKI нужно обязательно уделять внимание процессу аннулирования сертификатов. Средства, имеющиеся в операционных системах Windows 2003 и Windows 2000, позволят автоматизировать процесс аннулирования сертификатов. Наконец, следует отметить, что появившиеся в инфраструктуре PKI системы Windows 2003 дополнения и расширения механизмов проверки аннулирования существенно повышают удобство использования данных служб.
Жан де Клерк - Член Security Office компании HP. Специализируется на управлении идентификационными параметрами и безопасности в продуктах Microsoft. Автор книги Windows Server 2003 Security Infrastructures (издательство Digital Press). jan.declercq@hp.com