Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
ФСС ORA-20001: Некорректная подпись головной организации: Ошибка при проверке сертификата. VALID_SIG
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.04.2019(UTC) Сообщений: 45  Поблагодарили: 1 раз в 1 постах
|
Добрый день! Подскажите, пожалуйста кто знает. В документации ФСС написано: 8. К элементу <ds:SignedInfo> и его потомкам, включая атрибуты, применяется каноникализация http://www.w3.org/2001/10/xml-exc-c14n#, на основе результата рассчитывается электронная подпись по алгоритму ГОСТ Р 34.10-2001 (или ГОСТ Р 34.10-2012) и заносится в <ds:SignatureValue> в формате Base64.Вот сканоникализировал, по ГОСТу ЭЦП рассчитал, сформировал тестовый запрос и получил ошибку: ORA-20001: Некорректная подпись головной организации: Ошибка при проверке сертификата. VALID_SIGNATURE ЭП действительна; При проверке сертификата ЭП произошла ошибка. Ошибка построения цепочки сертификатов. Не найден сертификат Удостоверяющего Центра, указанный в сертификате пользователяКод:
Signature sign=Signature.getInstance(Constants.SIGN_EL_ALG_2012_256);
sign.initSign(k); //Инициализирую подпись ключом моего личного сертификата
sign.update(b); //Ввожу сканоникализированные данные
return(Base64.encode(sign.sign()));
Какова методология расчета ЭЦП для ФСС? Не понимаю как построить и подцепить цепочки сертификатов.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,034  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 730 раз в 688 постах
|
Здравствуйте. Автор: JfbYtd-7900  Ошибка при проверке сертификата. VALID_SIGNATURE ЭП действительна; При проверке сертификата ЭП произошла ошибка. Ошибка построения цепочки сертификатов. Не найден сертификат Удостоверяющего Центра, указанный в сертификате пользователя Вероятно, на проверяющей стороне в доверенных нет корневого вашей цепочки сертификатов. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.04.2019(UTC) Сообщений: 45  Поблагодарили: 1 раз в 1 постах
|
Автор: Евгений Афанасьев  Здравствуйте. Автор: JfbYtd-7900  Ошибка при проверке сертификата. VALID_SIGNATURE ЭП действительна; При проверке сертификата ЭП произошла ошибка. Ошибка построения цепочки сертификатов. Не найден сертификат Удостоверяющего Центра, указанный в сертификате пользователя Вероятно, на проверяющей стороне в доверенных нет корневого вашей цепочки сертификатов. Да. Но как передать в ФСС всю цепочку? Пока не могу найти методологию расчета полной цепочки сертификатов ЭЦП для ФСС.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,034  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 730 раз в 688 постах
|
Автор: JfbYtd-7900  Но как передать в ФСС всю цепочку? Если документ формате XML, то можно добавить недостающие сертификаты в KeyInfo, как и сертификат подписи. Но, скорее всего, на проверяющей стороне корневой должен быть установлен в хранилище доверенных. Возможно, нужно использовать ключ и сертификат, выпущенный в определенном УЦ, который есть в списке доверенных проверяющей стороны. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.04.2019(UTC) Сообщений: 45  Поблагодарили: 1 раз в 1 постах
|
Начал копать в сторону CAdESSignature, из примеров CAdES и https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=11782 через тестовый TSP-сервер Код: CAdESSignature cadesSignature = new CAdESSignature( true );
Collection<X509CertificateHolder> holderList = new ArrayList<X509CertificateHolder>();
for (X509Certificate cert1 : chain)
{
holderList.add(new X509CertificateHolder(cert1.getEncoded()));
}
cadesSignature.setCertificateStore(new CollectionStore(holderList));
cadesSignature.addSigner(JCP.PROVIDER_NAME,getDigestOid(k),getPublicKeyOid(k),k, chain, CAdESType.CAdES_T, /*"http://www.cryptopro.ru/tsp/"*/Configuration.TSA_DEFAULT_ADDRESS, false );
Возникает вот такая ошибка: апр 03, 2019 6:43:21 PM ru.CryptoPro.JCP.tools.Starter check INFO: Loading JCP 2.0 39014 апр 03, 2019 6:43:21 PM ru.CryptoPro.JCP.tools.Starter check INFO: JCP loaded. апр 03, 2019 6:43:22 PM ru.CryptoPro.CAdES.tools.CAdESUtility initJCPAlgorithms INFO: Replacement of the BouncyCastle GOST algorithms. Error building certification path for CN="ПАО \"МТС\"", C=RU, ST=Москва, L=г. Москва, STREET="Марксистская ул., д. 4", O="ПАО \"МТС\"", OID.1.2.643.100.1=#120D31303237373030313439313234, EMAILADDRESS=mts@temp.ru: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate', at ru.CryptoPro.CAdES.g.addSigner(Unknown Source) at ru.CryptoPro.CAdES.g.addSigner(Unknown Source) at client.Cryptopro.setSignatureValue(Cryptopro.java:236) at client.Class1.main(Class1.java:63) Caused by: Error building certification path for CN="ПАО \"МТС\"", C=RU, ST=Москва, L=г. Москва, STREET="Марксистская ул., д. 4", O="ПАО \"МТС\"", OID.1.2.643.100.1=#120D31303237373030313439313234, EMAILADDRESS=mts@temp.ru: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate', at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source) at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source) ... 4 moreВ JAVA_HOME/lib/security/cacerts зарегистрировал cacer3.crt и tsa.cer. Подскажите, в чем может быть еще проблема?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,034  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 730 раз в 688 постах
|
Нужно включить логирование JCPLogger и собрать лог. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.04.2019(UTC) Сообщений: 45  Поблагодарили: 1 раз в 1 постах
|
Вообще-то что-то не то. Может тестовый инстанс ФСС не видит наши тестовый сертификат, а работает только с продуктовыми? Может такое быть? Т.к. локально проверка подписи проходит, возвращается TRUE, во все закомментированных случаях. Код:
public String sign(String value) throws Exception
{
byte[] b=null;
JCPStoreApi jcpStoreApi=null;
try
{
//Каноникализация
b=Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS).canonicalize(value.getBytes());
//Получение сведений о сертификате
jcpStoreApi=new JCPStoreApi();
PrivateKey k=jcpStoreApi.loadKey("le-4145024e-1dd0-4ce2-88c5-d515010385d9 - Copy","1234");
if(k==null) return(null);
//Подписание
Signature sign=Signature.getInstance(Constants.SIGN_EL_ALG_2012_256,JCP.PROVIDER_NAME);
sign.initSign(k);
sign.update(b);
byte[] s=sign.sign();
//Проверка
Signature sign2=Signature.getInstance(Constants.SIGN_EL_ALG_2012_256,JCP.PROVIDER_NAME);
//sign2.initVerify(jcpStoreApi.certificate);
//sign2.initVerify(jcpStoreApi.x509Certificate);
sign2.initVerify(jcpStoreApi.x509Certificate.getPublicKey());
sign2.update(b);
System.out.println(sign2.verify(s));
return(Base64.encode(s));
}
finally
{
b=null;
jcpStoreApi=null;
}
}
апр 04, 2019 11:11:10 AM ru.CryptoPro.JCP.tools.Starter check INFO: Loading JCP 2.0 39014 апр 04, 2019 11:11:10 AM ru.CryptoPro.JCP.tools.Starter check INFO: JCP loaded. true AHOwUNChDRwg3unByJpSIXGpG8nF5TGCwnXQ9Lsexdv376Cd1doyeoClIkxeFM38B4rmve44GpyG E27lqhOWiw==
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,034  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 730 раз в 688 постах
|
На проверяющей стороне дополнительно может проверяться цепочка сертификатов. Нужно уточнить у ее техподдержки, какие издатели сертификатов допустимы, чтобы цепочка построилась и проверилась. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.04.2019(UTC) Сообщений: 45  Поблагодарили: 1 раз в 1 постах
|
Автор: Евгений Афанасьев  На проверяющей стороне дополнительно может проверяться цепочка сертификатов. Нужно уточнить у ее техподдержки, какие издатели сертификатов допустимы, чтобы цепочка построилась и проверилась. Спасибо. Направим запрос в ФСС.
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
ФСС ORA-20001: Некорректная подпись головной организации: Ошибка при проверке сертификата. VALID_SIG
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close