Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 1494 lines (1140 sloc) 95.9 KB

ГОСУДАРСТВЕННЫЙ СТАНДАРТ

Информационные технологии и безопасность

ПРАВИЛА РЕГИСТРАЦИИ ОБЪЕКТОВ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Information technology and security

Procedures for registering information technology objects


1 Область применения

Настоящий стандарт устанавливает правила регистрации объектов информационных технологий. Регистрация состоит в назначении объектам уникальных идентификаторов. Идентификаторы определяются в соответствии с соглашениями абстрактно-синтаксической нотации версии 1 (далее – АСН.1), установленными в ГОСТ 34.973. В стандарте определена структура дерева идентификаторов, определены методы назначения идентификаторов.

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

2 Нормативные ссылки

В настоящем стандарте использованы ссылки на следующие технические нормативные правовые акты в области технического нормирования и стандартизации (далее – ТНПА):

СТБ 34.101.19-2012 Информационные технологии и безопасность. Форматы сертификатов и списков отозванных сертификатов инфраструктуры открытых ключей

СТБ 34.101.31-2011 Информационные технологии. Защита информации. Криптографические алгоритмы шифрования и контроля целостности

СТБ 34.101.45-2013 Информационные технологии и безопасность. Алгоритмы электронной цифровой подписи и транспорта ключа на основе эллиптических кривых

СТБ 34.101.47-2017 Информационные технологии и безопасность. Криптографические алгоритмы генерации псевдослучайных чисел

СТБ 34.101.77-2016 Информационные технологии и безопасность. Алгоритмы хэширования

СТБ 1176.1-99 Информационная технология. Защита информации. Функция хэширования

СТБ 1176.2-99 Информационная технология. Защита информации. Процедуры выработки и проверки электронной цифровой подписи

ГОСТ 34.973-91 (ИСО 8824-87) Информационная технология. Взаимосвязь открытых систем. Спецификация абстрактно-синтаксической нотации версии 1 (АСН.1)

ГОСТ 34.974-91 (ИСО 8825-87) Информационная технология. Взаимосвязь открытых систем. Описание базовых правил кодирования для абстрактно-синтаксической нотации версии 1 (АСН.1)

ГОСТ 28147-89 Система обработки информации. Защита криптографическая. Алгоритм криптографического преобразования

Примечание - При пользовании настоящим стандартом целесообразно проверить действие ТНПА по каталогу, составленному по состоянию на 1 января текущего года, и по соответствующим информационным указателям, опубликованным в текущем году. Если ссылочные ТНПА заменены (изменены), то при пользовании настоящим стандартом следует руководствоваться действующими взамен ТНПА. Если ссылочные ТНПА отменены без замены, то положение, в котором дана ссылка на них, применяется в части, не затрагивающей эту ссылку.

3 Термины и определения

В настоящем стандарте применяют термины, установленные в ГОСТ 34.973, а также следующие термины с соответствующими определениями:

3.1 регистр идентификаторов: Набор записей, которые описывают объекты информационных технологий и соответствующие идентификаторы.

Примечание - Регистр может быть на бумажном или электронном носителе. Регистром управляет регистрирующая организация.

3.2 регистрация: Назначение объектам информационных технологий уникальных идентификаторов.

3.3 регистрирующая организация; PO: Организация, которая регистрирует объекты информационных технологий.

4 Общие положения

4.1 Назначение

В настоящем стандарте устанавливаются правила регистрации объектов информационных технологий. Регистрация состоит в назначении объектам уникальных идентификаторов. Единые идентификаторы объектов обеспечивают унификацию и совместимость различных информационных систем.

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

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

4.2 Идентификаторы объектов

Идентификаторы объектов определяются в соответствии с ГОСТ 34.973. Идентификатор представляет собой последовательность неотрицательных целых чисел. Сначала указывается число первого уровня, затем второго и т. д. Числа разделяются пробелами. Вся последовательность заключается в фигурные скобки. Например, {1 2} - идентификатор объекта, составленный из компонентов 1 и 2.

Числовым компонентам могут назначаться имена (идентификаторы АСН.1). При задании компонентов могут использоваться либо только числа, либо числа и имена, либо только имена:

{1 2},
{iso(1) member-body(2)},
{iso member-body}.

Идентификаторы образуют иерархическую структуру: идентификатор {a1 a2 … an+1} считается дочерним для {a1 a2 … an}, идентификатор {a1 a2 … an} считается родительским для {a1 a2 … an+1}. Идентификаторы с начальными компонентами a1 a2 … an считаются порожденными от {a1 a2 … an}.

Совокупность идентификаторов, порожденных от одного начального (корневого) идентификатора, задает дерево идентификаторов. Вершинами этого дерева являются сами идентификаторы, ребра соединяют родительские вершины с дочерними.

5 Дерево идентификаторов

Корневая вершина дерева идентификаторов определяется следующим образом:

{iso(1) member-body(2) 112}.

Корневой вершине назначается имя by:

by OBJECT IDENTIFIER ::= {iso(1) member-body(2) 112}.

Корневая вершина имеет две дочерние:

{by standard(0)};
{by registration-authority(1)}.

Вершина {by standard} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в технических нормативных правовых актах.

Вершина {by registration-authority} определяет ветвь дерева, которая содержит идентификаторы РО, а также зарегистрированные ими объекты.

Вершина {by standard} имеет четыре дочерние вершины, соответствующие типам ТНПА:

{by standard tr(0)};
{by standard tkp(1)};
{by standard std(2)};
{by standard tu(3)}.

Вершина {by standard tr} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в технических регламентах.

Вершина {by standard tkp} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в технических кодексах установившейся практики.

Вершина {by standard std} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в стандартах, в том числе государственных стандартах и стандартах организаций.

Вершина {by standard tu} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в технических условиях.

Вершина {by standard std} имеет четыре дочерние вершины, соответствующие типам стандартов:

{by standard std stb(0)};
{by standard std gost(1)};
{by standard std ist(2)};
{by standard std sto(3)}.

Вершина {by standard std stb} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в государственных стандартах.

Вершина {by standard std gost} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в межгосударственных (региональных) стандартах.

Вершина {by standard std ist} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в международных стандартах.

Вершина {by standard std sto} определяет ветвь дерева, которая содержит идентификаторы объектов, определяемых в стандартах организаций.

Дерево идентификаторов может расширяться по правилам, описанным в разделе 6.

6 Регистрация

6.1 Методы регистрации

Регистрация объекта информационных технологий может выполняться тремя методами:

  • назначением идентификатора в настоящем стандарте;
  • назначением идентификатора в ином ТНПА;
  • назначением идентификатора определенной РО.

6.2 Назначение идентификаторов в настоящем стандарте

Данный метод реализован включением в настоящий стандарт приложений А–Е. В этих приложениях определены идентификаторы уполномоченных РО, идентификаторы объектов ряда действующих криптографических стандартов, а также идентификаторы объектов Государственной системы управления открытыми ключами проверки электронной цифровой подписи Республики Беларусь (ГосСУОК).

6.3 Назначение идентификаторов в ТНПА

Идентификаторы, назначаемые в ТНПА, должны состоять из двух частей: идентификатора ТНПА и идентификатора конкретного объекта в пределах действия ТНПА.

Идентификатор ТНПА должен определять тип и номер ТНПА. Идентификатор типа должен определяться в соответствии с разделом 5. Идентификатор номера определяется по регистрационному номеру ТНПА. В регистрационном номере выделяются целочисленные части, разделенные символами «.», «,», «/» и т. д. Последовательность данных целочисленных частей, за исключением даты введения или изменения ТНПА, образует идентификатор номера. При определении идентификатора номера дата введения или изменения ТНПА учитываться не должна.

Например, СТБ 1176.1 должен быть назначен идентификатор {by standard std stb 1176 1}, международному стандарту ISO/IEC 15946 2 - идентификатор {by standard std ist 15946 2}.

Идентификаторы объектов в пределах действия ТНПА могут назначаться произвольным образом на усмотрение разработчика ТНПА.

Идентификаторы объектов ТНПА, определяющего криптографические алгоритмы и протоколы, рекомендуется вводить по следующей схеме (tnpa - идентификатор целевого ТНПА):

  • в ветви {tnpa module(1)} регистрировать модули АСН.1 различных версий;
  • в ветви {tnpa keys(2)} регистрировать ключи криптографических алгоритмов и протоколов;
  • в ветви {tnpa params(3)} регистрировать стандартные параметры криптографических алгоритмов и протоколов;
  • алгоритмам и протоколам назначать идентификаторы {tnpa n}, где n ≥ 11.

При принятии новых редакций ТНПА может пересматриваться перечень объектов и уточняться их свойства. Новым или измененным объектам должны назначаться новые идентификаторы.

6.4 Назначение идентификаторов регистрирующей организацией

РО должна вести и поддерживать в актуальном состоянии регистр идентификаторов. Средства управления регистром могут быть произвольными и выбираются самой РО. РО должна выполнять следующие функции:

  • обработка запросов на регистрацию объектов;
  • назначение идентификаторов объектам и внесение соответствующих изменений в регистр;
  • распространение копий регистра или представление информации из регистра.

При обработке запросов РО должна проверять, что:

  • в запросе содержится достаточно информации для идентификации регистрируемого объекта;
  • регистрация объекта находится в компетенции РО;
  • указанный в запросе объект еще не зарегистрирован данной РО.

При нарушении указанных условий регистрация не должна выполняться.

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

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

Перечень РО может пополняться, например новая организация может быть зарегистрирована уже действующей или может быть расширено приложение А.

Приложение А (рекомендуемое)

Идентификаторы организаций

Следующим организациям:

  • Государственный комитет по стандартизации Республики Беларусь;
  • Министерство связи и информатизации Республики Беларусь;
  • Оперативно-аналитический центр при Президенте Республики Беларусь;
  • Национальный банк Республики Беларусь,

назначаются следующие идентификаторы:

  • {by registration-authority gosstandard(0)};
  • {by registration-authority mpt(1)};
  • {by registration-authority oac(2)};
  • {by registration-authority nbrb(3)}.

Перечисленные организации могут выступать в роли регистрирующих.

Приложение Б (рекомендуемое)

Идентификаторы объектов для алгоритма СТБ 1176.1

Б.1 Объекты

Алгоритму хэширования СТБ 1176.1 назначается идентификатор stb11761-hash. В алгоритме stb11761-hash долговременный параметр L, определенный в СТБ 1176.1 (пункт 5.1), должен равняться 256, а еще один долговременный параметр H, также определенный в СТБ 1176.1 (пункт 5.1), должен задаваться дополнительно.

При задании H (целое число) с помощью АСН.1 должен использоваться тип OCTET STRING. Первый октет значения этого типа должен совпадать с младшим октетом в двоичной записи H, ..., последний октет значения - со старшим октетом двоичной записи.

При конкретных значениях H алгоритм stb11761-hash уточняется следующими способами:

stb11761-hash0 алгоритм stb11761-hash с H = 0;
stb11761-hashA алгоритм stb11761-hash с H = AA…A (в шестнадцатеричной системе счисления);
stb11761-hash4E алгоритм stb11761-hash с H = 4E4E9C9C 9C9C4E4E 9C9C4E4E 4E4E9C9C 9C9C4E4E 4E4E9C9C 4E4E9C9C 9C9C4E4E (в шестнадцатеричной системе счисления).

Б.2 Модуль АСН.1

Stb11761-module-v1 {1 2 112 0 2 0 1176 1 module(1) ver1(1)}
DEFINITIONS ::=
BEGIN
  stb11761 OBJECT IDENTIFIER ::= {1 2 112 0 2 0 1176 1}
  stb11761-hash OBJECT IDENTIFIER ::= {stb11761 11}
  stb11761-hash0 OBJECT IDENTIFIER ::= {stb11761 12}
  stb11761-hashA OBJECT IDENTIFIER ::= {stb11761 13}
  stb11761-hash4E OBJECT IDENTIFIER ::= {stb11761 14}
END

Приложение В (рекомендуемое)

Идентификаторы объектов для алгоритмов СТБ 1176.2

В.1 Алгоритмы

Алгоритмам СТБ 1176.2 назначаются следующие идентификаторы:

stb11762-sign алгоритмы выработки и проверки электронной цифровой подписи (ЭЦП), определенные в СТБ 1176.2 (разделы 5 и 6);
stb11762pre-sign алгоритмы выработки и проверки ЭЦП, определенные в СТБ 1176.2 (разделы 5 и 6), с предварительным хэшированием сообщений в соответствии с СТБ 34.101.31;
stb11762-genparam алгоритм генерации долговременных параметров, определенный в СТБ 1176.2 (раздел 7).

Алгоритмы stb11762-sign применяются непосредственно к сообщению, ЭЦП которого вырабатывается или проверяется. В СТБ 1176.2 (пункты 5.1.2 и 6.1.2) данное сообщение определяется как последовательность M = (m1, m2, ..., mz), где mi - октеты.

В алгоритмах stb11762pre-sign выполняется предварительное хэширование сообщения с помощью алгоритма, определенного в СТБ 34.101.31. В качестве M используется полученное хэш-значение. При этом z = 32, m1 является первым октетом хэш-значения, m2 - вторым и т. д.

В.2 Открытые ключи

Открытым ключам СТБ 1176.2 назначаются следующие идентификаторы:

stb11762-pubkey открытый ключ алгоритмов stb1176-sign;
stb11762pre-pubkey открытый ключ алгоритмов stb1176pre-sign.

Ключи ЭЦП могут использоваться совместно с ключами протоколов формирования общего ключа, определенными в проекте руководящего документа Республики Беларусь «Банковские технологии. Протоколы формирования общего ключа» (далее - ПФОК, см. [1]). В связи с этим вводятся два дополнительных типа открытых ключей СТБ 1176.2:

stb11762-bdh-pubkey составной открытый ключ алгоритмов stb1176-sign и ПФОК;
stb11762pre-bdh-pubkey составной открытый ключ алгоритмов stb1176pre-sign и ПФОК.

Для составных ключей долговременные параметры СТБ 1176.2 и ПФОК должны выбираться так, чтобы был обеспечен заданный в таблице В.1 паритет между уровнем стойкости СТБ 1176.2 и порядком стойкости ПФОК.

Таблица В.1 – Паритет между уровнем стойкости СТБ 1176.2 и порядком стойкости ПФОК

Уровень стойкости СТБ 1176.2 Порядок стойкости ПФОК Уровень стойкости СТБ 1176.2 Порядок стойкости ПФОК
1 1020 6 1030
2 1022 7 1032
3 1025 8 1034
4 1026 9 1036
5 1028 10 1037

При задании открытых ключей stb11762-pubkey и stb11762pre-pubkey с помощью АСН.1 должен использоваться тип

BDSPublicKeyValue ::= INTEGER

При задании открытых ключей stb11762-bdh-pubkey и stb11762pre-bdh-pubkey с помощью АСН.1 должен использоваться тип

BDSBDHPublicKeyValue ::= SEQUENCE  {
  bdsPublicKey  INTEGER,
  bdhPublicKey  INTEGER
}

Компонент bdsPublicKey этого типа определяет значение открытого ключа СТБ 1176.2, а компонент bdhPublicKey - значение открытого ключа ПФОК.

При использовании открытых ключей в сертификатах или списках отозванных сертификатов согласно СТБ 34.101.19 они должны представляться значениями следующего типа АСН.1:

SubjectPublicKeyInfo ::= SEQUENCE {
  algorithm      PublicKeyAlgorithmIdentifier,
  subjectPublicKey    BIT STRING
}

Компонент algorithm этого типа описывает свойства открытого ключа. Компонент subjectPublicKey описывает значение открытого ключа. Открытый ключ задается значением типа BDSPublicKeyValue или BDSBDHPublicKeyValue, которое кодируется с помощью отличительных правил, определенных в СТБ 34.101.19 (приложение Б.1). Полученное кодовое представление сохраняется в subjectPublicKey как значение типа BIT STRING.

Для описания свойств открытого ключа используется тип

PublicKeyAlgorithmIdentifier ::= SEQUENCE {
  algorithmId    OBJECT IDENTIFIER,
  params    PublicKeyParameters
}

Компонент algorithmId этого типа описывает идентификатор открытого ключа. Компонент params описывает долговременные параметры алгоритмов, с которыми используется открытый ключ.

Тип PublicKeyParameters определяется следующим образом:

PublicKeyParameters ::= CHOICE {
  bdsParams    [0] EXPLICIT BDSParams,
  bdsbdhParams  [2] EXPLICIT BDSBDHParams
}

Компонент bdsParams этого типа описывает долговременные параметры СТБ 1176.2. Компонент bdsbdhParams описывает долговременные параметры СТБ 1176.2 и ПФОК. Компонент bdsbdhParams должен присутствовать только для открытых ключей stb11762-bdh-pubkey, stb11762pre-bdh-pubkey.

Типы BDSParams, BDSBDHParams определены ниже.

В.3 Долговременные параметры

В таблице В.2 определены стандартные долговременные параметры СТБ 1176.2, полученные с помощью алгоритма stb11762-genparam. Данным наборам назначаются следующие идентификаторы:

bds-params3 стандартные параметры СТБ 1176.2, соответствующие 3 му уровню стойкости;
bds-params6 стандартные параметры СТБ 1176.2, соответствующие 6 му уровню стойкости;
bds-params10 стандартные параметры СТБ 1176.2, соответствующие 10 му уровню стойкости.

В таблице В.3 определены стандартные параметры ПФОК, полученные с помощью алгоритма, определенного в [1] (раздел 5). Данным наборам назначаются следующие идентификаторы:

bdh-params3 стандартные параметры ПФОК, соответствующие порядку стойкости 1025;
bdh-params6 стандартные параметры ПФОК, соответствующие порядку стойкости 1030;
bdh-params10 стандартные параметры ПФОК, соответствующие порядку стойкости 1037.

Для описания свойств составных открытых ключей могут использоваться стандартные составные параметры СТБ 1176.2 и ПФОК, которым назначаются следующие идентификаторы:

stb1176-params3 составные параметры bds-param3 и bdh-param3;
stb1176-params6 составные параметры bds-param6 и bdh-param6;
stb1176-params10 составные параметры bds-param10 и bdh-param10.

Числа p, q, a, g в таблицах В.2 и В.3 записаны в шестнадцатеричной системе счисления. Это значит, что число представляется строкой шестнадцатеричных цифр. Цифры читаются слева направо и сверху вниз. Первая цифра - старшая, последняя - младшая.

При генерации стандартных параметров использовались следующие инициализирующие значения датчика случайных чисел согласно СТБ 1176.2 (пункт 7.2.1) и [1] (пункт 5.2.1):

z1 = 1, z2 = 2, …, z31 = 31.

На шаге 7.2.4.1 алгоритма генерации параметров СТБ 1176.2 числа di и ri выбирались следующим образом:

d0=[I/2]+1, r0=[r/2]+1, di=[di-1/2]+1, ri=[ri-1/2]+1, i=1,2,...

На шаге 7.3.3.1 алгоритма генерации параметров СТБ 1176.2 число d выбиралось равным 5. На шаге 5.2.4.1 алгоритма генерации параметров ПФОК числа li выбирались следующим образом:

I0=I-1, Ii=[Ii-1/2]+1, i=1,2,...

При задании долговременных параметров СТБ 1176.2 с помощью АСН.1 должен использоваться тип

BDSParams ::= CHOICE {
  bdsParamsReference  OBJECT IDENTIFIER,
  bdsParamsList    BDSParamsList
}

Выбор компонента bdsParamsList означает явное задание параметров. Компонент bdsParamsReference используется для ссылки на зарегистрированные параметры, например на параметры из таблицы В.2. Явно задаваемые параметры должны представляться значениями типа

BDSParamsList ::= SEQUENCE {
  bdsParameterL    [0] IMPLICIT INTEGER,
  bdsParameterR    [1] IMPLICIT INTEGER,
  bdsParameterP    [2] IMPLICIT INTEGER,
  bdsParameterQ    [3] IMPLICIT INTEGER,
  bdsParameterA    [4] IMPLICIT INTEGER,
  bdsParameterH    [5] IMPLICIT OCTET STRING,
  bdsParamsInitData    BDSParamsInitData OPTIONAL
}

Компонент bdsParameterL этого типа описывает параметр l, компонент bdsParameterR - параметр r, компонент bdsParameterP - параметр p, компонент bdsParameterQ - параметр q, компонент bdsParameterA- параметр a, компонент bdsParameterH - параметр H. Первый октет компонента bdsParameterH представляет собой младший октет большого числа, содержащего значение H, последний октет компонента bdsParameterH представляет собой старший октет двоичного представления большого числа, содержащего значение H.

Тип BDSParamsInitData описывает инициализирующие значения, использованные для генерации долговременных параметров СТБ 1176.2:

BDSParamsInitData ::= SEQUENCE {
  bdsPrmsInitZSequence  OCTET STRING,
  bdsPrmsInitDSequence  OCTET STRING,
  bdsPrmsInitRSequence  OCTET STRING,
  bdsPrmsInitDValue    INTEGER
}

Компонент bdsPrmsInitZSequence этого типа описывает последовательность чисел z1, ..., z31, компонент dsPrmsInitDSequence - последовательность d0, ..., dt, компонент bdsPrmsInitRSequence - последовательность r0, ..., rs, компонент bdsPrmsInitDValue - параметр d.

Таблица В.2 – Стандартные долговременные параметры СТБ 1176.2

Уровень стойкости 3

l 1022
r 175
p 2846B979 F51D4156 B881C96F 3C61A5F3 B5A8F4B4 7B604657 8B92205C A7ADCB9A 77CF7780 023B7217 1BB3BED1 569ECA57 2C5E423B 885C70F5 D2CD3C17 0E31CE50 7DE12C9E 535D71DA 16530C9B E6D078C4 67CE4D24 E7C63181 7FB4BE8F 16EB1B4D E7152DB1 8B23E9B8 99CDAAAB CF7BEC42 CBA90DE4 747EA228 BC267048 0EB191E5
q 7A3D 48C80B17 84985341 4EE450CC 636C93F5 1D63F3C5
a 0CA7F481 B9D2ABE2 E1CBC58F AB8B1FC9 D05234B0 B72AA69B 9A522E1C 18EB73FC CF86CBED 32BD11D0 41AE0434 0D9F732E 7D6A88D0 52BC2CEE 1F8F64CB 0893D92F 365D162E 67B04EEA D6F8FE7F 51B74CF6 1C90C9F4 53F35E56 8E2225F4 5C62BDF0 1E96E131 67CE3338 33B93F65 96332013 2112AADB E4D93404 7AFFBB35 7D931983
H 0

Уровень стойкости 6

l 1534
r 208
p 2E4BC383 5A5B41E3 5D9DC735 157891FC 868064AD 80086810 CB68F580 3DD79608 20A2BAAF 7588969A B9BF5187 3B1E393D 6DABA057 C219EDC6 8183B7EF 07C4C3CE D5466C41 A598A28B D0812BB7 F8AB721D CA6D6D09 AFB97604 4CE6D36C 5F4C1C58 6179EB2F B8F77415 70E8B492 44FD8E02 4398EBED 9B3DD66C 591FD864 83B9FA62 D66F3AFF 7F98ED22 61B15F45 5DEAB8D4 DDC3855D 6EBA0C8A 706F48AC A209ACE2 87AF3A81 CD0AF711 F82A1C65 3C5E5AAA 6BC05AA9 2591AC22 5BEBC6E5 5E953453
q B7B5 417D8085 27DED8EA EC7CFCB9 742C871B DF45DA71 5F6A453D
a 017CA54B C1BD338D 2F760ACF 08D1124A 57FF866C 24F3DC85 19E03C44 210F4E08 D9950280 C0CC9FBD BA3916D4 18CF1999 B91E413C 402BC00D B8B6BA76 8C45257F 25E9F4D7 1CC78ED3 EF1201D0 12E6B9CE 24913F2F 57E38606 C84D8E18 1A420D54 F1B1E2A1 987BED42 2079E48E 88A03E73 0C36055B 9C9A15D4 2BA8DCCB F810E193 A7653A9C 175A8185 FD73BB1C 17139B31 160B42CA EDF01F01 F799A0B6 1AF8FF8B DE3E2AC1 7145A727 FD7AE027 1BF97092 BF730F08 16C8F376 450A350E B7C78044
H 0

Уровень стойкости 10

l 2462
r 257
p 2F01EACA 0363BB43 DA7CF0A2 14D2FC03 3A592B2F 2E3FB58D 61D7E42B AA17455B 38167684 BF8F418E 2DF4EFD3 E1D105E0 34A497CF C0FA4C02 39E755C1 3965D096 452B055A 5314C80F C7F63C81 014EEE3F A9C6FDFE 9A88A2E8 D1137ABE 01E6DD80 6D0A64A4 05B3F30D 909C84B6 008F9D06 D1102024 A7D2CF7F 5C041887 3BD222EF 2BE1BFAF 66CB3BBD 7E34AEDF 10C5A70E 1CAC0566 DBC96E05 8B5D0B9D 6875951B 0ADF8D09 BCE5CE60 FC1CBEC0 C49DE8A4 94568263 9E9CF549 93A62251 372DD0EE B3007644 5EFD9B15 5194FA32 54CF3DA6 D0EE8B0C 0F515DF1 949E8F8B 67E7DC1A 14433033 9BA0AEA1 E93C551A 3117CE98 AFD69473 2667E4CE 226779E3 4726E78E 13E916D8 916D2918 BDF5DD77 8C9938E2 F52E3425 714CA7C9 122330D9 2A2DF086 1516CCE3 51E6D76D 7537432A F1F2285F 6F9B1D95
q 01 C3CED546 6C41A582 9D099FA4 4491B119 3D1AB138 A1781046 73D152C1 4F804EEB
a 1E921804 B4E9624E 38CE41C7 79846D4D BB98D53D F634ED69 85FA42BF 079A7BD0 5AAC508F BFC47892 8F9EE2B2 2C2F1B97 D98F6147 7EDC2AAB 4AA32499 552FF72F F1B3AEF2 7F5231DA 1880A153 F1B283E2 2A386554 3B642C35 EFE211C5 046AAE39 6C2811B8 1DBED9C4 AFB1F39E D2F36799 1CC77980 51B99F0B 7FEE1AB4 E85CDBBD 853BCB1B A1902175 9E588CC7 0AF9888A 5C4EC7FF F330749C EA1890BC F722BAE9 37D2B366 3805DC67 F55A591B 6E288962 9D11CD03 C1555AC8 63827B88 A0451A47 26597359 E5902CAD 1EEAF794 EB600530 9988F333 95F42041 4BB0B218 75305E12 CCF177BE 765DF18E DDB7E9AA 37631867 94D3C446 38E1B11A B87C6957 F5C14787 D540959D 3ACB53D3 1BBB2482 3F5AC505 FAF5D86E 0EBA65AE CB14B4B0 0601CC24 26CC476D 8837CC6C 4FCE7B07 0E19ABEB 6DC34FEE
H 0

Таблица В.3 – Стандартные долговременные параметры ПФОК

Порядок стойкости 1025

l 1022
r 161
p 339617C5 38F666A4 80AF8C8C 8B509E78 4EE3E693 42B83E64 74669834 6E87E566 77FE1E5D 5E7E6A48 A69DCB27 51EBE9AB 7868C2E7 2B0510EE 4BC19B98 050C240E 94AB14A2 E8B7809C B62710D8 80AB0B4F 721683AB EC19D248 2CE567A6 BF04B627 650717C4 ECCBEA3F 7BBE822C EADE426E E067C74E ABC53F84 177655D7 31BE5E6F
g 322A3AD3 50DCFEC8 690DBCA0 A2EED3D8 698711A3 0F10B53B 675880C4 18065E6C FF17541F 58824CD8 CD8CE48B C272E6F3 548349A4 34CEE725 AC9856B5 80465F39 C7E6FFC2 85EB7813 D47DE1C3 C3F02BE7 9A600C02 6A8141EA 7A7D0A64 2F80ECA6 D7CAB616 991445FA 03C63CEE A5FB882E E4CB61CD 9553FB5C 1B1A371D FB084D69

Порядок стойкости 1030

l 1534
r 194
p 397C1F50 6BA9F5A5 2D054BD4 8CDF3A50 D54ECA88 B56C5E1C 7878AA61 58E75594 BBBF6530 B14DE91F E1EB51AD CC02D266 CBE0AD2B 6B06929E E0005CF4 77E639AD A01D8224 46D28598 E07CF4A1 44970874 4557090D C377A574 BB388896 9FA8061A 8C3EFA6F 2E9A253A 79043CB4 CFECC74C DCC1BE1B 580F703B D985C822 0540952E FA197328 F894400F C7E08FFA 61461B49 F0B169A7 AAB8BF1B ACF27E35 7A3F2E42 2DF51764 F62E14B5 36BFCB42 35BFE134 A5AF660A 45B15F32 2DF469ED 7B1451C7
g 24E7A8B6 5E3E90EF 6BE3F4BD F98421B4 41DA4D0B B3CBA7CC 9AD0F766 EE7D6FFD 3C3A138F 7BC825AF C3A957B7 EE47C5C7 8B587DD8 1EBF5047 C17662D9 73D7A0CD D288AD56 1322E5D1 0825F9E1 AFB4D397 3AC51532 C798D70D 972B0906 33B100A3 4554C6B7 B76D201A 3A313E59 B0F9C6C8 F64B85A6 A04D53E2 18CEF699 EC01CC1B 6074E54E 64FD716A 8C78DF22 13A4FCCE E421C525 5E71D8A1 D834F994 7B5E9BE2 B4402CEE 3F543176 1D35DFD7 C2740F78 C5922EB7 48CE23BD 5AE7EB48 F34885B2

Порядок стойкости 1037

l 2462
r 240
p 20A8F485 EA81C26F AF8F13A0 AA206B38 D0C365EE 26C0AD12 A0DD8C08 230FED3A D80AB6A9 9B9292EC 694A599B 931F8F7F 4631ED9C 94EAF4B1 16105496 1C6942CF 2DE4F1DA 22F33DA1 EB7D2387 218D34E5 3D38052D F6D7A48E B772023B E5B1ADF0 B68BB6DF 5139267F 66ABD05B A358AE40 AF7433EE 1FF470C1 4E2711F2 DCF99F26 53F6B9B4 516FA3C1 3936A1D1 A8462E5F E163DD11 0C019B75 D9B2A3A6 FF5647E6 41504569 42648597 F429BF52 F8E95B08 379A3CD5 C4001356 A8E452EF 9ACDECC3 36204BDE 3A2FB563 8ED3B005 21FDA08F 0914BAFC F1417B39 F5E0C40D 2DAD92AE 73AE16E0 1CBF075E A9E6680B 68938436 37DE1FED 4DFEA458 27C8C633 3AFA29B8 23081AA6 8EDF3338 C64A7F92 A6086539 945E8C90 6AA603D8 1733E220 75BB823E 120CE8E1 FC74AE65 4799F956 9C152D29 654A80DB
g 038364E5 FAC23957 62450601 442E4B94 ED79F195 26E2B675 9A42AD96 848F8E82 6D413D73 613E8D10 0CE60AA5 D90241B9 7E342BC9 873D8823 110F547C 97575276 8D29A886 A9469E03 9135F249 C2B2180C 284C4E58 E526398D 67BBBA9F 1396F584 4F5552D4 AB822271 486C6A04 1ECD4169 E33FD26C 5AC8DBB5 DDB3E62B 1FAEB900 873B92C0 C29A7C9A 95276FCC 8C8F11F1 4C173894 0AEF9667 7BD9C709 3A1BB08A 58C4DDB6 FC6AB465 1620BA32 96707E7C AA6DCF0A B5F7049F 54EB2E67 016A03F4 74F87AA9 48D6087A 94D55557 3853B7FB C4679C19 945E30E2 8464DDD9 3B32967C 6D446EF4 446387BF AE13CE80 9BA68838 335C96A6 4EF466D9 0F19D5DA 51B8AF3B 10C66A5F D7A0406D 7451A950 D7BF9697 FDFDF4F9 9798E0D7 904ABC39 2A25B52E 30E6F804 DE2C1274 7B32F32E 04CD277C 996E114

Первая пара октетов bdsPrmsInitZSequence должна представлять z1, вторая пара - z2 и т. д. При этом первый октет пары должен представлять младший октет двоичной записи zi, второй октет пары - старший октет двоичной записи zi. Данные соглашения об описании последовательностей распространяются также на компоненты bdsPrmsInitDSequence и bdsPrmsInitRSequence. При задании долговременных параметров ПФОК с помощью АСН.1 должен использоваться тип

BDHParamsList ::= SEQUENCE {
  bdhParameterL    [0] IMPLICIT INTEGER,
  bdhParameterR    [1] IMPLICIT INTEGER,
  bdhParameterP    [2] IMPLICIT INTEGER,
  bdhParameterG    [3] IMPLICIT INTEGER,
  bdhParameterN    [4] IMPLICIT INTEGER,
  bdhParamsInitData    BDHParamsInitData OPTIONAL
}

Компонент bdhParameterL этого типа описывает параметр l, компонент bdhParameterR - параметр r, компонент bdhParameterP - параметр p, компонент bdhParameterG - параметр g, компонент bdhParameterN - параметр n. Тип BDHParamsInitData описывает инициализирующие значения, использованные для генерации долговременных параметров ПФОК:

BDHParamsInitData ::= SEQUENCE {
  bdhPrmsInitZSequence  OCTET STRING,
  bdhPrmsInitLSequence  OCTET STRING
}

Компонент bdhPrmsInitZSequence этого типа описывает последовательность чисел z1, ..., z31, компонент bdhPrmsInitLSequence – последовательность l0, ..., lt. Соглашения об описании последовательностей, заданные при описании типа BDHParamsInitData, распространяются на компоненты bdhPrmsInitZSequence и bdhPrmsInitLSequence.

Тип BDSBDHParams описывает значения долговременных параметров СТБ 1176.2 и ПФОК:

BDSBDHParams ::= CHOICE {
  bdsbdhParamsReference  OBJECT IDENTIFIER,
  bdsbdhParamsList    BDSBDHParamsList
}

Выбор компонента bdsbdhParamsList означает явное задание параметров. Компонент bdsbdhParamsReference используется для ссылки на зарегистрированные параметры, например на параметры из таблиц В.2 и В.3.

Тип BDSBDHParamList определяется следующим образом:

BDSBDHParamsList ::= SEQUENCE {
  bdsParamsList  BDSParamsList,
  bdhParamsList  BDHParamsList
}

В.4 Протоколы

Составные ключи СТБ 1176.2 и ПФОК могут использоваться в следующих протоколах:

bdh-noauth протокол без аутентификации сторон, определенный в [1] (подраздел 4.1);
bdh-auth протокол с аутентификацией сторон, определенный в [1] (подраздел 4.2);
bdh-oneside протокол одностороннего формирования ключа, определенный в [1] (подраздел 4.3);
bdh-keytransport протокол транспорта ключа, основанный на протоколе bdh-oneside.

В протоколе bdh-keytransport сторона A передает стороне B секретный ключ X, представляющий собой строку октетов, длина которой кратна 8. Сторона A действует следующим образом:

  • вырабатывает по протоколу bdh-oneside общий со стороной B ключ KAB из 32 октетов;
  • выполняет зашифрование X на KAB в режиме простой замены в соответствии с ГОСТ 28147 (см. приложение Г, алгоритм gost28147-ecb);
  • вычисляет имитовставку X на KAB в соответствии с ГОСТ 28147 (см. приложение Г, алгоритм gost28147-mac). Должна вычисляться имитовставка из 4 октетов (32 битов);
  • пересылает стороне B сообщение (vA, Y, T), где vA - посылка протокола bdh-oneside, Y - результат зашифрования X, T - имитовставка.

Сторона B обрабатывает полученное сообщение следующим образом:

  • вырабатывает по протоколу bdh-oneside общий со стороной A ключ KAB;
  • выполняет расшифрование Y на KAB и определяет X;
  • вычисляет имитовставку X на KAB;
  • если вычисленная имитовставка совпадает с T, то принимает X.

Для описания параметров протокола bdh-keytransport с помощью АСН.1 должен использоваться тип

BDHKeytransParams ::= SEQUENCE {
  sblock  OBJECT IDENTIFIER OPTIONAL }

Компонент sblock этого типа определяет идентификатор блока подстановки ГОСТ 28147, который используется для шифрования и имитозащиты. Если компонент sblock отсутствует, то должен использоваться стандартный блок gost28147-sblock-1, определенный в приложении Г.

Зашифрованный ключ должен описываться типом

BDHKeytransEncryptedKey ::= SEQUENCE {
  encryptedKey OCTET STRING,
  mac OCTET STRING (SIZE(4)),
  va INTEGER
}

Компонент encryptedKey этого типа описывает зашифрованный ключ Y, компонент mac–имитовставку T, компонент va–посылку vA. Если требуется представить зашифрованный ключ строкой октетов, то в качестве данной строки должно использоваться кодовое представление значения типа BDHKeytransEncryptedKey. При кодировании должны использоваться отличительные правила, определенные в СТБ 34.101.19 (приложение Б).

В.5 Модуль АСН.1

Stb11762-module-v1 {1 2 112 0 2 0 1176 2 module(1) ver1(1)}
DEFINITIONS ::=
BEGIN
  stb11762 OBJECT IDENTIFIER ::= {1 2 112 0 2 0 1176 2}

  stb11762-sign OBJECT IDENTIFIER ::= {stb11762 11}
  stb11762pre-sign OBJECT IDENTIFIER ::= {stb11762 12}
  stb11762-genparam OBJECT IDENTIFIER ::= {stb11762 21}

  bdh-noauth OBJECT IDENTIFIER ::= {stb11762 31}
  bdh-auth OBJECT IDENTIFIER ::= {stb11762 32}
  bdh-oneside OBJECT IDENTIFIER ::= {stb11762 33}
  bdh-keytrans OBJECT IDENTIFIER ::= {stb11762 34}

  stb11762-keys OBJECT IDENTIFIER ::= {stb11762 keys(2)}
  stb11762-pubkey OBJECT IDENTIFIER ::= {stb11762-keys 1}
  stb11762pre-pubkey OBJECT IDENTIFIER ::= {stb11762-keys 2}
  stb11762-bdh-pubkey OBJECT IDENTIFIER ::= {stb11762-keys 3}
  stb11762pre-bdh-pubkey OBJECT IDENTIFIER ::= {stb11762-keys 4}

  stb11762-params OBJECT IDENTIFIER ::= {stb11762 params(3)}
  stb11762-params3 OBJECT IDENTIFIER ::= {stb11762-params 3}
  stb11762-params6 OBJECT IDENTIFIER ::= {stb11762-params 6}
  stb11762-params10 OBJECT IDENTIFIER ::= {stb11762-params 10}

  bds-params3 OBJECT IDENTIFIER ::= {stb11762-params3 1}
  bds-params6 OBJECT IDENTIFIER ::= {stb11762-params6 1}
  bds-params10 OBJECT IDENTIFIER ::= {stb11762-params10 1}

  bdh-params3 OBJECT IDENTIFIER ::= {stb11762-params3 2}
  bdh-params6 OBJECT IDENTIFIER ::= {stb11762-params6 2}
  bdh-params10 OBJECT IDENTIFIER ::= {stb11762-params10 2}

  BDSParamsList ::= SEQUENCE {
    bdsParameterL [0] IMPLICIT INTEGER,
    bdsParameterR [1] IMPLICIT INTEGER,
    bdsParameterP [2] IMPLICIT INTEGER,
    bdsParameterQ [3] IMPLICIT INTEGER,
    bdsParameterA [4] IMPLICIT INTEGER,
    bdsParameterH [5] IMPLICIT OCTET STRING,
    bdsParamInitData BDSParamsInitData OPTIONAL
  }

  BDSParamsInitData ::= SEQUENCE {
    bdsPrmsInitZSequence OCTET STRING,
    bdsPrmsInitDSequence OCTET STRING,
    bdsPrmsInitRSequence OCTET STRING,
    bdsPrmsInitDValue INTEGER
  }

  BDHParamsList ::= SEQUENCE {
    bdhParameterL [0] IMPLICIT INTEGER,
    bdhParameterR [1] IMPLICIT INTEGER,
    bdhParameterP [2] IMPLICIT INTEGER,
    bdhParameterG [3] IMPLICIT INTEGER,
    bdhParameterN [4] IMPLICIT INTEGER,
    bdhParamsInitData BDHParamsInitData OPTIONAL
  }

  BDHParamsInitData ::= SEQUENCE {
    bdhPrmsInitZSequence OCTET STRING,
    bdhPrmsInitLSequence OCTET STRING
  }

  BDSBDHParamsList ::= SEQUENCE {
    bdsParamsList BDSParamsList,
    bdhParamsList BDHParamsList
  }

  BDSParams ::= CHOICE {
    bdsParamsReference OBJECT IDENTIFIER,
    bdsParamsList BDSParamsList
  }

  BDSBDHParams ::= CHOICE {
    bdsbdhParamsReference OBJECT IDENTIFIER,
    bdsbdhParamsList BDSBDHParamsList
  }

  PublicKeyParameters ::= CHOICE {
    bdsParams [0] EXPLICIT BDSParams,
    bdhParams [2] EXPLICIT BDSBDHParams
  }

  BDSPublicKeyValue ::= INTEGER
  BDSBDHPublicKeyValue ::= SEQUENCE {
    bdsPublicKey INTEGER,
    bdhPublicKey INTEGER
  }

  BDHKeytransParams ::= SEQUENCE {
    sblock OBJECT IDENTIFIER OPTIONAL
  }

  BDHKeytransEncryptedKey ::= SEQUENCE {
    encryptedKey OCTET STRING,
    mac OCTET STRING (SIZE(4)),
    va INTEGER
  }
END

Приложение Г (рекомендуемое)

Идентификаторы объектов для алгоритмов ГОСТ 28147

Г.1 Объекты

Алгоритмам ГОСТ 28147 назначаются следующие идентификаторы:

gost28147-ecb алгоритмы шифрования в режиме простой замены, определенные в ГОСТ 28147 (раздел 2);
gost28147-cfb алгоритмы шифрования в режиме гаммирования с обратной связью, опреде-ленные в ГОСТ 28147 (раздел 3);
gost28147-ctr алгоритмы шифрования в режиме гаммирования, определенные в ГОСТ 28147 (раздел 4);
gost28147-mac алгоритм выработки имитовставки, определенный в ГОСТ 28147 (раздел 5). Параметр l, который определяет длину имитовставку, должен равняться 32.

Долговременным параметром алгоритмов является блок подстановки согласно ГОСТ 28147, (пункт 1.2). В таблице Г.1 определен стандартный блок подстановки. Этому блоку назначается идентификатор gost28147-sblock-1.

Блок подстановки состоит из 8 узлов замены K1, K2, ..., K8. Каждый узел представляет собой массив из 16 тетрад (4 битовых векторов). Элементы массива индексируются в таблице Г.1 тетрадами. Тетрады представляются целыми числами от 0 до 15 так, что число 0 соответствует тетраде 0000, число 1 - тетраде 0001, ..., число 15 - тетраде 1111.

Таблица Г.1 – Стандартный блок подстановки ГОСТ 28147

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
K1[i] 2 6 3 14 12 15 7 5 11 13 8 9 10 0 4 1
K2[i] 8 12 9 6 10 7 13 1 3 11 14 15 2 4 0 5
K3[i] 1 5 4 13 3 8 0 14 12 6 7 2 9 15 11 10
K4[i] 4 0 5 10 2 11 1 9 15 3 6 7 14 12 8 13
K5[i] 7 9 6 11 15 10 8 12 4 14 1 0 5 3 13 2
K6[i] 14 8 15 2 6 3 9 13 5 7 0 1 4 10 12 11
K7[i] 9 13 8 5 11 4 12 2 0 10 15 14 1 7 3 6
K8[i] 11 15 10 8 1 14 3 6 9 0 4 5 13 2 7 12

Если блок подстановки описывается с помощью АСН.1, то для описания должен использоваться тип SBlockTable ::= OCTET STRING (SIZE(64)).

Первый октет значения этого типа должен содержать тетрады K1[0] (старшая) и K1[1] (младшая), второй октет - тетрады K1[2] (старшая) и K1[3] (младшая), ..., восьмой октет - тетрады K1[14] (старшая) и K1[15] (младшая), девятый октет - тетрады K2[0] (старшая) и K2[1] (младшая) и т. д.

Если синхропосылка в алгоритмах gost28147-cfb и gost28147-ctr описывается с помощью АСН.1, то для описания должен использоваться тип

IV ::= OCTET STRING (SIZE(8))

Если имитовставка в алгоритме gost28147-mac описывается с помощью АСН.1, то для описания должен использоваться тип

MAC ::= OCTET STRING (SIZE(4))

В ГОСТ 28147 синхропосылка, имитовставка, ключ, блок открытых или зашифрованных данных представляет собой двоичную последовательность (b1, b2, ..., b8n). При задании данной последова-тельности строкой из n октетов элемент b1 должен записываться в разряд 1 первого октета строки, элемент b2 - в разряд 2 первого октета, ..., элемент b8 - в разряд 8 первого октета, элемент b9 - в разряд 1 второго октета, ..., элемент b8n - в разряд 8 n-го октета (см. ГОСТ 34.974 (пункт 4.1.3) относительно нумерации разрядов октетов).

Если параметры алгоритмов ГОСТ 28147 описываются с помощью АСН.1, то для описания должен использоваться тип

GOSTParams ::= SEQUENCE {
  iv IV OPTIONAL,
  sblock SBlock OPTIONAL
}

Компонент iv этого типа определяет используемую синхропосылку. Компонент iv должен указываться только при описании параметров алгоритмов gost28147-cfb и gost28147-ctr. Компонент sblock определяет используемый блок подстановки. Если компонент sblock отсутствует, то используется стандартный блок подстановки gost28147-sblock-1.

Тип SBlock определяется следующим образом:

SBlock ::= CHOICE {
  table SBlockTable,
  oid OBJECT IDENTIFIER
}

Компонент table этого типа задает таблицу блока, а компонент oid - идентификатор блока.

Г.2 Модуль АСН.1

Gost28147-module-v1 {1 2 112 0 2 1 28147 module(1) ver1(1)}
DEFINITIONS ::=
BEGIN
  gost28147 OBJECT IDENTIFIER ::= {1 2 112 0 2 1 28147}

  gost28147-ecb OBJECT IDENTIFIER ::= {gost28147 11}
  gost28147-cfb OBJECT IDENTIFIER ::= {gost28147 12}
  gost28147-ctr OBJECT IDENTIFIER ::= {gost28147 13}
  gost28147-mac OBJECT IDENTIFIER ::= {gost28147 14}

  gost28147-sblock-1 OBJECT IDENTIFIER ::= {gost28147 params(3) 1}

  SBlockTable ::= OCTET STRING (SIZE(64))

  SBlock ::= CHOICE {
    table SBlockTable,
    oid OBJECT IDENTIFIER
  }

  IV ::= OCTET STRING (SIZE(8))

  MAC ::= OCTET STRING (SIZE(4))

  GOSTParams ::= SEQUENCE {
    iv IV OPTIONAL,
    sblock SBlock OPTIONAL
  }
END

Приложение Д (рекомендуемое)

Идентификаторы объектов Государственной системы управления открытыми ключами

Регистрация объектов информационных технологий ГосСУОК осуществляется Оперативно-аналитическим центром при Президенте Республики Беларусь.

Объектам ГосСУОК назначаются идентификаторы, подчиненные идентификатору

pki-gov OBJECT IDENTIFIER ::= {by registration-authority oac(2) 1}

Объекты ГосСУОК, подлежащие регистрации, - это расширения сертификатов согласно СТБ 34.101.319 и другие атрибуты, применяемые в ГосСУОК. Для назначения идентификаторов данным объектам выделяется вершина ext.

Объектам ГосСУОК назначаются следующие идентификаторы:

ext OBJECT IDENTIFIER ::= {pki-gov 1};
name OBJECT IDENTIFIER ::= {pki-gov 1 1};
app OBJECT IDENTIFIER ::= {pki-gov 1 2}.

Идентификатор name определяет дополнения и атрибуты сертификатов открытых ключей, связанные с идентификацией (именованием) субъектов инфраструктуры открытых ключей ГосСУОК.

Идентификатор app определяет прикладные дополнения сертификатов открытых ключей инфраструктуры открытых ключей ГосСУОК.

Объектам, относящимся к вершине name, назначаются следующие идентификаторы:

priv-num OBJECT IDENTIFIER ::= {pki-gov 1 1 1};
tax-id OBJECT IDENTIFIER ::= {pki-gov 1 1 2}.

Идентификатор priv-num определяет личный номер (данные из документа, удостоверяющего личность: паспорта, вида на жительство и т. д.) субъекта инфраструктуры открытых ключей ГосСУОК, являющегося физическим лицом.

Идентификатор tax-id определяет уникальный номер налогоплательщика (УНП) субъекта инфраструктуры открытых ключей ГосСУОК, являющегося юридическим лицом (организацией).

Объектам, относящимся к вершине app, назначается следующий идентификатор:

pk-card OBJECT IDENTIFIER ::= {pki-gov 1 2 1},

определяющий формат бланка карточки открытого ключа субъекта инфраструктуры открытых ключей ГосСУОК.

Объектам, относящимся к типам применяемых в ГосСУОК бланков карточек открытого ключа, назначаются следующие идентификаторы:

root-ca OBJECT IDENTIFIER ::= {pki-gov 1 2 1 1};
sub-ca OBJECT IDENTIFIER ::= {pki-gov 1 2 1 2};
ra OBJECT IDENTIFIER ::= {pki-gov 1 2 1 3};
org OBJECT IDENTIFIER ::= {pki-gov 1 2 1 4};
person OBJECT IDENTIFIER ::= {pki-gov 1 2 1 5}.

Идентификатор root-ca определяет бланк карточки открытого ключа корневого удостоверяющего центра инфраструктуры открытых ключей ГосСУОК.

Идентификатор sub-ca определяет бланк карточки открытого ключа подчиненного удостоверяющего центра инфраструктуры открытых ключей ГосСУОК.

Идентификатор ra определяет бланк карточки открытого ключа регистрационного центра инфраструктуры открытых ключей ГосСУОК.

Идентификатор org определяет бланк карточки открытого ключа юридического лица (организации) - пользователя инфраструктуры открытых ключей ГосСУОК.

Идентификатор person определяет бланк карточки открытого ключа физического лица - пользователя инфраструктуры открытых ключей ГосСУОК.

Приложение Е (рекомендуемое)

Защита XML-документов с помощью алгоритмов СТБ 34.101.31, СТБ 34.101.45, СТБ 34.101.47 и СТБ 34.101.77

Е.1 Защита XML-документов

Язык XML, определенный в базовой спецификации [2] и других, подчиненных ей, описывает иерархически организованные структуры данных, называемые документами. Документ содержит элементы, возможно вложенные друг в друга, элементы могут иметь атрибуты. Структура элементов и атрибутов задается XML-схемами.

Правила подписания XML-документов определены в спецификациях [3], [4]. Правила принято называть XML-DSig (от англ. XML Digital Signature). Данные подписываются либо с помощью алгоритмов выработки ЭЦП, либо с помощью алгоритмов имитозащиты. ЭЦП и имитовставки, полученные в результате выполнения алгоритмов, контролируют целостность и подлинность данных.

Подпись определяется специальным элементом Signature, в который вложены элементы SignedInfo, KeyInfo, SignatureValue. Элемент SignedInfo описывает подписанные данные, элемент KeyInfo - ключ, который используется при проверке подписи, элемент SignatureValue - значение подписи.

Можно подписывать:

  • элемент, который содержится внутри Signature (обертывающая подпись, enveloping signature);
  • корневой элемент, в который вложен Signature, исключая сам элемент Signature (вложенная подпись, enveloped signature);
  • отдельные от Signature элементы того же или другого документа, внешние файлы, другие объекты (отделенная подпись, detached signature).

Данные подписываются в два этапа. На первом этапе данные преобразуются в строку октетов с помощью так называемых трансформаций. Трансформации состоят в приведении данных к каноническому виду (канонизация), исключению элемента Signature в случае вложенной подписи, кодировании и др. Канонизация направлена на исключение избыточности, присущей XML-документам: два логически эквивалентных документа будут иметь один и тот же канонический вид. Строка октетов, полученная в результате трансформаций, подвергается предварительному хэшированию. Результат хэширования помещается в подэлемент Reference элемента SignedInfo. Туда же помещается ссылка на подписываемые данные, идентификаторы используемых алгоритмов (трансформаций, хэширования, ЭЦП или имитозащиты), другие служебные данные. На втором этапе построенный элемент SignedInfo приводится к каноническому виду (по алгоритмам, указанным в SignedInfo) и подписывается либо на личном ключе алгоритма выработки ЭЦП, либо на секретном ключе алгоритма имитозащиты.

Ключ проверки подписи, задаваемый в KeyInfo, - это либо открытый ключ алгоритма проверки ЭЦП, либо секретный ключ алгоритма имитозащиты. Ключ задается явно (по значению) или косвенно (по идентификатору (имени)). Значение ключа может указываться непосредственно (через подэлемент KeyValue) либо, если речь идет об открытом ключе, представляться сертификатом (подэлемент X509Data) или другими составными данными.

Для обеспечения конфиденциальности XML-документа или его частей исползуется шифрование. Правила шифрования и защиты ключей шифрования определены в спецификациях [5], [6]. Правила принято называть XML-Enc (от англ. XML Encryption).

Можно зашифровывать:

  • отдельный элемент документа;
  • содержимое отдельного элемента, оставляя видимыми тег и атрибуты;
  • весь документ целиком.

Шифртекст помещается в специальный элемент EncryptedData, который создается на месте обработанных данных. Элемент EncryptedData может быть зашифрован повторно. При этом эле-мент должен зашифровываться целиком, шифрование частичного содержимого EncryptedData считается ошибкой.

Элемент EncryptedData содержит ссылку на ключ шифрования, который находится в том же или в другом документе и представляется элементом KeyInfo. Этот ключ, как правило, хранится в зашифрованном виде и задается вложенным в KeyInfo элементом EncryptedKey. Ключ шифрования элемента EncryptedKey может храниться в зашифрованном виде в новом элементе EncryptedKey, ключ шифрования нового элемента может опять зашифровываться и т. д. Таким образом, можно построить цепочку ключей: ключ шифрования данных, который защищается на ключе шифрования ключей, который защищается на мастер-ключе и т. д.

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

Е.2 Контроль целостности и подлинности

Хэширование. Для предварительного хэширования данных, подпись которых вырабатывается или проверяется, могут использоваться алгоритмы belt-hash256, bash256, bash384 и bash512, определенные в СТБ 34.101.31 (пункт 6.9) и СТБ 34.101.77. Алгоритмам назначаются следующие идентификаторы:

http://www.w3.org/2009/xmldsig11#belt-hash256,
http://www.w3.org/2009/xmldsig11#bash256,
http://www.w3.org/2009/xmldsig11#bash384,
http://www.w3.org/2009/xmldsig11#bash512.

Алгоритмы хэширования могут использоваться также для выработки и проверки ЭЦП. Алгоритм belt-hash256 может дополнительно использоваться для имитозащиты.

Электронная цифровая подпись. Для выработки и проверки ЭЦП могут использоваться алгоритмы bign-with-hbelt, bign-with-bash256, bign-with-bash384, bign-with-bash512 и bign-with-hspec, определенные в СТБ 34.101.45 (пункт 7.1). Алгоритмам назначаются следующие идентификаторы:

http://www.w3.org/2009/xmldsig11#bign-with-hbelt,
http://www.w3.org/2009/xmldsig11#bign-with-bash256,
http://www.w3.org/2009/xmldsig11#bign-with-bash384,
http://www.w3.org/2009/xmldsig11#bign-with-bash512,
http://www.w3.org/2009/xmldsig11#bign-with-hspec.

Алгоритмы ЭЦП отличаются используемой функцией хэширования (алгоритмом хэширования) h. Длина значений h определяет уровень стойкости l алгоритмов ЭЦП.

В алгоритмах bign-with-hbelt (l = 128), bign-with-bash256 (l = 128), bign-with-bash384 (l = 192) и bign-with-bash512 (l = 256) используются функции belt-hash256, bash256, bash384 и bash512 соответственно.

В алгоритмах bign-with-hspec используется произвольная функция h, удовлетворяющая ограничениям СТБ 34.101.45 (пункт 5.5). Идентификатор алгоритма хэширования должен быть указан в дополнительном подэлементе HashMethod элемента SignatureMethod, вложенного в SignedInfo. Подэлемент HashMethod должен иметь тип DigestMethodType, определенный в [3] (пункт 4.3.3.5).

Имитозащита. Для имитозащиты могут использоваться алгоритмы hmac-hbelt и hmac-hspec, определенные в СТБ 34.101.47 (пункт 6.1). Алгоритмам назначаются следующие идентификаторы:

http://www.w3.org/2009/xmldsig11#hmac-hbelt,
http://www.w3.org/2009/xmldsig11#hmac-hspec.

Алгоритмы имитозащиты отличаются используемой функцией хэширования (алгоритмом хэширования) h.

В алгоритме hmac-hbelt используется функция belt-hash256.

В алгоритме hmac-hspec используется произвольная функция h, удовлетворяющая ограничениям СТБ 34.101.47 (пункт 5.2). Идентификатор алгоритма хэширования задается в SignedInfo так же, как в случае ЭЦП.

Открытый ключ алгоритмов ЭЦП. Открытый ключ алгоритмов bign-with-hbelt, bign-with-hspec может задаваться элементом BignKeyValue, вложенным в элемент KeyValue. Элемент BignKeyValue описывается следующей схемой:

<element name="BignKeyValue" type="bign:KeyValueType"/>
<complexType name="KeyValueType">
  <sequence>
    <element name="DomainParameters" 
      type="bign:DomainParamsType" minOccurs="0"/>
    <element name="PublicKey" type="base64Binary"/>
  </sequence>
</complexType>

Элемент DomainParameters описывает параметры эллиптической кривой, с которой используется открытый ключ. Если параметры понятны из контекста (например, используются фиксированные параметры или наследуются параметры удостоверяющего центра), то их можно не указывать.

Элемент PublicKey задает сам открытый ключ. Открытый ключ описывается строкой из 64, 96 или 128 октетов согласно СТБ 34.101.45 (пункт 5.4). Эта строка кодируется по правилам base64.

Параметры эллиптической кривой могут быть заданы по имени, с помощью элемента NamedCurve, или непосредственно по значению, с помощью элемента ExplicitParams:

<complexType name="DomainParamsType">
  <choice>
    <element name="ExplicitParams" type="bign:ExplicitParamsType"/>
    <element name="NamedCurve">
      <complexType>
        <attribute name="URN" type="anyURI" use="required"/>
      </complexType>
    </element>
  </choice>
</complexType>

Атрибут URN элемента NamedCurve указывает на стандартные (именованные) параметры. Могут использоваться стандартные параметры для уровней стойкости l = 128, l = 192 и l = 256, заданные в СТБ 34.101.45 (приложение Б). Для указания на выбор этих параметров должны использоваться соответственно следующие идентификаторы:

http://www.w3.org/2009/xmldsig11##bign-curve256v1,
http://www.w3.org/2009/xmldsig11##bign-curve384v1,
http://www.w3.org/2009/xmldsig11##bign-curve512v1.

Элемент ExplicitParams задает параметры, перечисленные в СТБ 34.101.45 (пункт 5.3). Элемент ExplicitParams описывается типом ExplicitParamsType, который определяет поле Ф*p* (вложенный элемент FieldParams), эллиптическую кривую Ea,b (элемент CurveParams), базовую точку G (элемент BasePoint), порядок группы точек q (элемент Order):

<complexType name="ExplicitParamsType">
  <sequence>
    <element name="FieldParams" type="bign:FieldParamsType"/>
    <element name="CurveParams" type="bign:CurveParamsType"/>
    <element name="BasePoint" type="base64Binary"/>
    <element name="Order" type="positiveInteger"/>
  </sequence>
</complexType>

Элемент FieldParams описывается типом FieldParamsType и определяет модуль p (вложенный элемент P):

<complexType name="FieldParamsType">
  <sequence>
    <element name="P" type="positiveInteger"/>
  </sequence>
</complexType>

Элемент CurveParams описывается типом CurveParamsType и определяет коэффициенты a (вложенный элемент A) и b (элемент B), а также необязательный параметр seed (элемент Seed):

<complexType name="CurveParamsType">
  <sequence>
    <element name="A" type="base64Binary"/>
    <element name="B" type="base64Binary"/>
    <element name="Seed" type="base64Binary" minOccurs="0"/>
  </sequence>
</complexType>

На уровне стойкости l коэффициенты a и b, базовая точка G = (0, yG) описываются строками 〈a2l, 〈b2l, 〈yG2l (см. обозначения СТБ 34.101.45 (пункт 4.1)). Эти строки состоят из 32, 48 или 64 октетов и кодируются по правилам base64. Параметр seed состоит из 8 октетов и также кодируется по правилам base64.

Открытый ключ алгоритмов bign-with-hbelt и bign with hspec может задаваться элементом X509Data, вложенным в KeyInfo. При этом X509Data должен содержать сертификат открытого ключа, закодированный по правилам base64. Сертификат должен соответствовать требованиям, установленным в СТБ 34.101.19.

Секретный ключ алгоритмов имитозащиты. Секретные ключи алгоритмов hmac-hbelt и hmac-hspec защищаются по правилам, определенным в Е.3.

Е.3 Обеспечение конфиденциальности

Защита данных. Для защиты частей XML-документа могут использоваться алгоритмы шифрования в режиме счетчика belt-ctr, определенные в СТБ 34.101.31 (пункт 6.5). Для указания на выбор алгоритмов должен использоваться один из следующих идентификаторов (последние три символа идентификатора указывают на длину ключа в битах):

http://www.w3.org/2009/xmlenc11#belt-ctr128, 
http://www.w3.org/2009/xmlenc11#belt-ctr192,
http://www.w3.org/2009/xmlenc11#belt-ctr256.

Могут также использоваться алгоритмы одновременного шифрования и имитозащиты belt datawrap, определенные в СТБ 34.101.31 (пункт 6.7). Для указания на выбор алгоритмов должен использоваться один из следующих идентификаторов (последние три символа идентификатора указывают на длину ключа в битах):

http://www.w3.org/2009/xmlenc11#belt-datawrap128,
http://www.w3.org/2009/xmlenc11#belt-datawrap192, 
http://www.w3.org/2009/xmlenc11#belt-datawrap256. 

В алгоритмах belt-ctr и belt-datawrap одинаковым образом выполняется шифрование данных. В алгоритмах belt-datawrap дополнительно вычисляется и проверяется имитовставка.

В алгоритмах belt-ctr и belt-datawrap синхропосылка из 16 октетов должна выбираться в соответствии с требованиями СТБ 34.101.31 (пункт 5.3) и передаваться вместе с защищенными данными. При передаче синхропосылка должна записываться перед защищенными данными.

В алгоритмах belt-datawrap слово открытых данных должно быть пустым, т.е. должны обрабатываться только критические данные.

Защита ключа. Для защиты ключа защиты XML-документа могут использоваться алгоритмы транспорта ключа bign-keytransport, определенные в СТБ 34.101.45 (пункт 5.7). Для указания на выбор алгоритмов должен использоваться следующий идентификатор:

http://www.w3.org/2009/xmlenc11#bign-keytransport.  

Могут также использоваться алгоритмы одновременного шифрования и имитозащиты ключа belt-keywrap, определенные в СТБ 34.101.31 (пункт 6.8). Для указания на выбор алгоритмов должен использоваться один из следующих идентификаторов (последние три символа идентификатора указывают на длину ключа защиты ключей в битах):

http://www.w3.org/2009/xmlenc11#belt-keywrap128,
http://www.w3.org/2009/xmlenc11#belt-keywrap192,
http://www.w3.org/2009/xmlenc11#belt-keywrap256,

Открытый ключ алгоритмов bign-keytransport должен задаваться точно так же, как открытый ключ алгоритмов bign-with-hbelt, bign-with-hspec (см. Е.2). Заголовок транспортируемого ключа должен быть нулевым.

В алгоритмах belt-keywrap заголовок защищаемого ключа должен быть нулевым.

Построение ключа. Для построения ключа защиты XML-документа по паролю может использоваться алгоритм pbkdf2, описанный в СТБ 34.101.45 (пункт Е.2, приложение E). Для указания на вы-бор алгоритма должен использоваться следующий идентификатор:

http://www.w3.org/2009/xmlenc11#pbkdf2.

Параметры алгоритма pbkdf2 должны задаваться элементом PBKDF2-params, определенным в [6].

Вложенный в PBKDF2-params элемент PRF должен иметь атрибут

Algorithm = "http://www.w3.org/2009/ xmldsig11#hmac-hbelt". 

Этот атрибут указывает на использование алгоритма hmac-hbelt, описанного в Е.2.

Вложенный в PBKDF2-params элемент KeyLength должен принимать значение 16, 24 или 32. Элемент KeyLength определяет число октетов, используемых в построенном по паролю ключе: используется либо 16 первых октетов, либо 24 первых октета, либо все 32 октета. Соответственно образуется ключ из 128, 192 или 256 битов.

Длину синхропосылки (вложенный в PBKDF2-params элемент Salt) и число итераций (элемент IterationCount) рекомендуется выбирать в соответствии с СТБ 34.101.45 (пункт E.1, приложение E).

Примечание – При установке и снятии защиты должны обрабатываться следующие ошибочные ситуации: -ошибки контроля целостности, возвращаемые алгоритмами belt-datawrap, belt-keywrap, bign keytransport; -несоответствия между длинами ключей и идентификаторами алгоритмов belt-ctr, belt-datawrap, bign keywrap; -несоответствия между длинами ключей и параметрами алгоритмов bign-keytransport.

Е.4 XML-схема

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  xmlns:bign="http://www.w3.org/2009/xmldsig11#bign"
  targetNamespace="http://www.w3.org/2009/xmldsig11#bign"
  elementFormDefault="qualified"
  version="0.1">

  <!--Открытый ключ, вложен в ds:KeyValue-->

  <element name="BignKeyValue" type="bign:KeyValueType"/>
  <complexType name="KeyValueType">
    <sequence>
      <element name="DomainParameters" 
        type="bign:DomainParamsType" minOccurs="0"/>
      <element name="PublicKey" type="base64Binary"/>
    </sequence>
  </complexType>

  <!--Параметры эллиптической кривой-->

  <complexType name="DomainParamsType">
    <choice>
      <element name="ExplicitParams" type="bign:ExplicitParamsType"/>
      <element name="NamedCurve">
        <complexType>
          <attribute name="URN" type="anyURI" use="required"/>
        </complexType>
      </element>
    </choice>
  </complexType>

  <!--Конечное поле-->

  <complexType name="FieldParamsType">
    <sequence>
      <element name="P" type="positiveInteger"/>
    </sequence>
  </complexType>

  <!--Явные параметры эллиптической кривой-->

  <complexType name="ExplicitParamsType">
    <sequence>
      <element name="FieldParams" type="bign:FieldParamsType"/>
      <element name="CurveParams" type="bign:CurveParamsType"/>
      <element name="BasePoint" type="base64Binary"/>
      <element name="Order" type="positiveInteger"/>
    </sequence>
  </complexType>

  <!--Уравнение эллиптической кривой-->

  <complexType name="CurveParamsType">
    <sequence>
      <element name="A" type="base64Binary"/>
      <element name="B" type="base64Binary"/>
      <element name="Seed" type="base64Binary" minOccurs="0"/>
    </sequence>
  </complexType>
</schema>

Библиография

[1] Проект руководящего документа Республики Беларусь Банковские технологии. Протоколы формирования общего ключа. – Мн. : Национальный банк Республики Беларусь, 1997

[2] Bray T., Paoli J., Sperberg-McQueen C.M., Maler E., Yergeau F., Cowan J. Extensible Markup Language (XML) 1.1 (Second Edition). W3C Recommendation (2006). Avail. at: http://www.w3.org/TR/xml11 (Расширяемый язык разметки (XML) 1.1 (второе издание))

[3] Eastlake D., Reagle J., Solo D., Hirsch F., Roessler T. XML Signature Syntax and Processing (Second Edition). W3C Recommendation (2008). Avail. at: http://www.w3.org/TR/xmldsig-core/. (Синтаксис и обработка подписи XML (второе издание))

[4] Eastlake D., Reagle J., Solo D., Hirsch F., Nyström M., Roessler T., Yiu K. XML Signature Syntax and Processing Version 1.1. W3C Recommendation (2013). Avail. at: http://www.w3.org/TR/xmldsig-core1/. (Синтаксис и обработка подписи XML Version 1.1)

[5] Eastlake D., Reagle J., Imamura T., Dillaway B., Simon E. XML Encryption Syntax and Pro-cessing. W3C Recommendation (2002). Avail. at: http://www.w3.org/TR/xmlenc-core/. (Синтаксис и обработка XML-шифрования.)

[6] Eastlake D., Reagle J., Hirsch F., Roessler T., Imamura T., Dillaway B., Simon E., Yiu., Nyström M. XML Encryption Syntax and Processing Version 1.1. W3C Recommendation (2013). Avail. at: http://www.w3.org/TR/xmlenc-core1/. (Синтаксис и обработка XML-шифрования Версия 1.1.)

You can’t perform that action at this time.