Статус документа
Статус документа

Р 1323565.1.025-2019 Информационная технология (ИТ). Криптографическая защита информации. Форматы сообщений, защищенных криптографическими методами

     7.3 Тип Signerlnfo


Информация для каждого подписавшего представлена в виде структуры Signerlnfo:

Signerlnfo ::= SEQUENCE

{

version CMSVersion,

sid Signerldentifier,

digestAlgorithm DigestAlgorithmldentifier,

signedAttrs[0] IMPLICIT SignedAttributes OPTIONAL,

signatureAlgorithm SignatureAlgorithmldentifier,

signature SignatureValue,

unsignedAttrs[1] IMPLICIT UnsignedAttributes OPTIONAL

}

Signerldentifier ::= CHOICE

{

issuerAndSerialNumber IssuerAndSerialNumber,

subjectKeyldentifier [0] SubjectKeyldentifier

}

SubjectKeyldentifier ::= OCTET STRING

DigestAlgorithmldentifier := Algorithmldentifier

SignatureAlgorithmldentifier := Algorithmldentifier

SignedAttributes ::= SET SIZE (1..MAX) OF Attribute

UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute

SignatureValue ::= OCTET STRING

Типы CMSVersion, Algorithmldentifier, CertificateSet, RevocationlnfoChoices, IssuerAndSerialNumber, Attribute определены в разделе 14.

Поля структуры Signerlnfo имеют следующий смысл:

- version - версия синтаксиса; значение данного параметра зависит от варианта указания ключа проверки ЭП отправителя (более подробно см. поле sid, определенное ниже). Версия синтаксиса должна быть определена согласно [1], 5.3;

- sid - поле, определяющее сертификат отправителя (и соответственно его ключ проверки ЭП). Ключ проверки ЭП отправителя необходим получателю для проверки подписи. Signerldentifier предоставляет два варианта указания ключа проверки ЭП отправителя. Первый вариант issuerAndSerialNumber идентифицирует отправителя по выделенному имени издателя (см. ГОСТ Р ИСО/МЭК 9594-2) и порядковому номеру. Второй вариант subjectKeyldentifier идентифицирует ключ проверки ЭП отправителя. При ссылке на Х.509 сертификат идентификатор ключа должен совпадать с расширением subjectKeyldentifier сертификата. При использовании других ссылок на сертификат документы, которые определяют формат сертификата и его использование с CMS, должны включать сведения о соответствии идентификатора ключа и поля сертификата. Реализации должны поддерживать оба варианта: subjectKeyldentifier и issuerAndSerialNumber. При создании sid реализации могут поддерживать одну из форм (либо subjectKeyldentifier, либо issuerAndSerialNumber) и всегда использовать ее, или реализации могут смешивать две формы. Тем не менее subjectKeyldentifier должен быть использован для идентификации ключа проверки ЭП, который не соответствует формату сертификатов Х.509;

- digestAlgorithm - определение алгоритма вычисления хэш-функции. Значение хэш-функции вычисляется либо от содержимого, либо от содержимого вместе с подписанными атрибутами; этот процесс описан в 7.4. Идентификатор алгоритма хэширования должен присутствовать в числе тех, которые перечислены в поле digestAlgorithms структуры SignedData;

- signedAttrs - набор подписанных атрибутов для подписи. Поле не является обязательным, но оно должно присутствовать, если тип содержимого структуры EncapsulatedContentlnfo представляет собой не "простые данные".