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

Совместимость ГОСТ в 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. Сертификат не читается

  1. Проверьте, что файл действительно X.509 и известен его формат DER/PEM.
  2. Посмотрите OID открытого ключа; уточните семейство ГОСТ и набор параметров.
  3. Проверьте установленный RPM libksba и отсутствие сторонней версии приложения.
  4. Попробуйте импорт в тестовый GPGSM без изменения рабочего профиля.
  5. Если только один поставщик вызывает ошибку, запросите открытый тестовый сертификат и спецификацию его кодирования.

Ошибка 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 контейнера.

Нормативные и технические источники

Вернуться к обзору libksba в НАЙС.ОС.