Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2019(UTC) Сообщений: 38   Откуда: Санкт-Петербург Сказал «Спасибо»: 14 раз
|
Мы используем реестр акредитованных УЦ (TSL - Trusted List of supervised/accredited Certification Service Providers) https://e-trust.gosuslug...u/registry/accreditation , подписанный Минкомсвязью https://e-trust.gosuslug...api/v1/portal/ca/getxml, для построения cписков доверенных корневых и промежутных сертификатов, которые в последствии используем для построения цепочек сертификатов и их проверки. За Минцифры в этом списке значится два сертификата ключа проверки ЭП: один корневой: Код: <Отпечаток>2F0CB09BE3550EF17EC4F29C90ABD18BFCAAD63A</Отпечаток>
<КемВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
E=dit@digital.gov.ru</КемВыдан>
<КомуВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
E=dit@digital.gov.ru</КомуВыдан>
<СерийныйНомер>00951FA3477C61043AADFA858627823442</СерийныйНомер>
<ПериодДействияС>2022-01-08T13:32:39Z</ПериодДействияС>
<ПериодДействияДо>2040-01-08T13:32:39Z</ПериодДействияДо>
второй промежуточный, выпущенный Минкомсвязью: Код: <Отпечаток>1D13121735DD6E1F59EA58C786B8F7E8B7E6E20F</Отпечаток>
<КемВыдан>CN=Минкомсвязь России, ИНН=007710474375, ОГРН=1047702026701, O=Минкомсвязь России,
STREET=улица Тверская, дом 7, L=г. Москва, ST=77 Москва, C=RU, E=dit@minsvyaz.ru</КемВыдан>
<КомуВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
E=dit@digital.gov.ru</КомуВыдан>
<СерийныйНомер>00F8C9C4040000000005F2</СерийныйНомер>
<ПериодДействияС>2022-01-08T15:44:20Z</ПериодДействияС>
<ПериодДействияДо>2037-01-08T15:44:20Z</ПериодДействияДо>
Особенностью этих двух сертификатов является то, что они выпущены на один и тот же ключ проверки ЭП и, как следствие, имеют один и тот же Subject Key Identifier. Оба сертификата действительны. Во-первых, это нарушение 63-ФЗ (закон предусматривает отзыв сертификата-нарушителя в случае обнаружения подобного), а во-вторых ломает алгоритмы построения цепочек сертификатов в Java PKIX от SUN и CPPKIX от КриптоПро (RevCheck), поскольку они связывают цепочку по Subject Key Identifier и в нашем случае строят неверную цепочку: ФНС - МИНЦИФРЫ - МИНКОМСВЯЗЬ, вместо ФНС - МИНЦИФРЫ:
Код: System.setProperty("com.sun.security.enableCRLDP", "false");
System.setProperty("com.sun.security.enableAIAcaIssuers", "false");
System.setProperty("com.ibm.security.enableCRLDP", "false");
System.setProperty("ru.CryptoPro.reprov.enableAIAcaIssuers", "false");
// <Отпечаток>C0DD0A27E6B15B2ECA23B7D7EC7BC2860A3C97B0</Отпечаток>
// <КемВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
// STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
// E=dit@digital.gov.ru</КемВыдан>
// <КомуВыдан>CN=Федеральная налоговая служба, O=Федеральная налоговая служба, STREET=ул.
// Неглинная, д. 23, L=г. Москва, ST=77 Москва, C=RU, ОГРН=1047707030513, E=uc@tax.gov.ru,
// ИННЮЛ=7707329152</КомуВыдан>
// <СерийныйНомер>14A8F28B0000000008F6</СерийныйНомер>
// <ПериодДействияС>2024-01-23T08:16:21Z</ПериодДействияС>
// <ПериодДействияДо>2039-01-23T08:16:21Z</ПериодДействияДо>
String fns =
"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";
// <Отпечаток>2F0CB09BE3550EF17EC4F29C90ABD18BFCAAD63A</Отпечаток>
// <КемВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
// STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
// E=dit@digital.gov.ru</КемВыдан>
// <КомуВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
// STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
// E=dit@digital.gov.ru</КомуВыдан>
// <СерийныйНомер>00951FA3477C61043AADFA858627823442</СерийныйНомер>
// <ПериодДействияС>2022-01-08T13:32:39Z</ПериодДействияС>
// <ПериодДействияДо>2040-01-08T13:32:39Z</ПериодДействияДо>
String rootmd =
"MIIFUTCCBP6gAwIBAgIRAJUfo0d8YQQ6rfqFhieCNEIwCgYIKoUDBwEBAwIwggE7MSEwHwYJKoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3YucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxUzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQutCw0Y8g0L3QsNCx0LXRgNC10LbQvdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAyMSYwJAYDVQQKDB3QnNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQzNzUxJjAkBgNVBAMMHdCc0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MB4XDTIyMDEwODEzMzIzOVoXDTQwMDEwODEzMzIzOVowggE7MSEwHwYJKoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3YucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxUzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQutCw0Y8g0L3QsNCx0LXRgNC10LbQvdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAyMSYwJAYDVQQKDB3QnNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQzNzUxJjAkBgNVBAMMHdCc0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MGYwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQFpKa6Qda48LjFq/drz2M27fFqu/g3+Prxrg9lE+KPzdbvRHwuOtbhlJ92ogmS+i7mhDDGPsWhtPVduV9KbqQI6jggHQMIIBzDCB9QYFKoUDZHAEgeswgegMNNCf0JDQmtCcIMKr0JrRgNC40L/RgtC+0J/RgNC+IEhTTcK7INCy0LXRgNGB0LjQuCAyLjAMQ9Cf0JDQmiDCq9CT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAwrsMNdCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvMy8yLzIvMjMg0L7RgiAwMi4wMy4yMDE4DDTQl9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzcvNi00NDkg0L7RgiAzMC4xMi4yMDIxMD8GBSqFA2RvBDYMNNCf0JDQmtCcIMKr0JrRgNC40L/RgtC+0J/RgNC+IEhTTcK7INCy0LXRgNGB0LjQuCAyLjAwDAYFKoUDZHIEAwIBADBDBgNVHSAEPDA6MAgGBiqFA2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMAgGBiqFA2RxBDAIBgYqhQNkcQUwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRNYsUynYjp+0j88pucUfJ1wo4YwCgYIKoUDBwEBAwIDQQCCSXhICg3SZ/TTCtRJpBFuXGSy3PeZTEeOwdOHIv0tWiN2q0mPRzB/o6r9MXjGqdzfYGtCrq1l5FsXZOI5c/2S";
// <Отпечаток>1D13121735DD6E1F59EA58C786B8F7E8B7E6E20F</Отпечаток>
// <КемВыдан>CN=Минкомсвязь России, ИНН=007710474375, ОГРН=1047702026701, O=Минкомсвязь России,
// STREET=улица Тверская, дом 7, L=г. Москва, ST=77 Москва, C=RU, E=dit@minsvyaz.ru</КемВыдан>
// <КомуВыдан>CN=Минцифры России, ИННЮЛ=7710474375, ОГРН=1047702026701, O=Минцифры России,
// STREET=Пресненская набережная, дом 10, строение 2, L=г. Москва, ST=77 Москва, C=RU,
// E=dit@digital.gov.ru</КомуВыдан>
// <СерийныйНомер>00F8C9C4040000000005F2</СерийныйНомер>
// <ПериодДействияС>2022-01-08T15:44:20Z</ПериодДействияС>
// <ПериодДействияДо>2037-01-08T15:44:20Z</ПериодДействияДо>
String intmd =
"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";
// <КемВыдан>CN=Минкомсвязь России, ИНН=007710474375, ОГРН=1047702026701, O=Минкомсвязь России,
// STREET=улица Тверская, дом 7, L=г. Москва, ST=77 Москва, C=RU, E=dit@minsvyaz.ru</КемВыдан>
// <КомуВыдан>CN=Минкомсвязь России, ИНН=007710474375, ОГРН=1047702026701, O=Минкомсвязь России,
// STREET=улица Тверская, дом 7, L=г. Москва, ST=77 Москва, C=RU, E=dit@minsvyaz.ru</КомуВыдан>
// <СерийныйНомер>00EACA32CEF5F979D68D3C4E4F2CC687A4</СерийныйНомер>
// <ПериодДействияС>2021-07-02T12:41:47Z</ПериодДействияС>
// <ПериодДействияДо>2039-07-02T12:41:47Z</ПериодДействияДо>
String rootms =
"MIIFFTCCBMKgAwIBAgIRAOrKMs71+XnWjTxOTyzGh6QwCgYIKoUDBwEBAwIwggEkMR4wHAYJKoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAsBgNVBAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MSwwKgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDAeFw0yMTA3MDIxMjQxNDdaFw0zOTA3MDIxMjQxNDdaMIIBJDEeMBwGCSqGSIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMS4wLAYDVQQJDCXRg9C70LjRhtCwINCi0LLQtdGA0YHQutCw0Y8sINC00L7QvCA3MSwwKgYDVQQKDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRowGAYIKoUDA4EDAQESDDAwNzcxMDQ3NDM3NTEsMCoGA1UEAwwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgwZjAfBggqhQMHAQEBATATBgcqhQMCAiMBBggqhQMHAQECAgNDAARAznwizLAQgEZQecg2Re7+vfP0h4I5BVHNCzC3UQsCNZdAxM2nn/pKJGaDI8hv4DM3FF3reU2jWDO7Sp66fTrSZqOCAcIwggG+MIH1BgUqhQNkcASB6zCB6Aw00J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsg0LLQtdGA0YHQuNC4IDIuMAxD0J/QkNCaIMKr0JPQvtC70L7QstC90L7QuSDRg9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YDCuww10JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS8zLzIvMi8yMyDQvtGCIDAyLjAzLjIwMTgMNNCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvNy82LzEwNSDQvtGCIDI3LjA2LjIwMTgwPwYFKoUDZG8ENgw00J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsg0LLQtdGA0YHQuNC4IDIuMDBDBgNVHSAEPDA6MAgGBiqFA2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMAgGBiqFA2RxBDAIBgYqhQNkcQUwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGXePu4Lmb8hfk/AVHZMiodatDCYwCgYIKoUDBwEBAwIDQQCFR821LAew8tY3/fYGGXQNN5g6E74pjdurOqOoZbS+0WjiGsLPVzcrAts2l7BRGowjZ3MVAmHJL/NjPYAClFu0";
X509Certificate fnsCert = CertUtils.loadX509Certificate(Base64.getDecoder().decode(fns));
X509Certificate rootmdCert = CertUtils.loadX509Certificate(Base64.getDecoder().decode(rootmd));
X509Certificate intmdCert = CertUtils.loadX509Certificate(Base64.getDecoder().decode(intmd));
X509Certificate rootmsCert = CertUtils.loadX509Certificate(Base64.getDecoder().decode(rootms));
Set<TrustAnchor> trustAnchorSet = new HashSet<>();
trustAnchorSet.add(new TrustAnchor(rootmsCert, null));
trustAnchorSet.add(new TrustAnchor(rootmdCert, null));
CertStore intermediateCertificateStore =
CertStore.getInstance(
"Collection", new CollectionCertStoreParameters(Collections.singleton(intmdCert)));
final X509CertSelector targetConstraints = new X509CertSelector();
targetConstraints.setCertificate(fnsCert);
{
final PKIXBuilderParameters builderParams =
new PKIXBuilderParameters(trustAnchorSet, targetConstraints);
//
// Добавить промежуточные сертификаты, участвующие в поиске
//
builderParams.addCertStore(intermediateCertificateStore);
//
// Не проверять отзыв
//
builderParams.setRevocationEnabled(false);
//
// Установить дату на которую осуществляется построение цепочки
//
builderParams.setDate(null);
//
// Построить цепочку
//
// Результат один что CPPKIX, что у PKIX из-за связывания по Subject Key Identifier
final CertPathBuilder certPathBuilder = CertPathBuilder.getInstance("CPPKIX");
final CertPathBuilderResult certPathBuilderResult = certPathBuilder.build(builderParams);
if (certPathBuilderResult instanceof PKIXCertPathBuilderResult pkixCertPathBuilderResult) {
// Если связывать по серийному номеру, то должен быть Минцифры корневой, а по факту Минкомсвязь
assertThat(pkixCertPathBuilderResult.getTrustAnchor().getTrustedCert()).isEqualTo(rootmdCert);
}
}
Может уже кто-то решал задачу корректировки построения цепочки? По идее, если добавить помимо Subject Key Identifier еще и authorityCertSerialNumber из того же Authority Key Identifier для связывания, то можно было бы выйти на правильную цепочку. Вот это место в OpenJDK: https://github.com/openj...ForwardBuilder.java#L445Отредактировано пользователем 29 декабря 2025 г. 13:16:53(UTC)
| Причина: Не указана
|