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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline MrTvink  
#1 Оставлено : 23 марта 2021 г. 7:45:47(UTC)
MrTvink

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

Группы: Участники
Зарегистрирован: 05.03.2021(UTC)
Сообщений: 6
Откуда: Земля

Добрый день,

Пишу функцию для формирования отсоединённой подписи PKCS#7 по представленному алгоритму:
1. Из XML файл-а (PACK_DATA) вычисляется хэш по алгоритму ГОСТ Р 34.11-94.
2. Полученный хэш кодируется в Base64.
3. Base64 данные переводятся в текст в кодировке UTF-16LE.
4. Из полученного текста создается отсоединенная подпись PKCS#7.
Сделал по аналогии с примером simple.zip\CMS\cs\AddSignDetached.cs
Код:

        string Crypto(string way, string CertThumb)
        {
            XmlDocument xmlDoc = new XmlDocument();
            X509Store store = new X509Store("my", StoreLocation.CurrentUser);
            X509Certificate2 cert = null;
            xmlDoc.Load(way);
            store.Open(OpenFlags.ReadOnly);
            foreach (X509Certificate2 certs in store.Certificates.Find(X509FindType.FindByThumbprint, CertThumb, true))
            { 
                cert = certs;
            }
            store.Close();
            ///-------------CryptoPro-----------------///
            // ГОСТ Р.34-11 с отсоединенной подписью
            byte[] bytes = Encoding.Default.GetBytes(xmlDoc.OuterXml);
            Gost3411 gost3411 = new Gost3411CryptoServiceProvider();
            byte[] result = gost3411.ComputeHash(bytes);
            string resultStr = Convert.ToBase64String(result);
            result = Convert.FromBase64String(resultStr);
            ContentInfo contentInfo = new ContentInfo(result);
            SignedCms signedCms = new SignedCms(contentInfo, true);
            CmsSigner signer = new CmsSigner(cert);
            //sha1RSA 1.3.14.3.2.26 GOST 1.2.643.2.2.9 Gost(2010)"1.2.643.2.2.19"
            signer.DigestAlgorithm = new Oid("1.2.643.2.2.9");
            signedCms.ComputeSignature(signer); //Ошибка тут
            result = signedCms.Encode();
            return result.ToString();
        }

Ловлю ошибку:
System.Security.Cryptography.CryptographicException: "'1.2.643.2.2.9' is not a known hash algorithm."

Не могу понять, как исправить или понять конкретно в чём проблема(в сертификате или не та версия CryptoPro .net)
При попытке поставить OID sha1RSA ошибка проходит, но выходит другая (System.Security.Cryptography.CryptographicException: "Could not determine signature algorithm for the signer certificate.").
Стоит:
ex-Sharpei версии 1.4.7132.03
Microsoft Visual Studio Community 2019 Версия 16.9.1

Отредактировано пользователем 23 марта 2021 г. 14:39:52(UTC)  | Причина: Выделить код

Offline Санчир Момолдаев  
#2 Оставлено : 23 марта 2021 г. 22:04:21(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 754
Российская Федерация

Сказал(а) «Спасибо»: 63 раз
Поблагодарили: 157 раз в 153 постах
Добрый день!
переустановите КриптоПро .NET
1. uninstall
2. reboot
3. install
4. reboot
Техническую поддержку оказываем тут
Наша база знаний
Offline MrTvink  
#3 Оставлено : 24 марта 2021 г. 9:42:38(UTC)
MrTvink

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

Группы: Участники
Зарегистрирован: 05.03.2021(UTC)
Сообщений: 6
Откуда: Земля

Переустановил, не помогло, подгружал в проект эти библиотеки:
CryptoPro.Sharpei.Base.dll
CryptoPro.Sharpei.ServiceModel.dll
CryptoPro.Sharpei.ServiceModel45.dll
CryptoPro.Sharpei.Xml.dll

Есть предположение что не корректно работаю с CryptoPro .Net или версия .Net Framework
забыл добавить версия .Net Framework 4.8.03752.

Отредактировано пользователем 24 марта 2021 г. 10:03:01(UTC)  | Причина: Догадки

Offline Санчир Момолдаев  
#4 Оставлено : 26 марта 2021 г. 10:02:06(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 754
Российская Федерация

Сказал(а) «Спасибо»: 63 раз
Поблагодарили: 157 раз в 153 постах
а версия КриптоПро CSP какая установлена?
используйте CSP 5.0 R2
Техническую поддержку оказываем тут
Наша база знаний
Offline MrTvink  
#5 Оставлено : 26 марта 2021 г. 10:23:58(UTC)
MrTvink

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

Группы: Участники
Зарегистрирован: 05.03.2021(UTC)
Сообщений: 6
Откуда: Земля

КриптоПро 4.0.9963 (5-ку пока не пробовал),
Откатил .netFramework в проекте на 4.6 ошибка сменилась на:
System.Security.Cryptography.CryptographicException: "Отказано в доступе." (в данный момент разбираюсь с ней, и хочу посмотреть приведет ли она опять к ошибке с OID)

Offline Санчир Момолдаев  
#6 Оставлено : 26 марта 2021 г. 10:24:46(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 754
Российская Федерация

Сказал(а) «Спасибо»: 63 раз
Поблагодарили: 157 раз в 153 постах
Автор: MrTvink Перейти к цитате
КриптоПро 4.0.9963 (5-ку пока не пробовал),
Откатил .netFramework в проекте на 4.6 ошибка сменилась на:
System.Security.Cryptography.CryptographicException: "Отказано в доступе." (в данный момент разбираюсь с ней, и хочу посмотреть приведет ли она опять к ошибке с OID)



скорее всего истек срок действия ЗК. попробуйте протестировать ее в панели КриптоПро CSP
Техническую поддержку оказываем тут
Наша база знаний
Offline MrTvink  
#7 Оставлено : 29 марта 2021 г. 10:32:03(UTC)
MrTvink

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

Группы: Участники
Зарегистрирован: 05.03.2021(UTC)
Сообщений: 6
Откуда: Земля

Результат теста сертификата:

Код:
Проверка завершилась с ошибкой 	
Контейнер закрытого ключа      	пользователя
  имя                          	2021 - Реестр
  уникальное имя               	REGISTRY\\2021 - Реестр
  FQCN                         	\\.\REGISTRY\2021 - Реестр
  проверка целостности контейнера 	успешно
Ключ обмена                    	доступен
  длина ключа                  	512 бит
  экспорт открытого ключа      	успешно
  вычисление открытого ключа   	успешно
  импорт открытого ключа       	успешно
  подпись                      	Ошибка 0x80090010: Отказано в доступе.    
  создание ключа обмена        	успешно
  экспорт ключа                	разрешен
  алгоритм                     	ГОСТ Р 34.10-2001 DH
                               	ГОСТ Р 34.10 256 бит, параметры обмена по умолчанию
                               	ГОСТ Р 34.11-94, параметры по умолчанию
                               	ГОСТ 28147-89, параметры по умолчанию
  сертификат в контейнере      	соответствует закрытому ключу
  поставщик                    	ОГРН=1167746447461, ИНН=007733284010, C=RU, L=Москва, OU=Удостоверяющий центр, O=ФГУП ГНИВЦ ФНС России, CN=GNIVC FNS RUS
  действителен с               	4 марта 2021 г. 14:26:52
  действителен по              	4 марта 2022 г. 14:36:52
  серийный номер               	706C 9E00 E1AC AA9E 482E 1847 EE26 C230
Срок действия закрытого ключа  	4 июня 2022 г. 14:18:43
Использование ключа обмена     	разрешено до окончания срока действия закрытого ключа.
Ключ подписи                   	отсутствует       //На том где все корректно так же
  загрузка ключей              	успешно
Версия контейнера              	2
Расширения контейнера          	
  некритическое                	Расширение контейнера КриптоПро CSP. Срок действия ключа обмена
  действителен по              	4 июня 2022 г. 14:18:43


Проверил на нескольких рабочих местах на одном он работает корректно и даёт подписать тест в Browser CryptoPro plugin (и в тестировании CryptoPro Csp происходит всё корректно), не могу понять почему. Может ли что то блокировать работу сертификата (В КриптоПро CSP выключена безопасность)
Offline Санчир Момолдаев  
#8 Оставлено : 30 марта 2021 г. 12:02:02(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 754
Российская Федерация

Сказал(а) «Спасибо»: 63 раз
Поблагодарили: 157 раз в 153 постах
проверьте что есть права на запись
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro\Settings\Users\ SID-пользователя \Keys - ключи пользователя ОС
Техническую поддержку оказываем тут
Наша база знаний
Offline MrTvink  
#9 Оставлено : 30 марта 2021 г. 12:19:22(UTC)
MrTvink

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

Группы: Участники
Зарегистрирован: 05.03.2021(UTC)
Сообщений: 6
Откуда: Земля

Да, есть. И в КриптоПро CSP -> Безопасность -> Усиленный контроль. Отключён
Bezymjannyjj.png (23kb) загружен 6 раз(а).
Offline Санчир Момолдаев  
#10 Оставлено : 30 марта 2021 г. 12:56:17(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 754
Российская Федерация

Сказал(а) «Спасибо»: 63 раз
Поблагодарили: 157 раз в 153 постах
там должна быть подпапка в духе 2021 - Реестр
посмотрите права там. если что попробуйте перенести на другой считыватель. к примеру HDIMAGE (директория) если у вас CSP 5.0
Техническую поддержку оказываем тут
Наша база знаний
Offline MrTvink  
#11 Оставлено : 30 марта 2021 г. 13:45:21(UTC)
MrTvink

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

Группы: Участники
Зарегистрирован: 05.03.2021(UTC)
Сообщений: 6
Откуда: Земля

Да, она есть, права так же выданы пользователю.
Щас стоит 4.0.9963 ставлю 5.0 (на другую машину), хочу проверить работу сертификата и там.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.