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

Уведомление

Icon
Error

3 Страницы<123
Опции
К последнему сообщению К первому непрочитанному
Offline anatol83  
#21 Оставлено : 29 июня 2020 г. 12:08:11(UTC)
anatol83

Статус: Участник

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

Автор: Максим Коллегин Перейти к цитате
Может поделитесь кодом, чтобы я мог попробовать у себя?


using System.Security.Cryptography.Pkcs;
using System.Security.Cryptography.X509Certificates;

private byte[] SignIt(byte[] input, X509Certificate2 cert) {
try {
ContentInfo contentInfo = new ContentInfo(input);
SignedCms cms = new SignedCms(contentInfo, false);
CmsSigner signer = new CmsSigner(cert);
cms.ComputeSignature(signer, true); //вот здесь при запуске в Ms Excel возникает ошибка 'Доступ запрещен'
byte[] output = cms.Encode();
return output;
}
catch (Exception x) {
throw new Exception($"Ошибка подписания запроса при помощи сертификата пользователя. {x.Message}", x);
}
}
Offline Максим Коллегин  
#22 Оставлено : 29 июня 2020 г. 13:24:01(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
А если использовать встроенный в систему криптопровайдер -- подпись работает?
Знания в базе знаний, поддержка в техподдержке
Offline anatol83  
#23 Оставлено : 29 июня 2020 г. 17:37:31(UTC)
anatol83

Статус: Участник

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

Автор: Максим Коллегин Перейти к цитате
А если использовать встроенный в систему криптопровайдер -- подпись работает?


Как это проверить: удалить КриптоПро и подписать?
Offline Максим Коллегин  
#24 Оставлено : 29 июня 2020 г. 17:47:13(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Можно и не удалять, достаточно сделать сертификат на встроенном криптопровайдере.
Знания в базе знаний, поддержка в техподдержке
Offline anatol83  
#25 Оставлено : 7 июля 2020 г. 12:00:38(UTC)
anatol83

Статус: Участник

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

Вопрос решен.

Резюме:

Если при использовании сертификатов ЭЦП в проектах MS Office (VSTO) в момент подписи документа при помощи сертификата методом SignedCms.ComputeSignature (пространство имен System.Security.Cryptography.Pkcs) возникает ошибка "Отказано в доступе", то нужно:
- 32-битная версия MS Office: добавить в реестр "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\AppV\Subsystem\VirtualRegistry" в PassThroughPaths вот этот путь "HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro"
- 64-битная версия MS Office: добавить в реестр "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\AppV\Subsystem\VirtualRegistry" в PassThroughPaths вот этот путь "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Crypto Pro"

Как сообщил Максим Коллегин, которому большое спасибо за помощь в решении данной проблемы, дистрибутивы КриптоПро обновлен и данной ошибки после обновления КриптоПро возникать не должно.
Offline mess.kid  
#26 Оставлено : 14 декабря 2020 г. 15:22:24(UTC)
mess.kid

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

Группы: Участники
Зарегистрирован: 14.12.2020(UTC)
Сообщений: 3
Российская Федерация
Откуда: msk

Добрый день.

Подскажите, пожалуйста, - та-же ошибка Access Denied, в том-же месте кода - при вызове ComputeSignature, но вызов не из проекта MS Office, а из обычного приложения.
КриптоПро CSP 4.0.9963

Код:

at System.Security.Cryptography.Pkcs.SignedCms.CoSign(CmsSigner signer, Boolean silent)
   at System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature(CmsSigner signer, Boolean silent)
   at sprelib.SignatureHelper.addsign(Byte[] data, Boolean isdeatach, Byte[] signs, X509Certificate2 certificate, Stream output)


Причем ошибка возникает при добавлении второй отсоединенной подписи. При первом подписывании всё норм.

Как бороться ?

Отредактировано пользователем 14 декабря 2020 г. 16:17:25(UTC)  | Причина: уточнение

Offline Максим Коллегин  
#27 Оставлено : 14 декабря 2020 г. 17:06:56(UTC)
Максим Коллегин

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

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

Сказал «Спасибо»: 32 раз
Поблагодарили: 706 раз в 614 постах
Сходу сложно сказать, на версии CSP5R2 воспроизводится?
Знания в базе знаний, поддержка в техподдержке
Offline mess.kid  
#28 Оставлено : 14 декабря 2020 г. 18:20:48(UTC)
mess.kid

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

Группы: Участники
Зарегистрирован: 14.12.2020(UTC)
Сообщений: 3
Российская Федерация
Откуда: msk

Автор: Максим Коллегин Перейти к цитате
Сходу сложно сказать, на версии CSP5R2 воспроизводится?


Не получится проверить. К сожалению у нас есть только 4 версия CSP

Offline mess.kid  
#29 Оставлено : 21 декабря 2020 г. 13:34:07(UTC)
mess.kid

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

Группы: Участники
Зарегистрирован: 14.12.2020(UTC)
Сообщений: 3
Российская Федерация
Откуда: msk

Появилась дополнительная информация по ошибке :

Ошибка возникает при подписывании подписями с разными ГОСТ, то-есть когда подписываем отсоединенными подписями, например :
ГОСТ 2001 + ГОСТ 2012
или ГОСТ 2012 + ГОСТ 2001

Если подписывать ГОСТ 2001 + ГОСТ 2001 или ГОСТ 2012 + ГОСТ 2012, всё нормально


upd : попробовали в CSP5. Ошибка повторяется.

Отредактировано пользователем 21 декабря 2020 г. 17:29:16(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
3 Страницы<123
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.