Открыть сервис

Сертификат 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 происходит в рамках инфраструктуры открытых ключей. Основные этапы:

  1. Генерация ключевой пары — субъект создаёт пару «закрытый ключ — открытый ключ» с помощью криптографического алгоритма (RSA, ECDSA, Ed25519).
  2. Формирование запроса на сертификат (CSR) — субъект создаёт запрос в формате PKCS#10, содержащий открытый ключ, информацию о субъекте и подписанный закрытым ключом.
  3. Проверка личностиудостоверяющий центр (УЦ) проверяет подлинность информации, предоставленной субъектом. Степень проверки зависит от типа сертификата (DV, OV, EV).
  4. Выпуск сертификата — УЦ создаёт сертификат, подписывает его своим закрытым ключом и передаёт субъекту.
  5. Установка сертификата — субъект устанавливает сертификат на целевое устройство или сервер.

Проверка сертификата при установлении соединения (например, по протоколу 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 →