Реестр 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 и ссылок на первоисточники.
Где чаще ошибаются¶
- Подменяют OID алгоритма подписи OID открытого ключа.
- Забывают параметры кривой в
SubjectPublicKeyInfo. - Полагают, что OID «Стрибога» заставит OpenSSL загрузить ГОСТ Provider.
- Путают внешние типы CMS
signedData/envelopedDataс внутренними идентификаторами алгоритмов. - Используют имя, назначенное библиотекой, вместо числового OID: имена могут отличаться между версиями.