- Active Directory Certificate Services в Windows server 2016
- Установка центра сертификации Install the Certification Authority
- Установка служб сертификатов Active Directory To install Active Directory Certificate Services
- Установка центра сертификации на предприятии. Часть 1
- Введение
- Целевая аудитория
- Словарь терминов
- Зачем нужен частный PKI?
- Общие положения
- Отзыв сертификатов
- Типовые схемы развёртывания иерархии PKI
- Одноуровневая иерархия
- Двухуровневая иерархия
- Трёх- и более уровневые иерархии
Active Directory Certificate Services в Windows server 2016
В рамках установки VMware Horizon 7 и VMware vSphere может потребоваться выпуск SSL сертификатов для инфраструктурных серверов, входящих как в состав Horizon так и для vCenter server и ESXi. Во время установки продуктов VMware чаще всего они выпускают самоподписанные сертификаты и при попытке обращения друг к другу возникает ошибка, говорящая о том, что один сервер не доверяет сертификату, установленному на другом. Для этих целей необходима установка Active Directory Certificate Services, чтобы все установленные SSL сертификаты были выпущены корневым центром сертификации, которому доверяют все находящиеся в домене серверы и компьютеры пользователей VDI. В первой части этой статьи будет описана минимальная установка, которой будет достаточно для установки SSL сертификатов на VMware Connection серверы (в кластерной реализации их будет несколько) и VMware Composer server. Во второй, попробуем показать, как заменить сертификат в vCenter server, для этого потребуется более глубокое погружение в службы vCenter.
Установка AD CA в Windows server 2016 для нужд Horizon 7:
1 — 5 Для установки роли доменного центра сертификации будет использоваться отдельная виртуальная машина, которую необходимо ввести в домен.
6 — 10 Добавление роли Active Directory Sertificate Services, все по умолчанию
11 — 21 Для завершения установки необходимо пройти шаги финальной конфигурации, если у вас лес, состоящий из одного домена, то можно все оставить без изменений.
22 — 23 Теперь появилась возможность запускать консоль управления Certification Authority, которая будет использоваться для дальнейшего выпуска сертификатов для инфраструктурных серверов VMware Horizon 7
Установка центра сертификации Install the Certification Authority
Применяется к: Windows Server (Semi-Annual Channel), Windows Server 2016 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2016
Эту процедуру можно использовать для установки служб сертификатов Active Directory (AD CS), чтобы можно было зарегистрировать сертификат сервера на серверах, на которых выполняется сервер политики сети (NPS), служба маршрутизации и удаленного доступа (RRAS) или оба. You can use this procedure to install Active Directory Certificate Services (AD CS) so that you can enroll a server certificate to servers that are running Network Policy Server (NPS), Routing and Remote Access Service (RRAS), or both.
- Перед установкой служб Active Directory сертификатов необходимо присвоить компьютеру имя, настроить компьютер со статическим IP-адресом и присоединить компьютер к домену. Before you install Active Directory Certificate Services, you must name the computer, configure the computer with a static IP address, and join the computer to the domain. Дополнительные сведения о выполнении этих задач см. в разделе сетевого руководствапо Windows Server 2016 Core. For more information on how to accomplish these tasks, see the Windows Server 2016 Core Network Guide.
- Для выполнения этой процедуры компьютер, на котором устанавливается AD CS, должен быть присоединен к домену, где установлена служба домен Active Directory Services (AD DS). To perform this procedure, the computer on which you are installing AD CS must be joined to a domain where Active Directory Domain Services (AD DS) is installed.
Членство в группах «Администраторы предприятия » и «Администраторы домена корневого домена» является минимальным требованием для выполнения этой процедуры. Membership in both the Enterprise Admins and the root domain’s Domain Admins group is the minimum required to complete this procedure.
Чтобы выполнить эту процедуру с помощью Windows PowerShell, откройте Windows PowerShell и введите следующую команду и нажмите клавишу ВВОД. To perform this procedure by using Windows PowerShell, open Windows PowerShell and type the following command, and then press ENTER.
Add-WindowsFeature Adcs-Cert-Authority -IncludeManagementTools
После установки AD CS введите следующую команду и нажмите клавишу ВВОД. After AD CS is installed, type the following command and press ENTER.
Install-AdcsCertificationAuthority -CAType EnterpriseRootCA
Установка служб сертификатов Active Directory To install Active Directory Certificate Services
Если вы хотите использовать Windows PowerShell для установки служб Active Directory Certificate Services, см. раздел Install-адксцертификатионаусорити для командлетов и необязательных параметров. If you want to use Windows PowerShell to install Active Directory Certificate Services, see Install-AdcsCertificationAuthority for cmdlets and optional parameters.
Войдите в систему как член группы «Администраторы предприятия» и группу «Администраторы домена корневого домена». Log on as a member of both the Enterprise Admins group and the root domain’s Domain Admins group.
Откройте диспетчер серверов, щелкните Управление, а затем нажмите кнопку Добавить роли и компоненты. In Server Manager, click Manage, and then click Add Roles and Features. Откроется мастер добавления ролей и компонентов. The Add Roles and Features Wizard opens.
На странице Перед началом работы нажмите кнопку Далее. In Before You Begin, click Next.
Страница Перед началом работы мастера добавления ролей и компонентов не отображается, если при предыдущем запуске мастера был установлен флажок Пропустить эту страницу по умолчанию. The Before You Begin page of the Add Roles and Features Wizard is not displayed if you have previously selected Skip this page by default when the Add Roles and Features Wizard was run.
На странице Выбор типа установки убедитесь, что выбрана Установка ролей или компонентов, затем нажмите кнопку Далее. In Select Installation Type, ensure that Role-Based or feature-based installation is selected, and then click Next.
На странице Выбор целевого сервера убедитесь, что выбран пункт Выберите сервер из пула серверов. In Select destination server, ensure that Select a server from the server pool is selected. На странице Пул серверов проверьте, что выбран локальный компьютер. In Server Pool, ensure that the local computer is selected. Щелкните Далее. Click Next.
В окне Выбор ролей сервера в списке роли выберите Active Directory службы сертификации. In Select Server Roles, in Roles, select Active Directory Certificate Services. Когда появится запрос на добавление необходимых компонентов, щелкните Добавить компоненты, а затем нажмите кнопку Далее. When you are prompted to add required features, click Add Features, and then click Next.
В окне Выбор компонентов нажмите кнопку Далее. In Select features, click Next.
В Active Directory службах сертификации прочтите предоставленные сведения и нажмите кнопку Далее. In Active Directory Certificate Services, read the provided information, and then click Next.
На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить. In Confirm installation selections, click Install. Не закрывайте мастер в процессе установки. Do not close the wizard during the installation process. После завершения установки щелкните настроить Active Directory службы сертификатов на целевом сервере. When installation is complete, click Configure Active Directory Certificate Services on the destination server. Откроется мастер настройки служб сертификатов Active Directory. The AD CS Configuration wizard opens. Прочтите учетные данные и при необходимости укажите учетные данные для учетной записи, которая является членом группы «Администраторы предприятия». Read the credentials information and, if needed, provide the credentials for an account that is a member of the Enterprise Admins group. Щелкните Далее. Click Next.
В службах ролей щелкните центр сертификации, а затем нажмите кнопку Далее. In Role Services, click Certification Authority, and then click Next.
На странице тип установки убедитесь, что выбран параметр ЦС предприятия , и нажмите кнопку Далее. On the Setup Type page, verify that Enterprise CA is selected, and then click Next.
На странице Укажите тип страницы ЦС убедитесь, что выбран параметр корневой ЦС , и нажмите кнопку Далее. On the Specify the type of the CA page, verify that Root CA is selected, and then click Next.
На странице Указание типа закрытого ключа убедитесь, что выбран параметр создать новый закрытый ключ , а затем нажмите кнопку Далее. On the Specify the type of the private key page, verify that Create a new private key is selected, and then click Next.
На странице шифрование для центра сертификации сохраните параметры по умолчанию для CSP (поставщик хранилища ключей RSA) и алгоритм хэширования (SHA2) и определите максимальную длину символов ключа для развертывания. On the Cryptography for CA page, keep the default settings for CSP (RSA#Microsoft Software Key Storage Provider) and hash algorithm (SHA2), and determine the best key character length for your deployment. Большие ключевые длины символов обеспечивают оптимальную безопасность; Однако они могут повлиять на производительность сервера и могут быть несовместимы с устаревшими приложениями. Large key character lengths provide optimal security; however, they can impact server performance and might not be compatible with legacy applications. Рекомендуется использовать значение по умолчанию 2048. It is recommended that you keep the default setting of 2048. Щелкните Далее. Click Next.
На странице имя ЦС сохраните Предлагаемое общее имя ЦС или измените имя в соответствии с вашими требованиями. On the CA Name page, keep the suggested common name for the CA or change the name according to your requirements. Убедитесь, что имя ЦС совместимо с соглашениями об именовании и целями, так как вы не можете изменить имя ЦС после установки служб AD CS. Ensure that you are certain the CA name is compatible with your naming conventions and purposes, because you cannot change the CA name after you have installed AD CS. Щелкните Далее. Click Next.
На странице срок действия в поле Укажите срок действия введите число и выберите значение времени (годы, месяцы, недели или дни). On the Validity Period page, in Specify the validity period, type the number and select a time value (Years, Months, Weeks, or Days). Рекомендуется использовать значение по умолчанию, равное пяти годам. The default setting of five years is recommended. Щелкните Далее. Click Next.
На странице база данных ЦС в поле укажите расположения базы данных укажите расположение папки для базы данных сертификатов и журнала базы данных сертификатов. On the CA Database page, in Specify the database locations, specify the folder location for the certificate database and the certificate database log. Если указаны расположения, отличные от расположений по умолчанию, убедитесь, что папки защищены с помощью списков управления доступом (ACL), которые не позволяют неавторизованным пользователям или компьютерам получать доступ к базе данных и файлам журналов ЦС. If you specify locations other than the default locations, ensure that the folders are secured with access control lists (ACLs) that prevent unauthorized users or computers from accessing the CA database and log files. Щелкните Далее. Click Next.
В окне Подтверждение нажмите кнопку настроить , чтобы применить параметры, а затем нажмите кнопку Закрыть. In Confirmation, click Configure to apply your selections, and then click Close.
Установка центра сертификации на предприятии. Часть 1
Привет, Хабр! Мы начинаем новую серию статей. Она будет посвящена развертыванию службы сертификатов на предприятии на базе Windows Server 2016 с практическими примерами. Сегодня обозначим вступительные моменты и поговорим о типовых схемах развёртывания иерархии PKI: двухуровневой и многоуровневой. Обо всем этом читайте под катом.
Введение
Целевая аудитория
ИТ-администраторы, ИТ-инженеры и специалисты по безопасности, имеющие основные понятия о цифровых сертификатах.
Словарь терминов
В этой части серии использованы следующие сокращения и аббревиатуры:
- PKI (Public Key Infrastructure) — инфраструктура открытого ключа (ИОК), набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач на основе закрытого и открытого ключей. Поскольку аббревиатура ИОК не является распространённой, здесь и далее будет использоваться более знакомая англоязычная аббревиатура PKI.
- X.509 — стандарт ITU-T для инфраструктуры открытого ключа и инфраструктуры управления привилегиями.
- ЦС (Центр Сертификации) — служба, выпускающая цифровые сертификаты. Сертификат — это электронный документ, подтверждающий принадлежность открытого ключа владельцу.
- CRL (Certificate Revocation List) — список отзыва сертификатов. Подписанный электронный документ, публикуемый ЦС и содержащий список отозванных сертификатов, действие которых прекращено по внешним причинам. Для каждого отозванного сертификата указывается его серийный номер, дата и время отзыва, а также причина отзыва (необязательно). Приложения могут использовать CRL для подтверждения того, что предъявленный сертификат является действительным и не отозван издателем.
- SSL (Secure Sockets Layer) или TLS (Transport Layer Security) — технология, обеспечивающая безопасность передачи данных между клиентом и сервером поверх открытых сетей.
- HTTPS (HTTP/Secure) — защищённый HTTP, являющийся частным случаем использования SSL.
- Internet PKI — набор стандартов, соглашений, процедур и практик, которые обеспечивают единый (унифицированный) механизм защиты передачи данных на основе стандарта X.509 по открытым каналам передачи данных.
Зачем нужен частный PKI?
Шифрование, цифровые подписи и сертификаты всё плотнее входят в нашу повседневную интернет-жизнь. Если об этих терминах 10 лет назад говорили мало, и далеко не всем ИТ специалистам был известен смысл этих слов, то сейчас они у многих на слуху. И этот процесс длится не год и не два, а добрый десяток лет. Сейчас мы находимся в активной фазе развития клиент-серверных веб-сервисов (привет мейнфреймам!), и значительная доля коммуникации людей и устройств перекладывается на компьютерные сети и интернет. Как следствие, новые условия диктуют новые требования к защите данных. Крупные производители ПО активно продвигают идеологию «безопасного интернета», требуя поддержки цифровых сертификатов, начиная от серверов с конфиденциальными данными, облачных служб, вплоть до кухонного чайника или бельевого утюга (IoT).
Некоторые компании делают это весьма настойчиво. Так, начиная с 2017 года, компания Google считает все сайты без поддержки HTTPS небезопасными: Moving towards a more secure web. И это весьма ощутимо влияет на интернет-индустрию. Во-первых, предупреждение в браузере (Google Chrome) явно не будет радовать ваших потенциальных клиентов и просто посетителей. Во-вторых, сайты без поддержки HTTPS опускаются в поисковой выдаче. Mozilla и другие крупные вендоры также не отстают от Google: Deprecating Non-Secure HTTP. С одной стороны, компании давят на интернет-индустрию, толкая организации на дополнительные расходы, связанные с цифровыми сертификатами. С другой стороны, это — вынужденный шаг, и всем нужно идти в ногу со временем.
Однако текущее положение Internet PKI не позволяет решать эти вопросы достаточно гибко и удобно, требуя существенных затрат. Например, один сертификат SSL для публичного веб-сервера вам обойдётся в сумму порядка $100, а если хотите сертификат с зелёной полосой, это вам будет стоить ещё дороже. И это только за один сертификат! При этом автоматизация процессов находится в самом зачаточном состоянии.
Для решения этих проблем крупнейшие вендоры ПО объединились и совместными усилиями наводят порядок с цифровыми сертификатами в Internet PKI. Во-первых, создан единый стандартизирующий орган — CAB Forum (CA/Browser Forum), который определяет стандартные практики для коммерческих CA, производителей веб-ПО и потребителей сертификатов. Во-вторых, активное продвижение некоммерческого CA (но глобально доверенного) Let’s Encrypt для обеспечения бесплатными сертификатами с возможностью автоматического продления.
Казалось бы, это решает все проблемы безопасной коммуникации, и частные PKI (разворачиваемые в пределах организации) стали сразу ненужными. В какой-то, да, если частный PKI занимался обслуживанием внешних серверов (веб, VPN и т.д.). Но сервисы наподобие Let’s Encrypt в настоящее время покрывают лишь узкий спектр корпоративных потребностей в сертификатах. Например, не покрываются сертификаты для шифрования документов, почты, цифровых подписей. Часть задач, как аутентификация клиентов не покрывается совсем. Ещё одним ограничением является то, что для использования публичных сертификатов, выданных коммерческими CA вам необходимо иметь публичный домен. Получить сертификат для веб-сервера на имя domain.local от Let’s Encrypt технически невозможно. Именно поэтому актуальность частных PKI остаётся на очень высоком уровне. Пример использования частных PKI в корпоративной среде изображён на следующем рисунке:
Если компания решает использовать частный PKI в пределах организации, встаёт другой насущный вопрос: как же правильно его организовать, чтобы он отвечал современным практикам и стандартам хотя бы в пределах организации. В интернете можно найти многочисленные статьи о том, как развернуть PKI в компании на основе Active Directory Certificate Services (ADCS). Но в большинстве своём они изобилуют ошибками, исходят из неверных предпосылок и нередко являются копированием какого-то исходного (не всегда удачного) материала, а к имеющимся фундаментальным ошибкам привносят ещё и свои. Как следствие, многочисленные провалы в развёртывании PKI. Об этом можно судить по количеству соответствующих тем на форумах (в частности, TechNet Server Security). Качественной документации на английском языке не хватает, а на русском… Этот цикл статей призван восполнить этот пробел и систематизировать современные наработки.
Общие положения
PKI является технологией безопасности, которая основывается на стандарте X.509 и использует цифровые сертификаты. Целью PKI является повышение безопасности ИТ инфраструктуры предприятия за счёт предоставления механизмов по защите данных от несанкционированного доступа и незаконного изменения данных (подделка данных). Это достигается двумя основными криптографическими механизмами:
- Шифрование – защищает данные от несанкционированного доступа третьих лиц путём шифрования данных криптографическими ключами. Только пользователи, имеющие необходимые ключи, могут получить доступ к данным. Шифрование обеспечивает секретность данных, но не защищает от их подмены.
- Цифровая подпись – защищает данные от несанкционированного изменения или подделки путём применения к данным специальных алгоритмов, которые образуют цифровую подпись. Любые манипуляции по изменению данных будут немедленно обнаружены при проверке цифровой подписи. Цифровая подпись обеспечивает не конфиденциальность данных, а их целостность. Путём комбинирования шифрования и цифровой подписи можно организовать обеспечение конфиденциальности и защиты данных от несанкционированных изменений.
Типичная инфраструктура PKI состоит из следующих компонентов:
- Центр Сертификации (ЦС) – служба, предоставляющая цифровые сертификаты потребителям и обеспечивающая функционирование PKI.
- Сервер отзыва – служба, предоставляющая информацию о списках отозванных (скомпрометированных или недействительных) сертификатов, выпущенных конкретным ЦС.
- Клиент – получатель заверенного цифрового сертификата от центра сертификации. Клиентами могут выступать люди, устройства, программное обеспечение, а также другие ЦС.
Структура ЦС и сертификатов выстраиваются в древовидную иерархию. Каждый ЦС может выполнять одну или несколько (совмещать) ролей:
- Корневой ЦС – специальный тип ЦС, который имеет самоподписанный сертификат и является корнем дерева (отсюда и название). Этот тип ЦС является стартовой точкой доверия ко всем сертификатам в данной иерархии (дерева). Иными словами, клиент должен явно доверять конкретному корневому сертификату (а именно, комбинации: издатель и открытый ключ), чтобы доверять сертификатам, находящимся в остальной части дерева. Важно отметить, что доверие транзитивно. Клиент при проверке конечного сертификата будет выстраивать цепочку (путь) от конечного сертификата до вершины иерархии (корневого сертификата). И если клиент доверяет вершине, то будут и основания доверять конечному сертификату на правах транзитивности.
- ЦС политик – технически, это такой же ЦС, как и все остальные (в разрезе иерархии), с тем отличием, что дополняется внешними политиками и ограничениями по выдаче и использования цифровых сертификатов.
- Издающий ЦС – это ЦС общего назначения, который выполняет подпись и выдачу цифровых сертификатов потребителям.
Для понимания процесса построения цепочек сертификатов рекомендую прочитать следующую статью: Certificate Chaining Engine — how it works. Данная статья ориентирована на платформу Microsoft CryptoAPI, она также справедлива (за некоторыми исключениями) и для других реализаций криптографических платформ.
Поскольку ЦС выстраиваются в древовидную иерархию, возможно организовать многоуровневую иерархию, где на каждом уровне ЦС будет выполнять как роль издающего ЦС, так и дополнительные функции. В самом простом случае один ЦС может совмещать все роли, т.е. быть корневым, обеспечивать какие-то политики выдачи и выдавать сертификаты конечным потребителям. Более крупные компании и/или с более зрелой организацией ИТ-процессов уже используют разделение ЦС по ролям. Например, в головном офисе держат корневой ЦС, выдающий сертификаты только другим ЦС, которые уже на себе накладывают политики выдачи. Они могут не обслуживать напрямую конечных потребителей, а выдавать сертификаты другим подчинённым ЦС, которые, в свою очередь, и будут обслуживать конечных потребителей. В каждом подходе есть свои плюсы и минусы, которые будут рассмотрены ниже.
Отзыв сертификатов
Помимо задач по выпуску сертификатов, каждый ЦС периодически выпускает списки отзыва (Certificate Revocation List, CRL). Как и сертификаты, целостность списков отзыва обеспечивается цифровой подписью. CRL содержит серийные номера сертификатов, действие которых прекращено по какой-либо причине до официального истечения срока действия сертификата. Таким образом ЦС обеспечивает своевременное изъятие недействительного сертификата из оборота.
Каждый клиент после установки доверия сертификата через цепочку должен убедиться, что ни один сертификат в цепочке не был отозван своим издателем. Для этого клиент перебирает каждый сертификат в цепочке, выбирает CRL предоставленный издателем и проверяет наличие/отсутствие текущего сертификата в списке CRL. Если текущий сертификат находится в CRL, то доверие к сертификату (и всем ветвям дерева под ним) автоматически обрывается.
Фактически, если корневой ЦС отозвал все свои непосредственно изданные сертификаты, то ни один сертификат под этим корнем не будет доверенным вне зависимости от высоты иерархии. Здесь следует отметить один крайне важный и принципиальный момент: невозможно отозвать корневой (самоподписанный) сертификат. Т.е. если по какой-то причине он был скомпрометирован, его можно отозвать только принудительным удалением сертификата из хранилища сертификатов каждого клиента. Дело в том, что ЦС не определяет списки отзывов для самого себя, это делает издатель. В случае самоподписанного сертификата, ЦС является издателем самого себя. И при попытке включить себя в свой же список отзыва получается неопределённость: сертификат ЦС включен в CRL, который подписан ключом этого же ЦС. Если предположить, что сертификат ЦС недействителен, то и цифровая подпись на CRL является недействительной. Как следствие, невозможно достоверно утверждать, что сертификат корневого ЦС отозван. Причём, отзыв корневых сертификатов не предусмотрен и основным регламентирующим стандартом, RFC 5280, параграф §6.1 которого гласит:
When the trust anchor is provided in the form of a self-signed certificate, this self-signed certificate is not included as part of the prospective certification path.
А на отзыв проверяется только проспективная цепочка. Если говорить в контексте Microsoft ADCS, то тут ситуация усугубляется ещё больше. В частности, вы технически можете отозвать корневой сертификат при помощи certutil.exe или CryptoAPI. Но как только вы это сделаете, ЦС не сможет подписать ни один CRL, как следствие, сертификат ЦС никогда не попадёт в CRL. Более того, даже если использовать различные утилиты (тот же certutil.exe), можно насильно включить сертификат ЦС в CRL, но это мало чем поможет. Дело в том, что конфигурация по умолчанию CryptoAPI даже не пытается проверить корневой сертификат на отзыв.
Проблема отзыва корневых сертификатов во многих случаях будет одним из решающих факторов в выборе подходящей для компании иерархии ЦС. А также будет диктовать дополнительные меры безопасности для корневых ЦС, чтобы предельно снизить риск компрометации корневого ЦС.
Типовые схемы развёртывания иерархии PKI
В этом разделе мы рассмотрим типовые (или классические) схемы развёртывания иерархии PKI в условиях предприятия и проводятся оценки каждой схемы и рекомендации. Следует отметить, что ни одна из них не является универсальной, и каждая может иметь смысл в своих пределах.
Одноуровневая иерархия
Одноуровневая иерархия является самой простой в реализации и имеет следующий вид:
Такая иерархия является самой простой и экономичной как по ресурсам (лицензиям), так и по расходам на обслуживание и управление. Достаточно развернуть один такой ЦС в лесу Active Directory, и он будет обеспечивать сертификатами всех потребителей. Из неочевидных, но немаловажных достоинств можно отметить очень короткую цепочку сертификатов. Т.е. время на проверку доверенности и отзыва сертификата будет тратиться гораздо меньше, чем в любых других иерархиях.
Однако одноуровневая иерархия обладает рядом достаточно существенных недостатков. Самый крупный из них – низкий уровень безопасности. Поскольку ЦС в такой схеме должен быть постоянно включенным в сеть, чтобы клиенты могли запрашивать сертификаты, значительно увеличивается риск его компрометации. Последствия компрометации могут быть чудовищными, вплоть до полной потери контроля над Active Directory и краху ИТ систем. Это может быть вызвано как недостаточными мерами безопасности, наличием не закрытых уязвимостей ОС или компонентах системы, которые позволяют удалённое исполнение кода и т.д. Как отмечалось выше, отозвать нормальным способом такой сертификат уже нельзя, и последствия будут действительно тяжёлыми.
Другой момент связан с гибкостью разделения ЦС на функциональные уровни (делегирование). Например, невозможно организовать несколько различных политик выдачи, разделить на классы (например, один ЦС издаёт сертификаты только машинам и устройствам, другой только для пользователей) и т.д., потому что он всего один.
Недостатки одноуровневой иерархии заметно перевешивают её преимущества в лёгкости и компактности. Именно поэтому такая конфигурация имеет смысл лишь в каких-то небольших и изолированных сетях с низкими требованиями по безопасности. Например, это может быть какая-то тестовая среда. В бизнес-среде такое решение использовать не рекомендуется.
Двухуровневая иерархия
Двухуровневая иерархия уже подразумевает как минимум два ЦС в дереве, в котором один строго корневой, а остальные — подчинённые. Схема такой иерархии представлена ниже:
Примечание: здесь пунктирными линиями отмечен ручной (неавтоматизированный) процесс получения сертификата. Сплошными линиями отмечен автоматизированный процесс получения сертификатов.
В двухуровневой иерархии уже возможно решить недостатки одноуровневой иерархии. Здесь корневой ЦС выпускает сертификаты только для подчинённых ЦС, а уже подчинённый ЦС выдаёт сертификаты конечным потребителям. Поскольку издающие ЦС развёртываются не так часто, и срок их действия достаточного велик, это позволяет изолировать корневой ЦС от сети. Это автоматически сводит к нулю шанс компрометации такого ЦС, поскольку без сети к нему не добраться. Более того, основное время жизни он может (и должен) проводить в выключенном состоянии. Включать его нужно только для обновления собственного сертификата, подчинённого ЦС или для публикации нового CRL. В остальное время он никому не нужен.
Другим достоинством двухуровневой иерархии является улучшенная гибкость в разбиении подчинённых ЦС на какие-то классы. Тот же типичный сценарий, когда два ЦС управляются разными подразделениями ИТ, и каждый ЦС выпускает сертификаты для своих групп потребителей. Например, для машин отдельно, для пользователей отдельно. Можно для корпоративных разработчиков (которые обычно живут в своих средах) выделить свой подчинённый ЦС.
Именно здесь уже можно начинать задумываться о разделении ЦС по политикам выдачи (или классам). Например, можно выделить один ЦС для выдачи сертификатов с повышенными требованиями к сертификатам (например, сертификаты для аутентификации и цифровой подписи) и ЦС общего назначения. Управлять ими могут различные команды ИТ-администраторов. При этом каждый подчинённый ЦС будет совмещать задачи ЦС политики и издающего ЦС. Это вполне допустимо, если предположить, что количество ЦС на каждый класс не более одного.
Из недостатков можно выделить лишь некоторое увеличение как административных, так и финансовых издержек (требуется дополнительная лицензия). К административным издержкам добавятся контроль за сроком действия каждого ЦС и списка отзыва корневого ЦС, а также их своевременное обновление. Кроме того, несколько увеличится время построения и проверки цепочек сертификатов, поскольку добавляется ещё один уровень. На практике это время практически не ощутимо.
Для небольших и средних предприятий такая схема является наиболее оптимальной, поскольку она позволяет обеспечить должный уровень безопасности и приемлемый уровень гибкости разделения ЦС на определённые функции.
Трёх- и более уровневые иерархии
В более крупных компаниях со сложной организацией сетей может случиться, что двухуровневая иерархия не может обеспечить необходимый уровень гибкости управления ЦС. Например, когда компания использует географический принцип разделения с относительной автономией ИТ отделов в каждом регионе. Представьте международную компанию с региональными офисами в разных странах. В них может действовать своё законодательство в вопросах безопасности, например, при обработке персональных данных. Для соблюдения подобных юридических формальностей на каждый такой регион выделяется свой собственный ЦС политик (при этом, размещается он, как правило, в головном офисе компании). В в своём сертификате он указывает поддержку (и ссылку на соответствующий документ) тех или иных нормативных документов и выпускает сертификаты для издающих ЦС, действующих в рамках тех политик, которые обозначены в сертификате (грубо говоря, в данном регионе).
В таких иерархиях корневой ЦС и ЦС политик изолируют от сети, а к сети уже подключаются только издающие ЦС:
Здесь также пунктиром отмечен ручной процесс получения сертификата для ЦС и сплошными линиями автоматизированный процесс получения сертификата для клиентов.
К плюсам такой схемы можно отнести гибкость полученной PKI с возможностью адаптации под практически любые условия. Правда, за это придётся платить. Во-первых, многоуровневые иерархии удорожают стоимость развёртывания и сопровождения PKI. Во-вторых, клиентам требуется больше времени на построение и проверки на отзыв полных цепочек сертификатов, что может вызывать отказы из-за превышения таймаутов верхних протоколов передачи данных. И на практике такие схемы зачастую являются избыточными. Поэтому при выборе подходящей иерархии ЦС следует искать баланс между гибкостью и практической целесообразностью с учётом капитальных и операционных затрат на содержание PKI.
В рамках этой серии статей рассматривается наиболее популярная (в большинстве случаев) двухуровневая иерархия.