Статус: Новичок
Группы: Участники
Зарегистрирован: 02.10.2018(UTC) Сообщений: 4
|
Стоял КриптоПро 3.6. Все работало. Обновил до версии 4.0. Цифровая подпись накладывается, дешифрование не проходит. Выдается ошибка: Набор ключей не определен. Пробовал переустановить контейнер и сертификат: не помогает. Протестировал контейнер с помощью CSP: генерация ключа обмена проходит успешно. Остальные тесты тоже успешны. Срок действия ключей не истек.
Подскажите, что не так?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
А каким приложением расшифровываете? И каким зашифровывали? Какая версия 4.0? |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.10.2018(UTC) Сообщений: 4
|
Используется самописное приложение. C#, стандартные средства .NET 4.0. КриптоПро версии 4.0.9944. Вот функция, которая вызывает исключение: Код:
public static byte[] DecryptByteArray(byte[] encripted_bytes, X509Certificate2 cert)
{
if (cert == null)
throw new ArgumentNullException("Не задан сертификат для дешифрования");
if (encripted_bytes == null)
throw new ArgumentNullException("Не заданы дешифруемые данные");
// Создаем объект для декодирования и расшифрования.
System.Security.Cryptography.Pkcs.EnvelopedCms enveloped_data = new EnvelopedCms();
// Декодируем сообщение.
try
{
enveloped_data.Decode(encripted_bytes);
}
catch (Exception z)
{
throw new System.Security.Cryptography.CryptographicException("Декодирование", z);
}
try
{
enveloped_data.Decrypt(enveloped_data.RecipientInfos[0], new X509Certificate2Collection(cert)); // ЭТА ОПЕРАЦИЯ ВЫЗЫВАЕТ ИСКЛЮЧЕНИЕ
}
catch (Exception z)
{
throw new System.Security.Cryptography.CryptographicException("Дешифрование", z);
}
return enveloped_data.ContentInfo.Content;
}
Шифруем тоже самописным приложением на базе .NET, стандартные средства. Сейчас поставил точку останова на вызове Decrypt. Посмотрел сертификат (переменная cert). На свойстве PrivateKey висит исключение "Алгоритм ключа сертификата не поддерживается.". Но наложение ЭЦП работает. У сертификата Версия V3. Раньше работал под КриптоПро 2 и 3. Алгоритм хэширования подписи ГОСТ Р 34.11-94, алгоритм подписи ГОСТ Р 34.11/34.10-2001. Открытый ключ: ГОСТ Р 34.10-2001. Алгоритм отпечатка: sha1. Каких-то других алгоритмов нет. Использование ключа: Цифровая подпись, Неотрекаемость, Шифрование ключей, Шифрование данных (f0). Т.е., получается, старыми сертификатами пользоваться нельзя? Отредактировано пользователем 3 октября 2018 г. 8:43:56(UTC)
| Причина: Не указана
|
|
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 397 раз в 367 постах
|
Не должно быть такого эффекта из-за самого гост-2001. У меня самописное приложение (правда не dotNet) прекрасно работает с 4.0.9944 (скачанной с официального сайта КриптоПро) и сертификатами гост-2001. С 4.0.9842 были некритические странности (первый вызов CryptAcquireContext возвращал "плохая подпись"), но скорее из-за того, что сама версия была неизвестного происхождения.
Возможно нужно установить/обновить пакет поддержки КриптоПро в dotNet, "стандартные средства" прозвучали как-то настораживающе. Ну и вообще для работы с подписями желательно .Net 4.5 и новее, были исправления в плане работы (каноникализацию исправили по стандарту и т.д.).
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.10.2018(UTC) Сообщений: 4
|
Автор: two_oceans  Не должно быть такого эффекта из-за самого гост-2001. В нашей жизни, куда ни плюнь, много чего не должно быть... А оно как суслик: его не видно, но он существует. Автор: two_oceans  Возможно нужно установить/обновить пакет поддержки КриптоПро в dotNet, "стандартные средства" прозвучали как-то настораживающе. Ну и вообще для работы с подписями желательно .Net 4.5 и новее, были исправления в плане работы (каноникализацию исправили по стандарту и т.д.). Я не использую средства КриптоПро. Стандартные средства .NET работают с криптопровайдером как надо. Что касается подписей, то они, как раз, накладываются без проблем. Нет, если для КриптоПро 4 голый .NET уже не приемлем, я буду искать другое решение. Если же работа возможна посредством стандартных возможностей ОС, то хотелось бы понять, что не так. Вполне может оказаться, что и ЭЦП накладывается как-то не так, но система исключений не дает...
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,423  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 38 раз Поблагодарили: 734 раз в 632 постах
|
А какой криптопровайдер в ссылке на ключ в сертификате? Можно посмотреть в мастере тестирования контейнера. |
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.10.2018(UTC) Сообщений: 4
|
Вот все данные сертификата из мастера тестирования:
Проверка завершена успешно ошибок не обнаружено Контейнер закрытого ключа компьютера имя 9ce10a19-48b3-4e51-a78b-d1469984b581 уникальное имя REGISTRY\\9ce10a19-48b3-4e51-a78b-d1469984b581 FQCN \\.\REGISTRY\9ce10a19-48b3-4e51-a78b-d1469984b581 проверка целостности контейнера успешно Ключ обмена доступен длина ключа 512 бит экспорт открытого ключа успешно вычисление открытого ключа успешно импорт открытого ключа успешно подпись успешно проверка успешно создание ключа обмена успешно экспорт ключа разрешен алгоритм ГОСТ Р 34.10-2001 DH ГОСТ Р 34.10-2001, параметры обмена по умолчанию ГОСТ Р 34.11-94, параметры по умолчанию ГОСТ 28147-89, параметры по умолчанию сертификат в контейнере соответствует закрытому ключу сертификат в хранилище My E=..., C=RU, S=Московская, L=..., O=..., OU=Администрация, CN=..., T=Генеральный директор REGISTRY\\9ce10a19-48b3-4e51-a78b-d1469984b581; Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider#75; dwFlags: 0x00000020; dwKeySpec: AT_KEYEXCHANGE#1 имя сертификата ... субъект E=9..., C=RU, S=Московская, L=..., O=..., OU=Администрация, CN=..., T=Генеральный директор поставщик E=cpca@cryptopro.ru, C=RU, L=Москва, O=ООО КРИПТО-ПРО, CN=УЦ KPИПTO-ПPO действителен с 30 октября 2017 г. 11:30:00 действителен по 30 октября 2022 г. 11:40:00 ключ действителен с 30 октября 2017 г. 11:30:00 ключ действителен по 30 октября 2018 г. 11:30:00 серийный номер 1852 5D8D 000E 0002 17C1 Срок действия закрытого ключа 30 октября 2018 г. 11:30:00 Использование ключа обмена разрешено до окончания срока действия закрытого ключа. Ключ подписи отсутствует загрузка ключей успешно Версия контейнера 2 Расширения контейнера некритическое Расширение контейнера КриптоПро CSP. Срок действия ключа обмена действителен по 2 января 2020 г. 1:33:03
Я так понимаю, криптопровайдер такой: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider#75
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close