Статус: Участник
Группы: Участники
Зарегистрирован: 20.06.2012(UTC) Сообщений: 16
|
Добрый день. Проблема в следующем. Подписываю файл: cryptcp -sign -uMy -dn "V.Sidorov" -pin 1234567890 1111.txt test2.msg -ss http://cryptopro.ru/tsp/tsp.srfСертификат "V.Sidorov" получен на https://www.cryptopro.ru/certsrv/. Точно гостовский. Полученный файл пытаюсь проверить в Java коде. Что-то типа: Код:
String[] alg = {
"GOST3411WITHGOST3410",
"GOST3411WITHGOST3410EL",
"CRYPTOPROSIGNATURE",
"GOST3411WITHGOST3410DHEL",
"1.2.643.2.2.3",
"GOST3410",
"GOST3410DH"};
for(int i = 0; i < alg.length; i++) {
try {
java.security.Signature sig = java.security.Signature.getInstance(alg[i], "JCP");
sig.initVerify(cert);
sig.update(data);
log.info(alg[i] + ": " + sig.verify(signature));
} catch(Exception e) {
log.info("Error: alg[" + i + "]: " + alg[i] + "; msg: " + e.getMessage());
}
}
Ни один из алгоритмов не опознается, как имеющий отношение к подписи. Log: Код:
Error: alg[0]: GOST3411WITHGOST3410; msg: Ключ должен соответствовать алгоритму ГОСТ Р 34.10-94
GOST3411WITHGOST3410EL: false
CRYPTOPROSIGNATURE: false
GOST3411WITHGOST3410DHEL: false
1.2.643.2.2.3: false
Error: alg[5]: GOST3410; msg: no such algorithm: GOST3410 for provider JCP
Error: alg[6]: GOST3410DH; msg: no such algorithm: GOST3410DH for provider JCP
На машине стоит XP CryptoPro CSP 3.6.6497 JCP 1.0.52 Ключ лежит на eTokene. Дергая ключ и сертификат напрямую с карточки, могу вполне удачно подписывать PDF. Вроде все есть для полноценной жизни. Изначально проблема была немного в другом. Пытаюсь подписывать PDF через CAPICOM. Подпись получается невалидная. Заинтересовался, какой алгоритм позволяет проверить подпись после CAPICOM. Результат аналогичный. Хотя, если подписывать ключем RSA, SHA1WITHDSA определяется без проблем. Подпись через cryptcp для упрощения эксперимента. Оказалось, что штатные средства дают тот же эффект. Ещё один момент. Заметил, что если гостовским ключем подписывать один и тот же текст несколько раз, каждый раз получаются разные подписи. Так и должно быть? Особенность алгоритма? Помогите, пожалуйста, каким-нибудь толчком в нужном направлении. На всякий случай. Характеристики ключей: Код:
Privatekey:
ru.CryptoPro.JCP.Key.GostExchPrivateKey;
.toSting(): CryptoPro Gost Exchange PrivateKey with parameters:1.2.643.2.2.98
.getAlgorithm(): GOST3410DH
PublicKey:
ru.CryptoPro.JCP.Key.GostPublicKey
.getFormat(): X.509
.getAlgorithm(): GOST3410
Вложение(я): certificate.txt (3kb) загружен 16 раз(а). certificate.cer (2kb) загружен 10 раз(а). test2.msg (2kb) загружен 13 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
Здравствуйте. Алгоритмы у вас определились - в логе есть GOST3411WITHGOST3410EL: false CRYPTOPROSIGNATURE: false GOST3411WITHGOST3410DHEL: false 1.2.643.2.2.3: false В этих случаях sig инициализировался и происходила проверка подписи (false). Тут, скорее всего, дело не в алгоритме, а в формате вашего сообщения (файла). Да, подписи отличаются, так и должно быть. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.06.2012(UTC) Сообщений: 16
|
Спасибо за оперативность. А в чем может быть проблема формата? Я так понимаю, что CAPICOM дергает CSP и eToken. А проверка идет через провайдер JCP. Подпись сделанная ГОСТовским алгоритмом CSP будет адекватно восприниматься JCP? С RSA через соответствующий таких проблем не наблюдаю.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.06.2012(UTC) Сообщений: 16
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
Это CMS подпись, для проверки используйте примеры CMS_samples/CMS из samples_src.jar |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
У вас в txt сообщении описание сертификата на имя Сидорова, а сертификат cer - на имя Назарова. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.06.2012(UTC) Сообщений: 16
|
afev написал:У вас в txt сообщении описание сертификата на имя Сидорова, а сертификат cer - на имя Назарова. Да. Сидоров - это условность.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 20.06.2012(UTC) Сообщений: 16
|
afev написал:Это CMS подпись, для проверки используйте примеры CMS_samples/CMS из samples_src.jar В примерах верификация проходит успешно. Вопрос в том, как CryptoPro PDF делает верификацию. Боюсь, что они не использовали ваши примеры. Могу я как-то повлиять на то, как CryptoPro PDF верифицирует подпись?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
А при чем здесь КриптоПро PDF? Вы создаете подпись формата CMS, в PDF - другой формат подписи.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close