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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Timur777  
#1 Оставлено : 4 декабря 2017 г. 9:20:52(UTC)
Timur777

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

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

Скачал клиент СМЭВ3 с их сайта. Версия клиента client-4.1.6.0 (https://smev3.gosuslugi.ru/portal/api/files/1_client-4.1.6.0.zip)
Пытаюсь подписать сообщение с помощью их набора инструментов (*/toolset/signertool.sh)
Сообщение использовал из их примеров (примеры можно скачать тут - https://smev3.gosuslugi.ru/portal/faq.jsp в ответе на вопрос: Есть ли примеры полных конвертов запросов отправляемых в СМЭВ 3?)
Выдернул бизнес контент из файла SendRequestRequestNoAttach.xml (мне как раз нужно подписать подобный запрос)
в итоге сохранил отдельный файл req.xml
с содержанием:
Код:

<ns1:BreachRequest xmlns:ns1="urn://x-artefacts-gibdd-gov-ru/breach/root/1.0"  xmlns:ns2="urn://x-artefacts-gibdd-gov-ru/breach/commons/1.0"  xmlns:ns3="urn://x-artefacts-smev-gov-ru/supplementary/commons/1.0.1" Id="PERSONAL_SIGNATURE"> <ns1:RequestedInformation> <ns2:RegPointNum>Т785ЕС57</ns2:RegPointNum> </ns1:RequestedInformation> <ns1:Governance> <ns2:Name>ГИБДД РФ</ns2:Name> <ns2:Code>GIBDD</ns2:Code> <ns2:OfficialPerson> <ns3:FamilyName>Загурский</ns3:FamilyName> <ns3:FirstName>Андрей</ns3:FirstName> <ns3:Patronymic>Петрович</ns3:Patronymic> </ns2:OfficialPerson></ns1:Governance> </ns1:BreachRequest>


у меня:
CryptoPro JCP 2.0.37027
xmlsec (org.apache.santuario) 1.4.5

немного изменил файл signertool.sh (оригинал давал ошибки)
#!/bin/bash
set -e
JAVA_CLASSPATH="$(pwd)/lib/*:$(pwd)"
java -classpath "${JAVA_CLASSPATH}" -Djava.endorsed.dirs=endorsed:/opt/cryptoprojcp ru.voskhod.smev.client.toolset.signer.Main "$@"

добавил только
set -e - для вывода ошибок
и
-Djava.endorsed.dirs=endorsed:/opt/cryptoprojcp
где endorsed, это папка находящаяся в той же папки где этот файл */toolset/endorsed, в ней лежат библиотеки:
bcpkix-jdk15on-1.47.jar
bcprov-jdk15on-1.47.jar
commons-logging.jar
xmlsec-1.4.5.jar
без них возникают ошибки ан подобие:
java.lang.NoClassDefFoundError: org/apache/xml/security/exceptions/AlgorithmAlreadyRegisteredException

/opt/cryptoprojcp добавлен так как без него возникает ошибки:
ru.voskhod.crypto.exceptions.SigLibInitializationException: Не удалось зарегистрировать алгоритм: http://www.w3.org/2001/0...g.SignatureGostR34102001$SignatureGostR34102001GostR3411. Убедитесь что выбраный провайдер действительно установлен!
at ru.voskhod.crypto.DigitalSignatureFactory.initXmlSec(DigitalSignatureFactory.java:81)


Итак, сейчас запускаю этот файл таким образом, и получаю следующию ошибку:

muratov_tr@develop04 ~/SMEV/original/client-4.1.6.0/toolset $ ./signertool.sh -cmd signXml -if /home/muratov_tr/SMEV/data/req.xml
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
дек 04, 2017 10:09:10 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 0.0 0.0.0
дек 04, 2017 10:09:10 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
[04.12.2017 10:09:10.620] ERROR [main] - Ошибка утилиты
java.lang.ClassCastException: com.objsys.asn1j.runtime.Asn1OpenType cannot be cast to ru.CryptoPro.JCP.ASN.PKIX1Explicit88._gost2001DHPubKey_Type
at ru.CryptoPro.JCP.params.AlgIdSpec.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.u.a(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.u.m(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.u.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.ContainerStore.engineGetKey(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPKeyStore.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(KeyStore.java:1023)
at ru.voskhod.crypto.impl.jcp.KeyStoreWrapperJCP.getPrivateKey(KeyStoreWrapperJCP.java:28)
at ru.voskhod.smev.client.api.signature.impl.SignerImpl.getKey(SignerImpl.java:69)
at ru.voskhod.smev.client.api.signature.impl.SignerImpl.init(SignerImpl.java:92)
at ru.voskhod.smev.client.api.signature.impl.SignerFactory.getSigner(SignerFactory.java:26)
at ru.voskhod.smev.client.api.signature.loader.Loader.getSigner(Loader.java:16)
at ru.voskhod.smev.client.api.factory.Factory.getSignerInstance(Factory.java:62)
at ru.voskhod.smev.client.toolset.signer.Main.<init>(Main.java:82)
at ru.voskhod.smev.client.toolset.signer.Main.main(Main.java:68)


Подскажите как можно это решить?
Пробовал с разными запросами req.xml (добавлял xml шапку, с пустым файлом тоже пробовал)

И может у кого то есть опыт подписания xml с помощью клиента smev3, опишите как вы это делали.
Offline Timur777  
#2 Оставлено : 4 декабря 2017 г. 9:27:15(UTC)
Timur777

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

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

Версия java, которая использовалась
muratov_tr@develop04 ~/SMEV/original/client-4.1.6.0/toolset $ java -version
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
openjdk version "1.8.0_77"
OpenJDK Runtime Environment (IcedTea 3.0.0) (Gentoo icedtea-3.0.0)
OpenJDK 64-Bit Server VM (build 25.77-b03, mixed mode)
Offline Евгений Афанасьев  
#3 Оставлено : 4 декабря 2017 г. 9:39:29(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Здравствуйте.
Автор: Timur777 Перейти к цитате
Loading JCP 0.0 0.0.0

На счет клиента подсказать не могу, но с JCP что-то не так: версия и сборка 0.0 0.0.0. Устанавливали по инструкции (рук-во администратора или программиста)? Ключевой контейнер создан в CSP или JCP?

Offline Timur777  
#4 Оставлено : 4 декабря 2017 г. 10:19:10(UTC)
Timur777

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

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

конкретно не могу сказать, ставили админы.
находится тут: /opt/cryptoprojcp
ключи были получены от СМЭВ
лежат тут: /var/opt/cprocsp/keys/muratov_tr/testsmev.000

кстати при запуске утилиты КриптоПро, при загрузке JCP указывает версию
muratov_tr@develop04 /var/opt/cprocsp/keys/muratov_tr/testsmev.000 $ jcpcp
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
дек 04, 2017 10:54:00 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 37027
дек 04, 2017 10:54:00 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Offline Timur777  
#5 Оставлено : 4 декабря 2017 г. 10:32:51(UTC)
Timur777

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

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

по поводу как поставлена:
установка такая же как в "Руководство администратора безопасности"- запускаем install.sh

Отредактировано пользователем 4 декабря 2017 г. 10:48:22(UTC)  | Причина: Не указана

Offline Timur777  
#6 Оставлено : 4 декабря 2017 г. 10:59:51(UTC)
Timur777

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

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

повторили на винде, то же самое, один в один
C:\WINDOWS\Temp\client-4.1.6.0\toolset>java -cp ".;lib/*" -Djava.endorsed.dirs=endorsed;C:\Progra~1\jcp-build-2.0.37027 ru.voskhod.smev.client.toolset.signer.Main -cmd signXml -if req.xml
фхъ 04, 2017 4:55:52 AM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 0.0 0.0.0
фхъ 04, 2017 4:55:52 AM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
[04.12.2017 04:55:52.825] ERROR [main] - ╬°шсър єЄшышЄ√
java.lang.ClassCastException: com.objsys.asn1j.runtime.Asn1OpenType cannot be cast to ru.CryptoPro.JCP.ASN.PKIX1Explicit88._gost2001DHPubKey_Type
at ru.CryptoPro.JCP.params.AlgIdSpec.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.u.a(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.u.m(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.u.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.ContainerStore.engineGetKey(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPKeyStore.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
at ru.voskhod.crypto.impl.jcp.KeyStoreWrapperJCP.getPrivateKey(KeyStoreWrapperJCP.java:24)
at ru.voskhod.smev.client.api.signature.impl.SignerImpl.getKey(SignerImpl.java:69)
at ru.voskhod.smev.client.api.signature.impl.SignerImpl.init(SignerImpl.java:92)
at ru.voskhod.smev.client.api.signature.impl.SignerFactory.getSigner(SignerFactory.java:26)
at ru.voskhod.smev.client.api.signature.loader.Loader.getSigner(Loader.java:16)
at ru.voskhod.smev.client.api.factory.Factory.getSignerInstance(Factory.java:62)
at ru.voskhod.smev.client.toolset.signer.Main.<init>(Main.java:82)
at ru.voskhod.smev.client.toolset.signer.Main.main(Main.java:68)
Offline Евгений Афанасьев  
#7 Оставлено : 4 декабря 2017 г. 11:44:16(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
Что сообщает выполнение команды: java -cp samples.jar ComLine.CheckConfFull
в папке дистрибутива, чтобы samples.jar был доступен.
Offline Timur777  
#8 Оставлено : 4 декабря 2017 г. 13:11:44(UTC)
Timur777

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

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

вот что получилось

muratov_tr@develop04 /opt/cryptoprojcp $ java -cp samples.jar ComLine.CheckConfFull
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
дек 04, 2017 2:10:23 PM ComLine.CheckConfFull checkProvs
INFO: Provider JTLS not installed.
дек 04, 2017 2:10:23 PM ComLine.CheckConfFull checkProvs
INFO: Provider JCSP not installed.
дек 04, 2017 2:10:23 PM ComLine.CheckConfFull checkSignature
INFO: ### Check singing and verifying by using JCP ###
дек 04, 2017 2:10:23 PM ComLine.CheckConfFull checkSignature
INFO: *** Check JCP key pair generation and writing to store
дек 04, 2017 2:10:23 PM ComLine.CheckConfFull keyGen
INFO: Generate key pair using algorithm GOST3410 (JCP).
дек 04, 2017 2:10:23 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 37027
дек 04, 2017 2:10:23 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull keyGen
INFO: Generation of key pair is completed (GOST3410, JCP)
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull keyGen
INFO: Generation of certificate is completed
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull keyGen
INFO: Recording of a private key named "jcptestsignkey" to HDImageStore is completed (JCP).
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull checkSignature
INFO: *** Check JCP key pair generation and writing to store - OK
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull checkSignature
INFO: *** Check JCP signature generation|verification
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull signVer
INFO: Sign data and verify signature by using key jcptestsignkey (JCP).
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull signVer
INFO: Loading of a private key is completed
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull signVer
INFO: Loading of a text is completed
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull signVer
INFO: Generation of the signature is completed
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull signVer
INFO: Loading of a public key is completed
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull signVer
INFO: The signature is true
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull checkSignature
INFO: *** JCP signature generation|verification - OK
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull deleteContainer
INFO: Delete container jcptestsignkey (JCP).
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull deleteContainer
INFO: Deleting of jcptestsignkey is completed
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull logResult
INFO:
JCP - OK

дек 04, 2017 2:10:25 PM ComLine.CheckConfFull checkEncDec
INFO: ### Check encryption and decryption by using Crypto ###
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull checkEncDec
INFO: *** Check Crypto key pair generation and writing to store
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull checkEncDec
INFO: *** Prepare keys
дек 04, 2017 2:10:25 PM ComLine.CheckConfFull keyGen
INFO: Generate key pair using algorithm GOST3410DH (Crypto).
дек 04, 2017 2:10:26 PM ComLine.CheckConfFull keyGen
INFO: Generation of key pair is completed (GOST3410DH, Crypto)
дек 04, 2017 2:10:26 PM ComLine.CheckConfFull keyGen
INFO: Generation of certificate is completed
дек 04, 2017 2:10:27 PM ComLine.CheckConfFull keyGen
INFO: Recording of a private key named "jcptestalisacryptokey" to HDImageStore is completed (JCP).
дек 04, 2017 2:10:27 PM ComLine.CheckConfFull keyGen
INFO: Generate key pair using algorithm GOST3410DH (Crypto).
дек 04, 2017 2:10:28 PM ComLine.CheckConfFull keyGen
INFO: Generation of key pair is completed (GOST3410DH, Crypto)
дек 04, 2017 2:10:28 PM ComLine.CheckConfFull keyGen
INFO: Generation of certificate is completed
дек 04, 2017 2:10:28 PM ComLine.CheckConfFull keyGen
INFO: Recording of a private key named "jcptestbobcryptokey" to HDImageStore is completed (JCP).
дек 04, 2017 2:10:28 PM ComLine.CheckConfFull encryptDecrypt
INFO: Encrypt and decrypt data by using of GOST28147/CNT/NoPadding (Crypto).
дек 04, 2017 2:10:28 PM ComLine.CheckConfFull encryptDecrypt
INFO: Loading of Alisa's private key and certificate is completed.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Loading of Bob's private key and certificate is completed.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Random sequence is generated.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Alisa's agreement key is completed.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Encryption by using of Alisa's key is completed.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Bob's agreement key is completed.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Decryption by using of Bob's key is completed.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull encryptDecrypt
INFO: Decrypted data is valid.
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull checkEncDec
INFO: *** Crypto encryption and decryption - OK
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull deleteContainer
INFO: Delete container jcptestalisacryptokey (JCP).
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull deleteContainer
INFO: Deleting of jcptestalisacryptokey is completed
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull deleteContainer
INFO: Delete container jcptestbobcryptokey (JCP).
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull deleteContainer
INFO: Deleting of jcptestbobcryptokey is completed
дек 04, 2017 2:10:29 PM ComLine.CheckConfFull logResult
INFO:
Crypto - OK

дек 04, 2017 2:10:29 PM ComLine.CheckConfFull main
INFO:
*******************************

дек 04, 2017 2:10:29 PM ComLine.CheckConfFull main
INFO:
JCP - OK
Crypto - OK
Offline Евгений Афанасьев  
#9 Оставлено : 4 декабря 2017 г. 13:18:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 690 раз в 651 постах
В логе все ок.
В той java, с помощью которой выполняете команды, установлен JCP? Или он подключается с помощью -cp ".;lib/*" ?
Offline Timur777  
#10 Оставлено : 4 декабря 2017 г. 13:22:28(UTC)
Timur777

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

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

кстати попробовал вывести информацию, во время исполнения кода, а конкретно при загрузке хранилища ключей
java.security.KeyStore ks = KeyStore.getInstance("HDImageStore");
ks.load(null);
в итоге получил такую информацию из переменной ks, после исполнения этих 2х строк кода

ks.aliases(): testsmev,RaUser-00314011-2473-479d-b3b9-964b8261303e,
ks.getType() = HDImageStore
ks.size() = 2
Provider provider = ks.getProvider()
provider.getName()=JCP,
provider.getInfo()=CryptoPro Java Provider,
provider.toString()=JCP version 0.0
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.