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

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

Аннотация: Рассматривается профиль CRL второй версии и расширения CRL, вводится понятие области CRL, полного CRL, дельта CRL. Описывается алгоритм проверки действительности сертификационного пути. Рассмотрены проблемы безопасности, связанные с сертификатами и CRL.

Профиль CRL и расширений CRL

CRLs используются во многих приложениях и окружениях. Рассмотрим информацию, которая может содержаться в CRL, определим расположение в CRL часто используемых атрибутов и представление этих атрибутов.

Выпускающий CRL создает CRLs. В общем случае выпускающий CRL является СА. СА публикует CRLs для предоставления информации о статусе выпущенных им сертификатов. Однако СА может делегировать это право другому доверенному уполномоченному органу. Всякий раз, когда выпускающий CRL не является СА, который выпускает сертификаты, CRL считается непрямым CRL.

Каждый CRL имеет определенную область. Областью CRL является множество сертификатов, которые могут появиться в данном CRL . Например, область может быть "все сертификаты, выпущенные СА Х", "все сертификаты СА, выпущенные СА Х", "все сертификаты, выпущенные СА Х, которые отменены по причинам компрометации ключа и компрометации ключа СА" или может быть множество сертификатов, основанное на произвольной локальной информации, такой как "все сертификаты, выпущенные для сотрудников факультета ВМиК МГУ".

Полные списки CRL всех сертификатов с не истекшим сроком в своей области, которые были отменены по одной из причин отмены, охватывают область CRL. Выпускающий CRL может также создавать дельта CRL. Дельта CRL является списком только тех сертификатов в своей области, чей статус отмены был изменен после выпуска полного CRL. Полный CRL считается базовым CRL. Область дельта CRL должна быть той же, что и базового CRL, на который он ссылается.

САs могут не выпускать CRLs, если предусмотрены другие механизмы отмены или предоставления статуса сертификата. CRLs должны иметь версию 2, включать дату в поле nextUpdate следующего выпуска CRL, расширение номера CRL и расширение идентификатора ключа уполномоченного органа.

Поля CRL

Рассмотрим синтаксис CRL v2. Для вычисления подписи подписываемые данные представлены в ASN.1 DER-представлении. ASN.1 DER-представление определяет систему представления тега, длины и значения для каждого элемента.

CertificateList ::= SEQUENCE  {
  tbsCertList        TBSCertList,
  signatureAlgorithm AlgorithmIdentifier,
  signatureValue     BIT STRING  
}
TBSCertList ::= SEQUENCE  {
  version    Version OPTIONAL,
  -- если присутствует, должно быть v2
  signature  AlgorithmIdentifier,
  issuer     Name,
  thisUpdate Time,
  nextUpdate Time OPTIONAL,
  revokedCertificates SEQUENCE OF SEQUENCE {
    userCertificate CertificateSerialNumber,
    revocationDate  Time,
    crlEntryExtensions Extensions OPTIONAL
    -- если присутствует, должно быть v2
 }   OPTIONAL,
 crlExtensions [0] EXPLICIT Extensions OPTIONAL
  -- если присутствует, должно быть v2
}
Поля CertificateList

CertificateList есть последовательность трех обязательных полей.

tbsCertList

Первым полем в последовательности является tbsCertList. Данное поле само представляет собой последовательность, состоящую из имени выпускающего, даты выпуска, даты выпуска следующего списка, необязательного списка отмененных сертификатов и необязательных расширений CRL. Когда отмененных сертификатов нет, список отмененных сертификатов отсутствует. Когда один или более сертификатов отменены, каждая запись в списке отмененных сертификатов определяет последовательность из серийного номера сертификата пользователя, даты отмены и необязательных расширений записи CRL.

signatureAlgorithm

Поле signatureAlgorithm содержит идентификатор алгоритма, использованного выпускающим CRL для подписи CertificateList. Данное поле должно содержать те же самые идентификаторы алгоритмов, что и поле signature в последовательности tbsCertList.

signatureValue

Поле signatureValue содержит цифровую подпись, вычисленную над ASN.1 DER-представлением tbsCertList. ASN.1 DER-представление tbsCertList используется в виде входа в функцию подписывания. Данное значение подписи представлено в виде строки битов и содержится в поле CRL signatureValue. Детали данного процесса для разных алгоритмов различны.

САs, которые выпускают и CRL, могут использовать один закрытый ключ для подписывания сертификатов и CRL или могут иметь разные закрытые ключи для подписывания сертификатов и CRL. Когда используются разные закрытые ключи, один имеет установленный бит keyCertSign в расширении использования ключа, другой имеет установленный бит cRLSign в расширении использования ключа. Когда используются разные закрытые ключи, соответствующие им сертификаты содержат разные идентификаторы ключа. Считается, что использование разных сертификатов СА для проверки действительности подписей сертификатов и подписей CRL должно повышать уровень безопасности; однако это усложняет приложения и может ограничивать интероперабельность. Многие приложения создают сертификационный путь и затем проверяют его действительность. Проверка CRL оборачивается требованием, чтобы отдельный сертификационный путь был создан и проверен для сертификата, которым подписан CRL. Приложения, которые выполняют проверку CRL, должны поддерживать проверку действительности сертификационного пути, когда сертификаты и CRLs подписаны закрытыми ключами различных СА.

Список сертификатов "To Be Signed"

Подписанный список сертификатов или TBSCertList представляет собой последовательность обязательных и необязательных полей. Обязательные поля идентифицируют выпускающего CRL, используемый для подписывания CRL алгоритм, дату и время, когда был выпущен CRL, а также дату и время, когда будет выпущен следующий CRL.

Необязательные поля включают список отмененных сертификатов и расширения CRL. Список отмененных сертификатов является необязательным, если СА не отменил никакого не истекшего сертификата после выпуска предыдущего CRL.

Версия

Данное необязательное поле описывает версию представления CRL. Когда используются расширения, данное поле должно присутствовать и указывать версию 2.

Подпись

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

Имя выпускающего

Имя выпускающего определяет участника, который подписал и выпустил CRL. Идентификация выпускающего выполняется в поле issuerName. В расширении issuerAltName могут присутствовать альтернативные формы имени. Поле issuerName должно содержать уникальное имя (DN) X.500. Данное поле определено как Х.501 типа Name и должно следовать правилам представления для поля issuerName в сертификате.

Дата данного изменения

Данное поле указывает дату выпуска данного CRL. ThisUpdate может быть представлено как UTCTime или GeneralizedTime.

Следующее изменение

Данное поле определяет дату, когда будет выпущен следующий CRL. Следующий CRL может быть выпущен до указанной даты, но не может быть выпущен позднее указанной даты. Выпускающие CRL должны выпускать CRLs со временем nextUpdate равным или более поздним, чем все предыдущие CRLs. nextUpdate может быть представлено в виде UTCTime или GeneralizedTime.

Требуется включать nextUpdate во все CRLs, выпускаемые конкретным выпускающими. Заметим, что ASN.1 синтаксис TBSCertList описывает данное поле как OPTIONAL, которое состоит из ASN.1-структур, определенных в стандарте X.509.

Отмененные сертификаты

Когда отмененных сертификатов не существует, список отмененных сертификатов должен отсутствовать. В противном случае отмененные сертификаты перечислены указанием их серийных номеров. Сертификаты, отмененные СА, однозначно идентифицируются серийным номером. Указывается дата, когда произошла отмена. Дополнительная информация может быть добавлена в расширения записей CRL, рассматриваемые далее.

Расширения

Данное поле может появиться, если версия есть 2. Если данное поле присутствует, оно является последовательностью одного или более расширений CRL.

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

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

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

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

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