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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline crazz  
#1 Оставлено : 23 ноября 2021 г. 13:00:34(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
подскажите плиз возможную причину возникновения ошибки
Hash or Sign ERROR: 0x57 при подписи кешированным сертификатом в хранилище MY

ошибка плавающая - сначала подпись работает нормально, через некоторое время (мин 10)
падает в методе signer.update(fileInByte)


Screenshot 2021-11-23 125928.png (109kb) загружен 10 раз(а).

Отредактировано пользователем 23 ноября 2021 г. 13:18:11(UTC)  | Причина: Не указана

Offline crazz  
#2 Оставлено : 23 ноября 2021 г. 13:17:14(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
далее работает вообще через раз, ок - не ок
Offline Санчир Момолдаев  
#3 Оставлено : 23 ноября 2021 г. 13:41:50(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 70 раз
Поблагодарили: 164 раз в 160 постах
Добрый день!
в update надо передавать посчитанный хэш

Код:
    @Override                                                                                                                          
    byte[] sign(PrivateKey privateKey) throws Exception {                                                                              
        MessageDigest digest = MessageDigest.getInstance(config.getDigestAlg(), config.getProvider());                                 
        digest.update(config.getData());                                                                                               
        byte[] hash = digest.digest();
        Signature signature = Signature.getInstance(config.getSignAlg(), config.getProvider());
        signature.initSign(privateKey);
        signature.update(hash);
        return signature.sign();
    }

Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#4 Оставлено : 23 ноября 2021 г. 13:45:07(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 70 раз
Поблагодарили: 164 раз в 160 постах
провайдер должен быть JCP.RAW_CRYPTOPRO_SIGN_2012_256_NAME для хэширования

57 ошибка это:
CryptoAPI function 'CryptAcquireContext' failed. Error 0x57: The parameter is incorrect.

Отредактировано пользователем 23 ноября 2021 г. 13:46:06(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Евгений Афанасьев  
#5 Оставлено : 23 ноября 2021 г. 19:08:37(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 596 раз в 566 постах
Здравствуйте.
Приложите стек ошибки.
Offline crazz  
#6 Оставлено : 23 ноября 2021 г. 21:49:10(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
провайдер должен быть JCP.RAW_CRYPTOPRO_SIGN_2012_256_NAME для хэширования

57 ошибка это:
CryptoAPI function 'CryptAcquireContext' failed. Error 0x57: The parameter is incorrect.



такое же поведение, работает через раз на закешированных
а с облачным сертом работает всегда

Код:

        signAlgName = JCP.RAW_CRYPTOPRO_SIGN_2012_256_NAME;
        MessageDigest digest = MessageDigest.getInstance(JCP.GOST_DIGEST_2012_256_OID, JCSP.PROVIDER_NAME);
        digest.update(fileInByte);
        byte[] hash = digest.digest();


        Signature signer = Signature.getInstance(signAlgName, JCSP.PROVIDER_NAME);

        signer.initSign(privateKey);
        signer.update(hash);

        byte[] signature = signer.sign();

Отредактировано пользователем 23 ноября 2021 г. 21:49:43(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#7 Оставлено : 23 ноября 2021 г. 22:39:53(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 596 раз в 566 постах
Автор: Евгений Афанасьев Перейти к цитате
Приложите стек ошибки.

И еще хорошо бы собрать лог, как описано тут https://support.cryptopr...nlirovnija-kriptopro-jcp (см. ConsoleHandler), но только с логгером
Цитата:

ru.CryptoPro.JCSP.JCSPLogger.level = ALL

а не JCPLogger.

Offline crazz  
#8 Оставлено : 23 ноября 2021 г. 23:29:07(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
Автор: Евгений Афанасьев Перейти к цитате
Приложите стек ошибки.

И еще хорошо бы собрать лог, как описано тут https://support.cryptopr...nlirovnija-kriptopro-jcp (см. ConsoleHandler), но только с логгером
Цитата:

ru.CryptoPro.JCSP.JCSPLogger.level = ALL

а не JCPLogger.



стек
Код:
java.lang.IllegalArgumentException: Hash or Sign ERROR: 0x57
	at ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException.procCode(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_5.createHash(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_5.a(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_5.initHashGR3411(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_2.a(Unknown Source)
	at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineSign(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.JCSPGostElSign.engineSign(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.JCSPRawCryptoProSign.engineSign(Unknown Source)
	at java.security.Signature.sign(Unknown Source)
	at ru.soi.service.crypto.SigningService.signAndVerify(SigningService.java:131)
	at ru.soi.service.crypto.SigningService.signingFile(SigningService.java:187)
	at ru.soi.controller.v1.signature.SignatureServiceController.normalSignFile(SignatureServiceController.java:247)



новая ошибка (чередуется с Hash or Sign ERROR: 0x57)
Код:

nested exception is java.security.InvalidKeyException: Key algorithm does not match the signature algorithm.] with root cause
java.security.InvalidKeyException: Key algorithm does not match the signature algorithm.
	at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineInitVerify(Unknown Source)
	at java.security.Signature.initVerify(Unknown Source)
	at ru.soi.service.crypto.SigningService.signAndVerify(SigningService.java:132)
	at ru.soi.service.crypto.SigningService.signingFile(SigningService.java:202)
	at ru.soi.controller.v1.signature.SignatureServiceController.normalSignFile(SignatureServiceController.java:247)


логи JCSP
log jcsp.txt (38kb) загружен 2 раз(а).

Отредактировано пользователем 24 ноября 2021 г. 10:55:25(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#9 Оставлено : 24 ноября 2021 г. 10:44:09(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 596 раз в 566 постах
1. Hash or Sign ERROR: 0x57

Автор: crazz Перейти к цитате
Автор: Евгений Афанасьев Перейти к цитате
Автор: Евгений Афанасьев Перейти к цитате
Приложите стек ошибки.

И еще хорошо бы собрать лог, как описано тут https://support.cryptopr...nlirovnija-kriptopro-jcp (см. ConsoleHandler), но только с логгером
Цитата:

ru.CryptoPro.JCSP.JCSPLogger.level = ALL

а не JCPLogger.



стек
Код:
java.lang.IllegalArgumentException: Hash or Sign ERROR: 0x57
	at ru.CryptoPro.JCSP.MSCAPI.MSHashNSignException.procCode(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_5.createHash(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_5.a(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_5.initHashGR3411(Unknown Source)
	at ru.CryptoPro.JCSP.MSCAPI.cl_2.a(Unknown Source)
	at ru.CryptoPro.JCSP.Key.AbstractKeySpec.signature(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineSign(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.JCSPGostElSign.engineSign(Unknown Source)
	at ru.CryptoPro.JCSP.Sign.JCSPRawCryptoProSign.engineSign(Unknown Source)
	at java.security.Signature.sign(Unknown Source)
	at ru.soi.service.crypto.SigningService.signAndVerify(SigningService.java:131)
	at ru.soi.service.crypto.SigningService.signingFile(SigningService.java:187)
	at ru.soi.controller.v1.signature.SignatureServiceController.normalSignFile(SignatureServiceController.java:247)


лог с JCPLogger написал только это
Код:
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.RSAProvType_class_default=24
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.DefaultCSPProvider_2001_class_default=Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.DefaultCSPProvider_2012_256_class_default=Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.DefaultCSPProvider_2012_512_class_default=Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.DefaultCSPProvider_RSA_class_default=
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.KeySet_class_default=0
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.NameType_class_default=0
2021-11-23 23:19:34 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/params.add_provider_name_class_default=false
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/tools/Control.StrengthenedKeyUsageControl=false
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_class_defaultDH=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_256_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_256_dh_class_defaultDH=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_512_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.AlgIdSpec_2012_512_dh_class_defaultDH=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpecDH_class_defaultDH=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpecDH_2012_256_class_defaultDH=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpec_class_defaultECC=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.EllipticParamsSpec_2012_256_class_defaultECC=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.DigestParamsSpec_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.DigestParamsSpec_2012_256_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.DigestParamsSpec_2012_512_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.CryptParamsSpec_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.CryptParamsSpec_2012_256_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/params.CryptParamsSpec_2012_512_class_default=null
2021-11-23 23:19:35 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCP/Key.InternalGostPrivateKey_class_default=true
2021-11-23 23:20:08 [main] INFO  ru.CryptoPro.JCSP.JCSPLogger - Loading Java CSP 5.0.41975
2021-11-23 23:20:08 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/tools.SelfTester_jar_classes_java_csp=ru.CryptoPro.JCSP.JCSPInstaller
2021-11-23 23:20:08 [main] INFO  ru.CryptoPro.JCP.tools.JCPLogger - System Preference Node: /ru/CryptoPro/JCSP/tools.SelfTester_external_classNames_java_csp=null
2021-11-23 23:20:08 [main] INFO  ru.CryptoPro.JCSP.JCSPLogger - Java CSP has been loaded.


новая ошибка (чередуется с Hash or Sign ERROR: 0x57)
Код:

nested exception is java.security.InvalidKeyException: Key algorithm does not match the signature algorithm.] with root cause
java.security.InvalidKeyException: Key algorithm does not match the signature algorithm.
	at ru.CryptoPro.JCSP.Sign.CryptoProSign.engineInitVerify(Unknown Source)
	at java.security.Signature.initVerify(Unknown Source)
	at ru.soi.service.crypto.SigningService.signAndVerify(SigningService.java:132)
	at ru.soi.service.crypto.SigningService.signingFile(SigningService.java:202)
	at ru.soi.controller.v1.signature.SignatureServiceController.normalSignFile(SignatureServiceController.java:247)


В logging.properties у вас точно java.util.logging.ConsoleHandler.level = ALL?
С закрытым ключом privateKey что-нибудь делается, кроме подписи?

2. InvalidKeyException: Key algorithm does not match the signature algorithm.

Эта ошибка возникает, когда алгоритм подписи указали один в Signature.getInstance(signAlgName, JCSP.PROVIDER_NAME), например, JCP.RAW_CRYPTOPRO_SIGN_2012_256_NAME, а ключ подписи имеет алгоритм, не подходящий для данного алгоритма подписи, например, ГОСТ 2001.
Offline crazz  
#10 Оставлено : 24 ноября 2021 г. 11:01:52(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
1. Hash or Sign ERROR: 0x57


В logging.properties у вас точно java.util.logging.ConsoleHandler.level = ALL?

да
логи обновил на JCSP
log jcsp.txt (38kb) загружен 2 раз(а).

Автор: Евгений Афанасьев Перейти к цитате
1. Hash or Sign ERROR: 0x57
С закрытым ключом privateKey что-нибудь делается, кроме подписи?

2. InvalidKeyException: Key algorithm does not match the signature algorithm.

Эта ошибка возникает, когда алгоритм подписи указали один в Signature.getInstance(signAlgName, JCSP.PROVIDER_NAME), например, JCP.RAW_CRYPTOPRO_SIGN_2012_256_NAME, а ключ подписи имеет алгоритм, не подходящий для данного алгоритма подписи, например, ГОСТ 2001.

ничего не делается,
а почему "Key algorithm does not match the signature algorithm" возникает и пропадает спонтанно?

Отредактировано пользователем 24 ноября 2021 г. 11:03:27(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#11 Оставлено : 24 ноября 2021 г. 12:11:51(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 596 раз в 566 постах
1. Закрытый ключ подписи находится на токене? Судя по логу, это SCARD\rutoken_ecp_3b6e4df0\1200\6785 - с ним соединение стабильно?
2. Сертификаты уникальны, нет с повторяющимися именами?
Offline crazz  
#12 Оставлено : 24 ноября 2021 г. 15:14:26(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
1. Закрытый ключ подписи находится на токене? Судя по логу, это SCARD\rutoken_ecp_3b6e4df0\1200\6785 - с ним соединение стабильно?
2. Сертификаты уникальны, нет с повторяющимися именами?


1. Сертификат устанавливается в локальное хранилище, далее через тестовое подписание при обращении к закрытому ключу он кешируется.
Служба кеширования в CSP установлена
а как в данном случае проверить соединение с ним?
2. Уникальные

вообще подпись пытаюсь сделать вот этим -
Код:
Alias SCARD\rutoken_ecp_3b6e5161\1400\B1A7 has been read.
Key has been read, key handle: 606005216
Created alias (based on properties): КЛВ*
Key entry alias: КЛВ*
Loading the private key, is system: true...
The private key has been reloaded.
Key specification: 1
Is foreign key: false
Key entry КЛВ* has been added.

Отредактировано пользователем 24 ноября 2021 г. 15:26:49(UTC)  | Причина: Не указана

Offline crazz  
#13 Оставлено : 24 ноября 2021 г. 15:46:03(UTC)
crazz

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

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

Сказал(а) «Спасибо»: 3 раз
еще, обнаружилось что ранее на CSP 4 ошибок не было, а после перехода на СSP 5.0.11455 и JCSP 5.0.41975 - при работе с кешированными сертами появлялись ошибки
Key algorithm does not match the signature algorithm
и
Hash or Sign ERROR: 0x57
Offline Санчир Момолдаев  
#14 Оставлено : 25 ноября 2021 г. 7:59:10(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 70 раз
Поблагодарили: 164 раз в 160 постах
Пользователь создал обращение 42908 на портале технической поддержки
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.