Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 4.0
»
"Закрытый ключ на указанном контейнере не соответствует открытому ключу в сертификате"
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2010(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 2 раз
|
Есть контейнер с закрытым ключом, но без встроенного сертификата. «Протестировать» контейнер в КриптоПро проходит успешно, без ошибок. Есть сертификат к этому контейнеру (точно-точно к этому). Срок действия сертификата 2010-2011 год. Нужно расшифровать старый документ. Пробую в КриптоПро «Установить личный сертификат». И получаю сообщение "Закрытый ключ на указанном контейнере не соответствует открытому ключу в сертификате, выберите другой ключевой контейнер". "Найти контейнер автоматически" тоже контейнер не находит. Windows 7 x64. КриптоПро 4.0.9963. В чем проблема? Как побороть? p. s. Та же самая ситуация и с более старым контейнером и сертификатом к нему (2009-2010 год). Отредактировано пользователем 7 июня 2022 г. 13:13:50(UTC)
| Причина: Не указана
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 396 раз в 366 постах
|
Добрый день. Судя по сроку 11-12 лет возможна проблема с алгоритмом ключа. Какой алгоритм ключа в данном сертификате? Если вдруг имеется в виду сертификат с ключом гост-94, то алгоритм давненько не поддерживается (поддерживался во времена первых релизов КриптоПро 3.6, в последних релизах 3.6 его поддержки уже нет; в 4.0 и 5.0 насколько помню не было уже изначально). При неподдерживаемом алгоритме Вам не удастся совместить открытый ключ в сертификате с закрытым ключом в контейнере. Поэтому для расшифровки именно гост-94 потребуется один из первых релизов 3.6 или более старой версии. Если же ключ гост-2001, то все должно все еще поддерживаться на текущих версиях. Если сертификат "точно точно" соответствует контейнеру, то ошибка может аукнуться серьезными проблемами в работе криптопровайдера и это хороший повод обратиться на портал техподдержки. Как перепроверить от того ли контейнера сертификат "на коленке" (без обращения к криптопровайдеру): в папке контейнера найти файл header.key, загрузить его в ASN.1 просмотрщик, найти там элементы с длиной 8, один из них должен быть первыми байтами открытого ключа. В сертификате найти открытый ключ, пропустив первые 0440 дальше должны быть те самые 8 байтов.  pubkey_compare.png (69kb) загружен 7 раз(а).Если же надо более точно, то потребуется экспорт открытого ключа из контейнера программно штатными интерфейсами криптопровайдера. Отредактировано пользователем 16 июня 2022 г. 7:32:36(UTC)
| Причина: Не указана
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2010(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 2 раз
|
В свойствах сертификата написано: Алгоритм подписи: ГОСТ Р 34.11/34.10-2001 Алгоритм хэширования подписи: ГОСТ Р 34.11-94 Открытый ключ: ГОСТ Р 34.10-2001 (512 Bits)
При тестировании контейнера закрытого ключа пишет: алгоритм ГОСТ Р 34.10-2001 DH ГОСТ Р 34.10 256 бит, параметры обмена по умолчанию ГОСТ Р 34.11-94, параметры по умолчанию ГОСТ 28147-89, параметры по умолчанию
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,499
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 607 раз в 420 постах
|
Ваш сертификат наверняка не от этого закрытого ключа. Дальше варианта два: Адресатом был тот закрытый ключ, которой у вас есть, тогда расшифровать вы сможете. Для расшифрования не требуется иметь сертификат в контейнере. С математической точки зрения и сертификат не нужен, но API устроен так, что он будет требоваться. Можно будет попытаться это требование обмануть. Адресатом быт тот сертификат, который у вас есть, но от которого у вас нет закрытого ключа. Тогда расшифровать вы не сможете.
Для начала сделайте дамп зашифрованного сообщения
Код:certutil -dump зашифрованный_файл
В нём вы найдёте информацию о сертификатах адресатов в таком духе
Код:Recipient Info[0]:
CMSG_KEY_TRANS_RECIPIENT(1)
CERT_ID_ISSUER_SERIAL_NUMBER(1)
Serial Number: 43bdb9aa00000044b353
Issuer: CN=test-ca, DC=cp, DC=ru
Key Encryption Algorithm:
Algorithm ObjectId: 1.2.643.7.1.1.1.1 GOST R 34.10-2012 256 bit
Algorithm Parameters:
0000 30 13 06 07 2a 85 03 02 02 24 00 06 08 2a 85 03
0010 07 01 01 02 02
1.2.643.2.2.36.0 GOST R 34.10 256 bit, default exchange parameters
1.2.643.7.1.1.2.2 GOST R 34.11-2012 256 bit
Если Serial Number и Issuer вашего сертификата совпадают, то шансов на расшифрование почти нет.Отредактировано пользователем 9 июня 2022 г. 10:14:43(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.09.2010(UTC) Сообщений: 18
Сказал(а) «Спасибо»: 2 раз
|
Автор: Андрей Русев  Ваш сертификат наверняка не от этого закрытого ключа. Я так не думаю. У меня таких закрытых ключей и сертификатов к ним штук 4-6 наберется. Все старые, за 2006-2011 год. Выданы двумя разными удостоверяющими центрами. Даты у файлов сертификатов и файлов закрытых ключей совпадают и соответствуют датам, когда они были созданы. Еще заметил, что у них у всех файл header.key имеет размер 52 байта (у более новых 72, 107, 110 байт). И для всех них КриптоПро пишет такую ошибку.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,499
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 607 раз в 420 постах
|
А пришлите (можно в личку) выдачу этой команды, файл с открытым ключом, который она создаст, и сертификат: Код:csptest -keyset -container имя_контейнера -keytype exchange -info -check -export public_key.bin
Если можете прислать в личку сертификат + контейнер, то разобраться будет легче. |
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 396 раз в 366 постах
|
Автор: sandrey  Еще заметил, что у них у всех файл header.key имеет размер 52 байта (у более новых 72, 107, 110 байт). В принципе размер ожидаемый, раньше была другая версия контейнера. У меня 110 байт не попались.
У меня новые по гост-2012 создаются 116 байт, в том числе 35 байт это расширение "срок действия закрытого ключа", то есть 116-35=81 байт это реальный размер контейнера без расширения. Для гост-2001 сейчас создается размер на 3 байта короче (оиды короче), то есть 113 байт/78 байт. Нашлись 2016 года 78 байт и 2018 года 107 байт (то есть 72 байта без расширения, в таком нет еще одного элемента).
Добавлена картинка к сообщению выше о проверке "на коленке". Отредактировано пользователем 16 июня 2022 г. 7:39:47(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,499
Сказал(а) «Спасибо»: 42 раз Поблагодарили: 607 раз в 420 постах
|
Это был контейнер версии 1. Проблема решилась конвертацией в контейнер версии 2. К счастью, ключ был экспортируемый, поэтому для конвертации достаточно было в КриптоПро CSP 4.0 скопировать контейнер. |
|
 2 пользователей поблагодарили Русев Андрей за этот пост.
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро CSP 4.0
»
"Закрытый ключ на указанном контейнере не соответствует открытому ключу в сертификате"
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close