"Взрослый"Autoenrollment сертификатов в Linux

"Взрослый"Autoenrollment сертификатов в Linux

2025-12-15
На связи Евгений Галкин, директор по кибербезопасности компании Avanpost.

Сегодня мы поговорим про ‘'взрослый'' autoenrollment сертификатов в Linux.

Современные IT-инфраструктуры всё чаще строятся на гибридных моделях, где Linux-системы сосуществуют с Windows-доменами, облачными сервисами и контейнерами. Однако автоматизация управления PKI (Public Key Infrastructure) в таких средах остаётся сложной задачей, особенно для Linux. В отличие от Windows, где Active Directory Certificate Services и Data Protection API обеспечивают централизованное и безопасное управление сертификатами, в Linux отсутствуют встроенные аналоги этих механизмов.

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

В этой статье рассмотрим подходы к организации autoenrollment-а сертификатов в linux-средах на основе открытых решений и протоколов (рассмотрим на примере SCEP и ACME, попробуем описать их плюсы и минусы), а также поделимся подробностями нашего собственного решения на базе продуктов Avanpost DS и Avanpost CA.

Определимся с терминологией

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

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

Проблематика и постановка задачи

В современных гибридных IT-инфраструктурах автоматизация выпуска и перевыпуска сертификатов для Linux-систем остаётся одной из самых недооценённых и при этом критичных проблем PKI: в отличие от Windows с её встроенными AD CS, Group Policy и DPAPI, в Linux отсутствует единый стандарт управления сертификатами, что приводит к использованию разных инструментов и отсутствию нативного механизма автоэнролмента через корпоративные CA. Интеграция с AD CS требует дополнительных прокси-решений и нестандартных сценариев, а автоматический перевыпуск чаще всего реализуется через скрипты и внешние планировщики.

Отдельную угрозу представляет безопасность закрытых ключей, которые в Linux зачастую хранятся в файловой системе без достаточной защиты (вплоть до отсутствия правил управления разрешениями), в отличие от DPAPI и RBAC в Windows.

На мой взгляд, причина этому понятна, для Windows всю инфраструктуру и все процессы обеспечила компания Microsoft (как моно-производитель), а дистрибутивы linux разные, производители разные. Да, разумеется, есть общие правила и подходы, но тем не менее, имеются и различия, о которых необходимо помнить.

Попробуем решить задачу автоэнролмента сертификатов для linux и рассмотрим на примере следующих процессов:
  • Первичный выпуск сертификата
  • Обновление сертификата
  • Распространение доверенных корневых сертификатов

Учтем, что решение должно быть безопасным и масштабируемым, а также поддерживаться для различных дистрибутивов linux.

Как говорили выше, решение нашей задачи рассмотрим на примере применения открытых стандартов SCEP и ACME, а в конце расскажем про наше собственное решение на базе продуктов Avanpost DS и Avanpost CA.

SCEP

SCEP (Simple Certificate Enrollment Protocol) - это открытый протокол, разработанный компанией Cisco, для автоматизации процесса выдачи X.509-сертификатов устройствам и системам без предварительно установленных сертификатов. Его основная задача — упростить первичную регистрацию клиента в инфраструктуре PKI, позволив автоматически сгенерировать ключевую пару, отправить запрос на сертификат (CSR) в центр сертификации и получить готовый сертификат по защищённому каналу. SCEP изначально задумывался для сетевого оборудования, но со временем стал де-факто стандартом для базового автоэнролмента в гетерогенных средах, включая Linux. Протокол работает поверх HTTP/HTTPS и использует механизм предварительного выработанного секрета (challenge password) для первичной аутентификации клиента на этапе запроса сертификата.

Концепция решения задачи автоэнролмента Linux через SCEP строится следующим образом. На стороне инфраструктуры разворачивается SCEP-совместимый сервер или шлюз к корпоративному CA (например, Microsoft AD CS с ролью NDES, OpenXPKI, EJBCA или Vault PKI с SCEP-плагинами). Linux-хост при первичной инициализации автоматически генерирует закрытый ключ, формирует CSR и отправляет его на SCEP-сервер с использованием одноразового или ограниченного по времени challenge-пароля. После прохождения проверки CA подписывает сертификат и возвращает его клиенту, который сохраняет его в локальное хранилище и применяет к целевым сервисам (nginx, postfix, docker, kubelet и т. д.). Для перевыпуска сертификатов используется тот же механизм, но уже с опорой на существующий сертификат или повторную авторизацию через challenge. Распространение доверенных корневых сертификатов реализуется централизованно через конфигурационные системы (Ansible, SaltStack, cloud-init) или через тот же SCEP/CA-интерфейс, обеспечивая единый уровень доверия между всеми узлами инфраструктуры.

Преимущества SCEP заключаются в его простоте, широкой поддержке и совместимости: он поддерживается большинством корпоративных CA, включая AD CS, работает на любых дистрибутивах Linux через утилиты sscep, certmonger и не требует сложной инфраструктуры. SCEP хорошо подходит для массового первичного энролмента серверов, сетевых устройств и виртуальных машин, легко автоматизируется через скрипты и системы управления конфигурациями, а также масштабируется в крупных инфраструктурах.

Однако у SCEP есть и существенные недостатки. Главный из них — слабая модель безопасности первичной аутентификации: использование одного общего challenge-пароля создаёт риск несанкционированной выдачи сертификатов при его утечке. В базовой реализации отсутствует полноценный RBAC, привязка сертификатов к учётным записям и гибкие политики выпуска. Протокол изначально не проектировался для short-lived сертификатов и динамических облачных сред, что делает его менее удобным для Kubernetes и микросервисных архитектур. Также SCEP слабо стандартизирован в части перевыпуска, отзыва и расширенного аудита, что требует дополнительных решений на уровне CA.

ACME

ACME (Automatic Certificate Management Environment) — это открытый стандарт автоматического управления жизненным циклом сертификатов, разработанный для полного исключения ручных операций при выпуске, перевыпуске и отзыве сертификатов. Наиболее известная реализация ACME — это Let’s Encrypt, однако сегодня данный протокол поддерживается и корпоративными PKI-решениями: HashiCorp Vault, Smallstep, EJBCA, OpenXPKI и другими. В основе ACME лежит принцип криптографического доказательства владения доменом или хостом (challenge-response), что позволяет отказаться от предварительных секретов и статических паролей, характерных для SCEP.

Концепция решения задачи автоэнролмента Linux через ACME строится вокруг полной автоматизации выпуска и перевыпуска сертификатов без участия администратора. Linux-хост или сервис (nginx, apache, postfix и т. д.) с помощью ACME-клиента (certbot, lego, acme. sh, step-cli) автоматически генерирует ключевую пару и отправляет запрос в ACME-сервер. Центр сертификации проверяет право узла на получение сертификата через один из challenge-механизмов: HTTP-01, DNS-01 или TLS-ALPN-01. После успешной валидации сертификат автоматически выпускается, устанавливается в систему и применяется к сервису. Перевыпуск происходит автоматически по таймеру, за несколько дней до истечения срока действия, без остановки сервисов и без ручного вмешательства.

Преимущества ACME заключаются в высокой степени автоматизации и безопасности. Протокол изначально ориентирован на short-lived сертификаты (30−90 дней), что существенно снижает риски компрометации ключей. Отсутствие статических паролей и использование криптографических challenge-механизмов делает процесс выпуска более защищённым по сравнению с SCEP. ACME отлично подходит для облачных, динамических и контейнерных сред, легко интегрируется с Kubernetes и масштабируется практически без ограничений. Кроме того, ACME является де-факто стандартом для публичных и корпоративных PKI нового поколения.

Однако у ACME есть и ограничения. Он изначально ориентирован на работу с DNS-именами и веб-сервисами, поэтому его применение для внутренних сервисов без DNS или для аутентификации хостов и пользователей может быть затруднено. Использование DNS-01 challenge требует интеграции с DNS-провайдерами и наличия API-доступа, что увеличивает сложность внедрения. В Microsoft-ориентированных инфраструктурах ACME нативно не поддерживается AD CS, и его приходится внедрять через сторонние CA или прокси-решения (Vault, Smallstep). Также ACME не решает задачи разграничения прав доступа в рамках управления сертификатами и аудита «из коробки» — эти функции обычно выносятся на уровень корпоративного PKI.

Avanpost DS + Avanpost CA

Когда мы приступали к разработке DS + CA как единого доменного PKI-решения, перед нами стояла ‘'прикладная'' задача: дать Linux-инфраструктурам тот же уровень автоматизации, управляемости и безопасности сертификатов, который многие годы считался нормой в Windows-мире с AD CS. Нашей целью было — сделать autoenrollment для Linux таким же удобным и безопасным, как в MS AD.

Первая фундаментальная задача, которую мы решили, — централизованное управление сертификатами в рамках всей инфраструктуры. В основу нашей архитектуры мы сразу заложили доменную модель: Avanpost CA стал полноценным сервисом сертификации для домена Avanpost DS, а все операции с сертификатами были привязаны не к отдельным хостам или скриптам, а к доменным политикам и шаблонам. Это позволило централизовать управление выпуском и перевыпуском сертификатов и завязать эти процессы на доменные политики.

Отдельный большой блок — безопасность. Работая в домене, мы не изобретали велосипед, весь доступ к функциям CA строится на доменной аутентификации через Kerberos и разграничении прав через доменные группы. Это позволило реализовать полноценную RBAC-модель на доступ к шаблонам сертификатов, аналогичную AD CS.

Если «на пальцах», Linux-компьютер, включённый в домен Avanpost DS, аутентифицируется в инфраструктуре через Kerberos и получает доступ в том числе к сервисам CA в строгом соответствии со своими доменными группами. Выпуск сертификатов выполняется автоматически, в рамках исполнения инструкций доменной политики, связанной с сертификатами. Перевыпуск также осуществляется централизованно по заданным срокам действия. Корневые и промежуточные сертификаты, а также CRL, автоматически публикуются в LDAP-каталоге и доставляются в локальные хранилища доверия Linux-хостов через доменный клиент (DS CLI), что решает задачу распространения доверенных цепочек без Ansible, scp и ручных операций.

Таким образом мы попытались показать, как перенести лучшие практики доменной PKI из Windows-мира в Linux-инфраструктуры без компромиссов по безопасности и управляемости. Там, где SCEP слишком прост и небезопасен, а ACME слишком завязан на DNS и веб-сценарии, доменная модель даёт прогнозируемый, контролируемый и масштабируемый autoenrollment для enterprise-среды.

О компании AVANPOST:

Avanpost — российский вендор-новатор в области безопасности идентификационных данных, развивает свою экспертизу с 2007 г.

Avanpost предлагает как комплексное решение безопасности Identity Security Platform для защиты цифровых идентичностей пользователей, устройств и приложений от различных угроз для крупных предприятий и нагруженных инфраструктур, так и более легкие стандартизированные продукты для среднего бизнеса:
  • Avanpost IDM/IGA — система управления учетными записями и доступом к корпоративным ресурсам предприятия;
  • Avanpost SmartPAM для контроля привилегированного доступа;
  • Avanpost DS — российская служба каталогов, предназначенная для управления Linux-инфраструктурами и замены MS AD, каталог для промышленных нагрузок, протестированный на 30 млн объектах);
  • Avanpost CA (российский доменный сервис сертификации, универсальный для различных доменов, включая MS);
  • Avanpost PKI (управление жизненным циклом объектов инфраструктуры открытых ключей из единого центра);
  • Продукты линейки аутентификации Avanpost Access: FAM, MFA+, USSO, WSSO, Device Control.

Экосистема решений по управлению доступом построена на базе полностью собственного ПО, лучшего в своем классе, не зависящего от сторонних решений и Open Source компонентов.
Архитектура продуктов предполагает использование в отказоустойчивых, геораспределенных, высоконагруженных инфраструктурах.

Avanpost придерживается идеологии максимальной открытости. Технологически совместимы с отечественным ПО, интегрируются и объединяются с программными компонентами различных вендоров.

Другие новости

Получайте свежие новости первыми!