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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline EVoynov  
#1 Оставлено : 22 июня 2022 г. 18:01:04(UTC)
EVoynov

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

Группы: Участники
Зарегистрирован: 20.10.2011(UTC)
Сообщений: 45
Откуда: Moscow

Сказал(а) «Спасибо»: 7 раз
Собрал Spring Boot приложение с JCP версии 2.0.41940-A.

При старте приложения (под bellsoft-jdk11.0.15.1+2-macos-amd64) есть логика по скачиванию промежуточных сертификатов (и проверка подписи полученного xml прежде чем перейти непосредственно к скачиванию самих сертификатов).
При проверке xmldsig получаю ошибку недостаточных прав на создание папки /var/opt/cprocsp/tmp. Но почему она вообще создается? Объясните разницу пакетов, которые получаю при скачивании с вашего сайта - JCP и JCSP.

Код:
2022-06-22 17:44:56.491  INFO 71734 --- [           main] r.c.c.j.d.s.TrustedCertificatesService   : TrustedIntermediateCertificatesStorage is empty. Start download.
2022-06-22 17:44:56.494  INFO 71734 --- [           main] r.c.c.j.d.s.TrustedCertificatesService   : Connect to https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml
2022-06-22 17:45:05.290  INFO 71734 --- [           main] r.c.c.j.d.s.TrustedCertificatesService   : Got response from https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml
2022-06-22 17:45:05.516  INFO 71734 --- [           main] ru.CryptoPro.JCP.tools.JCPLogger         : Loading JCP 2.0.41940-A
2022-06-22 17:45:05.547 ERROR 71734 --- [           main] ru.CryptoPro.JCP.tools.JCPLogger         : ERROR occurred during loading JCP

java.lang.ExceptionInInitializerError: null
	at ru.CryptoPro.JCP.tools.Starter.<init>(Unknown Source)
	at ru.CryptoPro.JCP.tools.Starter.<init>(Unknown Source)
	at ru.CryptoPro.JCP.tools.cl_33.<clinit>(Unknown Source)
	at ru.CryptoPro.JCP.tools.Starter.a(Unknown Source)
	at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
	at ru.CryptoPro.JCP.Sign.cl_0.<init>(Unknown Source)
	at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source)
	at ru.CryptoPro.JCP.Sign.GostElSign2012_256.<init>(Unknown Source)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/java.security.Provider.newInstanceUtil(Provider.java:154)
	at java.base/java.security.Provider$Service.newInstance(Provider.java:1894)
	at java.base/java.security.Signature.isSpi(Signature.java:331)
	at java.base/java.security.Signature.getInstance(Signature.java:274)
	at ru.CryptoPro.JCPxml.xmldsig.SignatureGostR3410.<init>(Unknown Source)
	at ru.CryptoPro.JCPxml.xmldsig.SignatureGostR3410$SignatureGostR34102012_256_GostR3411_2012_256_URN.<init>(Unknown Source)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.base/java.lang.Class.newInstance(Class.java:584)
	at org.apache.xml.security.algorithms.SignatureAlgorithm.getSignatureAlgorithmSpi(SignatureAlgorithm.java:151)
	at org.apache.xml.security.algorithms.SignatureAlgorithm.<init>(SignatureAlgorithm.java:134)
	at org.apache.xml.security.signature.SignedInfo.<init>(SignedInfo.java:186)
	at org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:405)
	at org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:378)
	at ru.croc.ctp.sign.impl.crypto.CryptoProSignCryptoService.createXmlSignature(CryptoProSignCryptoService.java:292)
	at ru.croc.ctp.sign.impl.crypto.CryptoProSignCryptoService.xmldsigVerify(CryptoProSignCryptoService.java:161)
	at ru.croc.ctp.just.dsig.sign.TrustedCertificatesService.downloadIntermediateCertificates(TrustedCertificatesService.java:106)
	at ru.croc.ctp.just.dsig.sign.TrustedCertificatesService.init(TrustedCertificatesService.java:84)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:309)
	at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1679)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:881)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230)
	at ru.croc.ctp.just.dsig.Application.main(Application.java:52)
Caused by: ru.CryptoPro.JCP.Random.RandomRefuseException: null
	at ru.CryptoPro.JCP.Random.CertifiedRandom.b(Unknown Source)
	at ru.CryptoPro.JCP.Random.CertifiedRandom.a(Unknown Source)
	at ru.CryptoPro.JCP.Random.CertifiedRandom.<init>(Unknown Source)
	at ru.CryptoPro.JCP.Random.CPRandom.<init>(Unknown Source)
	at ru.CryptoPro.JCP.Random.CPRandom.<clinit>(Unknown Source)
	... 57 common frames omitted
Caused by: java.io.FileNotFoundException: null
	at ru.CryptoPro.JCP.KeyStore.cl_20.b(Unknown Source)
	at ru.CryptoPro.JCP.tools.LocalMutex.a(Unknown Source)
	at ru.CryptoPro.JCP.tools.LocalMutex.<init>(Unknown Source)
	... 62 common frames omitted
Caused by: java.security.PrivilegedActionException: null
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	... 64 common frames omitted
Caused by: java.io.IOException: Failed to create path: /var/opt/cprocsp/tmp
	at ru.CryptoPro.JCP.tools.cl_36.a(Unknown Source)
	at ru.CryptoPro.JCP.tools.cl_20.run(Unknown Source)
	... 65 common frames omitted

Отредактировано пользователем 22 июня 2022 г. 18:04:44(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#2 Оставлено : 22 июня 2022 г. 21:07:55(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,193
Российская Федерация

Сказал(а) «Спасибо»: 100 раз
Поблагодарили: 274 раз в 254 постах
Добрый день!
JCP - полноценное СКЗИ работающее в jvm
JCSP - это враппер (обертка над CSP) где криптографические операции выполняются непосредственно в CSP. в JavaCSP также включен JCP. можете например установить JCP из дистрибутива JavaCSP

по поводу файлов. в составе дистрибутива есть sh-ник который создает необходимою иерархию директорий с нужными правами.
вы можете самостоятельно установить пути
Код:
    final static String HD_IMAGE_NODE = "/ru/CryptoPro/JCP/KeyStore/HDImage";
    final static String HD_IMAGE_KEY = "HDImageStore_class_default";

    final static String TMP_NODE = "/ru/CryptoPro/JCP/tools";
    final static String TMP_KEY = "UnixMutex_class_pathToLocks";

    public static void main(String[] args) {
	    Preferences prefs = Preferences.userRoot();
	    // выводим старые значения.
	    System.out.println("old values:");
	    System.out.println(prefs.node(HD_IMAGE_NODE).get(HD_IMAGE_KEY, null));
	    System.out.println(prefs.node(TMP_NODE).get(TMP_KEY, null));
	    // устанавливаем новые значения.
	    prefs.node(HD_IMAGE_NODE).put(HD_IMAGE_KEY, "/tmp/keys/"); // каталог для ключей
	    prefs.node(TMP_NODE).put(TMP_KEY, "/var/tmp"); // каталог для лок-файлов
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
EVoynov оставлено 28.06.2022(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.