Jump to content
alexpav@inbox.ru

Сбой ntdll.dll при добавлении подписи

Recommended Posts

Здравствуйте!

Реализую подпись файлов программно в своем приложении (приложение, разработанное на языке C#, .NET Framework 4.5).

Проблема такая. Формирую подпись файлов в формате PKCS7/CMS (открепленная подпись). На компьютере, на котором установлено ПО VipNET CSP 4.2 при подписании файла с нуля (файл еще не был подписан) все проходит нормально. Если же файл уже был кем то другим подписан, то при добавлении подписи происходит сбой приложения (даже блок перехватки ошибок не помогает, идет сбой на уровне ядра). В отчете об ошибке указывается, что произошел сбой модуля ntdll.dll. На компьютере, на котором установлено ПО КриптоПРО CSP таких ситуаций не возникает.

При подписи учитываю, чтобы сертификаты были с одними и теми же алгоритмами подписи (ГОСТЫ). Сертификаты получил в тестовых УЦ как КриптоПРО так и Инфотекс.

Подскажите, в чем может быть проблема???

Кстати, если уже подписанный файл подписать с помощью VipNet CryptoFile, то никаких проблем не возникает...

Share this post


Link to post
Share on other sites

Вы пробовали другие сборки CSP и на других ОС? Думаю вы понимаете, что CSP очень "нежные" к любым обновлениям ОС, потому часто вроде одна и та же версия, но другой билд в "третьем звене" - и уже всё работает.

Для примера, совсем недавно требовалось подписание.... было постоянно ошибки.. подпись была на Якарте... установили новый ЕК - крипто после этого совсем потерял все стороние контейнеры и также в ЕК не видно, что там записано (показывал данные карты, но данные нет)... В ИТОГЕ обновили КриптоПро 4 до по последней серт. версии и О ЧУДО - всё стало видеться, и в крипто и в самом ЕК.

Т.е. то что вы сейчас даже добьётесь положительного результата, совсем не означает, что на другой ОС где есть некие драйвера ключей и др. обновление - будет работать.

Share this post


Link to post
Share on other sites

Low Message или Simplified?

Падает где? CMSG_CTRL_ADD_SIGNER?

Давайте перейдем в личку.

Share this post


Link to post
Share on other sites

Здравствуйте!

До CryptoAPI я не дошел, использую стандартные классы C# для работы с PKCS7 CMS: SignedCms, CmsSigner, ContentInfo. Подписание осуществляется при помощи SignedCms.ComputeSignature. Если покопать (что я и сделал), то можно увидеть, что этот класс использует Low Message функции CryptoAPI.

Share this post


Link to post
Share on other sites

Здравствуйте!

Извините, что долго не отвечал... Реализовал подписание с помощью CryptoAPI (Low Message / Simplified ) и все стало работать!

Share this post


Link to post
Share on other sites

Хорошо, но если вышлите кусок кода, будем благодарны.

Посмотрим у нас падает (и действительно есть ошибка при вызове через .Net), или ошибка при вызове.

Share this post


Link to post
Share on other sites

Я сейчас пытаюсь побороть проблему соподписи при использовании сертификатов с разными алгоритмами (например ГОСТ и sha1rsa). Как только справлюсь, поделюсь без проблем!

Share this post


Link to post
Share on other sites
В 15.09.2016в09:15, cav сказал:

Хорошо, но если вышлите кусок кода, будем благодарны.

Посмотрим у нас падает (и действительно есть ошибка при вызове через .Net), или ошибка при вызове.

Добрый день! Извините, что так долго... Не смог пока я побороть случай подписания файла несколькими сертификатами с разными алгоритмами (случай отсоединенной подписи)... Да и на работе запарка, некогда этим заниматься. Подойдет пока и такой вариант. В общем все работает хорошо, подписывается любым криптопровайдером (КриптоПРО CSP и VipNet CSP), но в случае отсоединенной подписи подписывать можно только сертификатами с одинаковыми алгоритмами. Если нужно посмотреть исходный код, напишите свой адрес электронной почты, я скину проект.

Share this post


Link to post
Share on other sites

Спасибо, пока этого достаточно попытаемся сами проэмулировать.

На всякий случай свой адрес скинул в личку.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use.