RFC 5280
RFC 5280 — это документ, опубликованный в 2008 году, который определяет профиль сертификатов открытых ключей и списков отзыва сертификатов (CRL) для инфраструктуры открытых ключей (PKI) на основе стандарта X.509. Разработанный Рабочей группой по безопасности Интернета (PKIX) в составе Инженерного совета Интернета (IETF), RFC 5280 является основополагающим стандартом для реализации PKI в Интернете, включая протоколы TLS/SSL, S/MIME и IPsec.
История
Предшественником RFC 5280 был RFC 3280, опубликованный в 2002 году, который, в свою очередь, заменил RFC 2459 (1999 год). Основной причиной обновления стандарта стала необходимость уточнения правил обработки расширений сертификатов, в частности, для поддержки современных криптографических алгоритмов и улучшения обратной совместимости. В RFC 5280 были внесены исправления, касающиеся использования ключей, расширений для политик сертификации и механизмов отзыва. Стандарт остаётся актуальным по состоянию на 2024 год, хотя его частично дополняют более новые RFC (например, RFC 6818, уточняющий обработку некоторых расширений).
Структура сертификата X.509 версии 3
RFC 5280 описывает формат сертификата, соответствующий стандарту X.509 версии 3. Каждый сертификат содержит следующие основные поля:
- Версия: Целое число, указывающее версию сертификата (обычно 3).
- Серийный номер: Уникальное целое число, присвоенное удостоверяющим центром (УЦ).
- Алгоритм подписи: Идентификатор алгоритма (например, sha256WithRSAEncryption), используемого для подписи сертификата.
- Издатель: Различающееся имя (DN) УЦ, выпустившего сертификат.
- Срок действия: Дата начала и окончания действия сертификата.
- Субъект: Различающееся имя владельца сертификата (например, доменное имя или имя организации).
- Открытый ключ: Криптографический ключ (например, RSA или ECDSA) и алгоритм, с которым он используется.
- Расширения: Набор необязательных полей, добавляющих дополнительные атрибуты (см. ниже).
- Подпись: Криптографическая подпись, созданная УЦ.
Расширения сертификата
Расширения являются ключевым нововведением версии 3. RFC 5280 определяет несколько обязательных и опциональных расширений:
- Key Usage (Использование ключа): Определяет разрешённые операции с открытым ключом (например, цифровая подпись, шифрование ключа, шифрование данных).
- Extended Key Usage (Расширенное использование ключа): Уточняет цель сертификата (например, аутентификация сервера TLS, аутентификация клиента, подпись кода).
- Subject Alternative Name (Альтернативное имя субъекта): Позволяет указать дополнительные идентификаторы, такие как доменные имена (DNS), IP-адреса или адреса электронной почты. Это расширение является обязательным для сертификатов TLS/SSL.
- Basic Constraints (Базовые ограничения): Указывает, является ли субъект удостоверяющим центром, и задаёт максимальную глубину цепочки сертификации.
- Certificate Policies (Политики сертификата): Ссылается на документы, описывающие правила выпуска и использования сертификата.
- CRL Distribution Points (Точки распространения CRL): Указывает URL-адреса, по которым можно получить список отзыва сертификатов.
- Authority Information Access (Доступ к информации об УЦ): Содержит ссылки на сертификат издателя и, опционально, на протокол OCSP (Online Certificate Status Protocol).
Списки отзыва сертификатов (CRL)
RFC 5280 также определяет формат CRL — списка сертификатов, которые были отозваны до истечения срока их действия. CRL подписывается УЦ и содержит:
- Версия: Обычно 2.
- Издатель: DN УЦ, выпустившего CRL.
- Дата выпуска: Время создания CRL.
- Дата следующего обновления: Планируемое время выпуска следующего CRL.
- Список отозванных сертификатов: Перечень серийных номеров отозванных сертификатов с указанием даты отзыва и, опционально, причины отзыва (например, компрометация ключа, смена принадлежности).
- Расширения CRL: Аналогично сертификатам, CRL могут содержать расширения, такие как точки распространения CRL (для сегментирования списков) и указатели на архивы.
Механизмы отзыва
Помимо CRL, RFC 5280 поддерживает использование протокола OCSP (определённого в RFC 2560), который позволяет проверять статус сертификата в реальном времени без загрузки полного списка. Стандарт не предписывает обязательное использование CRL или OCSP, оставляя выбор за реализацией PKI.
Процесс проверки цепочки сертификации
RFC 5280 детально описывает алгоритм построения и проверки цепочки сертификатов от конечного сертификата до доверенного корневого УЦ. Основные этапы:
- Построение цепочки: Сбор сертификатов от конечного до корневого, используя поле «Издатель» и «Субъект».
- Проверка подписей: Для каждого сертификата в цепочке проверяется подпись с использованием открытого ключа предыдущего сертификата.
- Проверка срока действия: Убедиться, что каждый сертификат находится в пределах своего срока действия.
- Проверка расширений: Убедиться, что расширения (например, Key Usage, Basic Constraints) соответствуют роли сертификата в цепочке.
- Проверка отзыва: Проверить, не был ли отозван какой-либо сертификат в цепочке (через CRL или OCSP).
- Проверка имени: Для конечного сертификата убедиться, что его имя (например, доменное имя) соответствует проверяемому ресурсу.
Применение
RFC 5280 является основой для большинства современных PKI-реализаций:
- TLS/SSL: Сертификаты веб-сайтов, используемые в протоколе HTTPS, строго следуют профилю RFC 5280. Расширение Subject Alternative Name обязательно для указания доменных имён.
- S/MIME: Сертификаты для подписи и шифрования электронной почты.
- IPsec: Сертификаты для аутентификации устройств в VPN-соединениях.
- Корпоративные PKI: Внутренние системы управления сертификатами в организациях, использующие Active Directory Certificate Services или аналогичные решения.
- Электронная подпись: В России и других странах сертификаты квалифицированной электронной подписи (КЭП) также базируются на X.509 и RFC 5280, но с дополнительными национальными требованиями (например, ГОСТ Р 34.10-2012).
Критика и ограничения
Несмотря на широкое распространение, RFC 5280 имеет ряд критических замечаний:
- Сложность проверки CRL: Загрузка больших CRL-списков может быть медленной и ресурсоёмкой, особенно для мобильных устройств.
- Проблемы с именами: Различающиеся имена (DN) часто содержат неоднозначности, что усложняет автоматическую проверку.
- Отсутствие гибкости в расширениях: Некоторые расширения (например, Certificate Policies) редко используются на практике из-за сложности их реализации.
- Зависимость от доверенных УЦ: Модель PKI, основанная на RFC 5280, критикуется за централизацию и уязвимость к компрометации корневых УЦ (например, инциденты с DigiNotar и Comodo).
Влияние на стандарты
RFC 5280 оказал значительное влияние на смежные протоколы и стандарты:
- RFC 6818: Уточняет обработку некоторых расширений, таких как Subject Alternative Name и Issuer Alternative Name.
- RFC 6125: Определяет правила проверки имён сертификатов для TLS.
- CA/Browser Forum Baseline Requirements: Набор требований для публичных УЦ, выпускающих сертификаты TLS/SSL, которые дополняют RFC 5280.
- Национальные стандарты: В России требования к сертификатам электронной подписи регулируются Федеральным законом № 63-ФЗ и ГОСТ Р 34.10-2012, которые частично пересекаются с RFC 5280, но имеют существенные отличия в криптографических алгоритмах.
Источники
- RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile (2008).
- RFC 3280 — Internet X.509 Public Key Infrastructure Certificate and CRL Profile (2002).
- RFC 6818 — Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile (2013).
- RFC 2560 — X.509 Internet Public Key Infrastructure Online Certificate Status Protocol (OCSP) (1999).
- CA/Browser Forum — Baseline Requirements for the Issuance and Management of Publicly-Trusted Certificates (2023).
- Федеральный закон от 06.04.2011 № 63-ФЗ «Об электронной подписи» (с изменениями на 2024 год).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →