Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,260
Сказал(а) «Спасибо»: 21 раз Поблагодарили: 442 раз в 322 постах
|
Веб-сервер УЦ Кадастровой палаты настроен неверно: CRL-и и промежуточные сертификаты должны распространяться по http (в выдаче certmgr это соответственно адреса CDP и CA cert URL). В самом сертификате всё верно, но если сделать по этим адресам запрос, то видно, что CRL отдают нормально: Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/curl -i http://uc.kadastr.ru/revoke/index/revoked6.crl -o /tmp/t.crl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 123k 100 123k 0 0 933k 0 --:--:-- --:--:-- --:--:-- 933k
MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/curl http://uc.kadastr.ru/revoke/index/revoked6.crl | /opt/cprocsp/bin/certmgr -list -crl -stdin
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 123k 100 123k 0 0 1297k 0 --:--:-- --:--:-- --:--:-- 1310k
=============================================================================
1-------
Издатель : OGRN=1027700485757, INN=007705401340, C=RU, S=77 Москва, L=Москва, STREET="переулок Орликов, дом 10, строение 1", OU=Удостоверяющий центр, O="ФГБУ ""ФКП Росреестра""", CN="ФГБУ ""ФКП Росреестра"""
Выпущен : 24/04/2020 06:50:00 UTC
Истекает : 27/04/2020 19:10:00 UTC
ID ключа УЦ: 7e4180acd6bff640d7e5b0f8193c2966fa53e55e
=============================================================================
[ErrorCode: 0x00000000]
а промежуточный сертификат перенаправляют на https (это логическая ошибка в любом случае): Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/curl -i http://uc.kadastr.ru/root/index/root6.cer
HTTP/1.1 301 Moved Permanently
Content-Type: text/html
Connection: keep-alive
Content-Length: 185
Date: Fri, 24 Apr 2020 18:31:55 GMT
Location: https://uc.kadastr.ru/root/index/root6.cer
Server: nginx/1.10.2
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.10.2</center>
</body>
</html>
Сами перенаправления мы поддерживаем, в том числе на https. Разберёмся, в чём причина проблемы: пойдём на тот же адрес с помощью csptest, сохраняя цепочку сертификатов веб-сервера: Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/csptest -tlsc -server uc.kadastr.ru -nosave -v -file /root/index/root6.cer -savecert /tmp/web.p7b
11 algorithms supported:
Aglid Class OID
[00] 0x661e 0x6000 1.2.643.2.2.21 (ГОСТ 28147-89)
[01] 0x6631 0x6000 1.2.643.7.1.1.5.2.1 (ГОСТ Р 34.12-2015 Кузнечик CTR-ACPKM)
[02] 0x6630 0x6000 1.2.643.7.1.1.5.1.1 (ГОСТ Р 34.12-2015 Магма CTR-ACPKM)
[03] 0x801e 0x8000 1.2.643.2.2.3 (ГОСТ Р 34.11/34.10-2001)
[04] 0x8021 0x8000 1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
[05] 0x801f 0x8000
[06] 0x803d 0x8000
[07] 0x803c 0x8000
[08] 0x2e23 0x2000 1.2.643.2.2.19 (ГОСТ Р 34.10-2001)
[09] 0x2e49 0x2000 1.2.643.7.1.1.1.1 (ГОСТ Р 34.10-2012)
[10] 0x2e3d 0x2000 1.2.643.7.1.1.1.2 (ГОСТ Р 34.10-2012)
Cipher strengths: 256..256
Supported protocols: 0xa80:
Transport Layer Security 1.0 client side
Transport Layer Security 1.1 client side
Transport Layer Security 1.2 client side
dwProtocolMask: 0x800e2aaa
Protocol version: 3.3
ClientHello: RecordLayer: TLS, Len: 128
SessionId: (empty)
Cipher Suites: (c1 00) (c1 01) (c1 02) (ff 85) (00 81) (00 9d) (00 9c) (00 3d) (00 3c) (00 35) (00 2f) (00 0a)
133 bytes of handshake data sent
1675 bytes of handshake data received
318 bytes of handshake data sent
258 bytes of handshake data received
Handshake was successful
SECPKG_ATTR_SESSION_INFO: Reuse: 0, SessionId: f4db5da9db1b0f1a326fe48bb721a0ca8ea37264328142965cf8f16367195c26
SECPKG_ATTR_CONNECTION_INFO: Protocol: 800
SECPKG_ATTR_CIPHER_INFO: Protocol: 800, Suite: 9D (TLS_RSA_WITH_AES_256_GCM_SHA384)
SECPKG_ATTR_CIPHER_INFO: Cipher: (AES), Len: 256, BlockLen: 1
SECPKG_ATTR_CIPHER_INFO: Hash: (), Len: 0
SECPKG_ATTR_CIPHER_INFO: Exchange: (RSA), MinLen: 512, MaxLen: 16384
SECPKG_ATTR_CIPHER_INFO: Certificate: (RSA), KeyType: 0
SECPKG_ATTR_NAMES: 2.5.4.15="#0C11476F7665726E6D656E7420456E74697479", 1.3.6.1.4.1.311.60.2.1.3="#13025255", SERIALNUMBER=1027700485757, C=RU, L=Moscow, O=FGBU FKP Rosreestra, CN=uc.kadastr.ru
SECPKG_ATTR_PACKAGE_INFO# fCapabilities: 0x107B3
SECPKG_ATTR_PACKAGE_INFO# wVersion: 1
SECPKG_ATTR_PACKAGE_INFO# wRPCID: 65535
SECPKG_ATTR_PACKAGE_INFO# cbMaxToken: 16379
SECPKG_ATTR_PACKAGE_INFO# Name: CryptoPro SSP
SECPKG_ATTR_PACKAGE_INFO# Comment: CryptoPro Security Package
Server certificate:
Subject: 2.5.4.15="#0C11476F7665726E6D656E7420456E74697479", 1.3.6.1.4.1.311.60.2.1.3="#13025255", SERIALNUMBER=1027700485757, C=RU, L=Moscow, O=FGBU FKP Rosreestra, CN=uc.kadastr.ru
Valid : 13.09.2019 00:00:00 - 12.10.2020 12:00:00 (UTC)
Issuer : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=GeoTrust EV RSA CA 2018
Error 0x800b010a (CERT_E_CHAINING) returned by CertVerifyCertificateChainPolicy!
/dailybuildsbranches/CSP_5_0r2h/CSPbuild/CSP/samples/csptest/WebClient.c:1048:Error authenticating server credentials!
Error 0x800b010a: Произошла внутренняя ошибка в цепочке сертификатов.
Total: SYS: 0,020 sec USR: 0,130 sec UTC: 0,180 sec
[ErrorCode: 0x800b010a]
Видим, что TLS-соединение на RSA-AES и нет доверия к цепочке сертификатов. Действительно, на unix-системах для нашей реализации TLS (и в нашем curl в частности), цепочки доверия строятся до корневых сертификатов в нашем (а не системном - в данном случае keychain) хранилище корневых. На данный момент в составе дистрибутива нет ни одного корневого сертификата на иностранных алгоритмах. Но мы его уже скачали и можно его добавить вручную. Смотрим, что скачали: Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/certmgr -list -file /tmp/web.p7b
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
=============================================================================
1-------
Издатель : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=GeoTrust EV RSA CA 2018
Субъект : 2.5.4.15="#0C11476F7665726E6D656E7420456E74697479", 1.3.6.1.4.1.311.60.2.1.3="#13025255", SERIALNUMBER=1027700485757, C=RU, L=Moscow, O=FGBU FKP Rosreestra, CN=uc.kadastr.ru
Серийный номер : 0x0DFEBC18449B8C55943147E73D45649C
Хэш SHA1 : ee75af62d1153e6e711b3a265625ac508098e39c
Идентификатор ключа : 261f2ebce3cfa49694a1051989c01057372815db
Алгоритм подписи : sha256RSA
Алгоритм откр. кл. : RSA (2048 бит)
Выдан : 13/09/2019 00:00:00 UTC
Истекает : 12/10/2020 12:00:00 UTC
Ссылка на ключ : Нет
OCSP URL : http://status.geotrust.com
URL сертификата УЦ : http://cacerts.geotrust.com/GeoTrustEVRSACA2018.crt
URL списка отзыва : http://cdp.geotrust.com/GeoTrustEVRSACA2018.crl
Назначение/EKU : 1.3.6.1.5.5.7.3.1 Проверка подлинности сервера
1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
=============================================================================
[ErrorCode: 0x00000000]
По "URL сертификата УЦ" получаем издателя и сразу же выводим Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/curl http://cacerts.geotrust.com/GeoTrustEVRSACA2018.crt|/opt/cprocsp/bin/certmgr -list -stdin
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1190 100 1190 0 0 5288 0 --:--:-- --:--:-- --:--:-- 5288
=============================================================================
1-------
Издатель : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
Субъект : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=GeoTrust EV RSA CA 2018
Серийный номер : 0x03FEEF1BB5B648349A20950F8BC69753
Хэш SHA1 : a399046417b67e320d3efa69d7dce6b8bfe8a9f2
Идентификатор ключа : ca92675261deaefcba222b7f1c874c25fb6f9958
Алгоритм подписи : sha256RSA
Алгоритм откр. кл. : RSA (2048 бит)
Выдан : 06/11/2017 12:22:46 UTC
Истекает : 06/11/2027 12:22:46 UTC
Ссылка на ключ : Нет
OCSP URL : http://ocsp.digicert.com
URL списка отзыва : http://crl3.digicert.com/DigiCertHighAssuranceEVRootCA.crl
Назначение/EKU : 1.3.6.1.5.5.7.3.1 Проверка подлинности сервера
1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
=============================================================================
[ErrorCode: 0x00000000]
AIA для получения "DigiCert High Assurance EV Root CA" нет, облом. Придётся доставать его из какого-то другого места. Например, он есть в "Связке ключей" (KeyChain) в macOS. Его надо экспортировать в файл .cer и установить в наше корневое хранилище: Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/certmgr -inst -store uroot -file ~/Documents/DigiCert\ High\ Assurance\ EV\ Root\ CA.cer
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
Идёт установка:
=============================================================================
1-------
Издатель : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
Субъект : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=DigiCert High Assurance EV Root CA
Серийный номер : 0x02AC5C266A0B409B8F0B79F2AE462577
Хэш SHA1 : 5fb7ee0633e259dbad0c4c9ae6d38f1a61c7dc25
Идентификатор ключа : b13ec36903f8bf4701d498261a0802ef63642bc3
Алгоритм подписи : sha1RSA
Алгоритм откр. кл. : RSA (2048 бит)
Выдан : 10/11/2006 00:00:00 UTC
Истекает : 10/11/2031 00:00:00 UTC
Ссылка на ключ : Нет
=============================================================================
[ErrorCode: 0x00000000]
После этого можно убедиться, что соединение по первому AIA (CA cert URL) будет устанавливаться успешно (что позволит в дальнейшем построителю цепочки скачать сертификат УЦ Кадастровой палаты, который выпущен ГУЦ-ом, сертификат которого у вас установлен, если вы ставили наш пакет ca-certs): Код:MacBook-Pro-mac:~ user$ /opt/cprocsp/bin/csptest -tlsc -server uc.kadastr.ru -nosave -v -file /root/index/root6.cer -savecert /tmp/web.p7b
11 algorithms supported:
Aglid Class OID
[00] 0x661e 0x6000 1.2.643.2.2.21 (ГОСТ 28147-89)
[01] 0x6631 0x6000 1.2.643.7.1.1.5.2.1 (ГОСТ Р 34.12-2015 Кузнечик CTR-ACPKM)
[02] 0x6630 0x6000 1.2.643.7.1.1.5.1.1 (ГОСТ Р 34.12-2015 Магма CTR-ACPKM)
[03] 0x801e 0x8000 1.2.643.2.2.3 (ГОСТ Р 34.11/34.10-2001)
[04] 0x8021 0x8000 1.2.643.7.1.1.2.2 (ГОСТ Р 34.11-2012 256 бит)
[05] 0x801f 0x8000
[06] 0x803d 0x8000
[07] 0x803c 0x8000
[08] 0x2e23 0x2000 1.2.643.2.2.19 (ГОСТ Р 34.10-2001)
[09] 0x2e49 0x2000 1.2.643.7.1.1.1.1 (ГОСТ Р 34.10-2012)
[10] 0x2e3d 0x2000 1.2.643.7.1.1.1.2 (ГОСТ Р 34.10-2012)
Cipher strengths: 256..256
Supported protocols: 0xa80:
Transport Layer Security 1.0 client side
Transport Layer Security 1.1 client side
Transport Layer Security 1.2 client side
dwProtocolMask: 0x800e2aaa
Protocol version: 3.3
ClientHello: RecordLayer: TLS, Len: 128
SessionId: (empty)
Cipher Suites: (c1 00) (c1 01) (c1 02) (ff 85) (00 81) (00 9d) (00 9c) (00 3d) (00 3c) (00 35) (00 2f) (00 0a)
133 bytes of handshake data sent
1675 bytes of handshake data received
318 bytes of handshake data sent
258 bytes of handshake data received
Handshake was successful
SECPKG_ATTR_SESSION_INFO: Reuse: 0, SessionId: f6aea44e6eb29234e84d0658f755051c75cc4eb74dfc42b77711ff37d68da9fe
SECPKG_ATTR_CONNECTION_INFO: Protocol: 800
SECPKG_ATTR_CIPHER_INFO: Protocol: 800, Suite: 9D (TLS_RSA_WITH_AES_256_GCM_SHA384)
SECPKG_ATTR_CIPHER_INFO: Cipher: (AES), Len: 256, BlockLen: 1
SECPKG_ATTR_CIPHER_INFO: Hash: (), Len: 0
SECPKG_ATTR_CIPHER_INFO: Exchange: (RSA), MinLen: 512, MaxLen: 16384
SECPKG_ATTR_CIPHER_INFO: Certificate: (RSA), KeyType: 0
SECPKG_ATTR_NAMES: 2.5.4.15="#0C11476F7665726E6D656E7420456E74697479", 1.3.6.1.4.1.311.60.2.1.3="#13025255", SERIALNUMBER=1027700485757, C=RU, L=Moscow, O=FGBU FKP Rosreestra, CN=uc.kadastr.ru
SECPKG_ATTR_PACKAGE_INFO# fCapabilities: 0x107B3
SECPKG_ATTR_PACKAGE_INFO# wVersion: 1
SECPKG_ATTR_PACKAGE_INFO# wRPCID: 65535
SECPKG_ATTR_PACKAGE_INFO# cbMaxToken: 16379
SECPKG_ATTR_PACKAGE_INFO# Name: CryptoPro SSP
SECPKG_ATTR_PACKAGE_INFO# Comment: CryptoPro Security Package
Server certificate:
Subject: 2.5.4.15="#0C11476F7665726E6D656E7420456E74697479", 1.3.6.1.4.1.311.60.2.1.3="#13025255", SERIALNUMBER=1027700485757, C=RU, L=Moscow, O=FGBU FKP Rosreestra, CN=uc.kadastr.ru
Valid : 13.09.2019 00:00:00 - 12.10.2020 12:00:00 (UTC)
Issuer : C=US, O=DigiCert Inc, OU=www.digicert.com, CN=GeoTrust EV RSA CA 2018
Protocol: TLS 1.2
Cipher: 0x6610
Cipher strength: 256
Hash: 0x0
Hash strength: 0
Key exchange: RSA
Key exchange strength: 2048
Supported signatures: (01 02) (01 04) (01 05) (01 06)
Header: 13, Trailer: 16, MaxMessage: 16384
HTTP request: GET /root/index/root6.cer HTTP/1.1
User-Agent: Webclient
Accept:*/*
Host: uc.kadastr.ru
Connection: close
Sending plaintext: 113 bytes
171 bytes of application data sent
1448 bytes of (encrypted) application data received
849 bytes of (encrypted) application data received
Decrypted data: 2268 bytes
31 bytes of (encrypted) application data received
Context expired: OK if file is completely downloaded
Reply status: HTTP/1.1 200 OK
Sending Close Notify
31 bytes of handshake data sent
/dailybuildsbranches/CSP_5_0r2h/CSPbuild/CSP/samples/csptest/WebClient.c:3381:Socket shutdown()
Error 0x39:
/dailybuildsbranches/CSP_5_0r2h/CSPbuild/CSP/samples/csptest/WebClient.c:1079:Error disconnecting from server.
Error 0x39:
1 connections, 2268 bytes in 0.094 seconds;
Total: SYS: 0,020 sec USR: 0,130 sec UTC: 0,230 sec
[ErrorCode: 0x00000000]
Итого первопричина в неверной настройке веб-сервера УЦ Кадастровой палаты, но если бы мы "видели" корневые сертификаты из KeyChain, то вы бы про эту проблему не узнали. Сейчас задача "видеть" системные корневые находится на стадии исследования, возможно, мы поддержим эту функцию для вашего удобства. |