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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Николай Новиков  
#1 Оставлено : 22 сентября 2015 г. 12:48:44(UTC)
Николай Новиков

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

Группы: Участники
Зарегистрирован: 02.09.2015(UTC)
Сообщений: 12
Российская Федерация
Откуда: СПБ

    Окружение:
  • Windows 8.1
  • Java 1.7.0_76
  • JCP 2.0.38481
  • JTLS 2.0.38481
  • Tomcat 7.0.23
  • keytool -importcert -file "D:\...\certCA.cer" -alias 192.168.100.77 -keystore "%JRE_HOME%/lib/security/cacerts" -storepass changeit
  • ComLine/CheckConfFull
    JCP - OK (GOST R 34.10-2001 - OK, GOST R 34.10-2012 (256) - OK, GOST R 34.10-2012 (512) - OK)
    Crypto - OK (GOST R 34.10-2001 - OK, GOST R 34.10-2012 (256) - OK, GOST R 34.10-2012 (512) - OK)
    JTLS - OK (GOST R 34.10-2001 - OK, GOST R 34.10-2012 (256) - OK, GOST R 34.10-2012 (512) - OK)

Доброго времени суток) Я пытаюсь создать подпись и верифицировать ее на серверной стороне.

  • Я скачал тестовый сертификат отсюда (Алгоритм подписи ГОСТ Р 34.11/34.10-2001).
  • Через КриптоПро ЭЦП Browser plug-in я сгенирировал отделенную CAdES-BES, верифицировал эту подпись средствами самого плагина:... все ок
  • Передаю на сервер, пытаюсь выполнить...
    Код:
    
    CAdESSignature cades = new CAdESSignature(content, sigBlock, null);
    

    Но все валится по java.lang.reflect.InvocationTargetException. В Stacktrace Tomcat'a только методы до вызова класса CAdESSignature и сразу InvocationTargetException.

Я собираю проект MAVEN'om. Добавляю зависимости
Код:

		<dependency>
		    <groupId>org.bouncycastle</groupId>
		    <artifactId>bcpkix-jdk15on</artifactId>
		    <version>1.50</version>
		</dependency>
		<dependency>
		    <groupId>org.bouncycastle</groupId>
		    <artifactId>bcprov-jdk15on</artifactId>
		    <version>1.50</version>
		</dependency>
		<dependency>
		    <groupId>commons-logging</groupId>
		    <artifactId>commons-logging</artifactId>
		    <version>1.1.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.httpcomponents</groupId>
		    <artifactId>httpclient</artifactId>
		    <version>4.2.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.httpcomponents</groupId>
		    <artifactId>httpcore</artifactId>
		    <version>4.2.1</version>
		</dependency>
		<dependency>
		    <groupId>org.json</groupId>
		    <artifactId>json</artifactId>
		    <version>20080701</version>
		</dependency>
		<dependency>
		    <groupId>xalan</groupId>
		    <artifactId>serializer</artifactId>
		    <version>2.7.1</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.santuario</groupId>
		    <artifactId>xmlsec</artifactId>
		    <version>1.5.6</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.0.1</version>
		</dependency>

Кто сталкивался, что я, блин, делаю не так???
Offline Евгений Афанасьев  
#2 Оставлено : 22 сентября 2015 г. 14:07:22(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 687 раз в 648 постах
Здравствуйте.
Нет ли случайно bouncycastle в java.security? Включите логирование для JCPLogger с уровнем FINE (см. ссылку).
Offline Николай Новиков  
#3 Оставлено : 22 сентября 2015 г. 14:49:24(UTC)
Николай Новиков

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

Группы: Участники
Зарегистрирован: 02.09.2015(UTC)
Сообщений: 12
Российская Федерация
Откуда: СПБ

Логирование включил. Перенес повыше инициализацию CAdESSignature. Логи изменились:
14:36:37,386 ERROR [render_portlet_jsp:154] java.lang.ClassNotFoundException: org.bouncycastle.cms.CMSException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at ru.antinform.portal.documents.WorkflowDocumentPortlet.beforeView(WorkflowDocumentPortlet.java:83)
at ru.antinform.portal.portlet.AJAXPortlet.doView(AJAXPortlet.java:44)
at com.liferay.portal.kernel.portlet.LiferayPortlet.doDispatch(LiferayPortlet.java:211)
at com.liferay.util.bridges.mvc.MVCPortlet.doDispatch(MVCPortlet.java:318)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
Пытался вылечить добавлением:
Код:
<dependency>
			<groupId>CryptoPro</groupId>
			<artifactId>CAdES</artifactId>
			<version>1.0</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcmail-jdk16</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bctsp-jdk16</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
			<groupId>org.bouncycastle</groupId>
			<artifactId>bcprov-jdk16</artifactId>
			<version>1.46</version>
		</dependency>
		<dependency>
		    <groupId>commons-codec</groupId>
		    <artifactId>commons-codec</artifactId>
		    <version>1.3</version>
		</dependency>
	

Безрезультатно....
Offline Евгений Афанасьев  
#4 Оставлено : 22 сентября 2015 г. 15:13:23(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 687 раз в 648 постах
Автор: Николай Новиков Перейти к цитате
java.lang.ClassNotFoundException: org.bouncycastle.cms.CMSException

Судя по всему, класс не находит.

Offline Николай Новиков  
#5 Оставлено : 22 сентября 2015 г. 15:39:42(UTC)
Николай Новиков

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

Группы: Участники
Зарегистрирован: 02.09.2015(UTC)
Сообщений: 12
Российская Федерация
Откуда: СПБ

Автор: afev Перейти к цитате

Судя по всему, класс не находит.

Я вот тоже так подумал. Да только у меня уже подключена либа bcpkix-jdk15on-1.50.jar с этим классом... Может есть там некий booletproof алгоритм работы с JCP yf tomcate? Типа эти библиотеки положи в %JRE_HOME%/lib/ext, эти положи в %CATALINA_HOME%/lib/ext, а эти вместе с проектом деплой всегда... Использование: верификация CAdES-BES сгенирированную из плагина.

Offline Евгений Афанасьев  
#6 Оставлено : 22 сентября 2015 г. 15:41:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 687 раз в 648 постах
Автор: afev Перейти к цитате
Нет ли случайно bouncycastle в java.security?

Попробуйте проверить, положив CAdES.jar и зависимости в jre/lib/ext.


Offline Евгений Афанасьев  
#7 Оставлено : 22 сентября 2015 г. 15:42:34(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 687 раз в 648 постах
1)
Автор: afev Перейти к цитате
Нет ли случайно bouncycastle в java.security?

2) Попробуйте проверить, положив CAdES.jar и зависимости в jre/lib/ext.
Offline Николай Новиков  
#8 Оставлено : 22 сентября 2015 г. 16:10:00(UTC)
Николай Новиков

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

Группы: Участники
Зарегистрирован: 02.09.2015(UTC)
Сообщений: 12
Российская Федерация
Откуда: СПБ


  1. Как понять фразу "Нет ли случайно bouncycastle в java.security?"
  2. Добавляю в jre/lib/ext:

    • CAdES.jar сама ложится при установке.
    • Зависимости из папки с инсталлятором "D:\...\jcp-2.0.38481\dependencies"
    • bcmail-jdk16-146.jar, bctsp-jdk16-146.jar, bcprov-jdk16-146.jar, commons-codec-1.3.jar


Итог: валится теперь по java.lang.NoClassDefFoundError: Could not initialize class ru.CryptoPro.CAdES.CAdESSignature
Offline Евгений Афанасьев  
#9 Оставлено : 22 сентября 2015 г. 16:16:55(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 687 раз в 648 постах
Автор: Николай Новиков Перейти к цитате

  1. Как понять фразу "Нет ли случайно bouncycastle в java.security?"
  2. Добавляю в jre/lib/ext:

    • CAdES.jar сама ложится при установке.
    • Зависимости из папки с инсталлятором "D:\...\jcp-2.0.38481\dependencies"
    • bcmail-jdk16-146.jar, bctsp-jdk16-146.jar, bcprov-jdk16-146.jar, commons-codec-1.3.jar


Итог: валится теперь по java.lang.NoClassDefFoundError: Could not initialize class ru.CryptoPro.CAdES.CAdESSignature


Открыть jre/lib/security/java.security, посмотреть список провайдеров.
В 2.0.38481 CAdES зависит от BC 150, а не 146.

Offline Николай Новиков  
#10 Оставлено : 22 сентября 2015 г. 16:31:28(UTC)
Николай Новиков

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

Группы: Участники
Зарегистрирован: 02.09.2015(UTC)
Сообщений: 12
Российская Федерация
Откуда: СПБ

Автор: afev Перейти к цитате
Нет ли случайно bouncycastle в java.security?


Нет, нету. Только вот эти:

security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
security.provider.11=ru.CryptoPro.JCP.JCP
security.provider.12=ru.CryptoPro.Crypto.CryptoProvider
security.provider.13=ru.CryptoPro.reprov.RevCheck
security.provider.14=ru.CryptoPro.ssl.Provider
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.