Цепочка сертификатов
Цепочка сертификатов (также путь сертификации, цепочка доверия) — это упорядоченный список цифровых сертификатов, который позволяет проверить подлинность конечного сертификата (например, сертификата веб-сайта или электронной подписи) через иерархию доверия, восходящую к доверенному корневому центру сертификации. Цепочка сертификатов является фундаментальным механизмом инфраструктуры открытых ключей (PKI), обеспечивающим безопасность соединений по протоколам HTTPS, S/MIME, TLS и другим криптографическим системам.
Структура и принцип работы
Цепочка сертификатов состоит из последовательности звеньев, где каждое звено представляет собой цифровой сертификат, подписанный закрытым ключом следующего (вышестоящего) звена. Верхним звеном является корневой сертификат, который самоподписан (то есть подписан своим же закрытым ключом) и является точкой доверия. Нижним звеном — конечный сертификат (сертификат субъекта), который требуется проверить. Между ними могут находиться один или несколько промежуточных сертификатов центров сертификации (ЦС).
Элементы цепочки
- Корневой сертификат (Root Certificate) — сертификат корневого центра сертификации. Хранится в доверенном хранилище операционной системы или браузера. Является самоподписанным и не требует проверки вышестоящим органом. Компрометация корневого сертификата ставит под угрозу всю цепочку доверия.
- Промежуточный сертификат (Intermediate Certificate) — сертификат, выпущенный корневым или другим промежуточным ЦС. Используется для подписи конечных сертификатов или других промежуточных сертификатов. Позволяет изолировать корневой ключ от прямого контакта с конечными пользователями, снижая риски компрометации.
- Конечный сертификат (End-entity/Leaf Certificate) — сертификат, выданный для конкретного субъекта (веб-сайта, пользователя, устройства). Содержит открытый ключ субъекта и информацию о владельце. Подписан закрытым ключом промежуточного или корневого ЦС.
Процесс проверки
При установлении защищённого соединения (например, при открытии HTTPS-сайта) сервер отправляет клиенту не только свой конечный сертификат, но и все промежуточные сертификаты, необходимые для построения цепочки до корневого. Клиент (браузер, операционная система) выполняет следующие шаги:
- Проверяет подпись конечного сертификата с помощью открытого ключа следующего сертификата в цепочке.
- Повторяет эту операцию для каждого промежуточного сертификата, пока не достигнет корневого.
- Сверяет корневой сертификат с доверенным хранилищем. Если корневой сертификат найден в хранилище и его подпись корректна, цепочка считается валидной.
- Дополнительно проверяются срок действия сертификатов, статус отзыва (через CRL или OCSP) и соответствие доменного имени (для HTTPS).
Если на каком-либо этапе подпись не совпадает, сертификат просрочен, отозван или корневой сертификат отсутствует в доверенном хранилище, клиент выводит предупреждение об ошибке.
История и развитие
Концепция иерархии сертификатов была формализована в стандарте X.509, первая версия которого была опубликована в 1988 году Международным союзом электросвязи (ITU-T). В 1995 году вышла версия X.509v3, которая добавила расширения, позволяющие гибко управлять цепочками доверия.
В ранних реализациях PKI (например, в Netscape Navigator середины 1990-х) использовались плоские списки доверенных корневых сертификатов, но по мере роста числа ЦС и усложнения инфраструктуры потребовалась иерархическая модель. В 1999 году был опубликован стандарт PKIX (RFC 2459), который детально описал построение и проверку цепочек сертификатов.
С 2010-х годов, после серии громких компрометаций ЦС (например, DigiNotar в 2011 году), отрасль перешла к более строгим требованиям: обязательное использование промежуточных сертификатов, ограничение срока действия корневых сертификатов, внедрение Certificate Transparency (CT) для отслеживания всех выпущенных сертификатов.
Классификация цепочек сертификатов
По длине
- Одноуровневая цепочка — состоит из корневого и конечного сертификата. Используется редко, так как требует прямого подписания корневым ключом, что повышает риски.
- Многоуровневая цепочка — включает один или несколько промежуточных сертификатов. Является стандартом в современных PKI.
По типу доверия
- Иерархическая (строгая) — все сертификаты выстроены в единую древовидную структуру с одним корневым ЦС. Характерна для публичных PKI (например, Let's Encrypt, GlobalSign).
- Сетевая (перекрёстная) — допускает сертификацию одного ЦС другим, что позволяет создавать сложные графы доверия. Используется в закрытых корпоративных PKI и государственных системах.
По области применения
- Публичные цепочки — используются в интернете для HTTPS, электронной почты, кода подписи. Корневые сертификаты встроены в операционные системы и браузеры.
- Закрытые (корпоративные) цепочки — применяются внутри организаций для аутентификации устройств, пользователей, внутренних сервисов. Корневые сертификаты распространяются через групповые политики.
- Государственные цепочки — используются в национальных системах электронной подписи (например, в России — инфраструктура Минцифры, Госуслуги, ЕСИА). Регулируются национальными законами.
Примеры и практическое применение
HTTPS и веб-безопасность
Наиболее массовое применение цепочек сертификатов — защита соединений по протоколу HTTPS. При обращении к сайту, например, https://example.com`, браузер получает сертификат сайта, подписанный промежуточным ЦС, а также сам промежуточный сертификат. Браузер строит цепочку до корневого сертификата, хранящегося в доверенном хранилище. Если цепочка валидна, устанавливается защищённое соединение.
Электронная подпись
В системах электронного документооборота (например, в России — СЭД на базе КриптоПро или ViPNet) цепочка сертификатов используется для проверки подлинности подписи. Подписант получает сертификат от удостоверяющего центра, который входит в иерархию доверенных ЦС. При проверке подписи строится цепочка до корневого сертификата, включённого в список доверенных.
Код подписи (Code Signing)
Разработчики программного обеспечения подписывают свои приложения сертификатами, которые также образуют цепочку. Операционные системы (Windows, macOS) проверяют цепочку при установке программы, чтобы убедиться, что код не был изменён и подписан доверенным издателем.
Проблемы и критика
Компрометация корневых ЦС
Если злоумышленник получает доступ к закрытому ключу корневого ЦС, он может выпустить поддельные сертификаты для любых доменов. Такие инциденты происходили: в 2011 году нидерландский ЦС DigiNotar был взломан, что привело к выпуску поддельных сертификатов для Google, Yahoo и других сервисов. После этого DigiNotar был исключён из доверенных хранилищ всех основных браузеров.
Сложность управления
В крупных организациях цепочки сертификатов могут включать десятки промежуточных ЦС, что усложняет администрирование и увеличивает время проверки. При смене корневого сертификата (например, из-за истечения срока действия) требуется обновление всех зависимых сертификатов, что может вызвать сбои в работе сервисов.
Отзыв сертификатов
Механизмы отзыва (CRL и OCSP) не всегда работают надёжно. Если промежуточный сертификат отозван, но клиент не может проверить его статус (например, из-за сетевых проблем), цепочка может быть признана невалидной. В 2012 году компания Microsoft столкнулась с массовыми сбоями из-за неправильной настройки OCSP-ответчиков.
Зависимость от доверенных хранилищ
Пользователи и организации не всегда могут контролировать, какие корневые сертификаты включены в доверенное хранилище их операционной системы. В 2019 году в России обсуждалась возможность включения в доверенное хранилище национальных корневых сертификатов для обеспечения суверенитета PKI, что вызвало дискуссии о безопасности и независимости.
Интересные факты
- Самый старый корневой сертификат, используемый в современных браузерах, был выпущен в 1995 году компанией VeriSign (ныне Symantec, затем DigiCert).
- В 2020 году Let's Encrypt стал первым ЦС, выпустившим более 1 миллиарда сертификатов, используя трёхуровневую цепочку (корневой, промежуточный, конечный).
- В России с 2018 года действует национальный корневой удостоверяющий центр (НКУЦ), который входит в доверенное хранилище операционных систем и браузеров, используемых в государственных информационных системах.
- Длина цепочки сертификатов может влиять на скорость установления соединения: каждый дополнительный промежуточный сертификат добавляет время на проверку подписей (обычно не более 1–2 миллисекунд на звено).
Источники
- Стандарт X.509 (ITU-T, 1988, 1995, 2019)
- RFC 2459 (PKIX Certificate and CRL Profile, 1999)
- RFC 5280 (Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List Profile, 2008)
- Документация Let's Encrypt (Chain of Trust, 2020)
- Отчёт о компрометации DigiNotar (Fox-IT, 2011)
- Материалы Минцифры России «Инфраструктура электронной подписи» (2018–2023)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →