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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Евгений Афанасьев  
#11 Оставлено : 27 марта 2013 г. 8:35:58(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Вы пробовали положить CAdES.jar в папку с аплетом, с остальными jar - bouncycastle и т.д.?
Offline andreypars  
#12 Оставлено : 27 марта 2013 г. 8:50:03(UTC)
andreypars

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

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

Сказал(а) «Спасибо»: 2 раз
Эта следующая мысль, которая мне в голову пришла. Пока не пробовал на jcp 1.0.55. (CAdES.jar возможно придётся из JRE удалить.)
У меня уже была версия апплета на jcp 1.0.53 в которой CAdES.jar именно так загружался, но там была другая проблема.
Ошибка уже описана на форуме: http://www.cryptopro.ru/...;find=lastpost#post35926
Даже если скопировать все jar-ники в одну кучу (JRE или папку с апплетом) дальше в том же коде:

CAdESSignature cadesSignature = new CAdESSignature(detached);
cadesSignature.setCertificateStore(getCollectionStore(chain));

Ошибка:

Error verifying the certificate CN=Vasya, O=Kontora, C=RU: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty, errors: 'PKIX failure: invalid parameters of certificate' (33)
Cause:null

Хотя именно корневой сертификат тестового УЦ КриптоПро этого Васи я импортировал в cacerts. Буду сейчас этот сертификат более внимательно рассматривать.
Offline Евгений Афанасьев  
#13 Оставлено : 27 марта 2013 г. 8:55:46(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
cacerts доступен - jre/lib/security/cacerts? Пароль на него changeit?

Есть ли в коде System.setProperty("javax.net.ssl.trustStore", <path>)? Если есть, временно отключите его.
Включите логирование FINE (jre/lib/logging.properties), проверьте в логе, выводится ли в ходе подписи/проверки список доверенных сертификатов, есть ли сообщения с меткой IGNORE THROWN.

Судя по ошибке, в PKIXBuilderParameters подается пустой список trusted anchors, куда должны попасть доверенные сертификаты из cacerts. Возможно, cacerts не загружается.

Отредактировано пользователем 27 марта 2013 г. 9:06:10(UTC)  | Причина: Уточнение

Offline andreypars  
#14 Оставлено : 27 марта 2013 г. 9:05:40(UTC)
andreypars

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

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

Сказал(а) «Спасибо»: 2 раз
Ошибку InvocationTargetException при чтении сертификата из хранилища "вылечил" именно импортом корневого сертификата так:

keytool -importcert -file "E:/CryptoPro_Test.cer" -alias cryptopro_ca -keystore "C:/Program Files (x86)/Java/jre7/lib/security/cacerts" -storepass changeit

Поэтому с cacerts должно быть всё нормально. Хотя на Windows 7 64x две JRE тут C:/Program Files (x86)/Java/jre7 и тут C:/Program Files/Java/jre7. Значит 2 cacerts.
Обозреватель 32х, значит используется эта: C:/Program Files (x86)/Java/jre7

Свойства в коде заполняются только эти:

// Включаем возможность онлайновой проверки.
System.setProperty("ru.CryptoPro.reprov.enableCRLDP", "true");
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");

javax.net.ssl.trustStore не используется.
Offline Евгений Афанасьев  
#15 Оставлено : 27 марта 2013 г. 9:13:27(UTC)
Евгений Афанасьев

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

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

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

CAdESSignature cadesSignature = new CAdESSignature(detached);
cadesSignature.setCertificateStore(getCollectionStore(chain));


Ошибка в какой-то из этих строк или при подписи (sign)?

При включенном .level=FINE вывод в лог при подписи должен содержать что-то вроде:
Код:

ru.CryptoPro.CAdES.b.d.a <clinit>
INFO: %%% Loading C:\Program Files\Java\jre6\lib\security\cacerts %%%
FINE: Loading of trusted certificates (cacerts)...
FINE: Trusted certificates loaded (total: 91)
// Список доверенных сертификатов
INFO: %%% Trusted store loaded %%%

Отредактировано пользователем 27 марта 2013 г. 9:17:58(UTC)  | Причина: Не указана

Offline andreypars  
#16 Оставлено : 27 марта 2013 г. 9:18:29(UTC)
andreypars

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

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

Сказал(а) «Спасибо»: 2 раз
Где то в этом районе. Точно не знаю в какой строке, может быть и здесь: cadesSignature.sign(data);
Включил логирование FINE. Сейчас буду смотреть.
Offline andreypars  
#17 Оставлено : 27 марта 2013 г. 9:22:46(UTC)
andreypars

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

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

Сказал(а) «Спасибо»: 2 раз
мар 27, 2013 12:24:27 PM ru.CryptoPro.CAdES.b.d.a <clinit>
INFO: %%% Loading C:\Program Files (x86)\Java\jre7\lib\security\cacerts %%%
мар 27, 2013 12:24:27 PM ru.CryptoPro.CAdES.b.d.a a
FINE: Loading of trusted certificates (cacerts)...
мар 27, 2013 12:24:27 PM ru.CryptoPro.CAdES.exception.CAdESException <init>
SEVERE: Other application error
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Program Files (x86)\Java\jre7\lib\security\cacerts" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at ru.CryptoPro.CAdES.b.d.a.a(Unknown Source)
at ru.CryptoPro.CAdES.b.d.a.<clinit>(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at applet.CAdESUtil.createCMSWithTimeStamp(CAdESUtil.java:62)
at applet.CryptoJCPApplet.createCMS(CryptoJCPApplet.java:351)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSInvoke.invoke(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MethodInfo.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass$MemberBundle.invoke(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke0(Unknown Source)
at sun.plugin2.liveconnect.JavaClass.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$DefaultInvocationDelegate.invoke(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo.doObjectOp(Unknown Source)
at sun.plugin2.main.client.LiveConnectSupport$PerAppletInfo$LiveConnectWorker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Судя по всему, это из-за того, что jar апплета не подписан.
Offline Евгений Афанасьев  
#18 Оставлено : 27 марта 2013 г. 9:26:09(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Не удается прочитать cacerts, потому список trusted anchors пустой.
Offline andreypars  
#19 Оставлено : 27 марта 2013 г. 10:12:20(UTC)
andreypars

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

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

Сказал(а) «Спасибо»: 2 раз
Подписал jar апплета так:

keytool -genkey -keyalg rsa -alias vasyakey
keytool -export -alias vasyakey -file vasyacert.crt
jarsigner JCPApplet.jar vasyakey

vasyacert.crt импортировал в хранилище через IE > Свойства браузера\Содержание\Сертификаты > Доверенные корневые сертификации.

Открыл сертификат для проверки: пишет "Этот сертификат действителен."

Открываю web страничку с апплетом - IE молча его запускает, но ошибка
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Program Files (x86)\Java\jre7\lib\security\cacerts" "read")
всё равно в логе есть.

Пробовал импортировать vasyacert.crt в хранилище FireFox. Теперь FF на страничке апплета стала спрашивать подтверждение на запуск апплета (Do you want to run this application?). Ошибка воспроизводится.

Положил в папку профиля пользователя Windows 7 (C:\Users\Vasya\) файл .java.policy
Такой:

grant {
permission java.io.FilePermission "C:\Program Files (x86)\Java\jre7\lib\security\cacerts", "read";
};

Не помогло, хотя для других прав доступа апплета раньше помогало.

Отредактировано пользователем 27 марта 2013 г. 11:09:26(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#20 Оставлено : 27 марта 2013 г. 10:39:54(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Пробовали

grant {
permission java.security.AllPermission;
};

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