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

Р 50.1.110-2016 Информационная технология. Криптографическая защита информации. Контейнер хранения ключей

     4 Базовые типы [1]

Базовые типы подробно описаны в 6.1 [1]. Этих базовых типов достаточно для спецификации информации о ключах, включая назначение ключей, сроки действия, данные о владельце, издателе и т.п.

В [1] отсутствует определение "имя контейнера", и для наименования объектов применена метка (6.1.3 [1]).

Label ::= UTF8String (SIZE(0..pkcs15-ub-label))

Объекты закрытых, открытых ключей и сертификатов содержат идентификатор iD (см. структуры CommonKeyAttributes, CommonCertificateAttributes [1]). Идентификатор имеет следующий тип:

Identifier ::= OCTET STRING (SIZE(0..pkcs15-ub-identifier).

Идентификатор является уникальным для объекта одного типа в рамках одного контейнера [1]. Совпадение идентификаторов объектов разного типа означает их взаимосвязь. Например, соответствие закрытого ключа открытому ключу или соответствие ключа сертификату.

Для идентификации ключей также могут использоваться поля subjectName, содержащие имя субъекта ключа (см. структуры CommonPrivateKeyAttributes, CommonPublicKeyAttributes [1]).

В [1] объекты могут храниться как в виде значений, так и в виде ссылок на другие объекты. Для этого применен тип данных PathOrObjects (6.1.7 [1]).

PathOrObjects {ObjectType} ::= CHOICE {

path Path,

objects [0] SEQUENCE OF ObjectType,

...,

indirect-protected [1] ReferencedValue {EnvelopedData {SEQUENCE OF

ObjectType} },

direct-protected [2] EnvelopedData {SEQUENCE OF ObjectType},

}

Настоящие рекомендации определяют, что для хранения неконфиденциальных объектов (открытые ключи, сертификаты) должен использоваться вариант objects[0], а для хранения конфиденциальных объектов (закрытые и симметричные ключи) - вариант direct-protected[2].

Для идентификации параметров объектов и области их применения используется тип KeyInfo (6.1.13 [1]).

KeyInfo {ParameterType, OperationsType} ::= CHOICE {

reference Reference,

paramsAndOps SEQUENCE {

parameters ParameterType,

supportedOperations OperationsType OPTIONAL

}

}

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

PKCS15Object {ClassAttributes, SubClassAttributes, TypeAttributes} ::= SEQUENCE {

commonObjectAttributes CommonObjectAttributes,

classAttributes ClassAttributes,

subClassAttributes [0] SubClassAttributes OPTIONAL,

typeAttributes [1] TypeAttributes

}