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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Анастасия Чижикова  
#1 Оставлено : 5 февраля 2014 г. 10:54:42(UTC)
Анастасия Чижикова

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

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

Сказал(а) «Спасибо»: 6 раз
Добрый день! Срочно нужна помощь. Подскажите, пожалуйста, в чем может быть проблема.
Не удается проверить присоединенную подпись. Не проверяются файлы, подписанные конкретным ключом. Пока это единичный случай.

Системные параметры:
-Dru.CryptoPro.reprov.enableCRLDP=true
-Dcom.sun.security.enableCRLDP=true
-Dcom.ibm.security.enableCRLDP=true
-Dru.cryptopro.notThrowIfChainIsInvalid=true
-Docsp.enable=false


Код проверки подписи:

Collection<X509Certificate> xChain = new ArrayList<X509Certificate>();
Collection<X509CRL> x509CRLs = new ArrayList<X509CRL>();
CAdESSignature cadesSignature;

// Инициализация подписи
try {
cadesSignature = new CAdESSignature(signature, null, CAdESType.CAdES_BES);
} catch (Throwable e) {
throw new RuntimeException("Cannot initialize signature.\n" + e.getMessage());
}

// Загрузка СОС
try {
String crlUrl = "http://ca.ekey.ru/cdp/ekeyCA.crl"; //Это адрес, взятый из сертификата для именно этого контейнера
HttpURLConnection connection = (HttpURLConnection) new URL(crlUrl.replace("&", "&").replace(" ", "%20")).openConnection();
connection.connect();
InputStream iStream = connection.getInputStream();
if (iStream != null) {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509CRL crl = (X509CRL) cf.generateCRL(iStream);
x509CRLs = Collections.singletonList(crl);
}
connection.disconnect();
} catch (Exception err) {
logger.error(err);
}

// Проверка подписи
try {
if (x509CRLs != null && x509CRLs.size() > 0){
cadesSignature.verify(xChain, x509CRLs);
} else {
cadesSignature.verify(xChain);
}
} catch (Throwable e) {
throw new RuntimeException("Invalid signature\n" + e.getMessage());

}

Результат
Доходит до проверки подписи и говорит:
фев 05, 2014 10:41:34 AM ru.CryptoPro.CAdES.exception.CAdESException <init>
SEVERE: Error building certification path for C=RU, GIVENNAME=...и т.д..., SURNAME=...: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
ERROR 05.02 10:51:01,962 http-8080-1 (ru.mdi.irmdev.elib.crypt.JCPCryptService.verifyAndGetSignInfo():410) [] - sign_is_invalidError building certification path for C=RU, GIVENNAME=..., OID.1.2.840.113549.1.9.2="INN=........и т.д..... г. Москва, SURNAME=...: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Error building certification path for C=RU, GIVENNAME=Андрей Борисович, ........и т.д....., SURNAME=...: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target, errors: 'PKIX failure: invalid parameters of certificate' (33)

Корневой сертификат загружен в cacerts используемой jre. Другие файлы проверяются, для них даже достаточно cadesSignature.verify(xChain), без x509CRLs.
В сертификате (с которым проблема) не указан ocsp сервер, есть только CLR.

Отредактировано пользователем 5 февраля 2014 г. 17:31:39(UTC)  | Причина: Не указана

Offline Анастасия Чижикова  
#2 Оставлено : 5 февраля 2014 г. 17:36:11(UTC)
Анастасия Чижикова

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

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

Сказал(а) «Спасибо»: 6 раз
Есть надежда на ответ? :)
Offline Евгений Афанасьев  
#3 Оставлено : 5 февраля 2014 г. 21:17:49(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 713 раз в 673 постах
Здравствуйте.
Какая версия CAdES.jar, JCP, jre?
Можете приложить образец подписи? И корневой, чтобы можно было воссоздать ситуацию (построение цепочки).

Отредактировано пользователем 5 февраля 2014 г. 21:20:12(UTC)  | Причина: Не указана

Offline Анастасия Чижикова  
#4 Оставлено : 6 февраля 2014 г. 12:29:41(UTC)
Анастасия Чижикова

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

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

Сказал(а) «Спасибо»: 6 раз
JCP 1.0.54
jre 1.6.0_38-b05

(На jre 1.7.0.15 работает точно так же, на jre 1.6.0_24, похоже, падает уже на инициализации подписи. Такие jre стоят на разных серверах, но системные настройки одинаковые и корневой сертификат везде загружен).

CAdES-1.0.2.jar

Путь к корневому сертификату указан такой: http://ca.ekey.ru/cdp/ekeyCA.cer (оттуда и качали)

Есть только файл 16 мб. На форум не загрузится. Можно прислать на эл. почту? Скажите, пожалуйста, адрес.

Отредактировано пользователем 6 февраля 2014 г. 12:36:00(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#5 Оставлено : 6 февраля 2014 г. 13:16:59(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 713 раз в 673 постах
Попробуйте сначала с CAdES-2.0. из сборки JCP 2.0.
Если не будет работать, то вышлите письмо с подписью в support@cryptopro.ru с пометкой о проблеме или ссылкой сюда.
Offline Анастасия Чижикова  
#6 Оставлено : 6 февраля 2014 г. 15:13:01(UTC)
Анастасия Чижикова

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

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

Сказал(а) «Спасибо»: 6 раз
Удалось получить маленький файл, подписанный тем же ключом.
Вложение(я):
11.2 Перинатальный центр ПДФ(лок. см.).pdf.rar (462kb) загружен 8 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Евгений Афанасьев  
#7 Оставлено : 6 февраля 2014 г. 15:56:36(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 713 раз в 673 постах
В сертификате присутствует незнакомое расширение. См. http://www.cryptopro.ru/...sts&t=5287#post31857
Offline Анастасия Чижикова  
#8 Оставлено : 6 февраля 2014 г. 16:49:40(UTC)
Анастасия Чижикова

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

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

Сказал(а) «Спасибо»: 6 раз
1. Я правильно поняла, что проблему не получится обойти системными настройками и новыми версиями JCP и jre? Проблема в корневом сертификате и ее должен решать издатель?
2. Возможно ли отключить проверку сертификатов при проверке подписи?
Offline Евгений Афанасьев  
#9 Оставлено : 6 февраля 2014 г. 17:44:44(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 713 раз в 673 постах
Автор: Анастасия Чижикова Перейти к цитате
1. Я правильно поняла, что проблему не получится обойти системными настройками и новыми версиями JCP и jre? Проблема в корневом сертификате и ее должен решать издатель?
2. Возможно ли отключить проверку сертификатов при проверке подписи?


1. Да, обойти не получится, но проблема не в корневом сертификате, а в клиентском (критическое расширение SMIME, вкладка "Состав").
2. Нет (ошибка происходит при построении цепочки, до проверки статуса).

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
Анастасия Чижикова оставлено 06.02.2014(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.