Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Добрый день всем. Задача: создание и проверка подписей в разных CSP с ГОСТ-2012 Исходные данные: Создал два сертификата по ГОСТ-2012 (512 и 1024 бит) в ViPNet CSP 4.0.0.19743 (в Windows 2003R2) Создал две подписи с помощью этих сертификатов - успешно. Проверил две подписи с помощью этих сертификатов - успешно. Перенес файл и подписи на машину с КриптоПРО CSP 4.0.9007 Ни одна из подписей не прошла проверку: Цитата: Подпись не верна [2148086017] :либо внутренняя ошибка ASN1 либо ошибка дешифровки
Создал тестовый сертификат на машине с КриптоПРО CSP 4.0 Цитата: csptest -keyset -newkeyset -makecer -exportable -cont certificate_1024 -length 1024 -keytype exchange
Создал подпись, проверилась успешно (через CryptoAPI и через Capicom) Тестирование контейнера:
Проверка завершена успешно ошибок не обнаружено Контейнер закрытого ключа имя certificate_1024 уникальное имя certificate_1024 FQCN \\.\REGISTRY\certificate_1024 проверка целостности контейнера успешно Ключ обмена доступен длина ключа 1024 бит экспорт открытого ключа успешно импорт открытого ключа успешно подпись успешно проверка успешно создание ключа обмена успешно экспорт ключа разрешен алгоритм ГОСТ Р 34.10-2012 DH ГОСТ Р 34.10-2012 512 бит, параметры по умолчанию ГОСТ Р 34.11-2012 512 бит сертификат в контейнере соответствует закрытому ключу сертификат в хранилище My E=test@cryptopro.ru, CN=certificate_1024 certificate_1024; Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider; 75 имя сертификата certificate_1024 субъект E=test@cryptopro.ru, CN=certificate_1024 поставщик E=test@cryptopro.ru, CN=certificate_1024 действителен с 9 ноября 2013 г. 23:03:39 действителен по 1 ноября 2030 г. 23:03:39 серийный номер 01 Ключ подписи отсутствует загрузка ключей успешно
Перенес файл и подпись на машину с ViPNet CSP 4 Проверил (через Capicom и CryptoAPI): Цитата:Подпись не верна [2148077575] :Неправильное значение хеша Проверил создание подписей и через Capicom: на той машине где создавал подписи: ОК на другой машине с другим CSP: Неправильное значение хеша При использовании ГОСТ-2001: все ОК. Вопрос: криптопровайдеры еще не совместимы или что-то я сделал не так?Прикладываю сертификаты, файлы и подписи к ним. Спасибо. Вложение(я): Тестирование.zip (12kb) загружен 10 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Аналогичное поведение и в КриптоПРО CSP 4.0.9071 + пришлось сгенерировать новые контейнеры и сертификаты (старые стали выдавать ошибку при обращении к ЗК: Цитата: Код [2148073499]: Тип поставщика не соответствует зарегистрированному значению
Создал для 80 и 81
csptest -keyset -newkeyset -makecer -exportable -cont c_512 -length 512 -keytype exchange -provtype 80 >damp80.log csptest -keyset -newkeyset -makecer -exportable -cont c_1024 -length 1024 -keytype exchange -provtype 81 >damp81.log
Подписи создаются и проверяются на этой же машине, но если перезапустить приложение и проверить подпись: выдается сбой:
--------------------------- При проверке ЭЦП произошла ошибка: Указан неправильный алгоритм ---------------------------
Что делать? Предыдущая сборка (4.0.9007) вела себя корректнее, приложение успешно проверяло созданные ранее подписи (после перезапуска) |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Решил проверить сертификаты, которые по ГОСТ-2001 на этой машине были. В КриптоПРО CSP 4.0.9071 подпись создается и тут же проверяется, но если перезапустить приложение и сделать только проверку - сбой: Указан неправильный алгоритм
Если (закрыть приложение\не закрывая) сделать новую подпись по ГОСТ-2001 (сохранить в другой файл) и следом проверить предыдущую подпись (которая давала сбой) - она успешно проверяется.
Перенес файл+подпись на машину с сертифицированный провайдером (ГОСТ-2001) - подпись успешно проверяется.
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
csptest.exe -sfsign -sign -my c_512 -in "c:\test.txt" -detached -out "c:\test.txt.sig" Цитата:#0: Subject: E=test@cryptopro.ru, CN=c_512 Valid : 10.11.2013 16:36:11 - 01.11.2030 16:36:11 (UTC) Issuer : E=test@cryptopro.ru, CN=c_512
A CSP has been acquired. Source message length: 2716 Calculated signature (or signed message) length: 476 An error occurred in running the program. signtsf.c:513:Signature creation error Error number 0x80090008 (2148073480). Указан неправильный алгоритм.
Total: SYS: 0,219 sec USR: 0,094 sec UTC: 2,031 sec [ErrorCode: 0x80090008]
Отредактировано пользователем 10 ноября 2013 г. 22:23:26(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Следующий опыт: КриптоПРО CSP 4.0.9071 (Windows XP sp3) Создаю в браузере запрос на сертификат к MS CA (Windows 2003R2, 32x, ViPNet CSP 4.0)
Выбираю из списка 80 тип криптопровайдера: Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider Генерируется контейнер, запрос...
Получаю в ответ от сервера: "Ошибка при обработке запроса Неправильная подпись. 0x80090006 (-2146893818)".
Выбираю из списка 81 тип криптопровайдера: Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider Размер ключа: 1024, хеш 512 (устанавливается по умолчанию)
Генерируется контейнер, запрос...
Получаю в ответ от сервера: "Ошибка при обработке запроса Неправильная подпись. 0x80090006 (-2146893818)". |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.11.2013(UTC) Сообщений: 2
Поблагодарили: 1 раз в 1 постах
|
Имеются две следующие причины подобных ошибок: 1)В ключевых блобах у этих двух провайдеров указаны разные алгиды подписи, для старого стандарта они были одинаковые (поэтому вылезает сообщение: Указан неправильный алгоритм ) 2)Значения новых хэшей в этих двух провайдерах зеркально отражены друг относительно друга (поэтому проверка подписи не проходит)
Данные проблемы в скором времени будут исправлены.
|
1 пользователь поблагодарил Ray за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Ray Имеются две следующие причины подобных ошибок: 1)В ключевых блобах у этих двух провайдеров указаны разные алгиды подписи, для старого стандарта они были одинаковые (поэтому вылезает сообщение: Указан неправильный алгоритм ) 2)Значения новых хэшей в этих двух провайдерах зеркально отражены друг относительно друга (поэтому проверка подписи не проходит)
Данные проблемы в скором времени будут исправлены. Спасибо. Буду ждать обновления.
Про зеркальные хеши заметил: ViPNet CSP Цитата: 0440 13 DC C37CD81001A4C18B19DB4D00F8D8662DE681F11A7D18B63AE83510E6FD24F397FE8E389CBBB3651D940C284E526F7D047083B68EB7EFF7281EEF0C14F421
КриптоПРО CSP: Цитата: 0440 21F4140CEF1E28F7EFB78EB68370047D6F524E280C941D65B3BB9C388EFE97F324FDE61035E83AB6187D1AF181E62D66D8F8004DDB198BC1A40110D87CC3 DC 13
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Ray Имеются две следующие причины подобных ошибок: 1)В ключевых блобах у этих двух провайдеров указаны разные алгиды подписи, для старого стандарта они были одинаковые (поэтому вылезает сообщение: Указан неправильный алгоритм ) Насчет сообщения про "неправильный алгоритм" - дело вовсе не в ключевых блобах и не в другом CSP. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,281 Сказал «Спасибо»: 548 раз Поблагодарили: 2196 раз в 1714 постах
|
Автор: Андрей * Автор: Ray Имеются две следующие причины подобных ошибок: 1)В ключевых блобах у этих двух провайдеров указаны разные алгиды подписи, для старого стандарта они были одинаковые (поэтому вылезает сообщение: Указан неправильный алгоритм ) Насчет сообщения про "неправильный алгоритм" - дело вовсе не в ключевых блобах и не в другом CSP. Ray, или я не так понял и сообщении имелись ввиду 80 и 81 типы криптопровайдеров КриптоПРО, а не ViPNet CSP (типы 77,78)? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 11.11.2013(UTC) Сообщений: 2
Поблагодарили: 1 раз в 1 постах
|
Нет, имелись ввиду не типы провайдеров, а id алгоритмов. Их можно перечислить для каждого типа провайдера следующим образом: Код: CryptGetProvParam(hCont, PP_ENUMALGS, (BYTE *)&speAlgInfo, &dwAlgInfoSize, CRYPT_FIRST);
while(GetLastError() != ERROR_NO_MORE_ITEMS)
{
printf("%x %s\n", speAlgInfo.aiAlgid, speAlgInfo.szName);
CryptGetProvParam(hCont, PP_ENUMALGS, (BYTE *)&speAlgInfo, &dwAlgInfoSize, CRYPT_NEXT);
}
Id алгоритмов подписи 2012 года (длинной и короткой) в этих двух провайдерах имеют разное значение. В связи с этим при импорте болоба с открытым ключом из провайдера крипто-про в провайдер випнет возникает ошибка проверки id алгоритмов (в обратную сторону тестирование не проводилось)
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close