Сертификат X.509
Сертификат X.509 — это стандартизированный цифровой документ, удостоверяющий принадлежность открытого ключа определённому субъекту (пользователю, компьютеру, организации или устройству). Он является основным компонентом инфраструктуры открытых ключей (PKI) и используется для аутентификации, шифрования и обеспечения целостности данных в компьютерных сетях, включая Интернет. Стандарт X.509 был разработан Международным союзом электросвязи (ITU-T) и впервые опубликован в 1988 году. Наиболее распространённая версия — X.509 версии 3.
Структура и поля сертификата
Сертификат X.509 содержит строго определённый набор полей, закодированных в формате ASN.1 (Abstract Syntax Notation One) и обычно сериализованных в двоичном формате DER (Distinguished Encoding Rules) или текстовом формате PEM (Privacy-Enhanced Mail). Основные поля включают:
- Версия — номер версии сертификата (1, 2 или 3). Версия 3 является текущей и поддерживает расширения.
- Серийный номер — уникальный целочисленный идентификатор, присваиваемый удостоверяющим центром (УЦ) каждому выпущенному сертификату. Используется для идентификации сертификата в списках отзыва (CRL).
- Алгоритм подписи — идентификатор криптографического алгоритма, используемого для подписи сертификата (например, sha256WithRSAEncryption).
- Издатель — отличительное имя (DN) удостоверяющего центра, выпустившего сертификат.
- Срок действия — дата и время начала и окончания действия сертификата (поля notBefore и notAfter).
- Субъект — отличительное имя владельца сертификата. Для серверных сертификатов это обычно доменное имя (Common Name, CN).
- Открытый ключ — сам открытый ключ субъекта, а также идентификатор алгоритма, с которым он используется (например, RSA, ECDSA).
- Расширения (только для версии 3) — набор дополнительных полей, определяющих область применения сертификата, политики, ограничения и ключевые идентификаторы. Ключевые расширения включают:
- Basic Constraints — указывает, может ли сертификат использоваться как сертификат УЦ.
- Key Usage — определяет допустимые операции с ключом (цифровая подпись, шифрование ключа, шифрование данных и т.д.).
- Extended Key Usage — уточняет цель использования сертификата (например, аутентификация сервера, аутентификация клиента, подпись кода).
- Subject Alternative Name (SAN) — позволяет указать дополнительные доменные имена, IP-адреса или email-адреса, для которых действителен сертификат. В современных браузерах обязательное поле.
- Подпись — криптографическая подпись, созданная закрытым ключом УЦ, подтверждающая целостность и подлинность всех остальных полей сертификата.
Процесс выпуска и проверки
Выпуск сертификата X.509 происходит в рамках инфраструктуры открытых ключей. Основные этапы:
- Генерация ключевой пары — субъект создаёт пару «закрытый ключ — открытый ключ» с помощью криптографического алгоритма (RSA, ECDSA, Ed25519).
- Формирование запроса на сертификат (CSR) — субъект создаёт запрос в формате PKCS#10, содержащий открытый ключ, информацию о субъекте и подписанный закрытым ключом.
- Проверка личности — удостоверяющий центр (УЦ) проверяет подлинность информации, предоставленной субъектом. Степень проверки зависит от типа сертификата (DV, OV, EV).
- Выпуск сертификата — УЦ создаёт сертификат, подписывает его своим закрытым ключом и передаёт субъекту.
- Установка сертификата — субъект устанавливает сертификат на целевое устройство или сервер.
Проверка сертификата при установлении соединения (например, по протоколу TLS) включает следующие шаги:
- Проверка срока действия (текущая дата должна быть в пределах notBefore — notAfter).
- Проверка цепочки доверия: сертификат должен быть подписан сертификатом УЦ, который, в свою очередь, подписан корневым сертификатом, встроенным в доверенное хранилище операционной системы или браузера.
- Проверка статуса отзыва: сертификат не должен присутствовать в списках отзыва (CRL) или быть помечен как отозванный по протоколу OCSP (Online Certificate Status Protocol).
- Проверка имени: доменное имя сервера должно совпадать с одним из имён в поле SAN или CN сертификата (для современных браузеров — только SAN).
- Проверка целостности подписи с использованием открытого ключа УЦ.
Виды сертификатов X.509
Сертификаты X.509 классифицируются по нескольким признакам:
По типу проверки (для веб-серверов)
- Domain Validation (DV) — проверяется только право управления доменом (через email, DNS-запись или HTTP-файл). Выпускаются автоматически, минимальная проверка личности.
- Organization Validation (OV) — дополнительно проверяется юридическое существование организации, её адрес и телефон. Содержат сведения об организации в поле Subject.
- Extended Validation (EV) — наиболее строгая проверка, включающая юридический, физический и операционный аудит организации. Отображаются в адресной строке браузера зелёным цветом с названием организации (до 2023 года). С 2023 года многие браузеры отказались от специального отображения EV-сертификатов.
По роли в иерархии
- Корневые сертификаты — самоподписанные сертификаты, на которых заканчивается цепочка доверия. Хранятся в доверенном хранилище операционной системы.
- Промежуточные сертификаты — сертификаты УЦ, подписанные корневым сертификатом. Используются для выпуска конечных сертификатов, что позволяет изолировать корневой ключ.
- Конечные (листовые) сертификаты — сертификаты, выдаваемые конечным субъектам (веб-серверам, клиентам, устройствам). Не могут подписывать другие сертификаты.
По назначению
- Серверные сертификаты — для аутентификации веб-серверов (HTTPS), почтовых серверов, VPN-серверов.
- Клиентские сертификаты — для аутентификации пользователей (например, при доступе к корпоративным ресурсам или электронной подписи документов).
- Сертификаты подписи кода — для цифровой подписи программного обеспечения, драйверов и скриптов.
- Сертификаты электронной почты (S/MIME) — для шифрования и подписи email-сообщений.
- Сертификаты устройств — для аутентификации IoT-устройств, маршрутизаторов, принтеров.
История и развитие
Стандарт X.509 был принят ITU-T в 1988 году как часть рекомендаций X.500 по каталоговым службам. Первая версия (X.509v1) поддерживала только базовые поля. Версия 2 (1993 год) добавила поля для идентификаторов уникальных имён. Версия 3 (1996 год) ввела расширения, что значительно расширило функциональность.
В 2000 году стандарт был принят IETF в качестве RFC 2459 (позже обновлён до RFC 5280), что сделало его основой для протокола TLS/SSL. С развитием криптографии и ростом угроз в стандарт вносились изменения: увеличение минимальной длины ключей RSA (с 1024 до 2048 бит), внедрение алгоритмов на основе эллиптических кривых (ECDSA), поддержка хэш-функций SHA-2 и отказ от SHA-1.
Критика и ограничения
Несмотря на широкое распространение, система сертификатов X.509 имеет ряд недостатков:
- Централизация доверия — безопасность всей системы зависит от ограниченного числа корневых УЦ. Компрометация любого из них ставит под угрозу все сертификаты, подписанные им или его дочерними УЦ.
- Сложность управления — выпуск, обновление и отзыв сертификатов требуют административных усилий. Истечение срока действия сертификата может привести к отказу в обслуживании.
- Уязвимость к атакам на цепочку поставок — злоумышленник, получивший контроль над УЦ, может выпустить поддельные сертификаты для любых доменов.
- Стоимость — сертификаты с высокой степенью проверки (OV, EV) имеют значительную стоимость, что может быть барьером для небольших организаций.
- Проблемы с отзывом — механизмы CRL и OCSP имеют задержки и могут быть неэффективны при массовых компрометациях.
В ответ на эти ограничения разрабатываются альтернативные подходы, такие как Certificate Transparency (CT), который обеспечивает публичный аудит всех выпущенных сертификатов, и протокол ACME (Automated Certificate Management Environment), автоматизирующий выпуск сертификатов (используется проектом Let's Encrypt).
Применение в России
В Российской Федерации использование сертификатов X.509 регулируется законодательством в области электронной подписи (Федеральный закон № 63-ФЗ «Об электронной подписи»). Национальные стандарты (ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012) определяют криптографические алгоритмы для создания и проверки подписей. Для государственных информационных систем и взаимодействия с государственными органами применяются сертификаты, выпущенные аккредитованными удостоверяющими центрами, работающими по российским стандартам. В 2022 году в рамках импортозамещения начат переход на использование сертификатов, основанных на российских криптографических алгоритмах, для всех государственных и муниципальных систем.
Источники
- ITU-T Recommendation X.509 (10/2019) — Information technology — Open Systems Interconnection — The Directory: Public-key and attribute certificate frameworks.
- RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile.
- RFC 3647 — Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework.
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи».
- Национальный стандарт РФ ГОСТ Р 34.10-2012 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →