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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline VBurmistrov  
#1 Оставлено : 30 сентября 2016 г. 17:26:12(UTC)
VBurmistrov

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

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

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 7 раз в 5 постах
Здравствуйте!

Обнаружил следующую особенность работы провайдеров при использовании java.security.cert.CertPathBuilder :

Возможно это баг в RevCheck (JCP) КриптоПроJCP v.2.0, rel 2.0.38.674

Пробую построить путь сертификации двумя провайдерами SUN и RevCheck (JCP)

Цитата:
CertPathBuilder builder = CertPathBuilder.getInstance("PKIX", "SUN");

PKIXCertPathBuilderResult result =
(PKIXCertPathBuilderResult) builder.build(pkixParams);


и

Цитата:
CertPathBuilder builder = CertPathBuilder.getInstance("CPPKIX", "RevCheck");

PKIXCertPathBuilderResult result =
(PKIXCertPathBuilderResult) builder.build(pkixParams);


На вход в параметрах передается одна и та же коллекция промежуточных сертификатов. Среди них в разрезе одного УЦ есть сертификаты с истекшим сроком действия и действующие.

В качестве selector - сертификата, для которого нужно построить путь передаю один и тот же сертификат.
При использовании SUN цепочка строится, истекший промежуточный сертификат игнорируется и подставляется действующий - все НОРМАЛЬНО

При использовании RevCheck (JCP) в путь сертификации подставляется промежуточный сертификат с истекшим сроком действия.

И как следствие при выполнении валидации построенного пути

Цитата:
CertPathValidator certPathValidator = CertPathValidator.getInstance("CPPKIX", "RevCheck");
...
certPathValidator.validate(result.getCertPath(), validattorParams);


возникает ошибка:
Цитата:
java.security.cert.CertPathValidator timestamp check failed

Отредактировано пользователем 30 сентября 2016 г. 17:57:12(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 1 октября 2016 г. 12:29:55(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте.
Не могли бы вы приложить сертификаты для проверки? Спасибо.
Offline VBurmistrov  
#3 Оставлено : 3 октября 2016 г. 10:13:15(UTC)
VBurmistrov

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

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

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 7 раз в 5 постах
Здравствуйте!

Сертификаты следующие:
селектор selector.zip (2kb) загружен 4 раз(а).

intermediateCerts можно скачать здесь: Госуслуги реестр

Цепочка сертификации строится через сертификат с серийным номером: 12F0D8B30000000000D8, который уже не действующий Действует: с 11.09.2013 по 11.03.2015

Сертификаты ГУЦ Минкомсвязь корневой и УЦ ИС1 и УЦ ИС2

Отредактировано пользователем 3 октября 2016 г. 10:18:22(UTC)  | Причина: Не указана

thanks 2 пользователей поблагодарили VBurmistrov за этот пост.
Евгений Афанасьев оставлено 03.10.2016(UTC), ВадимPilotnikov оставлено 28.11.2022(UTC)
Offline Евгений Афанасьев  
#4 Оставлено : 3 октября 2016 г. 10:58:56(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Не удается воспроизвести - в список сертификатов попадают: selector, промежут. - до 2015 года (2 штуки с сайта - неправильные) и один до 2017 (правильный), промежуточный УЦ 1 ИС ГУЦ и корневой Головной. Головной кладется также в trust anchors. Всего в списке 6 сертификатов, цепочка должна быть из четырех. Цепочка построилась верно:
Код:

[1] subject: SURNAME=Л...ва, GIVENNAME=И...а А...на, T=Бухгалтер, STREET="ул.Сергея Есенина, д.10", CN="ООО \"...\"", OU=Основное, O="ООО \"...\"", L=..., ST=52 ..., C=RU, EMAILADDRESS=..., OID.1.2.643.3.131.1.1=#120C303035323537303431373737, OID.1.2.643.100.1=#120D31303235323032333935353235, OID.1.2.643.100.3=#120B3130373931323530323431, date: Sat Dec 24 12:31:00 MSK 2016
[2] subject: CN="УЦ ООО \"Эдисофт\"", C=RU, ST=78 Санкт-Петербург, L=Санкт-Петербург, O="ООО \"Эдисофт\"", OU=Удостоверяющий центр, STREET=199178 наб. Реки Смоленки дом 14 лит.А офис 387, OID.1.2.643.3.131.1.1=#120C303037383031343731303832, OID.1.2.643.100.1=#120D31303839383437323233393630, EMAILADDRESS=....ru, date: Mon Dec 04 22:12:00 MSK 2017
[3] subject: CN=УЦ 1 ИС ГУЦ, C=RU, ST=77 г. Москва, L=Москва, O=Минкомсвязь России, STREET=125375 г. Москва ул. Тверская д.7, EMAILADDRESS=....ru, OID.1.2.643.100.1=#120D31303437373032303236373031, OID.1.2.643.3.131.1.1=#120C303037373130343734333735, date: Mon Dec 04 22:12:06 MSK 2017
[4] subject: CN=Головной удостоверяющий центр, OID.1.2.643.3.131.1.1=#120C303037373130343734333735, OID.1.2.643.100.1=#120D31303437373032303236373031, O=Минкомсвязь России, STREET="125375 г. Москва, ул. Тверская, д. 7", L=Москва, ST=77 г. Москва, C=RU, EMAILADDRESS=....ru, date: Sat Jul 17 16:31:14 MSK 2027


Если удалить из списка промежуточный до 2017 года, то получаем ошибку:
Код:

Exception in thread "main" ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target
	at ru.CryptoPro.reprov.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:184)
	at ru.CryptoPro.reprov.CPCertPathBuilder.engineBuild(CPCertPathBuilder.java:85)
	at java.security.cert.CertPathBuilder.build(Unknown Source)

Более детальная информация в JCPCertPathBuilderException.
Offline VBurmistrov  
#5 Оставлено : 3 октября 2016 г. 11:00:56(UTC)
VBurmistrov

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

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

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 7 раз в 5 постах
Цепочка строилась через УЦ ИС2 и истекший сертификат

в trust anchors я добавлял корневой ГУЦ
в промежуточные УЦ ИС1, УЦ ИС2 и три сертификата аккредитованного УЦ

Отредактировано пользователем 3 октября 2016 г. 11:02:58(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#6 Оставлено : 3 октября 2016 г. 11:07:33(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Автор: VBurmistrov Перейти к цитате
Цепочка строилась через УЦ ИС2 и истекший сертификат

вtrust anchors я добавлял корневой ГУЦ
в промежуточные УЦ ИС1, УЦ ИС2 и три сертификата аккредитованного УЦ

Тогда нужна более точная информация - возможно, ваш пример с сертификатами.
Offline Евгений Афанасьев  
#7 Оставлено : 3 октября 2016 г. 11:20:20(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Удалось воспроизвести, проверяем.
Offline VBurmistrov  
#8 Оставлено : 11 октября 2016 г. 9:22:00(UTC)
VBurmistrov

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

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

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 7 раз в 5 постах
Автор: afev Перейти к цитате
Удалось воспроизвести, проверяем.


Здравствуйте!

Скажите, пожалуйста, есть какие-то новости?
Offline Евгений Афанасьев  
#9 Оставлено : 11 октября 2016 г. 10:05:06(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте.
Исправление будет в одном из следующих релизов.
Пока попробуйте при построении цепочки задать текущую дату с помощью setDate() в параметрах класса PKIXBuilderParameters, передаваемых в метод build объекта класса CertPathBuilder:
Код:

CertPathBuilder cpb = CertPathBuilder.getInstance(...);
...
PKIXBuilderParameters params = new PKIXBuilderParameters(...);
...
params.setDate(new Date()); // <!---- текущая дата
...
cpb.build(params);
...
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
VBurmistrov оставлено 11.10.2016(UTC)
Offline VBurmistrov  
#10 Оставлено : 11 октября 2016 г. 16:55:52(UTC)
VBurmistrov

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

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

Сказал(а) «Спасибо»: 5 раз
Поблагодарили: 7 раз в 5 постах
Автор: afev Перейти к цитате
Здравствуйте.
Исправление будет в одном из следующих релизов.
Пока попробуйте при построении цепочки задать текущую дату с помощью setDate() в параметрах класса PKIXBuilderParameters, передаваемых в метод build объекта класса CertPathBuilder:


Спасибо большое! С датой в параметре работает.

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