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

Уведомление

Icon
Error

4 Страницы«<234
Опции
К последнему сообщению К первому непрочитанному
Offline 1Aleksey1  
#31 Оставлено : 30 мая 2014 г. 17:05:56(UTC)
1Aleksey1

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: afev Перейти к цитате
Да, в списке расширений в AIA нет ссылки на ocsp службу.

Если подписывать файл этим же сертификатом, но через браузерный плагин, то подпись и проверка проходит успешно.
Алгоритмы работы jcp и плагина различаются?

Автор: afev Перейти к цитате
Может быть, сертификат подписи отсутствует? Нет ни в подписи (CAdES-BES), ни в verify не передается.

Как это можно проверить? Почему он может отсутствовать?

Offline Евгений Афанасьев  
#32 Оставлено : 30 мая 2014 г. 17:28:48(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Плагин может брать сертификат из личного хранилища. А при проверке подписи с помощью jcp может потребоваться передача сертификата в verify(), если его нет в самой подписи (если неоткуда взять сертификат).

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

Offline 1Aleksey1  
#33 Оставлено : 2 июня 2014 г. 10:32:38(UTC)
1Aleksey1

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: afev Перейти к цитате
Плагин может брать сертификат из личного хранилища. А при проверке подписи с помощью jcp может потребоваться передача сертификата в verify(), если его нет в самой подписи (если неоткуда взять сертификат).


Можете привести пример кода, как через jcp передать сертификат в verify() ?

Offline Евгений Афанасьев  
#34 Оставлено : 2 июня 2014 г. 11:08:59(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Все есть в примерах в samples-sources и в CAdES-javadoc. Примерно так:
Код:

CAdESSignature sign = new CAdESSignature(...);
Collection<X509Certificate> chain = new ArrayList<X509Certificate>();
chain.add(cert1);
chain.add(cert2);
...
chain.add(certN);
sign.verify(chain); // chain - цепочка сертификатов, которая может использоваться при проверке.

Отредактировано пользователем 2 июня 2014 г. 11:12:46(UTC)  | Причина: Не указана

Offline 1Aleksey1  
#35 Оставлено : 3 июня 2014 г. 13:13:40(UTC)
1Aleksey1

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

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

Сказал(а) «Спасибо»: 1 раз
И все таки не совсем понятно в чем проблема:

1. Файл подписали ключем KALUGINA,
2. Подписание прошло успешно, получили файл file-signed (присоединенная подпись),
3. Проверяем и получаем ошибку Certificate Sn 1efe6f97000000009afa ... Certificate is not found in the certificate list (лог в файле log)
4. Открываем подписанный файл в КриптоАРМ и в нем все успешно верифицируется. Внутри файла сертификат 1efe6f97000000009afa присутствует.

Тогда на что ругается метод verify?

Отредактировано пользователем 3 июня 2014 г. 13:14:26(UTC)  | Причина: Не указана

Вложение(я):
jcp.zip (18kb) загружен 2 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Евгений Афанасьев  
#36 Оставлено : 4 июня 2014 г. 9:42:32(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Попробуйте CAdES.jar из последних сборок (2.0), у меня приложенная подпись проверилась.
Offline 1Aleksey1  
#37 Оставлено : 5 июня 2014 г. 10:51:35(UTC)
1Aleksey1

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

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

Сказал(а) «Спасибо»: 1 раз
Спасибо. Все прошло успешно после изменения типа подписи при проверке.

Теперь пытаюсь подписать тот же файл тем же сертификатом, но уже типом CAdESType.CAdES_BES вместо CAdESType.CAdES_X_Long_Type_1
И получаю ошибку при подписании:

Цитата:

WARNING: ERROR
java.security.cert.CertPathValidatorException: Could not determine revocation status: unable to find valid certification path to requested target
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:159)
at sun.security.provider.certpath.PKIXCertPathValidator.doValidate(PKIXCertPathValidator.java:351)
at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:191)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:279)
at ru.CryptoPro.reprov.CPCertPathValidator.engineValidate(Unknown Source)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:279)
at ru.CryptoPro.CAdES.b.d.a.a(Unknown Source)
at ru.CryptoPro.CAdES.b.d.a.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:87)
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:511)
at ru.mdi.irmdev.elib.JCPCryptServiceTest.testSignAndVerify(JCPCryptServiceTest.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
at ru.CryptoPro.reprov.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.CrlRevocationChecker.check(Unknown Source)
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:133)
... 39 more

июн 05, 2014 10:39:50 AM ru.CryptoPro.CAdES.b.d.a a
FINE: %%% Certificate chain is verified %%%
июн 05, 2014 10:39:50 AM ru.CryptoPro.CAdES.exception.CAdESException <init>
SEVERE: Status of the signer certificate Sn 1efe6f97000000009afa issued by CN="УЦ ОАО \"Электронная Москва\"", O="ОАО \"Электронная Москва\"", L=Москва, ST=77 г. Москва, C=RU, EMAILADDRESS=e-moskva@e-moskva.ru, STREET="Б.Сухаревский пер,д11,стр1,оф6", OID.1.2.643.3.131.1.1=#120C303037373037333134303239, OID.1.2.643.100.1=#120D31303237373037303133383036 is UNKNOWN or REVOKED
ERROR 05.06.2014 10:39:50,219 main (ru.mdi.irmdev.elib.crypt.JCPCryptService.sign():95) [] - sign: Failed to sign data, throw

Status of the signer certificate Sn 1efe6f97000000009afa issued by CN="УЦ ОАО \"Электронная Москва\"", O="ОАО \"Электронная Москва\"", L=Москва, ST=77 г. Москва, C=RU, EMAILADDRESS=e-moskva@e-moskva.ru, STREET="Б.Сухаревский пер,д11,стр1,оф6", OID.1.2.643.3.131.1.1=#120C303037373037333134303239, OID.1.2.643.100.1=#120D31303237373037303133383036 is UNKNOWN or REVOKED, errors: 'Certificate is revoked' (18) or 'Certificate status is unknown' (19)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:87)
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:511)
at ru.mdi.irmdev.elib.JCPCryptServiceTest.testSignAndVerify(JCPCryptServiceTest.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

ru.mdi.irmdev.elib.crypt.CryptSignException: Failed to sign data
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:96)
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:511)
at ru.mdi.irmdev.elib.JCPCryptServiceTest.testSignAndVerify(JCPCryptServiceTest.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: Status of the signer certificate Sn 1efe6f97000000009afa issued by CN="УЦ ОАО \"Электронная Москва\"", O="ОАО \"Электронная Москва\"", L=Москва, ST=77 г. Москва, C=RU, EMAILADDRESS=e-moskva@e-moskva.ru, STREET="Б.Сухаревский пер,д11,стр1,оф6", OID.1.2.643.3.131.1.1=#120C303037373037333134303239, OID.1.2.643.100.1=#120D31303237373037303133383036 is UNKNOWN or REVOKED, errors: 'Certificate is revoked' (18) or 'Certificate status is unknown' (19)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.mdi.irmdev.elib.crypt.CadesServiceImpl.sign(CadesServiceImpl.java:87)
... 28 more



Часть кода:
Цитата:

System.setProperty("http.proxyHost", "proxy.mdi.ru");
System.setProperty("http.proxyPort", "3128");

System.setProperty("ru.CryptoPro.reprov.enableCRLDP", "true");
System.setProperty("com.sun.security.enableCRLDP", "true"); // для sun jvm
System.setProperty("com.ibm.security.enableCRLDP", "true"); // или ibm jvm

System.setProperty("ru.cryptopro.notThrowIfChainIsInvalid", "true");
System.setProperty("ocsp.enable", "false");

...
Collection<X509Certificate> chain = new ArrayList<X509Certificate>();
PrivateKey privateKey = loadConfiguration(storeName, key, password, chain);

CAdESSignature cadesSignature = new CAdESSignature(false);
cadesSignature.addSigner(privateKey, chain, CAdESType.CAdES_BES, tsaUrl);
Вложение(я):
jcp.zip (11kb) загружен 2 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Евгений Афанасьев  
#38 Оставлено : 6 июня 2014 г. 10:15:25(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,003
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
При проверке цепочки online после ее построения, полагаю, не удается получить CRL (возможно, нет доступа к ресурсам). Может быть, проблема в
Код:

System.setProperty("http.proxyHost", "proxy.mdi.ru");
System.setProperty("http.proxyPort", "3128");
Offline 1Aleksey1  
#39 Оставлено : 6 июня 2014 г. 12:02:27(UTC)
1Aleksey1

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: afev Перейти к цитате
При проверке цепочки online после ее построения, полагаю, не удается получить CRL (возможно, нет доступа к ресурсам). Может быть, проблема в
Код:

System.setProperty("http.proxyHost", "proxy.mdi.ru");
System.setProperty("http.proxyPort", "3128");


Я тоже подозреваю, что проблема в онлайн проверке списков отзыва.
Через сниффер я вижу запрашиваемые ресурсы и через браузер они скачиваются.
Прокси хост и порт верны, пробовал также добавлять пользователя и пароль. Безуспешно.
Пробовал подключение без прокси, через 3G и результат такой же

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