Совместимость ГОСТ в libksba НАЙС.ОС: матрица и диагностика¶
Матрица возможностей расширения НАЙС.ОС¶
Таблица показывает, что реализовано на уровне разбора и кодирования форматов libksba. Она не означает, что любой документ данного типа уже прошёл сквозное испытание с GPGSM или КриптоПро.
| Тип данных | Возможность libksba НАЙС.ОС | Что требуется дополнительно |
|---|---|---|
| Сертификат ГОСТ 2001 | Чтение ключа, кривой, параметров и подписи | Криптопроверка, цепочка доверия |
| Сертификат ГОСТ 2012/256 | Чтение открытого ключа и подписи в формате RFC 9215 | Поддержка алгоритма в libgcrypt и доверие |
| Сертификат ГОСТ 2012/512 | Чтение соответствующих структур и длин полей | Поддержка алгоритма и набора кривой |
| CryptoPro-A/B/C | Распознавание параметров, представленных в расширении | Проверка конкретного сертификата и приложения |
| ТК26 256/512 | Таблицы известных OID и преобразование представления | Поддержка соответствующей кривой вычислительным компонентом |
| CMS SignedData | Разбор ГОСТ-подписей и отдельных совместимых кодировок | GPGSM/libgcrypt, наличие исходника для detached, доверие |
| CMS EnvelopedData с ГОСТ 28147-89 | Разбор параметров, IV, набора замен и некоторых схем переноса ключа | Закрытый ключ, GPGSM, криптографический backend, проверка на файлах |
CMS с произвольным KeyAgreeRecipientInfo |
Не гарантировано расширением r4 | Отдельная проверка формата и поддержка приложения |
CMS с нестандартной упаковкой или maskKey |
Не гарантировано; часть форм отвергается | Другое совместимое средство или согласование профиля |
| PFX/PKCS#12 | Отдельный формат, не основной предмет патча | Поддержка в OpenSSL/CSP и необходимые параметры PFX |
| ГОСТ-TLS, ГОСТ-IPsec, шифрование дисков | Не добавляется патчем libksba | Отдельные реализации соответствующих протоколов |
| ГОСТ Р 34.10-94 | Не следует отождествлять с ГОСТ 2001 | Отдельный профиль и испытания |
Почему одинаковое слово «ГОСТ» не гарантирует совместимость¶
Два поставщика могут реализовать одинаковые математические алгоритмы, но по-разному записывать сертификаты, значения подписей, наборы параметров, атрибуты CMS и данные для переноса ключей. В результате документ не будет прочитан или принят. В расширении НАЙС.ОС предусмотрены несколько таких вариантов, особенно характерных для сертификатов и CMS КриптоПро. Однако совместимость всегда устанавливается для конкретного формата, версии программ и реального файла.
Дерево поиска неисправностей¶
Ошибка 1. Сертификат не читается¶
- Проверьте, что файл действительно X.509 и известен его формат DER/PEM.
- Посмотрите OID открытого ключа; уточните семейство ГОСТ и набор параметров.
- Проверьте установленный RPM libksba и отсутствие сторонней версии приложения.
- Попробуйте импорт в тестовый GPGSM без изменения рабочего профиля.
- Если только один поставщик вызывает ошибку, запросите открытый тестовый сертификат и спецификацию его кодирования.
Ошибка 2. Сертификат читается, но не подтверждается подпись¶
Проверьте, отличается ли проблема от ошибки доверия к УЦ. Получите точное сообщение GPGSM, проверьте исходный подписанный документ, сертификат, параметры кривой, длину и алгоритм подписи. Не заменяйте ГОСТ-подпись на ECDSA и не выключайте проверку. Для старых файлов уточните ГОСТ 2001/Стрибог/ГОСТ94.
Ошибка 3. В выводе «нет секретного ключа»¶
Это обычно проблема доступа к закрытому ключу, а не чтения CMS. Проверьте, кому адресован документ, зарегистрирован ли ключ у текущего пользователя и доступно ли средство хранения. Никогда не перемещайте закрытый ключ в открытый каталог ради диагностики.
Ошибка 4. Неизвестный набор замен или неподдерживаемые параметры¶
В сообщениях ГОСТ 28147-89 важен OID набора замен (S-box), восьмибайтовый IV и формат переноса ключа. Не заменяйте эти значения вручную: документ станет неэквивалентным исходному. Зафиксируйте OID и запросите поддерживаемый профиль у партнёра.
Ошибка 5. Не удаётся расшифровать CMS¶
Разделяйте этапы: разобран ли CMS, выбран ли правильный адресат, найден ли закрытый ключ, возможно ли восстановить ключ содержимого и удалось ли расшифровать данные. Если GPGSM сообщает ошибку одного этапа, не считайте это доказательством сбоя других. Для несовместимых типов RecipientInfo может потребоваться иной профиль CMS.
Ошибка 6. OpenSSL работает, GPGSM — нет, или наоборот¶
У этих инструментов разная архитектура, наборы криптографических провайдеров и политика доверия. Успех openssl x509/openssl cms доказывает результат для OpenSSL, а не результат GPGSM. Сохраняйте оба журнала и сравнивайте не сообщения в целом, а стадию отказа.
Учёт совместимости с КриптоПро¶
Рекомендуемая таблица испытаний:
| Направление обмена | Тип файла | Статус до испытания |
|---|---|---|
| КриптоПро → НАЙС.ОС | ГОСТ 2001 сертификат X.509 | Формат предусмотрен; проверить конкретный файл |
| КриптоПро → НАЙС.ОС | ГОСТ 2012/256 или /512 сертификат | Формат предусмотрен; проверить конкретный файл |
| КриптоПро → НАЙС.ОС | SignedData, attached | Требуется реальный CMS-файл и проверка подписи |
| КриптоПро → НАЙС.ОС | SignedData, detached | Требуются CMS, исходные байты и доверие |
| КриптоПро → НАЙС.ОС | EnvelopedData ГОСТ28147 | Требуется сквозное расшифрование с тестовым ключом |
| НАЙС.ОС → КриптоПро | SignedData | Требуется создание GPGSM и проверка КриптоПро |
| НАЙС.ОС → КриптоПро | EnvelopedData | Требуется создание GPGSM и расшифрование КриптоПро |
| Любое направление | Сертификат на токене | Требуется отдельная инфраструктура PKCS#11/CSP |
Успех одного направления нельзя переносить на обратное. Нельзя также распространять результат с одной версии КриптоПро или GnuPG на все версии без нового тестирования.
Как оформить заключение об испытаниях¶
Для каждого теста сохраняйте дату, версии RPM, контрольные суммы тестовых файлов, тип CMS, OID алгоритмов и кривых, набор замен, способ получения сертификата, тип доступа к ключу, команды, полный текст ошибки и вывод об успешности. Не публикуйте секретные значения, пароли, PIN, рабочие закрытые ключи и конфиденциальное содержимое. Хороший протокол содержит хотя бы один успешный пример и один отрицательный тест с умышленно повреждённым документом.
Важная оговорка о проверке патча¶
Исходный файл адаптация libksba НАЙС.ОС содержит расширения парсера CMS и набор тестовых сертификатов и проверок для X.509/ГОСТ. Однако наличие исходников не равно результатам успешной установки именно этого RPM на работающий сервер. В предоставленном патче также не представлен полный журнал сквозных тестов CMS EnvelopedData с реальными документами контрагента. Поэтому публичные описания говорят о поддержке определённых форматов и возможности построить совместимый процесс, а не обещают безусловную работу любого ГОСТ-CMS контейнера.
Нормативные и технические источники¶
- RFC 4490 — старые ГОСТ-алгоритмы в CMS.
- RFC 4491 — ГОСТ 2001 в X.509.
- RFC 5652 — общая структура CMS.
- RFC 9215 — ГОСТ 2012 в X.509.
- Официальный проект Libksba — назначение библиотеки.
- Руководство GPGSM — пользовательские команды.
Вернуться к обзору libksba в НАЙС.ОС.