Перейти к содержанию

Реестр OID российских криптографических алгоритмов

Проверяемые числовые идентификаторы, примеры чтения ASN.1 и справочник для сопоставления контейнеров.

Документация ПО — НАЙС.ОС CLOUD. Это самостоятельная учебно-справочная статья. Команды приведены для изучения и диагностики; операции с ключами, дисками и действующими сервисами выполняют только после резервного копирования и проверки назначения.

Что означает OID

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

Для ГОСТ-2012 используется ветвь 1.2.643.7.1. Исторические наборы CryptoPro используют другие ветви. Ошибочное отождествление «совпадает корень OID» с совместимостью форматов — распространённая причина неработающей подписи.

Основные идентификаторы

Назначение Числовой OID Источник
Открытый ключ ГОСТ Р 34.10-2012, 256 бит 1.2.643.7.1.1.1.1 RFC 9215, § 4.1
Открытый ключ ГОСТ Р 34.10-2012, 512 бит 1.2.643.7.1.1.1.2 RFC 9215, § 4.1
Стрибог-256 1.2.643.7.1.1.2.2 RFC 9215, § 3
Стрибог-512 1.2.643.7.1.1.2.3 RFC 9215, § 3
Подпись ГОСТ-2012/256 со Стрибог-256 1.2.643.7.1.1.3.2 RFC 9215, § 2
Подпись ГОСТ-2012/512 со Стрибог-512 1.2.643.7.1.1.3.3 RFC 9215, § 2
HMAC-Стрибог-256 1.2.643.7.1.1.4.1 RFC 7836, § 4.1.1
HMAC-Стрибог-512 1.2.643.7.1.1.4.2 RFC 7836, § 4.1.2
CMS data 1.2.840.113549.1.7.1 RFC 5652, § 3
CMS signedData 1.2.840.113549.1.7.2 RFC 5652, § 5
CMS envelopedData 1.2.840.113549.1.7.3 RFC 5652, § 6

Для кривых ГОСТ-2012, параметров шифрования и исторических CryptoPro-ветвей не угадывайте числовой код по имени: сверяйте его со спецификацией и таблицей параметров целевой реализации.

Локальная диагностика

openssl list -objects 2>/dev/null | grep -Ei 'gost|streebog|tc26' | head -60
openssl asn1parse -inform DER -in certificate.der -i | head -80
openssl x509 -inform DER -in certificate.der -noout -text

Обнаруженный в выводе asn1parse OID относится к конкретному ASN.1-полю. Чтобы понять, какому — смотрите его положение в родительской структуре, а не только значение. Для бинарных CMS сначала определите contentType во внешнем ContentInfo.

Машинный справочник

В проекте находится открытый набор docs/assets/data/gost-oid.json. Команда python3 tools/gost_oid_lookup.py --list выводит его без сетевого доступа; --oid 1.2.643.7.1.1.2.2 находит одну запись. Путь к файлу в опубликованном сайте — /assets/data/gost-oid.json. Он пригоден для поиска по OID и ссылок на первоисточники.

Где чаще ошибаются

  1. Подменяют OID алгоритма подписи OID открытого ключа.
  2. Забывают параметры кривой в SubjectPublicKeyInfo.
  3. Полагают, что OID «Стрибога» заставит OpenSSL загрузить ГОСТ Provider.
  4. Путают внешние типы CMS signedData/envelopedData с внутренними идентификаторами алгоритмов.
  5. Используют имя, назначенное библиотекой, вместо числового OID: имена могут отличаться между версиями.

Первоисточники и дополнительное чтение

  • RFC 9215 — ГОСТ-2012 в сертификатах и списках отзыва.
  • RFC 7836 — HMAC, PRF, KDF, VKO и параметры кривых.
  • RFC 5652 — базовая структура CMS и типы содержимого.