Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline mike124  
#1 Оставлено : 2 октября 2018 г. 20:38:23(UTC)
mike124

Статус: Новичок

Группы: Участники
Зарегистрирован: 02.10.2018(UTC)
Сообщений: 4

Стоял КриптоПро 3.6. Все работало.
Обновил до версии 4.0. Цифровая подпись накладывается, дешифрование не проходит.
Выдается ошибка: Набор ключей не определен.
Пробовал переустановить контейнер и сертификат: не помогает.
Протестировал контейнер с помощью CSP: генерация ключа обмена проходит успешно.
Остальные тесты тоже успешны. Срок действия ключей не истек.

Подскажите, что не так?
Offline Максим Коллегин  
#2 Оставлено : 2 октября 2018 г. 22:36:03(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,423
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 734 раз в 632 постах
А каким приложением расшифровываете? И каким зашифровывали?
Какая версия 4.0?
Знания в базе знаний, поддержка в центре поддержки
Offline mike124  
#3 Оставлено : 3 октября 2018 г. 8:41:17(UTC)
mike124

Статус: Новичок

Группы: Участники
Зарегистрирован: 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)  | Причина: Не указана

Offline two_oceans  
#4 Оставлено : 3 октября 2018 г. 12:54:51(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 397 раз в 367 постах
Не должно быть такого эффекта из-за самого гост-2001. У меня самописное приложение (правда не dotNet) прекрасно работает с 4.0.9944 (скачанной с официального сайта КриптоПро) и сертификатами гост-2001. С 4.0.9842 были некритические странности (первый вызов CryptAcquireContext возвращал "плохая подпись"), но скорее из-за того, что сама версия была неизвестного происхождения.

Возможно нужно установить/обновить пакет поддержки КриптоПро в dotNet, "стандартные средства" прозвучали как-то настораживающе. Ну и вообще для работы с подписями желательно .Net 4.5 и новее, были исправления в плане работы (каноникализацию исправили по стандарту и т.д.).
Offline mike124  
#5 Оставлено : 3 октября 2018 г. 13:28:20(UTC)
mike124

Статус: Новичок

Группы: Участники
Зарегистрирован: 02.10.2018(UTC)
Сообщений: 4

Автор: two_oceans Перейти к цитате
Не должно быть такого эффекта из-за самого гост-2001.


В нашей жизни, куда ни плюнь, много чего не должно быть... А оно как суслик: его не видно, но он существует.

Автор: two_oceans Перейти к цитате
Возможно нужно установить/обновить пакет поддержки КриптоПро в dotNet, "стандартные средства" прозвучали как-то настораживающе. Ну и вообще для работы с подписями желательно .Net 4.5 и новее, были исправления в плане работы (каноникализацию исправили по стандарту и т.д.).


Я не использую средства КриптоПро. Стандартные средства .NET работают с криптопровайдером как надо. Что касается подписей, то они, как раз, накладываются без проблем.
Нет, если для КриптоПро 4 голый .NET уже не приемлем, я буду искать другое решение. Если же работа возможна посредством стандартных возможностей ОС, то хотелось бы понять, что не так.
Вполне может оказаться, что и ЭЦП накладывается как-то не так, но система исключений не дает...
Offline Максим Коллегин  
#6 Оставлено : 3 октября 2018 г. 17:04:23(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,423
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 38 раз
Поблагодарили: 734 раз в 632 постах
А какой криптопровайдер в ссылке на ключ в сертификате? Можно посмотреть в мастере тестирования контейнера.
Знания в базе знаний, поддержка в центре поддержки
Offline mike124  
#7 Оставлено : 3 октября 2018 г. 17:29:20(UTC)
mike124

Статус: Новичок

Группы: Участники
Зарегистрирован: 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
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.