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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Артём С  
#1 Оставлено : 13 марта 2019 г. 18:05:21(UTC)
Артём С

Статус: Новичок

Группы: Участники
Зарегистрирован: 26.02.2019(UTC)
Сообщений: 8

Сказал(а) «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
cryptoPro-xlt1-tsp-problem.zip (20kb) загружен 2 раз(а).Здравствуйте.

В системе с java_8_144 и jcp 2.0.39852 производится проверка подписи XLong Type1, при проверке TSP происходит ошибка:
Код:

java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
	at java.util.LinkedList.checkElementIndex(LinkedList.java:555) ~[na:1.8.0_144]
	at java.util.LinkedList.get(LinkedList.java:476) ~[na:1.8.0_144]
	at ru.CryptoPro.AdES.certificate.ComplexCertificateChainValidatorImpl.getCompleteRevocationReference(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.AdES.certificate.ComplexCertificateChainValidatorImpl.validate(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.AdES.certificate.ComplexCertificateChainValidatorImpl.validate(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.AdES.certificate.BaseCertificateChainValidatorImpl.validate(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.AdES.certificate.BaseCertificateChainValidatorImpl.validate(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.CAdES.CAdESSignerXLT1Impl.verify(Unknown Source) ~[CAdES.jar!/:na]
	at ru.CryptoPro.CAdES.CAdESSignerXLT1Impl.verify(Unknown Source) ~[CAdES.jar!/:na]
	at ru.CryptoPro.CAdES.timestamp.external.InternalTimeStampValidationProcessImpl.validate(Unknown Source) ~[CAdES.jar!/:na]
	at ru.CryptoPro.AdES.timestamp.TSPTimeStampValidatorImpl.validate(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.AdES.timestamp.TSPTimeStampValidatorImpl.validate(Unknown Source) ~[AdES-core.jar!/:na]
	at ru.CryptoPro.CAdES.CAdESSignerXLT1Impl.d(Unknown Source) ~[CAdES.jar!/:na]
	at ru.CryptoPro.CAdES.CAdESSignerXLT1Impl.verify(Unknown Source) ~[CAdES.jar!/:na]
	at ru.CryptoPro.CAdES.cl_0.verify(Unknown Source) ~[CAdES.jar!/:na]
	at ru.CryptoPro.CAdES.cl_0.verify(Unknown Source) ~[CAdES.jar!/:na]


При просмотре содержания подписи замечено реальное отсутствие 2го вхождения в revocationRefs (хотя не нашел в RFC подобного требования, и в остальных подписях аналогично).
Также смущает то что другие клиенты и сервисы успешно проверяют данную подпись (н-р, CryptoARM Gost, crypto.kontur.ru/verify).

Данная ошибка действитетльно свидетельствует о некорректности подписи? в соответствии с каким-то RFC?
Или возможно можно настроить JCP таким образом чтобы он проверял немного иначе и данная подпись успешно проходила проверку?



Пожалуйста, помогите выяснить причину и устранить проблему.

Прикладываю подпись, стактрейс и полные логи jvm(jcp).
cryptoPro-xlt1-tsp-problem.zip (20kb) загружен 2 раз(а).

Приложить файл не удалось, т.к. он весит 9 МБ. Выложил на гуглдиск.

Отредактировано пользователем 13 марта 2019 г. 19:58:37(UTC)  | Причина: Не указана

Online Евгений Афанасьев  
#2 Оставлено : 14 марта 2019 г. 13:11:32(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Добрый день.
Разработка CAdES.jar опиралась на пункт
Цитата:

6.2.2 complete-revocation-references Attribute Definition
The complete-revocation-references attribute is an unsigned attribute.
...
The complete-revocation-references attribute value has the ASN.1 syntax CompleteRevocationRefs
CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
CrlOcspRef ::= SEQUENCE {
crlids [0] CRLListID OPTIONAL,
ocspids [1] OcspListID OPTIONAL,
otherRev [2] OtherRevRefs OPTIONAL
}
CompleteRevocationRefs shall contain one CrlOcspRef for the signing-certificate, followed by one
for each OtherCertID in the CompleteCertificateRefs attribute. The second and subsequent CrlOcspRef
fields shall be in the same order as the OtherCertID to which they relate.
...

документа ETSI TS 101 733.
В других реализациях этот пункт могут игнорировать (например, в cades-плагине), то есть кол-во и порядок ссылок может быть любым. В следующих реализациях CAdES.jar постараемся сделать так, чтобы проверять и такие подписи.

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