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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline EVoynov  
#1 Оставлено : 28 мая 2013 г. 17:18:22(UTC)
EVoynov

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

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

Сказал(а) «Спасибо»: 7 раз
Добрый день!

Выполняется команда из папки jre, в cacerts которой необходимо добавить сертификат УЦ:

Цитата:
keytool -import -alias test_cryptopro -trustcacerts -keystore /u01/documentum/cs/jboss4.3.0/jdk/jre/lib/security/cacerts -file /u01/documentum/cs/config/cacerts/certnew_test_cryptopro.cer


Получаю ошибку:

Цитата:
Enter keystore password: changeit
keytool error: java.security.NoSuchAlgorithmException: 1.2.643.2.2.3 Signature not available


JCP версии 1.0.46 предварительно на эту JRE установлен (Install successful).

В чем может быть проблема? Что нужно еще донастроить?

Изначально решается проблема с проверкой отделенной усовершенствованной ЭЦП, созданной средствами cadescom на тестовой сертификате КриптоПро:
Цитата:
18:31:08,637 ERROR [http-0.0.0.0-9080-1] com.croc.documentum.crypto.SignatureVerifier - Error verify extended signature
ru.CryptoPro.CAdES.exception.CAdESException: CAdES exception occured: Root certificate E=info@cryptopro.ru,C=RU,O=CRYPTO-PRO,CN=Test Center CRYPTO-PRO is untrusted.
at ru.CryptoPro.CAdES.b.d.a.a(Unknown Source)
at ru.CryptoPro.CAdES.b.d.a.<init>(Unknown Source)
at ru.CryptoPro.CAdES.b.d.a.<init>(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSigner.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.verify(Unknown Source)
....


Offline Евгений Афанасьев  
#2 Оставлено : 30 мая 2013 г. 11:58:13(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.
Попробуйте с помощью остальных параметров keytool произвести установку, например, добавив что-то из
-keyalg GOST3410 -providername JCP -storetype HDImageStore -sigalg GOST3411WITHGOST3410EL
Например, сначала добавьте "-providername JCP".
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
EVoynov оставлено 30.05.2013(UTC)
Offline EVoynov  
#3 Оставлено : 30 мая 2013 г. 12:58:11(UTC)
EVoynov

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

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

Сказал(а) «Спасибо»: 7 раз
Попробовал, получил ошибку:

Цитата:

keytool error: java.security.NoSuchProviderException: no such provider: JCP


Получается у меня как-то некорректно установлен JCP?
Как можно убедиться в этом и как понять, что он установлен верно?
Offline Евгений Афанасьев  
#4 Оставлено : 30 мая 2013 г. 13:26:12(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Для начала:
1) проверить jre/lib/security/java.security, есть ли в списке провайдеров
ru.CryptoPro.JCP.JCP
ru.CryptoPro.Crypto.CryptoProvider
ru.CryptoPro.reprov.RevCheck
ru.CryptoPro.ssl.Provider
2) выполнить проверку:
java -cp samples.jar ComLine.CheckConfFull
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
EVoynov оставлено 30.05.2013(UTC)
Offline EVoynov  
#5 Оставлено : 30 мая 2013 г. 14:56:40(UTC)
EVoynov

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

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

Сказал(а) «Спасибо»: 7 раз
Огромное спасибо!

Убедился, что JCP все-таки стоит. Выяснил, что проблема в том, что та, JRE в которую нужно поставить корневой сертификат и та, из которой по умолчанию запускается keytool - отличаются. Вызвал keytool по полному пути и все установилось.

Пробуем теперь снова проверить подпись, если проверится, то проблема будет решена, иначе сообщу продолжение Brick wall
Offline EVoynov  
#6 Оставлено : 31 мая 2013 г. 13:01:03(UTC)
EVoynov

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

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

Сказал(а) «Спасибо»: 7 раз
Установка корневого сертификата помогла, но ошибка теперь такая:

Цитата:
19:08:42,481 ERROR [http-0.0.0.0-9080-2] 2013-05-30 19:08:37,078 ERROR [STDERR] May 30, 2013 7:08:37 PM ru.CryptoPro.CAdES.tools.Utility initJCPAlgorithms
INFO: Redefinition of the BouncyCastle GOST algorithms.
2013-05-30 19:08:39,080 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.CAdESSigner <init>
INFO: Provider: JCP, signature type: null, auto detect: true
2013-05-30 19:08:39,085 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.CAdESSignature a
INFO: Begin verification...
2013-05-30 19:08:39,086 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.CAdESSigner a
INFO: Begin signature verification...
2013-05-30 19:08:39,086 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.CAdESSigner a
INFO: Signature type: null
2013-05-30 19:08:39,090 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.CAdESSigner a
INFO: Current signature cryptographic provider: JCP
2013-05-30 19:08:39,093 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.tools.a d
INFO: Attribute with OID 1.2.840.113549.1.9.16.2.12 is lost.
2013-05-30 19:08:39,094 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.tools.a d
INFO: Attribute with OID 1.2.840.113549.1.9.16.2.19 is lost.
2013-05-30 19:08:39,094 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.f.a a
INFO: Extract certificate reference by current standart V2.
2013-05-30 19:08:39,132 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.b.d.a <clinit>
INFO: Try to load trusted store cacerts...
2013-05-30 19:08:39,981 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Trusted certificates found: 74
2013-05-30 19:08:39,982 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.b.d.a <clinit>
INFO: Trusted store cacerts loaded.
2013-05-30 19:08:39,983 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.b.d.b a
INFO: Try to build certificate chain...
2013-05-30 19:08:39,993 ERROR [STDERR] May 30, 2013 7:08:39 PM ru.CryptoPro.CAdES.b.d.b a
INFO: Building: certificate with serial 79995eef0002000419b2 and issuer: E=info@cryptopro.ru,C=RU,O=CRYPTO-PRO,CN=Test Center CRYPTO-PRO
2013-05-30 19:08:40,004 ERROR [STDERR] May 30, 2013 7:08:40 PM ru.CryptoPro.CAdES.b.d.b a
INFO: Certificate chain built.
2013-05-30 19:08:40,007 ERROR [STDERR] May 30, 2013 7:08:40 PM ru.CryptoPro.CAdES.b.d.a <init>
INFO: Root certificate is not found into the chain. Look for the root into cacerts...
2013-05-30 19:08:40,052 ERROR [STDERR] May 30, 2013 7:08:40 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Verify a certificate chain with size 1 by PKIX...
2013-05-30 19:08:40,052 ERROR [STDERR] May 30, 2013 7:08:40 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate path length: 1
2013-05-30 19:08:40,054 ERROR [STDERR] May 30, 2013 7:08:40 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Trusted anchor deepth: 1
2013-05-30 19:08:41,444 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.JCP.tools.l a
INFO: Loading JCP...
2013-05-30 19:08:41,759 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.JCP.tools.l a
INFO: JCP loaded.
2013-05-30 19:08:41,935 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate chain is built correctly (true).
2013-05-30 19:08:41,936 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate chain is verified by PKIX.
2013-05-30 19:08:41,940 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate presence: RP_IGNORE
2013-05-30 19:08:41,945 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Verify a certificate chain with size 1 by PKIX...
2013-05-30 19:08:41,946 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate path length: 1
2013-05-30 19:08:41,947 ERROR [STDERR] May 30, 2013 7:08:41 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Trusted anchor deepth: 1
2013-05-30 19:08:42,433 ERROR [STDERR] May 30, 2013 7:08:42 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate chain is built correctly (true).
2013-05-30 19:08:42,434 ERROR [STDERR] May 30, 2013 7:08:42 PM ru.CryptoPro.CAdES.b.d.a a
INFO: Certificate chain is verified by PKIX.
2013-05-30 19:08:42,435 ERROR [STDERR] May 30, 2013 7:08:42 PM ru.CryptoPro.CAdES.CAdESSigner a
INFO: Signer certificate chain is valid.
2013-05-30 19:08:42,481 ERROR [STDERR] May 30, 2013 7:08:42 PM ru.CryptoPro.CAdES.exception.CAdESException <init>
WARNING: ERROR
org.bouncycastle.cms.CMSSignerDigestMismatchException: message-digest attribute value does not match calculated value
at org.bouncycastle.cms.SignerInformation.doVerify(Unknown Source)
at org.bouncycastle.cms.SignerInformation.verify(Unknown Source)
at org.bouncycastle.cms.SignerInformation.verify(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSigner.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.verify(Unknown Source)
at com.croc.documentum.crypto.SignatureVerifier.CAdESSignatureVerify(SignatureVerifier.java:529)



Правильно ли, что эта ошибка как раз про то, что подпись невалидна?
Проверка той же подписи на клиенте средствами браузер-плагина подпись проверяется и валидна.

Отредактировано пользователем 31 мая 2013 г. 16:05:48(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#7 Оставлено : 31 мая 2013 г. 13:17:23(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Подпись отсоединенная? Хэш может не соответствовать также, если исходное сообщение в неверной кодировке.
Offline EVoynov  
#8 Оставлено : 31 мая 2013 г. 13:53:11(UTC)
EVoynov

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

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

Сказал(а) «Спасибо»: 7 раз
Да, подпись отсоединенная, сейчас вызов проверки выглядит так:

Код:

message = Base64.decode(signInfo.fullContextData + content);
...
CAdESSignature cadesSignature = new CAdESSignature(signature, message, null);
cadesSignature.verify(null);


где

signInfo.fullContextData - это обычная строка, которая переведена в строку Base64
например, строка:
Цитата:
nulldateПисьмоИсходящий с ЭЦПОбщество с ограниченной ответственностью "Прострой"09000001800d55bdСогласованоt_client_wli


а в переменной signInfo.fullContextData:
Цитата:
bnVsbGRhdGU=0J/QuNGB0YzQvNC+0JjRgdGF0L7QtNGP0YnQuNC5INGBINCt0KbQnw==0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC+0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+0YHRgtGM0Y4gItCf0YDQvtGB0YLRgNC+0LkiMDkwMDAwMDE4MDBkNTViZA==0KHQvtCz0LvQsNGB0L7QstCw0L3Qvg==dF9jbGllbnRfd2xp


content - это содержимое файла (байтовый поток) переведенное в строку Base64.

На клиенте именно в таком виде (в виде конкатенации двух Base64-строк) данные подаются при подписи/проверке.

Как корректно тоже самое сделать в JCP?
Offline Евгений Афанасьев  
#9 Оставлено : 31 мая 2013 г. 15:43:18(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Попробуйте для начала сделать подпись и проверить ее без преобразований в base64 и без конкатенации.
Offline EVoynov  
#10 Оставлено : 31 мая 2013 г. 16:15:54(UTC)
EVoynov

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

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

Сказал(а) «Спасибо»: 7 раз
Проблема в том, что наша система существует уже более 5 лет и на описанном механизме созданы миллионы подписей, которые корректно проверяются на клиенте в браузере. Сейчас встала задача аналогичную проверку реализовать на linux-серверах на Java, поэтому проблема именно в том, чтобы отловить причину, по которой подписи проверяются по-разному.

Ошибка, которая приведена выше, точно ли говорит о невалидности подписи (т.е. несовпаденни данных подписанных изначально и данных сформированных при проверке)? Или может быть в том, что JCP не определяет, что подпись отделенная?
В общем, вопрос в том, копать в сторону того, точно ли совпадает алгоритм подготовки данных или в какую-то еще?

Отредактировано пользователем 31 мая 2013 г. 16:16:37(UTC)  | Причина: Не указана

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