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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Hardbotan  
#1 Оставлено : 2 февраля 2011 г. 18:42:44(UTC)
Hardbotan

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.12.2009(UTC)
Сообщений: 32
Мужчина
Откуда: Москва, ФКЦ "Земля"

Данная ошибка возникает в следующем коде

public static void SignFile(string fileName,X509Certificate2 signCert)
{
FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var msg = new byte[fs.Length];
fs.Read(msg, 0, (int)fs.Length);

var gostFormatter = new GostSignatureFormatter(signCert.PrivateKey); эксепшен вываливается здесь
// Объект, реализующий алгоритм хэширования.
var gostHash = new Gost3411CryptoServiceProvider();
// Подсчитываем значение хэш для потока данных.
byte[] hashValue = gostHash.ComputeHash(fs);
// Подписываем хеш
byte[] signedHashValue = gostFormatter.CreateSignature(hashValue);

fs.Close();
fs.Dispose();
}
не подскажете в чем проблема? клиент клянется что у него сертификат выданный КриптоПРО УЦ в соответствии с гостом.


Так же еще вопрос, какие условия должны быть соблюдены при генерации сертификата, что бы функция проверки цепочки сертификатов CheckSignature(false)

public static bool VerifySignature(string fileName,out bool certChainProblems)
{
certChainProblems = false;
FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
var msg = new byte[fs.Length];
fs.Read(msg, 0, (int)fs.Length);
// fs.Unlock(0,fs.Length);
fs.Close();
fs.Dispose();
// Создаем объект ContentInfo по сообщению.
// Это необходимо для создания объекта SignedCms.
var contentInfo = new ContentInfo(msg);

// Создаем SignedCms для декодирования и проверки.
var signedCms = new SignedCms(contentInfo, true);

FileStream signatureFile = File.Open(fileName + ".sig", FileMode.Open, FileAccess.Read, FileShare.None);
var encodedSignature = new byte[signatureFile.Length];
signatureFile.Read(encodedSignature, 0, (int)signatureFile.Length);
signatureFile.Close();
signatureFile.Dispose();
// Декодируем подпись

// Перехватываем криптографические исключения, для
// возврата false значения при некорректности подписи.
try
{
signedCms.Decode(encodedSignature);
// Проверяем подпись и сертификат
signedCms.CheckSignature(false); генерирует эксепшен о том что не удалось проверить цепочку
}
catch (CryptographicException)
{
//проблемы с проверкой цепочки сертификатов
certChainProblems = true;
try
{ //проверяем только подпись
signedCms.CheckSignature(true);
}
catch (CryptographicException ex)
{
SignConvertDocClass.WriteTextToLog("Ошибка проверки цифровой подписи " +
"SignDocument.cs VerifySignature "
+ ex.Message + ex.StackTrace);
return false;
}
}
return true;
}
Offline Hardbotan  
#2 Оставлено : 2 февраля 2011 г. 20:02:57(UTC)
Hardbotan

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.12.2009(UTC)
Сообщений: 32
Мужчина
Откуда: Москва, ФКЦ "Земля"

вопрос по цепочке сертификатов разрешился, а вопрос по ошибке актуален для версии Sharpei 1.0.4015.0 в версии 1.0.3636.2 эта ошибка не возникает
Offline Челпанов А.  
#3 Оставлено : 3 февраля 2011 г. 11:32:37(UTC)
Челпанов А.

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
1. Exception в signCert.PrivateKey? или в new GostSignatureFormatter(key)?
2. А текст exception (жалательно со стеком посмотреть можно)?
3. Ссылка с этого сертификата на контейнер секретного ключа есть? В контрольной панели CSP контейнер по сертификату открывается? (Закладка Сервис/Кнопка Просмотреть сертификаты в контейнере/Кнопка по сертификату/Выбрать сертификат/Далее)?

P.S. С вопросом о проверки цепочки отпишите, пожалуйста, в чем была проблема, чтобы другие на эти же грабли не наступали.
С уважением, Александр.
Offline Hardbotan  
#4 Оставлено : 3 февраля 2011 г. 12:27:29(UTC)
Hardbotan

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.12.2009(UTC)
Сообщений: 32
Мужчина
Откуда: Москва, ФКЦ "Земля"

эксепшен Parameter must support GOST R 34.10 algorithm. в CryptoPro.Sharpei.GostSignatureFormatter..ctor(AsymmetricAlgorithm key) более ничего в стэк трэйсе нету, про сертификат я спрошу, поскольку клиент сидит далеко быстро получить ответ не получится. Данный эксепшен как я уже говорил происходит в версии шарпея 1.0.4015.0, в версии 1.0.3636.2 таких проблем нету, в принципе мы не обязаны предоставлять совместимость с новой версией просто вот вскрылось, решил написать, жду от клиента его сертификат что бы попробовать повторить ошибку.

По вопросу проверки цепочки сертификатов клиент говорит, что ошибка пропала после установки списка отозванных сертификатов, но после истечения действия старого и установки нового списка отозванных сертификатов ошибка продолжает генериться, не знаю в чем тут может быть проблема, попробую попросить переустановить список или сертификаты УЦ и клиента, может полечится
Offline Челпанов А.  
#5 Оставлено : 3 февраля 2011 г. 12:54:13(UTC)
Челпанов А.

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
Код в этом месте в Sharpei не менялся. Совместимость должна быть полная. Код работоспособен на обоих версиях (только что перепроверил).
Проблема, скорее всего, возникла при перестановке (криво встало) или эксперименты на разных версиях не полностью одинаковые (проблема с сертификатами).

Для диагностики первого случая (криво встало) поможет alarm:
Для сбора информации об установке запустите из командной строки
Цитата:
"C:\Program Files\Crypto Pro\Sharpei\alarm.exe" info

в текущем каталоге появится файл osinfo.xml. Этот файл можно открыть в Internet Explorer на компьютере подключенном к internet. При наличии сообщений в разделе "Обнаруженные неисправности" попытайтесь самостоятельно их исправить. При отсутствии ошибок или невозможности их исправить прикрепляйте данный файл к сообщению на support@cryptopro.ru или в ветку форума. Этот файл не содержит ни информацию о секретных ключах ни о серийных номерах установленных продуктов (если вы не доверяете, просмотрите этот файл в обычном текстовом редакторе).

Диагностировать ошибку с сертификатами поможет контрольная панель CSP (см. пост выше)

Код:
signedCms.CheckSignature(false);
Проверяет цепочку. Если при проверке возникает исключение, то можно устанавливать CRL локально. Лучше смотреть CDP в сертификате издателя и проверять доступ к CRL по CDP.
С уважением, Александр.
Offline Hardbotan  
#6 Оставлено : 3 февраля 2011 г. 13:17:53(UTC)
Hardbotan

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.12.2009(UTC)
Сообщений: 32
Мужчина
Откуда: Москва, ФКЦ "Земля"

Цитата:

Проверяет цепочку. Если при проверке возникает исключение, то можно устанавливать CRL локально. Лучше смотреть CDP в сертификате издателя и проверять доступ к CRL по CDP


Поясните пожалуйста, как установить локально и как проверить доступ к CLR по CDP или укажите, где посмотреть в инструкции
Offline Челпанов А.  
#7 Оставлено : 3 февраля 2011 г. 13:36:02(UTC)
Челпанов А.

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
Цитата:
По вопросу проверки цепочки сертификатов клиент говорит, что ошибка пропала после установки списка отозванных сертификатов, но после истечения действия старого и установки нового списка отозванных сертификатов ошибка продолжает генериться, не знаю в чем тут может быть проблема, попробую попросить переустановить список или сертификаты УЦ и клиента, может полечится
Клиент же уже устанавливал список отозванных сертификатов (CRL) локально.
А про доступ. Откройте корневой сертификат и посмотрите расширение Точка распределения списка отзыва (CRL Distribution Point). И попробуйте обратиться по этому URL, например из эксплорера.
С уважением, Александр.
Offline writemaster  
#8 Оставлено : 3 февраля 2011 г. 13:44:03(UTC)
writemaster

Статус: Активный участник

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

Цитата:
Откройте корневой сертификат и посмотрите расширение Точка распределения списка отзыва

Почему именно корневой? В корневом же может и не быть CDP. И имеет ли значение в какое хранилище установлен CRL(пользователь, компьютер)?

Отредактировано пользователем 3 февраля 2011 г. 13:47:36(UTC)  | Причина: Не указана

Offline Челпанов А.  
#9 Оставлено : 3 февраля 2011 г. 13:56:52(UTC)
Челпанов А.

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 390
Мужчина
Откуда: КриптоПро

Поблагодарили: 2 раз в 2 постах
writemaster:
Цитата:
Почему именно корневой? В корневом же может и не быть CDP.

Может и не быть. Тогда сам сертификат. CDP может вообще не быть... А может быть в формате, которым его в explorer не скачаешь (LDAP например)... Angel Тогда откройте инструкцию от своего удостоверяющего центра и читайте как и чего и куда ставить...
для Hardbotan:
Так получилось добраться до CRL?
С уважением, Александр.
Offline Hardbotan  
#10 Оставлено : 3 февраля 2011 г. 14:02:50(UTC)
Hardbotan

Статус: Активный участник

Группы: Участники
Зарегистрирован: 15.12.2009(UTC)
Сообщений: 32
Мужчина
Откуда: Москва, ФКЦ "Земля"

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