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

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Offline bankir1980  
#11 Оставлено : 20 декабря 2012 г. 16:12:58(UTC)
bankir1980

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

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

Сказал(а) «Спасибо»: 1 раз
До keyStore.load я уже сам додумался :)
Теперь следующий шаг

дек 20, 2012 5:06:44 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.53
дек 20, 2012 5:06:44 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Exception in thread "main" java.lang.ClassCastException: content[0] is not a valid X509Data type
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMX509Data.<init>(DOMX509Data.java:68)
at ru.CryptoPro.JCPxml.dsig.internal.dom.DOMKeyInfoFactory.newX509Data(DOMKeyInfoFactory.java:88)
at test.smev.main.main(main.java:307)


на коде
KeyInfoFactory kif = fac.getKeyInfoFactory();
X509Data x509d = kif.newX509Data(Collections.singletonList((X509Certificate) cert));

Посмотрел код, вроде всё прозрачно, передается параметр с содержимым (X509Certificate) cert), но instance of X509Certificate в DOMX509Data.class в public DOMX509Data(List<?> content) line 68 почему то не прокатывает?!


Offline Евгений Афанасьев  
#12 Оставлено : 20 декабря 2012 г. 16:31:20(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 712 раз в 673 постах
Сертификат точно есть в хранилище?
По умолчанию, если генерили контейнер в панели jcp, то там будет лежать запрос на серитфикат, а сам сертификат после получения надо добавлять туда отдельно. Либо сертификат читайте из файла, а не делая getCertificate().
Offline bankir1980  
#13 Оставлено : 20 декабря 2012 г. 16:42:51(UTC)
bankir1980

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

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

Сказал(а) «Спасибо»: 1 раз
я генерил сертификат на сайте по ссылке, что Вы мне написали :)
Устанавливал КриптоПро JCP по инструкции, там написано, что в пуске программы должен ярлык какой то появиться, но у меня не появился, хотя права админские.
Наверно эта самая панель и запускается через этот ярлык?

Еще у меня в панели управления есть КриптоПро CSP. Именно там я и создавал носитель и именно туда поместился сгенерированный на сайте сертификат.
На текущий момент есть контейнер и в нем сгенерированный сертификат Maxim, у которого есть корневой сертификат Test Center CRYPTO-PRO в пути сертификации.

Пользователь bankir1980 прикрепил следующие файлы:
cert.jpg (112kb) загружен 40 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Евгений Афанасьев  
#14 Оставлено : 20 декабря 2012 г. 16:52:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 712 раз в 673 постах
Вы скачали папку с дистрибутивом jcp. В папке lib есть скрипт ControlPane.bat. Выполните в папке
cmd
ControlPane path_to_jre
откроется панель jcp, в ней есть вкладка со списком контейнеров (Контейнеры и хранилища сертификатов), тут можно открыть контейнер, произвести установку сертификата и др.
Ради эксперимента попробуйте сохранить сертификат в файл (из csp), и получать его в примере из файла, а не путем getCertificate.

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

Пользователь Евгений Афанасьев прикрепил следующие файлы:
pic.jpg (77kb) загружен 1,576 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline bankir1980  
#15 Оставлено : 21 декабря 2012 г. 11:43:08(UTC)
bankir1980

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

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

Сказал(а) «Спасибо»: 1 раз
afev, вроде что-то получилось (портал выдает ошибку, что сертификат недоверенный). Спасибо огромное.

Осталось только выяснить, что нужно сделать, чтобы сертификат работал со СМЭВ :)
Полагаю нужно обратиться к кому-то из списка авторизованных удостоверяющих центров для работы с гос. порталами, в контейнере JCP создать контейнер, сохранить запрос на сертификат, отправить в УЦ, они пришлют сертификат, который нужно будет подгрузить в этот же контейнер?

К кому можно обратиться в крипто-про по поводу лицензии на JCP и по поводу услуги генерации сертификата (Крипто Про есть в реестре доверенных УЦ для работы с гос. порталами)?
Offline Евгений Афанасьев  
#16 Оставлено : 21 декабря 2012 г. 12:53:01(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 712 раз в 673 постах
Да, все верно.
Можете написать в support@cryptopro.ru, посмотреть описание http://cryptopro.ru/order/, http://www.cryptopro.ru/buy/price;
Крипто-Про имеет аккредитованный УЦ http://q.cryptopro.ru/
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
bankir1980 оставлено 05.02.2013(UTC)
Offline bankir1980  
#17 Оставлено : 5 февраля 2013 г. 12:14:15(UTC)
bankir1980

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

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

Сказал(а) «Спасибо»: 1 раз
Возвращаюсь к нашим баранам.
Что нового.
Ключи на флэшке, сертификат получен и загружен в контейнер.
При отправке запроса, подписанного кодом из приведенного примера в блоге, возвращается ошибка

SMEV-200003: При обработке ответа произошла ошибка: Неверная ЭП сообщения

Прислали пример валидного подписанного XML запроса.
Скопировал его в исходный файл без информации wsse:Security, подписал. Сравнил подписанный файл и тот, что прислали.
Совпадает всё, кроме значений DigestValue и SignatureValue.

Так же саппорт госуслуг написал.

"Ошибка ""Неверная ЭП сообщения"" означает, что:
1. Содержимое подписываемого тега изменено после подписания.
2. Используемые ОИВом библиотеки инвертируют подпись. В этом случае
необходимо побитово инвертировать подпись перед внесением в XML.

По поводу пункта 1. После подписи изменения делаются только в части Security, в Body никаких изменений не делается. Еще файл сохраняется с перекодировкой в UTF-8
таким образом
doc - это объект Document над которым были манипуляции по наложению ЭЦП.

DOMSource domSource = new DOMSource(doc);
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer;
try {
transformer = tf.newTransformer();
transformer.transform(domSource, result);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
ByteArrayInputStream inStream;
try {
inStream = new ByteArrayInputStream(writer.toString().getBytes("UTF-8"));
signedMessage = getSOAPMessageFromInputStream(inStream);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}

Учитывая, что исходный xml файл так же в UTF-8, не думаю, что перекодировка что-то повредила. Или я не прав?

По второму пункту вообще не могу понять, как и что конкретно нужно инвертировать...
Offline Евгений Афанасьев  
#18 Оставлено : 5 февраля 2013 г. 12:33:18(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 712 раз в 673 постах
Инвертировать подпись, значит прочитать ее с конца. Например, XMLDSigRI.jar использует алгоритм GOST3411withGOST3410EL для проверки ЭЦП в исходном виде, а CryptoProSignature - "разворачивает".
Проверяется ли подпись локально, с помощью JCP?
Пробовали проверять doc после присоединения ЭЦП без сохранения в файл (я предполагаю, что документ читается из файла и проверяется)?
Присланный подписанный пример проверяется в JCP?

Offline bankir1980  
#19 Оставлено : 5 февраля 2013 г. 12:51:48(UTC)
bankir1980

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

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

Сказал(а) «Спасибо»: 1 раз
>Проверяется ли подпись локально, с помощью JCP?
глупый вопрос.
А как это сделать? :)
Offline bankir1980  
#20 Оставлено : 5 февраля 2013 г. 12:57:21(UTC)
bankir1980

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

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

Сказал(а) «Спасибо»: 1 раз
>Пробовали проверять doc после присоединения ЭЦП без сохранения в файл (я предполагаю, что документ читается из файла и проверяется)?

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