Опубликован: 26.01.2005 | Уровень: специалист | Доступ: платный | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 4:

Инфраструктура Открытого Ключа (часть 4)

TBSCertificate

Последовательность TBSCertificate содержит информацию, связанную с субъектом сертификата и СА, который выпустил сертификат. Каждый TBSCertificate содержит имена субъекта и выпускающего, открытый ключ, связанный с субъектом, период действительности, номер версии и серийный номер сертификата; некоторые поля могут (но это не обязательно) содержать уникальный идентификатор. Рассмотрим синтаксис и семантику таких полей. TBSCertificate обычно включает расширения. Рассмотрим также наиболее часто используемые в Internet расширения.

Version

Данное поле описывает версию представления сертификата. Если используются расширения, то версия должна быть 3 (значение – 2). Если расширения не указаны, но UniqueIdentifier представлен, версия может быть 2 (значение – 1); но версия может быть и 3. Если представлены только базовые поля, версия может быть 1 (значение в сертификате опущено как значение по умолчанию); но версия может быть 2 или 3.

Реализации должны быть готовы принимать любую версию сертификата. Как минимум конформные реализации должны распознавать версию 3 сертификатов.

Serial number

Серийный номер должен быть положительным целым, назначаемым СА для каждого сертификата. Он должен быть уникальным для каждого сертификата, выпущенного данным СА. Таким образом, имя выпустившего и серийный номер однозначно определяют сертификат. САs должны обеспечивать, чтобы серийные номера были неотрицательными целыми. Считается, что серийные номера могут иметь длину до 20 октетов.

Signature

Данное поле содержит идентификатор алгоритма, используемого СА для подписывания сертификата.

Данное поле должно содержать тот же самый идентификатор алгоритма, что и поле signatureAlgorithm в Certificate. Содержание необязательного поля параметров зависит от конкретного алгоритма.

Issuer

Поле issuer идентифицирует того, кто подписал и выпустил сертификат. Поле issuer должно содержать непустое уникальное имя (DN). Имя определяется в соответствии со следующей ASN.1 структурой:

Name ::= CHOICE { RDNSequence }
RDNSequence ::= SEQUENCE OF 
    RelativeDistinguishedName
RelativeDistinguishedName ::=
    SET OF AttributeTypeAndValue
AttributeTypeAndValue ::= SEQUENCE {
    type   AttributeType,
    value  AttributeValue 
}
AttributeType ::= OBJECT IDENTIFIER
AttributeValue ::= ANY DEFINED BY 
    AttributeType

Имя описывает иерархическое имя, состоящее из атрибутов, таких, например, как название страны, и соответствующих значений, таких как RU. Тип компонента AttributeValue определяется значением AttributeType.

Стандарт Х.509 не ограничивает набор типов атрибутов, которые могут появиться в имени. Тем не менее, стандартом рекомендуется поддерживать следующие типы атрибутов в именах выпускающего и субъекта:

  • Страна
  • Организация
  • Организационная единица
  • Обозначение уникального имени
  • Название штата или региона
  • Общепринятое имя (например, Иванов Иван)
  • Серийный номер

Дополнительно могут присутствовать некоторые другие типы атрибутов в именах выпускающего и субъекта, например:

  • Локализация
  • Заголовок
  • Отчество
  • Назначенное имя
  • Инициалы
  • Псевдоним
  • Специальное название (например, "Jr.", "3-ий" или "IV" ).

Также может присутствовать атрибут domainComponent. DNS предоставляет собой иерархическую систему обозначения ресурсов. Данный атрибут предоставляет удобный механизм для организаций, которые хотят использовать уникальные DN имена параллельно со своими DNS-именами. Это не заменяет dNSName компонент альтернативного поля имени. Стандарт не требует конвертировать такие имена в DNS-имена.

Проверяющая сторона должна обрабатывать поля уникального имени выпускающего и уникального имени субъекта для получения цепочки имен при проверке действительности сертификационного пути. Цепочка имен получается в случае соответствия уникального имени выпускающего в первом сертификате имени субъекта в сертификате СА.

Действительность сертификата

Период действительности сертификата является интервалом времени, в течение которого СА гарантирует, что он поддерживает информацию о статусе сертификата. Поле представлено как SEQUENCE двух дат: дата, с которой начинается период действительности сертификата ( notBefore ), и дата, которой заканчивается период действительности сертификата ( notAfter ). Обе даты могут иметь представление как UTCTime, так и GeneralizedTime.

САs должны всегда указывать даты действительности сертификата до 2049 года как UTCTime ; даты действительности сертификатов, начиная с 2050 года и далее, должны быть представлены как GeneralizedTime. Основная разница между представлениями времени в UTCTime и в GeneralizedTime заключается в том, что в UTCTime для значения года отводится две цифры, а в GeneralizedTime – четыре. В случае UTCTime, если год больше или равен 50, то он должен интерпретироваться как 19YY, а если год меньше 50, то он должен интерпретироваться как 20YY.

Период действительности сертификата является периодом времени от notBefore до notAfter включительно.

Subject

Поле subject идентифицирует участника, который является собственником сертификата и соответствующего закрытого ключа. Имя участника может быть указано в поле subject и/или в расширении subjectAltName . Если субъект является СА (т.е. основное обязательное расширение сА есть TRUE ), то поле subject должно содержать непустое уникальное имя, соответствующее содержимому поля issuer во всех сертификатах, выпущенных данным СА. Если субъект является выпускающим CRL (т.е. присутствует расширение использования ключа keyUsage , и значение cRLSign есть TRUE ), то поле субъекта должно содержать непустое уникальное имя, соответствующее содержимому поля issue во всех CRLs, выпущенных данным субъектом. Если информация именования субъекта представлена только расширением subjectAltName (т.е. ключ связан только с e-mail адресом или URI ), то имя субъекта должно быть пустой последовательностью, и расширение subjectAltName должно быть обязательным.

Поле subject, если оно не пусто, должно содержать уникальное имя в форме DN. СА может выпустить более одного сертификата с одним и тем же DN для одного и того же участника, определенного в subject.

Поле subject определено как тип Name в терминологии стандарта Х.501.

Следует учитывать, что существуют наследуемые реализации сертификационных центров, в которых имя из RFC 822 встроено в уникальное имя субъекта как атрибут EmailAddress. Значение атрибута для EmailAddress является типом IA5String, благодаря чему допускается включение символа "@", который не входит в набор символов PrintableString. Значения атрибута EmailAddress нечувствительны к регистру ( aaa@msu.ru – то же самое, что и AAA@MSU.RU ).

Новые реализации сертификационных центров при создании сертификатов с адресами электронной почты для указания данного атрибута должны использовать rfc822Name в альтернативном поле имени субъекта. Одновременное включение атрибута EmailAddress в уникальное имя субъекта для поддержки наследуемых реализаций не приветствуется, но допускается.

Информация открытого ключа субъекта

Данное поле используется для указания использования открытого ключа, в частности для идентификации алгоритма данного ключа (например, RSA, DSA или Diffie-Hellman). Алгоритм идентифицируется использованием AlgorithmIdentifier структуры. Идентификаторы объекта для поддерживаемых алгоритмов и методы представления материала открытого ключа (т.е. открытый ключ и параметры) определяются IANA.

Уникальные идентификаторы

Данные поля должны присутствовать только в том случае, если версия сертификата есть 2 или 3. Эти поля не должны присутствовать, если версия равна 1. Уникальные идентификаторы субъекта и выпускающего представлены в сертификате для получения возможности повторного использования имен субъекта и/или выпускающего в более позднее время. САs не должны создавать сертификаты с одинаковыми идентификаторами.

Расширения

Данное поле должно появляться только в том случае, если версия равна 3. Если оно присутствует, данное поле есть последовательность одного или более расширений сертификатов.

Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Ярослав Ханько
Ярослав Ханько
Украина
Jacob Liberman
Jacob Liberman
Нидерланды, Amsterdam