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

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

Структуры данных, используемые для каждой операции
Запрос инициализации

Сообщение запроса инициализации содержит в PKIBody структуру данных CertReqMessage, которая описывает запрашиваемые сертификаты. Обычно SubjectPubKeyInfo, KeyId и Validity являются шаблонными полями, которые заменяются для каждого затребованного сертификата. Считается, что данное сообщение используется для первой инициализации участника в PKI.

Ответ инициализации

Сообщение ответа инициализации в PKIBody структуру данных CertRepMessage, которая для каждого запрошенного сертификата имеет поле PKIStatusInfo, сертификат субъекта и, возможно, закрытый ключ (обычно зашифрованный ключом сессии, который сам зашифрован protocolEncKey ).

Далее приводится синтаксис CertRepMessage. Заметим, что если защитой сообщения PKI является "разделяемая секретная информация", то любой сертификат, передаваемый в поле caPubs, может быть непосредственно доверенным как сертификат корневого СА инициатора.

Запрос регистрации/сертификации

Сообщение запроса регистрации / сертификации содержит в PKIBody структуру данных CertReqMessages, которая специфицирует запрошенные сертификаты. Считается, что данное сообщение используется для существующих в PKI участников, которые хотят получить дополнительные сертификаты.

В качестве альтернативы PKIBody может применяться CertificationRequest. Данная структура может требоваться для пары ключей подписывания, когда необходимо взаимодействие с наследуемыми системами.

Ответ регистрации/сертификации

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

CertRepMessage ::= SEQUENCE {
  CaPubs [1] SEQUENCE SIZE (1..MAX)
    OF Certificate OPTIONAL,
  Response  SEQUENCE OF CertResponse }
CertResponse ::= SEQUENCE {
  CertReqId  INTEGER,
    -- для установления соответствия между
	-- ответом и запросом – 1 используется,
    -- если certReqId в соответствующем 
	-- запросе не указан)
  status  PKIStatusInfo,
  certifiedKeyPair CertifiedKeyPair
    OPTIONAL,
  rspInfo OCTET STRING OPTIONAL
    -- аналогично id-regInfo-asciiPairs
    -- OCTET STRING, 
    -- определенной для regInfo
    -- в CertReqMsg 
}
CertifiedKeyPair ::= SEQUENCE {
  certOrEncCert CertOrEncCert,
  privateKey [0] EncryptedValue OPTIONAL,
  publicationInfo [1] PKIPublicationInfo
    OPTIONAL
}
CertOrEncCert ::= CHOICE {
  certificate     [0] Certificate,
  encryptedCert   [1] EncryptedValue
}

Только одно из полей failInfoPKIStatusInfo ) и certificateCertifiedKeyPair ) может быть представлено в каждом CertResponse (в зависимости от статуса). Для некоторых значений статуса (например, waiting ) ни одно из дополнительных полей присутствовать не может.

Сертификат может быть получен при наличии EncryptedCert и соответствующего ключа дешифрования. Это делается для того, чтобы позволить СА возвращать значение сертификата, но с тем ограничением, что только определенный получатель может получить настоящий сертификат. Преимущество данного подхода состоит в том, что СА может возвращать сертификат даже при отсутствии доказательства, что запрашивающий является конечным участником, который может использовать соответствующий закрытый ключ (заметим, что доказательство не представлено до тех пор, пока СА не получит PKIConfirm -сообщение). Таким образом, СА не будет отменять сертификат до тех пор, пока не получит неправильное доказательство обладания.

Содержимое запроса изменения ключа

Для запросов изменения ключа используется синтаксис CertReqMessages. Обычно SubjectPublicKeyInfo, KeyId и Validity являются шаблонными полями, которые заполняются для каждого изменяемого ключа. Считается, что данное сообщение применяется для запроса изменения существующих (не отмененных и не истекших) сертификатов.

Содержимое ответа изменения ключа

Для ответов об изменении ключа используется синтаксис CertRepMessage. Ответ идентичен ответу инициализации.

Синтаксис CertRepMessage описан выше.

Содержимое запроса восстановления ключа

Для запросов восстановления ключа используется синтаксис, идентичный запросу инициализации CertReqMesages. Обычно SubjectPublicKeyInfo и KeyId являются шаблонными полями, которые могут применяться для указания открытого ключа подписи, для которого был запрошен сертификат.

Содержимое ответа восстановления ключа

Для ответов восстановления ключа используется следующий синтаксис. Для некоторых значений статуса (например, waiting ) могут присутствовать дополнительные поля.

KeyRecRepContent ::= SEQUENCE { status
  PKIStatusInfo,
  newSigCert [0] Certificate OPTIONAL,
  caCerts [1] SEQUENCE SIZE (1..MAX) OF 
      Certificate OPTIONAL,
  keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
      CertifiedKeyPair OPTIONAL
}
Евгений Виноградов
Евгений Виноградов

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

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

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

Татьяна Крыжановская
Татьяна Крыжановская
Украина, Одесса
Valeriya Gubareva
Valeriya Gubareva
Россия